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
不是区分空字符串的好函数,但setisset
将返回真。用isset($\u POST[“name”])和空($\u POST[“name”])
检查它代码>然后isset($a)
将输出为true
isset
不是区分空字符串的好函数