просто наткнулся на то, с чем я никогда не сталкивался. У меня есть значение в моей таблице "Device Vendor"
и я возвращаю данные os для объекта.
обычно я бы назвал $ob->var_name
но, очевидно, $ob->Device Vendor
не будет работать.
Как вернуть значение?
С уважением
Вы используете следующий синтаксис
$ob->{'Device Vendor'}
Синтаксис таков:
$ob->{'Device Vendor'}
Мне трудно найти явную ссылку на это в руководстве по PHP. Я боюсь, что это нужно сделать, и вы можете сделать это, только если знаете ответ. В классах и объектах-> Свойства они говорят:
Переменные элемента класса называются «свойствами». […] Они определяются с использованием одного из ключевых слов public, protected или private, за которым следует объявление нормальной переменной.
Правила, которые применяются сейчас, являются переменными переменными :
Чтобы использовать переменные переменные с массивами, вы должны решить проблему двусмысленности. То есть, если вы пишете $$ a 1, тогда анализатор должен знать, хотите ли вы использовать $ a 1 в качестве переменной, или если вы хотите $$ a как переменную, а затем индекс 1 из этой переменной. Синтаксис для устранения этой двусмысленности: $ {$ a 1 } для первого случая и $ {$ a} 1 для второго.
Мы в основном злоупотребляем переменными переменными, поэтому мы можем использовать пробел.
Замените пробелы символами подчеркивания в имени свойства с именем свойства в любом нижнем регистре:
if $property = 'Device Vendor'; use $property = 'device_vendor'; $ob->{$property};