Заметки программиста | info.sectorit.net

 
PHP. Как подставить динамическое имя свойства/метода класса объекта PDF Печать E-mail
Оценка пользователей: / 1
ПлохоОтлично 
Development - PHP
Автор: Sorbing    11.05.11 14:17

dynamic_name_property_method_objectДля того, чтобы в PHP подставить динамическое имя свойства или метода класса объекта, необходимо заключить переменную содержащую имя свойства или метода в фигурные скобки.

При этом, если нам необходимо подставить из переменной имя метода, то после фигурных скобок нужно добавить обычные скобки, как если бы мы просто вызывали метод класса.

В фигурных скобках разрешено использовать конкатенацию строки с переменной:

$this->{$this->field . '_infix'}();

class User_Data
{
 /**
 * Имя поля, значение которого мы хотим получить
 * @var string
 */
 private $field = 'site';

 /**
 * Значение свойства $site отличается от значения метода site();
 * @var string
 */
 private $site = 'property.sectorit.net';

 function site()
 {
 return 'method.sectorit.net';
 }

 function __toString()
 {
 $data = array(
// Подставляем динамическое имя свойства класса объекта
 $this->field . '_property'    => $this->{$this->field},
// Подставляем динамическое имя метода класса объекта
 $this->field . '_method'    => $this->{$this->field}()
 );
print_r($data); 

 /*
 * Что бы не выдавал ошибку:
 * Catchable fatal error: Method User_Data::__toString() must return a
 * string value in /home/stas/www/test/index.php on line XXX
 */
 return '';
 }
}
$user = new User_Data();
echo $user;

Последнее обновление: 11.05.11 14:31
 

Добавить комментарий


Защитный код
Обновить

Поиск


[+]
  • Increase font size
  • Decrease font size
  • Default font size
  • default color
  • blue color
  • green color