簡體   English   中英

檢查$ _COOKIE值是否為空

[英]Checking if a $_COOKIE value is empty or not

我為變量分配了一個cookie:

$user_cookie = $_COOKIE["user"];

如何檢查$user_cookie收到了某些值?

我應該使用if (empty($user_cookie))還是別的什么?

這些是空的東西將返回true:

  • “”(空字符串)
  • 0(0為整數)
  • 0.0(浮點數為0)
  • “0”(0為字符串)
  • 空值
  • array()(一個空數組)
  • var $ var; (不在類中的聲明變量)

直接從PHP手冊

所以回答你的問題,是的, empty()將是一個完全可以接受的函數,在這個例子中我更喜歡它而不是isset()

像這樣使用isset()

if (isset($_COOKIE["user"])){
$user_cookie = $_COOKIE["user"];
}

這會告訴您$_COOKIE是否存在名為user的鍵。 值本身可以是""0NULL等。根據上下文,這些值中的一些(例如0 )可能是有效的。

PS:對於第二部分,我使用===運算符來檢查falseNULL0"" ,或者可能是(string) $user_cookie !== ""

如果您的cookie變量是一個數組

if (!isset($_COOKIE['user']) || empty(unserialize($_COOKIE['user']))) {
    // cookie variable is not set or empty
}

如果您的cookie變量不是 數組

if (!isset($_COOKIE['user']) || empty($_COOKIE['user'])) {
    // cookie variable is not set or empty
}

我用這種方法。

isset() ,但請記住,像empty()它不能用於表達式,只能用於變量。

isset($_COOKIE['user']); // ok

isset($user_cookie = $_COOKIE['user']); // not ok

$user_cookie = $_COOKIE['user'];
isset($user_cookie); // ok

isset() 處理cookie時的方法

您可以使用:

if (!empty($_COOKIE["user"])) {
   // code if not empty
}

但有時你想設置是否首先設置了值

if (!isset($_COOKIE["user"])) {
   // code if the value is not set
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM