Одинаковое условие утверждения - PullRequest
0 голосов
/ 03 июля 2018

Поправь меня, если я ошибаюсь. Я видел, как многие люди пишут заголовок условия в этом формате.

if(isset($var) && $var!=""){}

По сути, это просто проверка, является ли $ var нулевым значением, верно? В моем понимании этого будет достаточно.

if($var){}

Я что-то упустил? Мой метод ненадежен? Мой коллега уже указал, что я должен использовать первый. Иногда мне просто лень писать, поэтому я просто хочу сделать это проще.

Ответы [ 3 ]

0 голосов
/ 03 июля 2018

Они не одно и то же.

if (expr) оценивается по этим правилам -> http://php.net/manual/en/types.comparisons.php#types.comparisons

<?php

$var = "0";

if (isset($var) && $var != "") {
    echo "first block\n";
}

if ($var) {
    echo "second block\n";
}

Пример

Предположим, что $ var равен "0", тогда он определенно установлен и не равен пустой строке, но не проходит тест if ($var).

0 голосов
/ 03 июля 2018
  1. Функция isset () используется для проверки, установлена ​​ли переменная или нет. Если переменная не установлена, возможно, она войдет в условие else .

В вашем случае, если $ var недоступен, возможно, вы столкнетесь с этой ошибкой Неопределенная переменная: var . Поэтому проверка isset всегда полезна для вашего кода.

Дело 1:

if($var){
    echo 'pass';
}else{
    echo 'fail';
}

Вывод: Примечание: неопределенная переменная: var в E: \ siva \ htdocs \ test.php в строке 48 ошибка

Дело 2:

if(isset($var)){
    echo 'pass';
}else{
    echo 'fail';
}

Выход: сбой

Дело 3:

$var = '';
if($var){
    echo 'pass';
}else{
    echo 'fail';
}

Выход: Fail

В этом случае 3 более интересен, если вы не смогли использовать isset, определили переменную как null, поэтому вы не получите ошибку

0 голосов
/ 03 июля 2018

php if($var){} проверит, истинно ли $var. В этом случае, если $var используется впервые при условии, будет сгенерировано уведомление о том, что вы пытаетесь использовать неопределенную переменную.

...