PHP:未初始化的类成员/属性出错
在我看来,PHP类成员的严格程度低于变量,即使是在最严格的错误报告上。 比如说PHP:未初始化的类成员/属性出错,php,Php,在我看来,PHP类成员的严格程度低于变量,即使是在最严格的错误报告上。 比如说 class A { public function __construct() { $this->test = 0; } } $a = new A(); 在任何情况下都不会给出错误。我想手动将$test定义为public/protected/private。当然,我可以定义“获取$field”和“设置$field”,但我正在寻找一个全局解决方案。这不是一个bug,而是
class A
{
public function __construct()
{
$this->test = 0;
}
}
$a = new A();
在任何情况下都不会给出错误。我想手动将$test定义为public/protected/private。当然,我可以定义“获取$field”和“设置$field”,但我正在寻找一个全局解决方案。这不是一个bug,而是一个功能。请仔细阅读。您可以使用uuu get和uuu set方法模拟活动记录模式,并对内部数组进行操作,这就是链接文章中的情况。我想我的建议是,在缺少get和set魔术方法的情况下,它会像call一样延迟到错误而不是自动初始化。我的建议和那篇文章之间没有矛盾,尽管它可能会破坏很多代码。好吧,我注意到我不是在寻找一个uuu get/uu set hack。
<?php
class A
{
private $test;
public function __construct( $test = 0 ) // set a default value to 0 if no parameters
{
$this->test = $test;
}
public function __set( $field )
{
if( isset( $field ) === true )
{
$this->test = $field;
return true;
}
return false;
}
public function __get()
{
return $this->test;
}
}
$a = new A();
echo $a->get();
?>