Php 未定义的属性如何使用此关键字?
下面的课程很好,我正在努力学习MVC,我只是想知道为什么。这可能很简单,但我无法理解Php 未定义的属性如何使用此关键字?,php,Php,下面的课程很好,我正在努力学习MVC,我只是想知道为什么。这可能很简单,但我无法理解 所以在控制器类中,我启动了视图对象(在其他地方定义)并分配给$this->View。现在为什么这没有给我任何错误,因为我没有在控制器类的任何地方定义视图属性,也没有扩展它 错误类也是如此。为什么$this->view->msg工作正常,因为无论是在父级还是错误控制器本身的任何位置都没有定义msg属性 这些是如何工作的飞行 <?php class Controller {
<?php
class Controller {
function __construct() {
echo 'main controller <br/>';
$this->view = new View();
}
}
?>
扩展控制器时出错
<?php
class Error extends Controller {
function __construct() {
parent::__construct();
echo 'This is error mate';
$this->view->msg = 'This page does not exit by msg';
$this->view->render('error/index');
}
}
?>
您可以随时动态地向对象添加属性,它们不需要事先声明;就像正则变量一样,如果你愿意的话。就这些
缺点是这些属性将是公共的,您可能不希望这样,这是一种不好的做法,因为这样会使类的结构不那么明显。您可以随时动态地向对象添加属性,它们不需要事先声明;就像正则变量一样,如果你愿意的话。就这些
缺点是这些属性将是
公共的
,这可能是您不希望的,而且这是一种不好的做法,因为它使类的结构不那么明显。PHP中的对象几乎都是字典,因此您可以动态地分配新属性。但是您是对的,更好的做法是显式定义它们。PHP中的对象几乎都是字典,所以您可以动态地分配新属性。但你是对的,更好的做法是明确定义它们。