конкатенация имени метода и строки php

RO
На сайте с 13.07.2009
Offline
88
702

class A{

public $page_name_ru;
public function __construct(){
$this->page_name_ru='page name ru';
}
}

$a=new A();
var_dump($a->page_name_.'ru');

в результате

Notice: Undefined property: A::$page_name_ in

это баг такой или я что-то не так делаю?

---------- Добавлено 11.10.2012 в 03:32 ----------

class A{

public $page_name_ru;
public function __construct(){
$this->page_name_ru='page name ru';
}
}

$a=new A();
$b='ru';
$c='page_name_'.$b;
var_dump($a->$c);

вот так работает, но не хочется создавать каждый раз 2 лишних переменных.

WhiteKrol
На сайте с 08.05.2012
Offline
38
#1

Попробуйте $object->{"property_$var1"}

IL
На сайте с 20.04.2007
Offline
435
#2
RedOK:
var_dump($a->page_name_.'ru');
...это баг такой или я что-то не так делаю?

Сначала PHP пытается получить значение $a->page_name_ и, естественно вылетает с ошибкой (или не вылетает, в зависимости от error_level). Решение уже привели чуть выше.. - добавить скобки

echo $a->{'page_name_'.'ru'}
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий