Указатель this
Написал для теста простой код, он хоть и выводит цифру 7, но выводит перед этой цифрой ошибку, почему так?
Код:
class A{Но я же инициализировал свойство x1, почему ошибка? |
удалено.
|
судя по всем на PHP
и ошибка в том, что к свойствам надо обращаться так: $this->x1 а не как вы . хотя ваш способ записи ИНОГДА, очень редко также применим. следующая запись означает $this->$x1 1)взять ЛОКАЛЬНУЮ переменную $x1(ваш код выдает ошибку в этот момент, так как перменная не существует) 2)привести эту переменную к строке(несуществующая переменная приводится к пустой строке) 3)взять свойство объекта, имеющее полученное из строки имя(в данном случае свойство с пустым именем. но такие свойства недопустимы,и выпадает Fatal error) пример на понимание:
<?php
class A{
var $x1, $x2;
function setname(){
$x1 = 'x2';
$this->x1 = 1;//записывает в $this->x1
$this->$x1 = 2;//записывает в $this->x2, так как $x1 = 'x2';
$this->{$x1} = 2;//ТО же самое, что и перед этим, но более универсальная запись
$this->{"x2"} = 2;//и еще один способ записи
$this->{"x".(2)} = 2;//и еще один способ записи
echo $this->x1.'<br />';
echo $this->x2.'<br />';
}
}
$object = new A;
$object->setname();
|
| Часовой пояс GMT +3, время: 18:18. |