搜尋

首頁  >  問答  >  主體

isset() 和empty() - 使用什麼

你能幫我改進我的程式設計風格嗎? :) 在某些任務中我需要檢查 - 變數是否為空或包含某些內容。為了解決這個任務,我通常會執行以下操作。

檢查 - 該變數是否已設定?如果已設定 - 我檢查 - 它是否為空?

<?php
    $var = '23';
    if (isset($var)&&!empty($var)){
        echo 'not empty';
    }else{
        echo 'is not set or empty';
    }
?>

我有一個問題 - 我應該在empty()之前使用isset() -有必要嗎? TIA!

P粉165522886P粉165522886444 天前571

全部回覆(2)我來回復

  • P粉514458863

    P粉5144588632023-10-17 19:55:24

    在您的特定情況下:if ($var)

    如果您不知道變數是否存在,則需要使用isset。由於您在第一行聲明了它,因此您知道它存在,因此您不需要,不,不應該使用isset

    對於 empty 也是如此,只是 empty 也結合了對值的真實性的檢查。 empty 相當於!isset($var) || !$var!empty 相當於isset($var) && $varisset($var) && $var ==正確

    如果您只想測試一個應該存在的變數的真實性if ($var) 就完全足夠了。 .

    回覆
    0
  • P粉458913655

    P粉4589136552023-10-17 12:42:26

    這取決於您要查找的內容,如果您只是想查看它是否為空,請使用empty 因為它也會檢查它是否已設置,如果您想知道某些內容是否已設定設定或不使用isset

    Empty 檢查變數是否已設置,如果設定了,則檢查變數是否為 null、""、0 等

    Isset 只是檢查它是否已設置,它可以是任何不為空的內容

    對於,以下內容被視為空:

    • ""(空字串)
    • 0(0 作為整數)
    • 0.0(0 作為浮點數)
    • “0”(0 作為字串)
    • 錯誤
    • array()(空數組)
    • var $var; (宣告了一個變量,但在類別中沒有值)

    來自 http://php.net/manual/en/function.empty.php

    #

    如同評論中所提到的,對於empty(),缺乏警告也很重要

    PHP 手冊

    關於問題

    PHP 手冊


    你的程式碼就可以了:


    例如:

    $var = "";
    
    if(empty($var)) // true because "" is considered empty
     {...}
    if(isset($var)) //true because var is set 
     {...}
    
    if(empty($otherVar)) //true because $otherVar is null
     {...}
    if(isset($otherVar)) //false because $otherVar is not set 
     {...}

    回覆
    0
  • 取消回覆