是否可以定义一个变量,以便类中的每个函数都可以使用它...
例如:
class scope {
private $db = null;
function __construct($db) {
$this->db = mysqli_init();
return $this->db;
}
function uses_variable {
$stmt = $db->stmt_init();
}
}
但是没有使变量成为全局变量或使用一堆额外的不必要的代码或开销?
编辑
我正在使用以下方式将所有类加载到我的索引中:
class autoloader {
public static $loader;
public static function init()
{
if(self::$loader == NULL) {
self::$loader = new self();
}
return self::$loader;
}
public function __construct() {
spl_autoload_register(array(this, 'library'));
request::request();
template::render();
}
public function library($class)
{
set_include_path(get_include_path() . PATH_SEPARATOR . '/lib');
spl_autoload_extensions('.class.php');
spl_autoload($class);
}
}
当我在 uses_variable 函数中调用变量时,如果我这样做,则会出现错误:
function uses_variable () {
$stmt = $this->db->stmt_init();
}
Notice: Undefined property: autoloader::$db
,可能值得注意的是函数 user_variable 是在另一个已使用自动加载器加载的类上调用的,我想知道这是否会改变我的项目范围,我仍在学习><。