2016-04-28 3 views
1

У меня есть объект, и может получить доступ к одному из его свойств поПроблемы с синтаксисом в PHP

$book = new Book(); print $book->price; 

Я также могу назвать

$prop = "price"; print $book->$prop. 

Но я не могу понять, как позвонить в смешанно , он дает ошибку:

$book->id_$prod 

как укоротить в $ book-> id_products, будучи $ тычок = "продукты".

ответ

1
$book = new Book(); 
$id_prod = "id_$prod"; 
print $book->$id_prod; 
+0

Это единственный способ? Нет возможности использовать {} или что-то еще? Это напоминает мне разыменование объектов, например $ object-> method() [0], которое было неправильным до тех пор, пока PHP 5.4, я думаю, вам не следует использовать $ tmp = $ object-> method(), а затем получить доступ к $ tmp [0] , – Cesar

+0

да, вы также можете сделать печать $ book -> {"id_ $ prod"}; –

1

Смешать 2 первых варианта.

$prop = 'id_'.$prod; 
$book->$prop; 
+0

Это тривиально. Я имел в виду прямой путь с некоторым трюком. Например {"id_". $ prod} или что-то еще. – Cesar

+0

Кажется, это работает: $ book -> {"id_". $ prod} – Cesar

Смежные вопросы