Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查变量是否已设置,不为null且不为空_Php_Isset - Fatal编程技术网

Php 检查变量是否已设置,不为null且不为空

Php 检查变量是否已设置,不为null且不为空,php,isset,Php,Isset,我使用isset检查变量是否已设置且不为空,然后对其进行处理(例如,通过电子邮件或谷歌电子表格发送)。有时我会收到空结果,比如如果变量为null或空,甚至不是空的空间。为什么会这样?我错过什么了吗 if(isset($_POST["name"]) && isset($_POST["phone"])){ $name = $_POST["name"]; $phone = $_POST["phone"];

我使用
isset
检查变量是否已设置且不为空,然后对其进行处理(例如,通过电子邮件或谷歌电子表格发送)。有时我会收到空结果,比如如果变量为null或空,甚至不是空的空间。为什么会这样?我错过什么了吗

    if(isset($_POST["name"]) && isset($_POST["phone"])){
            $name  = $_POST["name"];
            $phone  = $_POST["phone"];
            $message="Nom: $name \nPhone: $phone \n";

            require 'PHPMailer/PHPMailerAutoload.php';
            $mail = new PHPMailer;
            $mail->setFrom('from@mail.com', 'Name From');
            $mail->addAddress('to@mail.com', 'Name To');
            $mail->Subject  = 'Subject';
            $mail->Body     = $message;
      }
!空($\u POST[“name”])
检查变量是否有值。如果名称不为空,则继续执行其他代码

if(isset($_POST["name"]) && !empty($_POST["name"]) && isset($_POST["phone"]) !empty($_POST["phone"])){
        $name  = $_POST["name"];
        $phone  = $_POST["phone"];
        $message="Nom: $name \nPhone: $phone \n";

        require 'PHPMailer/PHPMailerAutoload.php';
        $mail = new PHPMailer;
        $mail->setFrom('from@mail.com', 'Name From');
        $mail->addAddress('to@mail.com', 'Name To');
        $mail->Subject  = 'Subject';
        $mail->Body     = $message;
  }
另一种选择

if($_POST["name"] != "") 
如果变量具有空字符串,则if中的代码不会继续

附加参考-

!空($\u POST[“name”])
检查变量是否有值。如果名称不为空,则继续执行其他代码

if(isset($_POST["name"]) && !empty($_POST["name"]) && isset($_POST["phone"]) !empty($_POST["phone"])){
        $name  = $_POST["name"];
        $phone  = $_POST["phone"];
        $message="Nom: $name \nPhone: $phone \n";

        require 'PHPMailer/PHPMailerAutoload.php';
        $mail = new PHPMailer;
        $mail->setFrom('from@mail.com', 'Name From');
        $mail->addAddress('to@mail.com', 'Name To');
        $mail->Subject  = 'Subject';
        $mail->Body     = $message;
  }
另一种选择

if($_POST["name"] != "") 
如果变量具有空字符串,则if中的代码不会继续

附加引用-

isset()如果var存在且值不是NULL,则返回TRUE,否则返回FALSE

例如:$var=”

isset($var)将返回true

我建议使用!empty()而不是isset()。

isset()如果var存在且值不是NULL,则返回TRUE,否则返回FALSE

例如:$var=”

isset($var)将返回true


我建议使用!empty()而不是isset()。

与前面的答案中表达的两种观点相呼应,我会注意到“永远有用的PHP语言提供了各种各样的函数,在各种情况下‘尽力帮助’。”但是,那些“各种情况”可能会完全不同!因此,“一种尺寸”并不“适合所有尺寸”

例如,如果您处理的是HTTP GET/POST数据流,那么您的首要任务应该是确定web客户端是否在其响应中提供了特定的变量。如果你确定它是这样的,那么你以后应该把它当作它是什么:“一个字符串”。继续,然后(IMHO…)转到Jees Denny的“其他选项”,测试该字符串是否为空

另一方面,“NULL”测试实际上应该只应用于数据库查询的结果。在本例中,您知道SQL server提供了一个值,因为您知道服务器将为您请求的每个列提供一些值。在本例中,首先要知道该值是否为空。(请注意,哪个值“与‘空字符串’不相同。”)


因此,尽管PHP语言提供了许多“显然非常相似的函数,您当然可以使用所有这些函数”,但您应该强调只使用与您所处理的实际情况最密切相关的函数。

与前面的回答中表达的两种观点相呼应,我会注意到“非常有用的PHP语言提供了各种各样的函数,在不同的情况下‘尽力提供帮助’”。但是,这些“不同的情况”可能会有很大的不同!因此,“一种尺寸”并不“适合所有尺寸”

例如,如果您处理的是HTTP GET/POST数据流,那么您的首要任务应该是确定web客户端是否在其响应中提供了特定的变量。如果你确定它是这样的,那么你以后应该把它当作它是什么:“一个字符串”。继续,然后(IMHO…)转到Jees Denny的“其他选项”,测试该字符串是否为空

另一方面,“NULL”测试实际上应该只应用于数据库查询的结果。在本例中,您知道SQL server提供了一个值,因为您知道服务器将为您请求的每个列提供一些值。在本例中,首先要知道该值是否为空。(请注意,哪个值“与‘空字符串’不相同。”)


因此,即使PHP语言提供了许多“显然非常相似的函数,您当然可以使用所有这些函数”,您也应该强调只使用与您所处理的实际情况最密切相关的函数。

如果变量为空,但set
isset
将返回true。用
isset($\u POST[“name”])和空($\u POST[“name”])
检查它然后
isset($a)将输出为
isset
不是区分空字符串的好函数,但set
isset
将返回真。用
isset($\u POST[“name”])和空($\u POST[“name”])
检查它然后
isset($a)
将输出为
true
isset
不是区分空字符串的好函数