/**
* 使用两个类和两个析构函数进行测试
* 测试包括在第二个对象的全局变量中访问第一个对象
* 对象的析构函数 2
* 第一个类 ==> $GLOBALS['obj']
* 第二个类 ==> $GLOBALS['obj2']
* 执行构造函数和所有代码...
* 第一个析构函数删除对象并将其设置为 null
* 我们尝试在第二个析构函数中访问 $GLOBALS['obj'],但
* 它不再是一个对象,而是 null
* 警告:在...中未定义的数组键“obj”
*/
class MyDestructableClass{
public $parametro;
function __construct($parametro) {
echo("<div class=\"div\">"), "正在构建 ",__CLASS__ , ("</div>");
escribir::verifacionnota($this ,'在保存变量之前 ');
$this->parametro = $parametro;
escribir::verifacionnota($this ,'在保存变量之后 ');
}
function __destruct() {
escribir::linea(5); // 分隔符
echo("<div class=\"div\">"), "正在销毁 " , __CLASS__ , ("</div>");
escribir::verifacionnota($this ,'在删除变量之前 ');
unset($this->parametro);
escribir::verifacionnota($this ,'在删除变量之后 ');
// unset($GLOBALS[$this]);
}
}
$obj = new MyDestructableClass('parametroone');
escribir::verifacionnota($obj ,' 验证 MyDestructableClass 类,不需要
删除该类,因为它将在脚本结束时执行 ');
escribir::titulosep('在这里可以访问全局变量,正在测试示例');
escribir::verificacion($GLOBALS['obj']);
class destructora{
function __destruct(){
escribir::titulosep('但是该变量将在此处销毁');
escribir::verificacion($GLOBALS['obj']);
}
}
$obj2 = new destructora();