Я получил объект (на PHP), и я не могу распечатать его. В режиме отладки это выглядит так:
stdClass Object ( [pre-selection] => 1 )
Но я не могу напечатать «предварительный отбор» из-за знака минус.
echo $object->pre-selection; //doens't work.
Как я могу распечатать это? Благодарю.
Вы можете попробовать
$object->{'pre-selection'};
http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex
См. Также пример 2 json_decode()
Пример # 2 Доступ к недопустимым свойствам объекта
Доступ к элементам внутри объекта, который содержит символы, не разрешенные в соответствии с соглашением об именах PHP (например, дефис), может быть выполнен путем инкапсуляции имени элемента в фигурные скобки и апострофа.
<?php $json = '{"foo-bar": 12345}'; $obj = json_decode($json); print $obj->{'foo-bar'}; // 12345 ?>
Также можно использовать фигурные скобки , чтобы четко разграничить имя свойства. Они наиболее полезны при доступе к значениям внутри свойства, содержащего массив, когда имя свойства составлено из нескольких частей, или когда имя свойства содержит символы, которые в ином случае недействительны
Есть несколько способов, проблема в том, что токенизатор PHP задушит знак знака в коде, и вы можете написать его так, чтобы синтаксический анализатор не жаловался:
echo $object->{'pre-selection'};
или
$property = 'pre-selection' echo $object->$property;
или
$array = (array) $object; echo $array['pre-selection'];
В этих случаях парсер PHP не запускается на месте в необработанном коде, с которым у него есть проблема для более синтаксического анализа.
Интересно, где это задокументировано. Например, в документации SimpleXML :
Доступ к элементам в документе XML, который содержит символы, не разрешенные в соответствии с соглашением об именах PHP (например, дефис), может быть выполнен путем инкапсуляции имени элемента в фигурные скобки и апострофа.
Пример # 3 Получение <line>
<?php include 'example.php'; $movies = new SimpleXMLElement($xmlstr); echo $movies->movie->{'great-lines'}->line; ?>
Вышеприведенный пример выводит:
PHP solves all my web problems