Considere esta declaração jquery
isTouch = document.createTouch !== undefined
Gostaria de saber se temos uma instrução semelhante em PHP, não sendo isset (), mas literalmente verificando um valor indefinido, algo como:
$isTouch != ""
Existe algo semelhante ao acima em PHP?
Respostas:
Você pode usar -
$isTouch = isset($variable);
Ele retornará
true
se o$variable
for definido. se a variável não for definida, ela retornaráfalse
.Se você deseja verificar
false
,0
etc. Você pode usarempty()
-$isTouch = empty($variable);
empty()
trabalha para -fonte
isset()
sempre retorna bool.true
oufalse
. Portanto, não há necessidade desse elenco.empty()
que retornaria false se for uma string vazia.isset()
retornará verdadeiro se for uma string vazia, também vazio faz uma verificação de isset internamente.$isTouch = (bool) $variable;
que fará o mesmo queisset()
e talvez seja um pouco melhor, pois funcionará assimempty()
.Outra maneira é simplesmente:
if($test){ echo "Yes 1"; } if(!is_null($test)){ echo "Yes 2"; } $test = "hello"; if($test){ echo "Yes 3"; }
Retornará :
"Yes 3"
A melhor maneira é usar isset (), caso contrário, você pode ter um erro como "undefined $ test".
Você pode fazer assim:
if( isset($test) && ($test!==null) )
Você não terá nenhum erro porque a primeira condição não foi aceita.
fonte
$test!==null
sem colchetes, o que acontecerá? Irá dar erro?Para verificar se a variável está definida, você precisa usar a função 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 />'; }
este código irá imprimir:
isset true isset false
leia mais em https://php.net/manual/en/function.isset.php
fonte
Você pode usar -
Operador ternário para verificar o valor de tempo definido por POST / GET ou não algo assim
$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'] : '';
fonte
JavaScript do 'estrito não igual' operador (
!==
) em comparação com osundefined
que não resultar emfalse
emnull
valores.var createTouch = null; isTouch = createTouch !== undefined // true
Para obter um comportamento equivalente em PHP, você pode verificar se o nome da variável existe nas chaves do resultado de
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();
Na maioria dos casos,
isset($variable)
é apropriado. Isso é aquivalente paraarray_key_exists('variable', get_defined_vars()) && null !== $variable
. Se você apenas usarnull !== $variable
sem pré-verificar a existência, irá bagunçar seus logs com avisos porque isso é uma tentativa de ler o valor de uma variável indefinida.No entanto, você pode aplicar uma variável indefinida a uma referência sem qualquer aviso:
// 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
fonte
if(isset($variable)){ $isTouch = $variable; }
OU
if(!isset($variable)){ $isTouch = "";// }
fonte