используя | = в php - PullRequest
       25

используя | = в php

12 голосов
/ 06 июля 2011

Я читал какой-то источник php-кода и обнаружил следующее:

$failed |= is_numeric( $key );

За исключением случаев, когда $key является числовым, что означает |=?

Ответы [ 4 ]

14 голосов
/ 06 июля 2011

$x |= $y; совпадает с $x = $x | $y;

$x | $y является побитовым оператором, который означает, что он возвращает результат логического 'или' между двумя переменными.

Inв контексте вопроса это позволяет $failed хранить состояния сбоев для нескольких действий в одной переменной (каждая битовая позиция представляет отдельное действие).

Если вам нужно узнать больше о том, что это делает, ярекомендуем прочитать страницу руководства PHP для побитовых операторов: http://www.php.net/manual/en/language.operators.bitwise.php

12 голосов
/ 06 июля 2011

Обозначение $a |= $b означает $a = $a | $b, аналогично другим обозначениям x=.| - побитовая операция ИЛИ.

4 голосов
/ 06 июля 2011

Это побитовый OR, поэтому линия такая же, как

$failed = $failed | is_numeric($key);

Это означает, что $failed равно true, если $failed было true до или is_numeric($key) равно true.

4 голосов
/ 06 июля 2011

Это эквивалент:

$failed = $failed | is_numeric($key);

| - побитовый оператор or.

Каждый раз, когда вы видите x <something>= y, его можно переписать как x = x <something> y,в значительной степени.

...