【发布时间】:2017-08-24 14:08:35
【问题描述】:
我已经开始真正深入研究其他人的代码,我希望这被认为是一个简单的问题,但有些事情让我感到厌烦,我希望你能解释一下:
将这个简单的启动脚本读取到模板引擎时,我注意到没有为 $variable->object 设置定义或变量。
class Template {
protected $file;
protected $values = array();
public function __construct($file) {
$this->file = $file;
}
}
如果您在上面的基本代码中注意到 $this->file = $file,则“文件”对象被引用而没有被定义。是 __construct 函数的原因吗?还是我错过了其他东西?如果是这样,所有构造变量在函数中都设置为“define()”吗?
编辑:
问题是,__construct 是否充当 define() 以便“文件”可以在代码中的任何位置使用,就好像它是一个变量 $file?或者是“受保护”本质上定义了变量 $file,允许我使用变量 $file。但如果是这样的话,
怎么来的
function __construct($file)
看起来不像:
function __construct(file) if that is the case?
我猜我对如何调用“文件”以及代码的哪一部分定义了“文件”感到困惑?
【问题讨论】:
-
但一般是可以的,但不干净
-
我不知道这里的“未定义”是什么。
protected $file定义了$this->file引用的属性。$file作为参数进入函数。 -
@deceze 所以只要 $this->file 被引用,protect $file 就允许全局使用“file”。我的困惑是“文件”如何在没有被定义的情况下首先存在。本质上如何使用“文件”?
-
是
$this->file,不是file,是指之前定义的protected $file。