Как разобрать этот указатель на целое в JSON с PHP? [Дубликат]

Оператор == проверяет, указывают ли две ссылки на один и тот же объект или нет. .equals() проверьте фактическое содержимое строки (значение).

Обратите внимание, что метод .equals() принадлежит классу Object (суперкласс всех классов). Вам необходимо переопределить его в соответствии с вашим требованием к классу, но для String оно уже реализовано и проверяет, имеет ли две строки одно и то же значение.

  • Случай 1
    String s1 = "Stack Overflow";
    String s2 = "Stack Overflow";
    s1 == s2;      //true
    s1.equals(s2); //true
    
    Причина: строка литералы, созданные без нуля, хранятся в пуле строк в области перментонов кучи. Таким образом, оба s1 и s2 указывают на один и тот же объект в пуле.
  • Случай 2
    String s1 = new String("Stack Overflow");
    String s2 = new String("Stack Overflow");
    s1 == s2;      //false
    s1.equals(s2); //true
    
    Причина. Если вы создаете объект String с использованием ключевого слова new, ему выделяется отдельное пространство в куче.
20
задан Machavity 9 January 2018 в 03:54
поделиться

2 ответа

Как насчет этого:

$Beeblebrox->{'2ndhead'}

На самом деле вы можете сделать это практически для любой переменной - даже для тех, которые не являются свойствами класса.

Например , вы могли бы подумать о имени переменной, которое содержит пробелы; следующий синтаксис будет работать:

${"My test var"} = 10;
echo ${"My test var"};

Даже если, очевидно, вы не сможете сделать ничего подобного:

$My test var = 10;
echo $My test var;

Не знаю, как он работает внутри, хотя ... И после небольшого поиска я ничего не могу найти в руководстве по PHP.

Здесь можно найти только что {} и переменные: Переменный синтаксический анализ - но не совсем связано с текущим объектом ...

Но вот статья, которая показывает пару других возможностей, и идет дальше, чем примеры, которые я написал здесь: Имена переменных PHP : Curly Brace Madness

И вот еще один, который дает некоторую дополнительную информацию о том, как они анализируются: PHP грамматические заметки

34
ответ дан Pascal MARTIN 15 August 2018 в 17:10
поделиться
  • 1
    Да, вот и все! Вы ответили, прежде чем я смог! :) – Nathan Long 13 July 2010 в 20:11
  • 2
    быстрее на 10 секунд ^^ – Pascal MARTIN 13 July 2010 в 20:12
  • 3
    Если вы хотите уточнить, почему это работает и нужно (может быть, вы знаете больше, чем я?), Это сделало бы эту страницу более полезной и интересной. – Nathan Long 13 July 2010 в 20:13
  • 4
    Извините, я действительно не знаю, почему это работает - я просто знаю, что это делает ^^ (Тем не менее, я отредактировал свой ответ, чтобы дать немного больше информации) – Pascal MARTIN 13 July 2010 в 20:30

Я действительно узнал ответ от коллеги, прежде чем я спросил об этом, но не смог найти его в Google, поэтому я хотел опубликовать его здесь, если у других такая же проблема.

Я могу получите доступ к этому атрибуту следующим образом:

$Beeblebrox->{'2ndhead'}

Неправдоподобно иметь атрибут или переменную, которая начинается с числа, но так или иначе такая динамическая ссылка, как это делает возможным. Кажется, это странная лазейка для меня.

5
ответ дан Nathan Long 15 August 2018 в 17:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: