Рассмотрим этот статус jquery
isTouch = document.createTouch !== undefined
Я хотел бы знать, есть ли у нас аналогичный оператор в PHP, не являющийся isset (), а буквально проверяющий неопределенное значение, например:
$isTouch != ""
Есть ли что-то подобное в PHP?
Ответы:
Ты можешь использовать -
$isTouch = isset($variable);
Он вернется,
true
если$variable
определен. если переменная не определена, она вернетсяfalse
.Если вы хотите проверить
false
и0
т. Д., Вы можете использоватьempty()
-$isTouch = empty($variable);
empty()
работает на -источник
isset()
всегда возвращает bool.true
илиfalse
. Так что в кастинге нет нужды.empty()
который вернет false, если это пустая строка.isset()
вернет true, если это пустая строка, также empty выполняет внутреннюю проверку isset.$isTouch = (bool) $variable;
который будет делать то же самое,isset()
и, возможно, немного лучше, поскольку он будет работать какempty()
.Другой способ просто:
if($test){ echo "Yes 1"; } if(!is_null($test)){ echo "Yes 2"; } $test = "hello"; if($test){ echo "Yes 3"; }
Вернется :
"Yes 3"
Лучше всего использовать isset (), иначе вы можете получить ошибку типа «undefined $ test».
Сделать это можно так:
if( isset($test) && ($test!==null) )
У вас не будет ошибок, потому что первое условие не принято.
источник
$test!==null
без скобок, то что будет? Будет ли это ошибка?Чтобы проверить, установлена ли переменная, вам необходимо использовать функцию isset.
$lorem = 'potato'; if(isset($lorem)){ echo 'isset true' . '<br />'; }else{ echo 'isset false' . '<br />'; } if(isset($ipsum)){ echo 'isset true' . '<br />'; }else{ echo 'isset false' . '<br />'; }
этот код напечатает:
isset true isset false
подробнее читайте на https://php.net/manual/en/function.isset.php
источник
Ты можешь использовать -
Тернарный оператор, чтобы проверить, установлено ли значение POST / GET или нет, что-то вроде этого
$value1 = $_POST['value1'] = isset($_POST['value1']) ? $_POST['value1'] : ''; $value2 = $_POST['value2'] = isset($_POST['value2']) ? $_POST['value2'] : ''; $value3 = $_POST['value3'] = isset($_POST['value3']) ? $_POST['value3'] : ''; $value4 = $_POST['value4'] = isset($_POST['value4']) ? $_POST['value4'] : '';
источник
JavaScript на «строго не равно» оператор (
!==
) по сравнению сundefined
вовсе не приводит кfalse
поnull
значениям.var createTouch = null; isTouch = createTouch !== undefined // true
Чтобы добиться аналогичного поведения в PHP, вы можете проверить, существует ли имя переменной в ключах результата
get_defined_vars()
.// just to simplify output format const BR = '<br>' . PHP_EOL; // set a global variable to test independence in local scope $test = 1; // test in local scope (what is working in global scope as well) function test() { // is global variable found? echo '$test ' . ( array_key_exists('test', get_defined_vars()) ? 'exists.' : 'does not exist.' ) . BR; // $test does not exist. // is local variable found? $test = null; echo '$test ' . ( array_key_exists('test', get_defined_vars()) ? 'exists.' : 'does not exist.' ) . BR; // $test exists. // try same non-null variable value as globally defined as well $test = 1; echo '$test ' . ( array_key_exists('test', get_defined_vars()) ? 'exists.' : 'does not exist.' ) . BR; // $test exists. // repeat test after variable is unset unset($test); echo '$test ' . ( array_key_exists('test', get_defined_vars()) ? 'exists.' : 'does not exist.') . BR; // $test does not exist. } test();
В большинстве случаев
isset($variable)
это уместно. Это эквивалентноarray_key_exists('variable', get_defined_vars()) && null !== $variable
. Если вы просто используетеnull !== $variable
без предварительной проверки существования, вы испортите свои журналы предупреждениями, потому что это попытка прочитать значение неопределенной переменной.Однако вы можете применить неопределенную переменную к ссылке без предупреждения:
// write our own isset() function function my_isset(&$var) { // here $var is defined // and initialized to null if the given argument was not defined return null === $var; } // passing an undefined variable by reference does not log any warning $is_set = my_isset($undefined_variable); // $is_set is false
источник
if(isset($variable)){ $isTouch = $variable; }
ИЛИ
if(!isset($variable)){ $isTouch = "";// }
источник