- Что означает восклицательный знак в PHP? [Дубликат]
- 3 ответа
- Php двойной восклицательный знак
- Пример двойного неравно в php:
- Результат работы оператора сравнение «двойного неравно» в php
- Тождественно неравно в php «!= тройное неравно» имеет сове отдельное название!
- Как называет тройное неравно в php?
- Но что такое «Тождественно неравно«
- Пример работы тройного неравно в php
- Результат работы тройного неравно в php:
- Чем отличаются «неравно» и «тождественно неравно«?
- Результат сравнения двух переменных на два тождественно неравно php
- PHP Два восклицательного знака !! Оператор с preg_match?
- PHP Два восклицательных знака «!!» Оператор с preg_match? [дубликат]
Что означает восклицательный знак в 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