«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Можно ли инициализировать свойства класса PHP с помощью непостоянных выражений?

Можно ли инициализировать свойства класса PHP с помощью непостоянных выражений?

Опубликовано 10 ноября 2024 г.
Просматривать:552

Can PHP Class Properties Be Initialized with Non-Constant Expressions?

Загадка инициализации классов PHP: оценка выражений в объявлениях свойств

Документация PHP предписывает, что объявления свойств класса могут быть инициализированы постоянными значениями. Однако пользователи сталкивались с синтаксическими ошибками при попытке инициализировать массивы с помощью непостоянных выражений.

Пример синтаксической ошибки:

public $var = array(
    1 => 4,
    2 => (4 1), // Syntax error
);

Основная проблема:

Ошибка связана с ограничением в PHP 5.5 и более ранних версиях, где в объявлениях свойств допускались только постоянные значения. Сюда входят значения, которые можно оценить во время компиляции. Однако использование вычисляемых выражений, таких как «4 1», было запрещено.

Решение в PHP 5.6:

Это ограничение было снято в PHP 5.6 с появлением постоянных скалярных выражений. Эта функция позволяет использовать следующий синтаксис:

public $var = array(
    1 => 4,
    2 => (4 1),
);

public $var = 4 1;

Вывод:

В PHP устранена синтаксическая ошибка, возникавшая в более ранних версиях PHP при инициализации свойств класса с помощью непостоянных выражений. 5.6 и более поздние версии. Константные скалярные выражения теперь позволяют разработчикам инициализировать свойства с помощью вычисленных значений, которые можно оценить во время компиляции.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3