是否可以定义一个变量,以便它可用于类中的每个函数......
例如:
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是在另一个已经加载了自动加载器的类上调用的,我想知道这是否会改变我的项目范围,我还在学习>&lt ;
答案 0 :(得分:0)
你的例子应该有用。问题是您正在访问$db
范围内的uses_variable()
。请改用$this->db
。
function uses_variable () {
$stmt = $this->db->stmt_init();
}
如果您有任何问题,应解决您的问题,但我想在您的问题中不是“复制/粘贴”代码。