Php двойной восклицательный знак

Что означает восклицательный знак в PHP? [Дубликат]

Предложение: Прочтите документацию по пустому и Исети , чтобы получить чувство для того, как они работают, различие и т.д.

@jprofitt: на самом деле оператор логического отрицания отсутствует в этом списке. Вы можете добавить этот вопрос в качестве ссылки на ! ,

3 ответа

! — это оператор логического отрицания или NOT . Это меняет смысл логического теста.

  • if(isset) делает что-то, если isset является логическим True .
  • if(!isset) делает что-то, если isset является логическим False .

Подробнее о операторах (логических и других типах) в документации PHP. Посмотрите ! , чтобы закрепить свое понимание того, что он делает. Пока вы там, посмотрите другие логические операторы:

которые также обычно используются в логических операторах.

Символ ! является логическим оператором «not». Он инвертирует логическое значение выражения.

Если у вас есть выражение, которое оценивается как TRUE , префикс его с ! заставляет его оценивать значение FALSE и наоборот.

$test = 'value'; var_dump(isset($test)); // TRUE var_dump(!isset($test)); // FALSE 

isset() возвращает TRUE , если заданная переменная определена в текущей области с ненулевым значением.

empty() возвращает TRUE , если данная переменная не определена в текущей области или если она определена со значением, которое считается «пустым». Эти значения:

NULL // NULL value 0 // Integer/float zero '' // Empty string '0' // String '0' FALSE // Boolean FALSE array() // empty array 

В зависимости от версии PHP объект без свойств также может считаться пустым.

В результате этого isset() и empty() почти дополняют друг друга (они возвращают противоположные результаты), но не совсем, поскольку empty() выполняет дополнительную проверку значения переменной isset() просто проверяет, определено ли это.

Рассмотрим следующий пример:

var_dump(isset($test)); // FALSE var_dump(empty($test)); // TRUE $test = ''; var_dump(isset($test)); // TRUE var_dump(empty($test)); // TRUE $test = 'value'; var_dump(isset($test)); // TRUE var_dump(empty($test)); // FALSE 

Источник

Php двойной восклицательный знак

В простом условии, когда требуется проверить что-то с чем-то, то скорее всего там будет «двойное неравно»

Давайте придумаем простой пример, чтобы мы смогли в живую увидеть действие этого оператора!

Пример двойного неравно в php:

Для того, чтобы увидеть действие данного оператора «неравно» нам понадобится :

В условии напишем, если порядковый номер цикла «$i» неравен числу «три», то выведем соответствующую информацию. И подсветим красным.

Иначе «else», переменная «$i» не равна трем

Результат работы оператора сравнение «двойного неравно» в php

Цикл под номером 0 неравен числу три
Цикл под номером 1 неравен числу три
Цикл под номером 2 неравен числу три
Число 3 равно трем
Цикл под номером 4 неравен числу три
Цикл под номером 5 неравен числу три
Цикл под номером 6 неравен числу три
Цикл под номером 7 неравен числу три
Цикл под номером 8 неравен числу три
Цикл под номером 9 неравен числу три

Тождественно неравно в php «!= тройное неравно» имеет сове отдельное название!

Как называет тройное неравно в php?

Но что такое «Тождественно неравно«

Данный оператор сравнения используется намного реже, чем предыдущий!

Пример работы тройного неравно в php

Давайте повторим то, что мы проделывали в предыдущем пункте, только вместо двойного неравно применим тройное неравно и посмотрим результат:

Результат работы тройного неравно в php:

Цикл под номером 0 неравен числу три
Цикл под номером 1 неравен числу три
Цикл под номером 2 неравен числу три
Число 3 равно трем
Цикл под номером 4 неравен числу три
Цикл под номером 5 неравен числу три
Цикл под номером 6 неравен числу три
Цикл под номером 7 неравен числу три
Цикл под номером 8 неравен числу три
Цикл под номером 9 неравен числу три

Как видим, что и в первом и втором случае, сработало неравно и тождественно неравно!

В чем же разница между «неравно» и «тождественно неравно«?

Я вам покажу на простом примере, как и чем отличается между собой эти два варианта сравнение!

Чем отличаются «неравно» и «тождественно неравно«?

Если вы хотите разобраться, в разнице между «неравно» и «тождественно неравно«, то я вам помогу!

Но для этого придется включить терпение, а лучше много терпения и прочитать данный пункт с максимальной внимательностью!

Потому! Что когда с этим сталкиваешься впервые, то это кажется полным бредом!
Но это не так!

По одной простой причине! Я внутри, а вы снаружи!

Для того, чтобы разобраться нам потребуется много переменных, начнем с двух:

