время
|
|
Глава 12. Переменные Содержание Основы Предопределенные 13
неожиданному поведению, как это показано в следующем примере:
<?php
function test_global_ref() {
global $obj;
$obj = &new stdclass;
}
function test_global_noref() {
global $obj;
$obj = new stdclass;
}
test_global_ref();
var_dump($obj);
test_global_noref();
var_dump($obj);
?>
Выполнение этого примера сгенерирует следующий вывод:
NULL
object(stdClass)(0) {
}
Аналогично ведет себя и выражение static. Ссылки не хранятся статично:
<?php
function &get_instance_ref() {
static $obj;
echo "Static object: ";
var_dump($obj);
if (!isset($obj)) {
// Присвоить ссылку статической переменной
$obj = &new stdclass;
}
$obj->property++;
return $obj;
}
function &get_instance_noref() {
static $obj;
echo "Static object: ";
var_dump($obj);
if (!isset($obj)) {
// Присвоить объект статической переменной
$obj = new stdclass;
}
$obj->property++;
return $obj;
}
$obj1 = get_instance_ref();
$still_obj1