Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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 |我是否应该将缩写if语句指定给变量_Php_Boolean_Shorthand - Fatal编程技术网

PHP |我是否应该将缩写if语句指定给变量

PHP |我是否应该将缩写if语句指定给变量,php,boolean,shorthand,Php,Boolean,Shorthand,我用一个简写的if语句来验证一个值是否被赋值给一个变量,我的问题是我应该把这个语句赋值给一个变量,因为不管我赋值与否,它都是有效的 语句未分配给变量|工作 !empty($name) ? $name : $name=""; 分配给变量|的语句也在工作 $is_name = (!empty($name)) ? $name : $name="" ; 这两个语句都有效,但使用哪一个是正确的或更好。这可能更好。你不需要额外的钱!操作和变量赋值 $is_name = empty($name) ?

我用一个简写的if语句来验证一个值是否被赋值给一个变量,我的问题是我应该把这个语句赋值给一个变量,因为不管我赋值与否,它都是有效的

语句未分配给变量|工作

!empty($name) ? $name : $name="";
分配给变量|的语句也在工作

$is_name = (!empty($name)) ? $name : $name="" ;

这两个语句都有效,但使用哪一个是正确的或更好。

这可能更好。你不需要额外的钱!操作和变量赋值

  $is_name = empty($name) ? "" : $name;


在php 5.3+中,您可以使用:

$is_name = $name ?: "";
注意:在您的情况下,这可能不是最好的主意,因为如果未设置$name,它会产生警告。在这里,我仍然推荐正常的方法

$is_name = isset($name) ? $name : "";
但问题是为什么要有一个未初始化的变量

如果您只是假设$name可以是一个空字符串,并且希望在这种情况下为其指定一个默认值,那么?:运算符就是您的合适选择

$is_name = $name ?: "default value";

不要使用
empty()
检查变量是否已设置,请使用
isset()
。否则,这取决于你想做什么。如果您只想设置变量,如果之前没有设置过,那么您的第一条语句就可以了。如果您使用
isset()
,它也会更有意义。$name变量可以是空的,因此我使用了`empty()`我将尝试使用
isset()
,但我仍然应该将整个语句分配给一个变量,并假设我想回显$name的值,我应该再次写入
echo$is\u name
还是
echo$name
empty()
两者都做;检查它是否为空,并设置@KhorneHoly,看起来我们这里有点小问题。那我们就同意不同意吧。@Fred ii-我同意你的看法。感谢你对音乐的选择。@KhorneHoly;一定要喜欢它;-)干杯上帝保佑吉米兼收并蓄的摇滚灵魂。是的,没错,$name可能是一个空名字string@AhmadTahhan然后你想分配一个空字符串,如果字符串是空的?我会解释,我有A页和B页,A页可以通过表格将值发送到B页的表格,所以我想表格A中插入的值显示在表格B中,这就是为什么我要检查它是否有值。同时,B页可以独立访问并在其中填写表格,无需A页。如果使其复杂,我很抱歉。我不知道是否清楚enough@AhmadTahhan因此,您可以直接访问站点B或从站点A访问站点B。您可以从post/get变量(如果已设置)获取页面A中的值?是的,完全正确。。。这就是我想做的,我可以在我的服务器上上传页面,向你展示我想做的事情,如果你愿意的话……一个好的答案总是会有一个解释,说明做了什么,以及为什么这样做,不仅是为了OP,而且是为了未来的访客。
$is_name = $name ?: "default value";