Pertimbangkan pernyataan jquery ini
isTouch = document.createTouch !== undefined
Saya ingin tahu apakah kami memiliki pernyataan serupa di PHP, bukan isset () tetapi secara harfiah memeriksa nilai yang tidak ditentukan, seperti:
$isTouch != ""
Apakah ada yang mirip seperti di atas di PHP?
Jawaban:
Kamu dapat memakai -
$isTouch = isset($variable);
Ini akan kembali
true
jika$variable
sudah ditentukan. jika variabel tidak didefinisikan maka akan kembalifalse
.Jika Anda ingin memeriksa
false
,0
dll. Anda kemudian dapat menggunakanempty()
-$isTouch = empty($variable);
empty()
bekerja untuk -sumber
isset()
selalu mengembalikan bool.true
ataufalse
. Jadi tidak perlu casting itu.empty()
yang akan mengembalikan false jika itu adalah string kosong.isset()
akan mengembalikan nilai true jika itu adalah string kosong, juga kosong melakukan pemeriksaan isset secara internal.$isTouch = (bool) $variable;
yang akan melakukan hal yang samaisset()
dan mungkin sedikit lebih baik karena akan berfungsi seperti iniempty()
.Cara lain cukup:
if($test){ echo "Yes 1"; } if(!is_null($test)){ echo "Yes 2"; } $test = "hello"; if($test){ echo "Yes 3"; }
Akan kembali :
"Yes 3"
Cara terbaik adalah dengan menggunakan isset (), jika tidak, Anda bisa mendapatkan error seperti "undefined $ test".
Anda bisa melakukannya seperti ini:
if( isset($test) && ($test!==null) )
Anda tidak akan mengalami kesalahan apa pun karena ketentuan pertama tidak diterima.
sumber
$test!==null
tanpa tanda kurung, lalu apa yang akan terjadi? Akankah itu memberi kesalahan?Untuk memeriksa apakah variabel sudah disetel, Anda perlu menggunakan fungsi 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 />'; }
kode ini akan mencetak:
isset true isset false
baca lebih lanjut di https://php.net/manual/en/function.isset.php
sumber
Kamu dapat memakai -
Operator ternary untuk memeriksa apakah nilai yang ditetapkan oleh POST / GET atau tidak seperti ini
$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'] : '';
sumber
JavaScript ini 'ketat tidak sama' operator (
!==
perbandingan dengan)undefined
tidak tidak menghasilkanfalse
padanull
nilai-nilai.var createTouch = null; isTouch = createTouch !== undefined // true
Untuk mencapai perilaku yang setara di PHP, Anda dapat memeriksa apakah nama variabel ada di kunci hasil
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();
Dalam banyak kasus,
isset($variable)
itu sesuai. Itu setara denganarray_key_exists('variable', get_defined_vars()) && null !== $variable
. Jika Anda hanya menggunakannull !== $variable
tanpa prechecking keberadaan, Anda akan mengacaukan log Anda dengan peringatan karena itu merupakan upaya untuk membaca nilai variabel yang tidak ditentukan.Namun, Anda dapat menerapkan variabel yang tidak ditentukan ke referensi tanpa peringatan apa pun:
// 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
sumber
Anda dapat menggunakan fungsi PHP isset () untuk menguji apakah suatu variabel disetel atau tidak. The isset () akan kembali FALSE jika pengujian variabel yang telah ditetapkan untuk NULL. Contoh:
<?php $var1 = ''; if(isset($var1)){ echo 'This line is printed, because the $var1 is set.'; } ?>
Kode ini akan menampilkan "Baris ini dicetak, karena $ var1 disetel."
baca lebih lanjut di https://stackhowto.com/how-to-check-if-a-variable-is-undefined-in-php/
sumber
if(isset($variable)){ $isTouch = $variable; }
ATAU
if(!isset($variable)){ $isTouch = "";// }
sumber