Как найти Идентификатор объекта в PHP?

Неустранимая ошибка: не может использовать возвращаемое значение функции в контексте записи

Это обычно происходит при непосредственном использовании функции с empty.

Пример:

if (empty(is_null(null))) {
  echo 'empty';
}

Это связано с тем, что empty - это языковая конструкция, а не функция, она не может быть вызвана с выражением в качестве аргумента в версиях PHP до 5.5. До PHP 5.5 аргумент empty() должен быть переменной , но произвольное выражение (такое как возвращаемое значение функции) допустимо в PHP 5.5 +.

empty, несмотря на его имя, на самом деле не проверяет, является ли переменная «пустой». Вместо этого он проверяет, существует ли переменная, или == false. Выражения (например, is_null(null) в примере) всегда будут считаться существующими, поэтому здесь empty проверяет только, равен ли он false. Здесь вы можете заменить empty() на !, например. if (!is_null(null)), или явно сравнить с ложным, например. if (is_null(null) == false).

Вопросы, относящиеся

47
задан tereško 1 July 2012 в 14:09
поделиться

1 ответ

Используйте spl_object_hash() для этого.

Это возвращает уникальный идентификатор для каждого экземпляра объекта, а не название класса, таким образом, это кажется более подходящим для Вас.

Редактирование:

Для PHP < 5.2.x пользователи, см. этот ответ .

83
ответ дан Community 26 November 2019 в 19:34
поделиться
Другие вопросы по тегам:

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