Для чего служит оператор ~ (тильда) в PHP?
Для подаются оператору ~
(тильда) в PHP?
Уже видел такие вещи, как:
echo ~PHP_INT_MAX
До сих пор я думал, что был для "обратный" номер на отрицательный, или что-то типа, но с тестами, я увидел, что ошибся.
Например:
echo ~2; //Imprime -3
echo ~5; //Imprime -6
1 answers
Является оператором отрицания bit bit. То есть, он меняет значение всех bits, дано в вопросе. Те, которые были 0 увидели 1 и те, которые были 1 просматривали 0. Его зовут bitwise not. Не путать с оператором логического отрицания !
.
Он не отрицательное число, то есть унарный оператор, негативные.
, То число 2 может быть представлено в бинарных
00000010 //isto é 2 em binário
, Отрицая (реверсивный) bits находится:
11111101 //isto é -3 em binário
Сделал 8 - bits, упростить, вероятно, было бы больше bits. Если преобразовать это число в десятичное, вы получите эту -3.
Проанализировать, 2 является третьим по числу срабатываний, а также 3 третье число отрицательных. Есть разворот в этом направлении, но на самом деле идти от положительного к отрицательному, это вопрос, типа плашки.
Полезность его очень велика, в некоторых случаях, но большинство программисты не видят, когда он может быть использован, чтобы избежать математических mirabolantes. Просто часто бывает трудно увидеть.
, Когда вы видите это:
E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE
Считывает так: сплава все ошибки ВСЕ, но НЕ все ошибки, которые есть STRICT
, также НЕ WARNING
, а также НЕ NOTICE
. Это выражение, которое приведет в число, которое будет использовано должным образом в PHP, чтобы понять, включен или нет. Человек понимает так, как я показал, но и для выбрать код будет рассмотрен bits, существующих в подходящей комбинации.