【发布时间】:2011-05-05 16:26:53
【问题描述】:
如果以前有人问过这个问题,请原谅我,但是为什么你不能有类似以下的东西:
class foo {
require_once 'defines.php';
private $_server = DB_SERVER;
private $_username = DB_USERNAME;
private $_password = DB_PASSWORD;
private $_database = DB_NAME;
public $debug = false;
public $_conn;
function __construct() {
$connection = @mysqli_connect($this->_server, $this->_username, $this->_password, $this->_database);
}
...
}
干杯,
编辑:希望找出为什么这种行为存在以及为什么它不可能。 投票怎么结束的?
EDIT2:还想重新打开这个
【问题讨论】:
-
或者您可以简单地将常规变量放入包含文件中,并将该文件包含在您的构造函数中。您甚至可以将包含文件的文件名作为构造函数的参数。
-
我的主要观点是,如果它不起作用,那是有原因的,也许你是错误地解决了这个问题。很可能有一种更简单、更直观的方式来处理问题。
-
我不是故意让这个作为一个骗子被关闭 - 我投票太快了,它真的不是一个。投票重新开放-尽管我怀疑您是否会找到明确的答案。
-
最主要的是,你做不到。这不会改变。至于为什么,可能有很多很好的原因,正如很多人提到的那样。至于我的看法,因为类的顶部是用于变量声明的。一个 require 语句不能正确地包含变量声明,你为什么想要那个?如果您需要包含文件/代码,请在构造函数或类的属性中执行。你可以整天争论它,最终它不会改变,因为我怀疑这里的许多人可以为 PHP 编码员说话。
标签: php oop class-design