PHP 4.2.0 以及后续版本中,PHP 指令 register_globals 的默认值为 off。这是 PHP 的一个主要变化。让 register_globals 的值为 off 将影响到预定义变量集在全局范围内的有效性。例如,为了得到 DOCUMENT_ROOT 的值,将必须使用 $_SERVER['DOCUMENT_ROOT'] 代替 $DOCUMENT_ROOT ,又如,使用 $_GET['id'] 来代替 $id 从 URL http://www.example.com/test.php?id=3 中获取 id 值,亦或使用 $_ENV['HOME'] 来代替 $HOME 获取环境变量 HOME 的值。
从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。 <?php class Base { public function sayHello () { echo 'Hello ' ; } } trait SayWorld { public function sayHello () { parent :: sayHello (); echo 'World!' ; } } class MyHelloWorld extends Base { use SayWorld ; } $o = new MyHelloWorld (); $o -> sayHello (); ?> 以上例程会输出: Hello World!
<?php trait HelloWorld { public function sayHello () { echo 'Hello World!' ; } } class TheWorldIsNotEnough { use HelloWorld ; public function sayHello () { echo 'Hello Universe!' ; } } $o = new TheWorldIsNotEnough (); $o -> sayHello (); ?> 以上例程会输出: Hello Universe!