Показать сообщение отдельно
  #3 (permalink)  
Старый 20.11.2010, 01:46
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

судя по всем на 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();
Ответить с цитированием