使用 empty() 调整具有多个变量的输出
Using empty() to adjust output with multiple variables
我有两个主要变量,它们由字符串和其他变量组成。我希望这两个主要变量只有 echo'ed
如果它们组成的所有变量都有数据。
两个主要变量是$introduction
和colortxt
。
$introduction
由 $finalvehicle3
、$bodystyle
、$mileage
和 $hi
组成。
$colortxt
由 $model
、$exterior
和 $interiorspec
组成。
如果任何二级变量为空,我不想显示一级变量。
下面是我创建的代码,但似乎无法正常工作。我一直在使用 empty()
.
我的PHP:
<?php
$finalvehicle3 = "Toyota Camry";
$bodystyle = "sedan";
$mileage = "30,000";
$hi = null;
$model = "Camry";
$exterior = "red";
$interiorspec = "black cloth";
if (empty([$finalvehicle3, $bodystyle, $mileage, $hi]) == true){
$introduction = "";
}
else {
$introduction = "I am pleased to present this ".$finalvehicle3." ".$bodystyle." with ".$mileage." miles.";
}
if (empty([$model, $exterior, $interiorspec]) == true){
$colortxt = "";
}
else {
$colortxt = "This ".$model." is finished in ".$exterior." with a ".$interiorspec. " interior.";
}
echo "<textarea name='' id='' style='width: 565px;' rows='8' cols='60'>";
echo $introduction." ".$colortxt;
echo "</textarea>";
echo "<br><br>";
?>
在这种情况下 $introduction
不应显示为 $hi = null
检查两个变量是否不为空回显它们:
if (!empty($introduction) && !empty($colortxt)) {
echo $introduction." ".$colortxt;
}
另一方面,虽然编码风格有个人偏好,但设置这些变量的位置似乎很尴尬,因为您根据条件将它们设置为空,但逻辑上(我的逻辑least) 是将它们预设为空,如果数据存在则添加数据.
此处代替您的代码:
if (empty([$finalvehicle3, $bodystyle, $mileage, $hi]) == true){
$introduction = "";
}
else {
$introduction = "I am pleased to present this ".$finalvehicle3." ".$bodystyle." with ".$mileage." miles.";
}
if (empty([$model, $exterior, $interiorspec]) == true){
$colortxt = "";
}
else {
$colortxt = "This ".$model." is finished in ".$exterior." with a ".$interiorspec. " interior.";
}
这样做:
$introduction = "";
$colortxt = "";
if (!empty([$finalvehicle3, $bodystyle, $mileage, $hi]) == true) {
$introduction = "I am pleased to present this ".$finalvehicle3." ".$bodystyle." with ".$mileage." miles.";
}
if (!empty([$model, $exterior, $interiorspec]) == true) {
$colortxt = "This ".$model." is finished in ".$exterior." with a ".$interiorspec. " interior.";
}
对我来说看起来更干净:)
我也不会创建一个新数组来检查多个变量,而是会这样做:
if (
!empty($finalvehicle3)
&& !empty($bodystyle)
&& !empty($mileage
&& !empty($hi)
) {
我无法让 empty([$finalvehicle3, $bodystyle, $mileage, $hi])
工作。
我能够使用:
if (empty($hi)
|| empty($finalvehicle3)
|| empty($bodystyle)
|| empty($mileage)){
$introduction = "";
}
else {
$introduction = "I am pleased to present this ".$finalvehicle3." ".$bodystyle."
with ".$mileage." miles.";
}
这样不行吗?
澄清(无意从其他答案中删除);只有 isset()
可以接受多个逗号分隔值,而不是 empty()
.
手册状态:
在 empty()
上:
bool empty ( mixed $var )
在 isset()
bool isset ( mixed $var [, mixed $... ] )
因此需要分开检查每个值是否为空
即:
if(empty($var1)) && empty($var2)){}
或使用 ||
(OR) 逻辑运算符,具体取决于您要检查的内容;如果有任何一个或全部为空。
注:
您在这里使用的内容:
if (empty([$finalvehicle3, $bodystyle, $mileage, $hi]) == true)
理论上 会是 "false positive".
如果有的话,您需要在单独的语句中使用 == true
。
即:
if(empty($var1)) && empty($var2) && $x_var == true){}
但是,前 2 个需要 !
否定运算符,因为您要检查某事是否为真。
即:
if(!empty($var1)) && !empty($var2) && $x_var == true){}
我有两个主要变量,它们由字符串和其他变量组成。我希望这两个主要变量只有 echo'ed
如果它们组成的所有变量都有数据。
两个主要变量是$introduction
和colortxt
。
$introduction
由 $finalvehicle3
、$bodystyle
、$mileage
和 $hi
组成。
$colortxt
由 $model
、$exterior
和 $interiorspec
组成。
如果任何二级变量为空,我不想显示一级变量。
下面是我创建的代码,但似乎无法正常工作。我一直在使用 empty()
.
我的PHP:
<?php
$finalvehicle3 = "Toyota Camry";
$bodystyle = "sedan";
$mileage = "30,000";
$hi = null;
$model = "Camry";
$exterior = "red";
$interiorspec = "black cloth";
if (empty([$finalvehicle3, $bodystyle, $mileage, $hi]) == true){
$introduction = "";
}
else {
$introduction = "I am pleased to present this ".$finalvehicle3." ".$bodystyle." with ".$mileage." miles.";
}
if (empty([$model, $exterior, $interiorspec]) == true){
$colortxt = "";
}
else {
$colortxt = "This ".$model." is finished in ".$exterior." with a ".$interiorspec. " interior.";
}
echo "<textarea name='' id='' style='width: 565px;' rows='8' cols='60'>";
echo $introduction." ".$colortxt;
echo "</textarea>";
echo "<br><br>";
?>
在这种情况下 $introduction
不应显示为 $hi = null
检查两个变量是否不为空回显它们:
if (!empty($introduction) && !empty($colortxt)) {
echo $introduction." ".$colortxt;
}
另一方面,虽然编码风格有个人偏好,但设置这些变量的位置似乎很尴尬,因为您根据条件将它们设置为空,但逻辑上(我的逻辑least) 是将它们预设为空,如果数据存在则添加数据.
此处代替您的代码:
if (empty([$finalvehicle3, $bodystyle, $mileage, $hi]) == true){
$introduction = "";
}
else {
$introduction = "I am pleased to present this ".$finalvehicle3." ".$bodystyle." with ".$mileage." miles.";
}
if (empty([$model, $exterior, $interiorspec]) == true){
$colortxt = "";
}
else {
$colortxt = "This ".$model." is finished in ".$exterior." with a ".$interiorspec. " interior.";
}
这样做:
$introduction = "";
$colortxt = "";
if (!empty([$finalvehicle3, $bodystyle, $mileage, $hi]) == true) {
$introduction = "I am pleased to present this ".$finalvehicle3." ".$bodystyle." with ".$mileage." miles.";
}
if (!empty([$model, $exterior, $interiorspec]) == true) {
$colortxt = "This ".$model." is finished in ".$exterior." with a ".$interiorspec. " interior.";
}
对我来说看起来更干净:)
我也不会创建一个新数组来检查多个变量,而是会这样做:
if (
!empty($finalvehicle3)
&& !empty($bodystyle)
&& !empty($mileage
&& !empty($hi)
) {
我无法让 empty([$finalvehicle3, $bodystyle, $mileage, $hi])
工作。
我能够使用:
if (empty($hi)
|| empty($finalvehicle3)
|| empty($bodystyle)
|| empty($mileage)){
$introduction = "";
}
else {
$introduction = "I am pleased to present this ".$finalvehicle3." ".$bodystyle."
with ".$mileage." miles.";
}
这样不行吗?
澄清(无意从其他答案中删除);只有 isset()
可以接受多个逗号分隔值,而不是 empty()
.
手册状态:
在 empty()
上:
bool empty ( mixed $var )
在 isset()
bool isset ( mixed $var [, mixed $... ] )
因此需要分开检查每个值是否为空
即:
if(empty($var1)) && empty($var2)){}
或使用 ||
(OR) 逻辑运算符,具体取决于您要检查的内容;如果有任何一个或全部为空。
注:
您在这里使用的内容:
if (empty([$finalvehicle3, $bodystyle, $mileage, $hi]) == true)
理论上 会是 "false positive".
如果有的话,您需要在单独的语句中使用 == true
。
即:
if(empty($var1)) && empty($var2) && $x_var == true){}
但是,前 2 个需要 !
否定运算符,因为您要检查某事是否为真。
即:
if(!empty($var1)) && !empty($var2) && $x_var == true){}