Как несколько объектов могут быть использованы по-разному? Как на самом деле называются эти объекты?
Я учу PHP.
Изучая PHP, я заметил, что в PHP мало сущностей, которые используются по-разному. Иногда с парой круглых скобок с включенным в них параметром / s, иногда с парой пустых скобок (т.е. без каких-либо параметров / с или переданных сообщений / с), а иногда без использования пары круглых скобок.
Как это могло быть возможно? Возможно ли для всех других объектов (то есть функций / ключевых слов / языковых конструкций) также присутствующих в PHP?
Есть ли в PHP другие подобные объекты, кроме "echo", "print", "die", "exit", с которыми я до сих пор сталкивался?
Что эти сущности на самом деле называются функциями / ключевыми словами / языковыми конструкциями в PHP?
Каков правильный метод / способ / стандарт кодирования для доступа к объектам такого типа?
Было бы лучше для меня, а также для других членов сообщества PHP, которые пытаются изучать PHP, если бы кто-то мог ответить на все мои запросы простым, понятным и легким для понимания языком с надежным объяснением?
Благодарю вас.
1 ответ
Обычно, когда вы видите ()
после чего-то в PHP, есть ли параметр (ы) внутри или нет, это функция.
Есть два случая, когда круглые скобки являются необязательными.
Языковые конструкции - те, которые вы уже упоминали (
echo
,print
,die
, а такжеexit
) так же какbreak
,include
,require
,require_once
,return
, а такжеyield
, (Я думаю, что это все с необязательными скобками.)
Некоторые языковые конструкции, такие какunset
а такжеarray
действительно требуют скобки. Если вы не уверены, является ли определенное слово функцией или языковой конструкцией, лучше всего обратиться к руководству по PHP. Языковые конструкции будут включены в этот список ключевых слов. Некоторые языковые конструкции также перечислены в справочнике функций(например,echo
включен в строковые функции), но на конкретных страницах руководства будет четко указано, является ли термин языковой конструкцией, а также требуются или нет скобки.
Этот ответ содержит подробное описание того, почему / как языковые конструкции могут использоваться без скобок.Конструкторы объектов без обязательных аргументов.
Если конструктор объекта не принимает аргументов или все его аргументы являются необязательными (например,function __construct($foo = null)
) тогда круглые скобки могут быть опущены при создании нового объекта. Например, например,$now = new DateTime;
а также$now = new DateTime();
оба будут работать.
Что касается "правильного" пути, то его действительно нет. Если скобки требуются, очевидно, правильный способ - использовать их, иначе ваш код не будет проанализирован. Если круглые скобки не требуются, это зависит от стандарта кодирования, используемого в проекте, над которым вы работаете.