Heim  >  Artikel  >  Backend-Entwicklung  >  php 访问不存在的属性并没有报错?

php 访问不存在的属性并没有报错?

WBOY
WBOYOriginal
2016-10-10 11:56:041884Durchsuche

代码:

<code><?php error_reporting(E_ALL | E_STRICT);

class Father {
    private $name = 'meng';
}


$father = new Father;
$father->sex = 'male';
</code>

然后执行:

php 访问不存在的属性并没有报错?
没有任何问题。。。

php 访问不存在的属性并没有报错?

回复内容:

代码:

<code><?php error_reporting(E_ALL | E_STRICT);

class Father {
    private $name = 'meng';
}


$father = new Father;
$father->sex = 'male';
</code>

然后执行:

php 访问不存在的属性并没有报错?
没有任何问题。。。

php 访问不存在的属性并没有报错?

PHP 并没有强制属性都在类中声明,你那样写其实相当于动态的给对象增加了属性,但最好不要这么写,说不定哪个对象就漏了。

这就是在动态地给某一个对象(类的实例)增加属性,不会报错,但是你如果不是增加属性,而是访问属性就会报错,比如你是 echo $father->sex 而不是 $father->sex = 'male'就会报错的。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn