атрибут объекта php с точкой в ​​имени - PullRequest
12 голосов
/ 18 марта 2011

У меня есть таблица mysql с такими столбцами, как 'operation.date', 'operation.name' и т. Д. После извлечения данных таблицы как объекта с $mysqli->fetch_object() я получаю это (print_r строки):

stdClass Object
(
[id] => 2
[operation.date] => 2010-12-15
[operation.name] => some_name
)

как мне получить доступ к operation.date и operation.name и всем другим свойствам объекта со странным именем?

Ответы [ 5 ]

37 голосов
/ 18 марта 2011

Укажите псевдонимы в своем запросе SQL, например SELECT column AS nameWithoutDots ...
, или получите доступ к этим свойствам с помощью $object->{'operation.name'}
или приведите объект к массиву следующим образом: $obj = (array)$obj; echo $obj['operation.name'].

9 голосов
/ 26 марта 2015

Правильный способ доступа к свойствам с точкой должен быть:

echo $object->{"operation.date"}
3 голосов
/ 18 марта 2011

Для доступа к этим атрибутам вам необходимо заключить их в фигурные скобки:

echo $object->{"operation.date"} //2010-12-15

Если вы установите атрибут таким образом, удаляющийся символ будет удален, что позволит вам получить доступ к атрибуту как echo $object->operationdate //2010-12-15

2 голосов
/ 18 марта 2011

Измените sql, чтобы он возвращал действительные имена свойств, используя функцию 'as'

например.выберите операцию. дата в качестве даты

0 голосов
/ 07 июля 2016

Вы можете получить ассоциированный массив вместо объекта, используя $mysqli->fetch_assoc()

...