2012-06-13 1 views
4

Я знаю, что != «не равно», но что это значит, когда у вас есть это:

if(!$something) 

Моя первая догадка что-то делать с исключениями, но осмотреться гугле ничего не вернуть.

А что это значит?

ответ

10

Что бы ни было в переменной converted to a Boolean (самой переменной, конечно, остается нетронутым), а затем операция NOT (!) равна d один на результирующем булевом. Преобразование произойдет потому, что ! является Logical Operator и работает только с булевыми значениями.

При преобразовании в булево значение, следующие значения считаются FALSE:

  • само логическое значение FALSE
  • целое число 0 (ноль)
  • поплавка 0,0 (ноль)
  • в пустая строка и строка «0»
  • массив с нулевыми элементами
  • объект w Ith нулевые переменные-члены (PHP 4 только)
  • специальный тип NULL (включая неустановленные переменные)
  • SimpleXML объектов, созданных из пустых тегов

Совет: Если переменная не ожидается Boolean, вы можете использовать что-то более конкретное, например isset($variable), empty($variable), $variable === '' и т. Д. В зависимости от того, что вы хотите проверить. Подробнее см. Руководство.

+2

+1 для списка значений, считанных false – Fabian

1

Это просто означает «Если не что-то».

if (!false) { 
    this_happens_because_not_false_is_true(); 
} 
2

Проверяет, не является ли что-то фальшивым.

3
if (!$something) { 

является equivelent из

if ($something == false) { 
+0

False. Например, '!" 0 "' истинно, но '' 0 "=== false' - нет. – Artefact2

+0

@Jeroen Нет, фактически '==' это то, что происходит здесь. Переменная будет преобразована с '!' В Boolean. Поэтому строгое равенство не вернет тот же результат. – kapa

6

Это то же самое, как:

if((bool)$something != true) { 

См: http://www.php.net/manual/en/control-structures.if.php

+0

Это лучший ответ, другие забывают упомянуть, что тест бросает bool на $ something, чтобы проверить его, что очень важно в зависимости от того, что находится в $ something. Я бы рекомендовал внимательно прочитать документ о литье в boolean в php – PEM

0

Проверяет, является ли $something неверным.

+1

Не совсем. Это будет '$ variable === false'. – kapa

0

это проверить, если !$something ложно или вы можете понять, как (если не $ что-то), то {// это будет выполняться}, и если что-то $ присутствует, то это не будет входить в случае

1

if(!$variable) то же самое, что и if($variable == false), поэтому он проверяет, является ли переменная $ ложной
Посмотрите на @ bažmegakapa answer, чтобы увидеть, какие значения считаются ложными.

0

Он преобразует переменную в boolean эквивалент переменной. Это может быть дано в нескольких случаях:

<?php 

    // Case 1: $variable is boolean 
    $variable = true; 
    $variable = !$variable; // Changes to false; 
    var_dump($variable); // bool(false) 

    // Case 2a: $variable is a positive integer 
    $variable = 5; 
    $variable = !$variable; // Changes to false; 
    var_dump($variable); // bool(false) 

    // Case 2b: $variable is an integer other than 0 
    $variable = 0; 
    $variable = !$variable; // Changes to false; 
    var_dump($variable); // bool(true) 

    // Case 2c: $variable is a negative integer 
    $variable = -5; 
    $variable = !$variable; // Changes to false; 
    var_dump($variable); // bool(false) 

    // Case 3a: $variable is string 
    $variable = "Hello"; 
    $variable = !$variable; // Changes to false; 
    var_dump($variable); // bool(false) 

    // Case 3b: $variable is empty string 
    $variable = ""; 
    $variable = !$variable; // Changes to false; 
    var_dump($variable); // bool(true) 
?> 

Короче говоря, он делает противоположное функции empty()! :)

Надеюсь, это поможет! :)

+0

Ну, не совсем противоположно 'empty()'. – kapa

+0

@ bažmegakapa есть некоторая связь справа? –

+0

Существует, конечно. Я только что проверил ручную ссылку, которую я опубликовал в своем ответе, а затем руководство пользователя 'empty()' и есть некоторые отличия (не пробовал себя). – kapa

-2
if($somethin == ""){ 
} 

Or 

if($somethin != ""){ 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^