Вы можете сказать, что эти две переменные неравны или тождественно неравны . И действительно неравны ! Но только по типу, но не по значению, что собственного и называется «тождественно неравны «!
Что дальше!?

мы напишем пару условий, когда сам «php» нам ответит на вопрос как равны переменные.

Если тождественно неравны (if($example !== $example_2)), то внутри данного условия нам потребуется еще одно условие, проверить, а как они неравны, если они неравны и по значению — значит выводим, что они равны.:

if($example != $example_2)
<
echo ‘ Две переменные неравны, ни по значению, ни по типу
‘;
>
else
echo ‘Две переменные равны только по значению
‘;
>

echo ‘ Две переменные неравны, ни по значению, ни по типу
‘;

echo ‘Две переменные равны только по значению
‘;

echo ‘Две переменные равны по значению и по типу
>’;

Теперь применим данный код к нашим переменным;

Результат сравнения двух переменных на два тождественно неравно php

Давайте сравним нашу первую переменную и новую с номером 3, пропустим через данный код:

В последнем сравнении, возьмем четвертую переменную и присвоим ей то же значение, что и первой переменной и проверим на «два и тождественно неравно»

Надеюсь, что выше все понятно, кроме того момента, почему две переменные

Две переменные равны только по значению

Чтобы узнать информацию о переменной, нам понадобится var_dump, давайте применим данную функцию к первой переменной :

И также ко второй переменной :

Источник

PHP Два восклицательного знака !! Оператор с preg_match?

preg_match возвращает 0 или 1 (или false в случае ошибки), и эта функция intStr предназначена для возврата логического значения. Одиночный !$x сначала преобразует $x в логическое значение, а затем инвертирует. !!$x просто отменяет это отрицание, так что это более короткий способ записи (bool)$x .

Однако такое сохранение четырех символов приводит к потере читабельности (и двум ненужным операциям, но это незначительно), поэтому это не рекомендуется.

Это умный код, но в программировании есть правило: Не будь умным

!! невероятно похож на not not . Это означает, что !!’a’ преобразует строку ‘a’ в логическое значение и вернет значение, обратное этому. Итак, !!preg_match означает not not preg_match , так что допустимое preg_match.

Запуск этой упрощенной функции:

> var_dump( test(1) ); bool(true) > var_dump( test(0) ); bool(false) > var_dump( test('1') ); bool(true) > var_dump( test('0') ); bool(false) > var_dump( is_bool( test('abc') ) ); bool(true) > var_dump( is_bool( test('0') ) ); bool(true) 

Проверил вывод с помощью is_bool . По-видимому, он каким-то образом приводит / заставляет вывод к логическому.

preg_match() возвращает 1, если шаблон соответствует заданной теме, 0, если нет, или FALSE, если произошла ошибка.

Я могу сделать вывод, что эта функция заставляет возвращаемое значение быть логическим, а не целочисленным значением, возвращаемым preg_match .

Источник

PHP Два восклицательных знака «!!» Оператор с preg_match? [дубликат]

preg_match возвращает 0 или 1 (или false в случае ошибки), и эта функция intStr предназначена для возврата логического значения. Один !$x первые новообращенные $x к логическому, затем отрицает. !!$x просто возвращает это отрицание, так что это более короткий способ написать (bool)$x .

Однако такое сохранение четырех символов приводит к потере удобочитаемости (и двум ненужным операциям, но это незначительно), так что это не рекомендуется.

Это умный код, но в программировании есть правило: Не будь умным

ответ дан 05 мар ’13, в 08:03

!! равно not not . Это означает, что !!’a’ бросит строку ‘a’ в логическое значение и вернуть обратное значение. Так, !!preg_match означает not not preg_match , поэтому допустимый preg_match.

ответ дан 05 мар ’13, в 08:03

Запуск этой упрощенной функции:

> var_dump( test(1) ); bool(true) > var_dump( test(0) ); bool(false) > var_dump( test('1') ); bool(true) > var_dump( test('0') ); bool(false) > var_dump( is_bool( test('abc') ) ); bool(true) > var_dump( is_bool( test('0') ) ); bool(true) 

Проверен вывод с помощью is_bool . По-видимому, он каким-то образом отбрасывает/принуждает вывод к логический.

preg_match() возвращает 1, если шаблон соответствует данному субъекту, 0, если нет, или ЛОЖЬ, если произошла ошибка.

Я могу сделать вывод, что эта функция заставляет возвращаемое значение быть логическим значением вместо возможности целочисленного значения, возвращаемого функцией preg_match .

ответ дан 05 мар ’13, в 08:03

Источник

Читайте также:  Personal profile index php
Оцените статью