Что это?
Это набор вопросов, которые время от времени возникают о синтаксисе в PHP. Это также Вики Сообщества, поэтому каждый приглашен принять участие в ведении этого списка.
Почему это?
Раньше было сложно найти вопросы об операторах и других синтаксических токенах
. Основная идея - иметь ссылки на существующие вопросы по переполнению стека, поэтому нам легче ссылаться на них, а не копировать содержимое из руководства по PHP.
Примечание. С января 2013 года переполнение стека поддерживает специальные символы . Просто окружите условия поиска кавычками, например[php] "==" vs "==="
Что мне здесь делать?
Если кто-то указал на вас кем-то, потому что вы задали такой вопрос, пожалуйста, найдите конкретный синтаксис ниже. Связанные страницы с руководством по PHP вместе со связанными вопросами, скорее всего, ответят на ваш вопрос. Если это так, вам предлагается поднять ответ. Этот список не является заменой помощи, оказанной другими.
Список
Если ваш конкретный токен не указан ниже, вы можете найти его в списке токенов парсера .
&
Битовые операторы или ссылки
- Что значит запустить функцию PHP с амперсандом?
- Понимание PHP & (амперсанд, битовый и) оператор
- Оператор PHP "&"
- Разница между & и && в PHP
- Что означает «&» здесь в PHP?
- Что означает «&» в этом случае?
- Что означает знак «&» в PHP?
- Что означает эта подпись (&) в PHP?
- Как работает оператор «&» в функции PHP?
- Что означает & in & 2 в PHP?
- Когда я должен использовать побитовый оператор?
- Есть ли необходимость использовать амперсанд перед объектом? (& $)
=&
Ссылки
- Оператор присвоения ссылок в PHP, = &
- Что означают операторы "= &" и "& =" в PHP?
- Что делают операторы '& =' и '= &'?
- Что означает & в PHP?
- 'AND' vs '&&' как оператор
- Разница между & и && в PHP
- Есть ли разница между операторами "и" и "&&" в PHP?
- PHP - и / или ключевые слова
- Что означает знак процента в PHP?
- Что такое оператор PHP% и как его использовать в реальных примерах?
- Какая польза от символа @ в PHP?
- Символ «перед» перед именем переменной в PHP: @ $ _ POST
- PHP функции и @functions
- Должен ли я использовать @ в моем коде PHP?
- Что означает @ в PHP?
- Какие операторы PHP "?" и ":" звонили и что они делают?
- ?: оператор («оператор Элвиса») в PHP
- Где я могу прочитать об условных обозначениях, выполненных с помощью "?" и ":" (двоеточие)?
- Использование PHP 5.3?: Оператор
??
Нулевой оператор объединения (начиная с PHP 7)
?string
?int
?array
?bool
?float
Обнуляемое объявление типа возврата (начиная с PHP 7.1)
:
Альтернативный синтаксис для структур управления , Тернарный оператор
::
Оператор разрешения области
- Что означают две двоеточия в PHP?
- Что означает имя токена PHP T_PAAMAYIM_NEKUDOTAYIM?
- В чем разница между :: (двойное двоеточие) и -> (стрелка) в PHP?
- Что такое поздние статические привязки в PHP?
- Статическая :: staticFunctionName ()
- Неожиданный T_PAAMAYIM_NEKUDOTAYIM, ожидающий T_NS_Separator
- Как называется оператор «->» PHP и как вы это произносите, когда читаете код вслух?
- Где мы используем объектный оператор "->" в PHP?
- В чем разница между :: (двойное двоеточие) и -> (стрелка) в PHP?
- Что означает синтаксис PHP $ var1 -> $ var2?
- Что означает "->" в PHP?
=>
Массивы
- Что означает "=>" в PHP?
- Использование => в PHP
- Что означает $ k => $ v в foreach ($ ex как $ k => $ v)?
- Что означает <<< END в PHP?
- PHP выражение <<< EOB
- В PHP что означает «<<<»?
- Использование <<< CON в PHP
- Что это за синтаксис в PHP?
- Чем отличаются операторы сравнения PHP (== double equals) и тождества (=== triple equals)?
- Операторы PHP! = И ==
- 3 разных равных
- Жонглирование типов и (строгое) большее / меньшее сравнение в PHP
- Что значит "==="?
- Чем отличаются операторы сравнения PHP (== double equals) и тождества (=== triple equals)?
- 3 разных равных
- Жонглирование типов и (строгое) большее / меньшее сравнение в PHP
- Операторы PHP! = И ==
- Есть ли разница между! == и! = В PHP?
- сравнивая,! == против! =
- В чем разница между <> и! =
- Оператор PHP <>
- Оператор PHP <>
- В чем разница между <> и! =
- Жонглирование типов и (строгое) большее / меньшее сравнение в PHP
<=>
Операторы сравнения (начиная с PHP 7.0)
- В чем разница между | и || операторы?
- Что делает использование одной трубы '|' В аргументе функции ли?
- В чем разница между | и || операторы?
- PHP - и / или ключевые слова
- Что именно делает || жадный?
- Поведение оператора или в PHP
+
Арифметические операторы , операторы массивов
+=
и -=
операторы присваивания
++
и --
возрастающие / убывающие операторы
- Разница между точкой и запятой при конкатенации с эхо против возврата?
- Что делает (точка) делать в PHP?
- Что означает $$ (доллар доллар или двойной доллар) в PHP?
- что такое "$$" в PHP
- $ function () и переменная $$
[]
Массивы (короткий синтаксис начиная с PHP 5.4)
- PHP массивы ... Что означает (а) значение (я) пустой скобки?
- Каково значение []
- Php array_push () против myArray []
- Что означает [] при чтении из массива PHP?
- Сокращение для массивов: буквальный
$var = []
пустой массив
...
Распаковка аргумента (начиная с PHP 5.6)
**
Экспонирование (начиная с PHP 5.6)
#
Однострочный комментарий в стиле оболочки
/**
?$
переменные, а$$
только на переменные. Я считаю, что это должно быть где-то исправлено.Ответы:
Увеличение / Уменьшение Операторов
++
оператор приращения--
оператор декрементаОни могут идти до или после переменной.
Если поставить перед переменной, операция увеличения / уменьшения выполняется сначала для переменной, а затем возвращается результат. Если поставить после переменной, переменная сначала возвращается, затем выполняется операция увеличения / уменьшения.
Например:
Живой пример
В случае выше
++$i
используется, так как это быстрее.$i++
будет иметь такие же результаты.Предварительное увеличение немного быстрее, потому что оно действительно увеличивает переменную и после этого «возвращает» результат. Постинкремент создает специальную переменную, копирует туда значение первой переменной и только после использования первой переменной заменяет ее значение на второе.
Однако вы должны использовать
$apples--
, поскольку сначала вы хотите отобразить текущее количество яблок, а затем вычесть одно из них.Вы также можете увеличивать буквы в PHP:
После того,
z
как достигнутaa
следующий, и так далее.Сообщения переполнения стека:
источник
Побитовый оператор
Что немного? Бит представляет собой 1 или 0. В основном OFF (0) и ON (1)
Что такое байт? Байт состоит из 8 битов, а наибольшее значение байта составляет 255, что означает, что установлен каждый бит. Посмотрим, почему максимальное значение байта равно 255.
Это представление 1 байт
1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 (1 байт)
Несколько примеров для лучшего понимания
Оператор "И":
&
Это вывело бы число 8. Почему? Хорошо, давайте посмотрим на нашем примере таблицы.
Таким образом, из таблицы видно, что они разделяют только один бит - 8 бит.
Второй пример
Два общих бита - 32 и 4, которые при сложении возвращают 36.
Оператор "Или":
|
Это вывело бы число 11. Почему?
Вы заметите, что у нас установлено 3 бита в столбцах 8, 2 и 1. Сложите их: 8 + 2 + 1 = 11.
источник
and &
есть0 0 0 0 1 0 0 0
иor |
есть0 0 0 0 1 0 1 1
?<=>
Оператор космического корабляДобавлено в PHP 7
Оператор космического корабля
<=>
является последним оператором сравнения добавлен в PHP 7. Это неассоциативный бинарный оператор с таким же приоритетом , как операторы равенства (==
,!=
,===
,!==
). Этот оператор позволяет упростить трехстороннее сравнение между левым и правым операндами.Оператор приводит к целочисленному выражению:
0
когда оба операнда равны0
когда левый операнд меньше правого операнда0
когда левый операнд больше правого операнданапример
Хорошее практическое применение этого оператора - обратные вызовы типа сравнения, которые, как ожидается, будут возвращать нулевое, отрицательное или положительное целое число на основе трехстороннего сравнения между двумя значениями. Переданная функция сравнения
usort
является одним из таких примеров.До PHP 7 вы писали бы ...
Начиная с PHP 7 вы можете написать ...
источник
$a <=> $b
отличается$a - $b
$a - $b
работает для чисел, но не для строк, объектов или массивов.$a - $b
, даже не работает для чисел; это работает только для целых чисел . Он не работает для нецелых чисел, потомуusort
что приводит к возврату возвращаемых значений функции сравненияint
, что означает, что 0.5 получает приведение к 0, что означает, что два числа с разницей меньше 1, такие как 4 и 4.6, могут (в зависимости от на который передается в качестве первого аргумента функции сравнения) неправильно сравнивать как равные._
Псевдоним для gettext ()Символ подчеркивания '_', как и in,
_()
является псевдонимомgettext()
функции.источник
источник
Магические константы : хотя это не просто символы, а важная часть этого семейства токенов. Есть восемь магических констант, которые меняются в зависимости от того, где они используются.
__LINE__
: Текущий номер строки файла.__FILE__
: Полный путь и имя файла файла. Если используется внутри включения, возвращается имя включенного файла. Начиная с PHP 4.0.2,__FILE__
всегда содержит абсолютный путь с разрешенными символическими ссылками, тогда как в более старых версиях он содержал относительный путь при некоторых обстоятельствах.__DIR__
: Каталог файла. Если используется внутри include, возвращается каталог включенного файла. Это эквивалентноdirname(__FILE__)
. Это имя каталога не имеет косой черты, если только оно не является корневым каталогом. (Добавлено в PHP 5.3.0.)__FUNCTION__
: Имя функции. (Добавлено в PHP 4.3.0) Начиная с PHP 5 эта константа возвращает имя функции в том виде, в котором она была объявлена (с учетом регистра). В PHP 4 его значение всегда в нижнем регистре.__CLASS__
: Имя класса. (Добавлено в PHP 4.3.0) Начиная с PHP 5 эта константа возвращает имя класса в том виде, в котором оно было объявлено (с учетом регистра). В PHP 4 его значение всегда в нижнем регистре. Имя класса включает пространство имен, в котором оно было объявлено (напримерFoo\Bar
). Обратите внимание, что начиная с PHP 5.4__CLASS__
работает и в чертах. При использовании в методе признака__CLASS__
- это имя класса, в котором используется признак.__TRAIT__
: Имя черты. (Добавлено в PHP 5.4.0) Начиная с PHP 5.4 эта константа возвращает признак в том виде, в котором он был объявлен (с учетом регистра). Имя черты включает пространство имен, в котором оно было объявлено (напримерFoo\Bar
).__METHOD__
: Имя метода класса. (Добавлено в PHP 5.0.0) Имя метода возвращается в том виде, в котором оно было объявлено (с учетом регистра).__NAMESPACE__
: Имя текущего пространства имен (с учетом регистра). Эта константа определяется во время компиляции (добавлено в PHP 5.3.0).Источник
источник
Операторы типа
instanceof
используется для определения того, является ли переменная PHP экземпляром объекта определенного класса.Приведенный выше пример выведет:
Причина: приведенный выше пример
$a
является объектом,mclass
поэтому используйте толькоmclass
данные, а не экземпляр сsclass
Пример с наследованием
Приведенный выше пример выведет:
Пример с клоном
Приведенный выше пример выведет:
источник
Обзор операторов в PHP :
Логические операторы:
Операторы сравнения:
Арифметические операторы:
Операторы увеличения / уменьшения:
Битовые операторы:
Строковые операторы:
Операторы массива:
Операторы присваивания:
Запись
and
оператор иor
оператор имеют более низкий приоритет, чем оператор присваивания=
.Это означает, что
$a = true and false;
эквивалентно($a = true) and false
.В большинстве случаев вам, вероятно, захочется использовать
&&
и||
, которые ведут себя так, как это известно из таких языков, как C, Java или JavaScript.источник
$a ?? $c
, что она такая же, как$a ? $a : $c
, но троичный оператор проверяет, является ли значение истинным, с другой стороны, объединение нулей проверяет нулевые значения, поэтому, если $ a равно 0, вы получите 0 (потому что 0 это не ноль), например, если у вас есть:$a=0; $c=5;
затем$a?$a:$c
возвращает 5 и$a??$c
возвращает 0.Оператор космического корабля
<=>
(добавлен в PHP 7)Примеры для
<=>
оператора космического корабля (PHP 7, источник: руководство по PHP):Целые числа, числа с плавающей запятой, строки, массивы и объекты для трехстороннего сравнения переменных.
источник
{}
Фигурные скобкиИ несколько слов о последнем посте
источник
Нулевой оператор объединения (??)
Этот оператор был добавлен в PHP 7.0 для общего случая необходимости использования троичного оператора в сочетании с
isset()
. Возвращает свой первый операнд, если он существует и не существуетNULL
; в противном случае он возвращает свой второй операнд.источник
Строки PHP: Строки PHP можно задавать четырьмя способами, а не двумя способами:
1) Строки в одинарных кавычках:
2) Строки с двойными кавычками:
3) Эредок:
4) Nowdoc (начиная с PHP 5.3.0):
источник
ВОПРОС:
Что
=>
значит?ОТВЕТ:
=>
Является ли символ, который мы, люди, решили использовать для разделения"Key" => "Value"
пар в ассоциативных массивах.РАЗРАБОТКА:
Чтобы понять это, мы должны знать, что такое ассоциативные массивы. Первое, что возникает, когда обычный программист думает о массиве ( в PHP ), будет что-то похожее на:
Где, как если бы мы хотели вызвать массив в какой-то более поздней части кода, мы могли бы сделать:
Все идет нормально. Однако, как люди, мы могли бы найти это трудно вспомнить , что индекс
[0]
массива является значением года 2016, индекс[1]
массива является приветствием , а индекс[2]
массива является простым целым числом . Тогда у нас есть альтернатива - использовать ассоциативный массив . Ассоциативный массив имеет несколько отличий от последовательного массива ( как и в предыдущих случаях, поскольку они увеличивают индекс, используемый в заранее определенной последовательности, путем увеличения на 1 для каждого следующего значения ).Отличия ( между последовательным и ассоциативным массивом ):
Во время объявления ассоциативного массива вы не только включаете то,
value
что вы хотите поместить в массив, но также помещаете значение индекса (называемоеkey
), которое вы хотите использовать при вызове массива в последующих частях код. Следующий синтаксис используется в процессе ее декларации:"key" => "value"
.При использовании ассоциативного массива
key
значение будет помещено в индекс массива для получения нужного значенияvalue
.Например:
И теперь, чтобы получить тот же вывод, что и раньше,
key
значение будет использоваться в индексе массивов:ФИНАЛЬНАЯ ТОЧКА:
Таким образом , из приведенного выше примера, это довольно легко видеть , что
=>
символ используется для выражения отношения ассоциативного массива между каждым изkey
иvalue
пара в массиве ВО инициации значений в массиве.источник
Вопрос :
Что означает «&» здесь в PHP?
Оператор PHP "&"
Облегчает жизнь, как только мы привыкнем к ней .. (внимательно проверьте пример ниже)
& обычно проверяет биты, которые установлены как в $ a, так и в $ b.
Так что за всем этим стоит игра побитового оператора и битов.
Один из полезных примеров - простые конфигурации, такие как приведенные ниже, поэтому одно целочисленное поле может хранить тысячи комбинаций для вас.
Большинство людей уже читали документы, но не использовали реальный вариант использования этих побитовых операторов.
Пример, который вы полюбите
источник
==
используется для проверки равенства без учета типа данных переменной===
используется для проверки равенства как переменной величины и типа данныхпример
$a = 5
if ($a == 5)
- оценит как истинныйif ($a == '5')
- будет иметь значение true, потому что при сравнении обоих значений PHP внутренне преобразует это строковое значение в целое, а затем сравнивает оба значенияif ($a === 5)
- оценит как истинныйif ($a === '5')
- оценивается как ложное, потому что значение равно 5, но это значение 5 не является целым числом.источник
Нулевой оператор Coalesce "??" (Добавлено в PHP 7)
Не самое запоминающееся имя для оператора, но PHP 7 содержит довольно удобное объединение нулей, поэтому я решил поделиться примером.
В PHP 5 у нас уже есть троичный оператор, который проверяет значение, а затем возвращает второй элемент, если это возвращает true, и третий, если это не так:
Существует также сокращение, позволяющее пропустить второй элемент, если он совпадает с первым: echo $ count?: 10; // также выводит 10
В PHP 7 мы дополнительно получаем оператор, который вместо того, чтобы указывать на крайнюю путаницу, как я обычно использую вместе два знака вопроса, позволяет нам связать воедино строку значений. Читая слева направо, первое значение, которое существует и не является нулевым, является значением, которое будет возвращено.
Эта конструкция полезна для того, чтобы отдавать приоритет одному или нескольким значениям, исходящим, возможно, из пользовательского ввода или существующей конфигурации, и безопасно использовать заданное значение по умолчанию, если эта конфигурация отсутствует. Это небольшая функция, но я знаю, что буду использовать ее, как только мои приложения обновятся до PHP 7.
источник
Обнуляемое объявление типа возврата
В PHP 7 добавлена поддержка объявлений возвращаемых типов. Аналогично объявлениям типа аргумента, декларации возвращаемого типа определяют тип значения, которое будет возвращено из функции. Для объявлений возвращаемого типа доступны те же типы, что и для объявлений типов аргументов.
Строгая типизация также влияет на объявления возвращаемого типа. В слабом режиме по умолчанию возвращаемые значения будут приводиться к правильному типу, если они еще не относятся к этому типу. В сильном режиме возвращаемое значение должно быть правильного типа, в противном случае выдается ошибка TypeError.
Начиная с PHP 7.1.0, возвращаемые значения могут быть помечены как обнуляемые, если перед именем типа ставить знак вопроса (?). Это означает, что функция возвращает либо указанный тип, либо NULL.
Источник
источник
Три точки как оператор Splat (...) (начиная с PHP 5.6)
В PHP есть оператор "..." (три точки), который называется оператором Splat. Он используется для передачи произвольного числа параметров в функцию, и этот тип функции называется Variadic Functions. Давайте рассмотрим примеры использования "..." (три точки).
Каждый аргумент функции executeNumbers () передается через $ params в виде массива при использовании «…».
Есть много разных способов использовать оператор «…». Ниже приведены несколько примеров:
источник
? -> Оператор NullSafe
На данный момент это просто предложение, вы можете найти его здесь . Это
NullSafe Operator
, он возвращаетnull
в случае, если вы пытаетесь вызвать функции или получить значения изnull
... Примеристочник
NullSafe Operator "? ->" (возможно) с php8
На данный момент это всего лишь предложение, вы можете найти его, введите ссылку здесь .
?->
этоNullSafe Operator
, он возвращаетnull
в случае, если вы пытаетесь вызвать функции или получить значения изnull
...Примеры:
источник