我们假设把error_reporting这个例子禁用; 否则,下面的代码将触发已过期和严格的关照书,分别根据不同的PHP版本。
<?php
classA
{
functionfoo()
{
if (isset($this)) {
echo'$this is defined (';
echoget_class($this);
echo\"大众)\n\"大众;
} else {
echo\"大众\$this is not defined.\n\公众;
}
}
}
classB
{
functionbar()
{
A::foo();
}
}
$a= newA();
$a->foo();
A::foo();
$b= newB();
$b->bar();
B::bar();
?>
在PHP 5上述例子的输出:
$这是指(A) $这是没有定义。 $这是指(B) $这是没有定义。
在PHP 7上面的例子中的输出:
$这是指(A) $这是没有定义。 $这是没有定义。 $这是没有定义。
创建一个类的实例,必须利用新的关键字。 一个工具总是会被创建,除非该工具有一个布局函数定义抛出非常的缺点。 类该当实例之前定义(并且在一些情形下,这是一个哀求)。
如果字符串包含一个类名称与新利用的,这个类的一个新的实例将被创建。 如果类是在一个命名空间,必须这样做时,可以利用它的全名。