พิจารณาสถิติ jquery นี้
isTouch = document.createTouch !== undefined
ฉันต้องการทราบว่าเรามีคำสั่งที่คล้ายกันใน PHP หรือไม่ถูก isset () แต่ตรวจสอบค่าที่ไม่ได้กำหนดอย่างแท้จริงเช่น:
$isTouch != ""
PHP มีบางอย่างที่คล้ายกับข้างต้นหรือไม่?
พิจารณาสถิติ jquery นี้
isTouch = document.createTouch !== undefined
ฉันต้องการทราบว่าเรามีคำสั่งที่คล้ายกันใน PHP หรือไม่ถูก isset () แต่ตรวจสอบค่าที่ไม่ได้กำหนดอย่างแท้จริงเช่น:
$isTouch != ""
PHP มีบางอย่างที่คล้ายกับข้างต้นหรือไม่?
คำตอบ:
คุณสามารถใช้ได้ -
$isTouch = isset($variable);
มันจะกลับมาtrue
หาก$variable
มีการกำหนด false
ถ้าตัวแปรไม่ได้กำหนดไว้ก็จะกลับ
หมายเหตุ: ส่งกลับค่า TRUE หาก var มีอยู่และมีค่าอื่นที่ไม่ใช่ NULL, FALSE ไม่เช่นนั้น
หากคุณต้องการที่จะตรวจสอบfalse
, 0
ฯลฯ จากนั้นคุณสามารถใช้empty()
-
$isTouch = empty($variable);
empty()
ใช้ได้กับ -
isset()
ส่งคืนบูลเสมอ
true
หรือfalse
. ดังนั้นไม่จำเป็นต้องหล่อขนาดนั้น
empty()
ซึ่งจะส่งคืนเท็จหากเป็นสตริงว่าง isset()
จะคืนค่าจริงหากเป็นสตริงว่างเปล่าก็จะทำการตรวจสอบ 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
คุณสามารถใช้ได้ -
Ternary oprator เพื่อตรวจสอบค่าสภาพพื้นที่ที่กำหนดโดย 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
คุณสามารถใช้ฟังก์ชันPHP isset ()เพื่อทดสอบว่ามีการตั้งค่าตัวแปรหรือไม่ isset ()จะกลับมาเป็น FALSE ถ้าการทดสอบตัวแปรที่ได้รับการตั้งค่าให้เป็นโมฆะ ตัวอย่าง:
<?php
$var1 = '';
if(isset($var1)){
echo 'This line is printed, because the $var1 is set.';
}
?>
โค้ดนี้จะแสดงผล "This line is printed, because the $ var1 is set."
อ่านเพิ่มเติมในhttps://stackhowto.com/how-to-check-if-a-variable-is-undefined-in-php/
if(isset($variable)){
$isTouch = $variable;
}
หรือ
if(!isset($variable)){
$isTouch = "";//
}