Php 奇异三元算子

Php 奇异三元算子,php,Php,这个语法正确吗?如果不设置$var、空字符串或null,将显示什么?可以用这个吗?这个: <?php echo (isset($var)) ?: $var; ?> 执行与此相同的操作: <?php echo (isset($var)) ?: $var; ?> 因此,如果变量为空/null/etc,则尝试显示该变量 如果功能: <?php if (isset($var)) { // do nothing } else { echo $var;

这个语法正确吗?如果不设置$var、空字符串或null,将显示什么?可以用这个吗?

这个:

<?php echo (isset($var)) ?: $var; ?>

执行与此相同的操作:

<?php echo (isset($var)) ?: $var; ?>

因此,如果变量为空/null/etc,则尝试显示该变量

如果功能:

<?php
 if (isset($var)) {
  // do nothing
 } else {
  echo $var;
 }
?>

$k
可以是新变量,
echo
等。
cond
-
isset
$z==$y
,等等

<?php echo (isset($var)) ?: $var; ?>

执行与此相同的操作:

<?php echo (isset($var)) ?: $var; ?>

因此,如果变量为空/null/etc,则尝试显示该变量

如果功能:

<?php
 if (isset($var)) {
  // do nothing
 } else {
  echo $var;
 }
?>

$k
可以是新变量,
echo
等。

cond
-
isset
$z==$y
,等等。

代码没有意义,生成通知或回显1,不能打印未设置的$var

代码没有意义,生成通知或回显1,不能打印未设置的$var

语法正确,用法不正确。在这里说:

<?php $k= (cond ? do_if_true : do_if_false); ?>
这相当于:

$var = something();
echo $var ?: 'false';
还是
$var的简写$变量:“false”

您的示例毫无意义,因为如果设置了
$var
,而设置了
$var
,则输出
isset($var)
true
)的结果


您需要
echo-isset($var)$var:null
if(isset($var))echo$var
,没有快捷方式。

语法正确,用法不正确。在这里说:

<?php $k= (cond ? do_if_true : do_if_false); ?>
这相当于:

$var = something();
echo $var ?: 'false';
还是
$var的简写$变量:“false”

您的示例毫无意义,因为如果设置了
$var
,而设置了
$var
,则输出
isset($var)
true
)的结果

您需要
echo-isset($var)$var:null
if(isset($var))echo$var
,没有快捷方式。

语法很好

如果设置了$var,那么它将输出,如果没有设置,它将抛出一个关于$var未设置的回音的通知

如果您的错误报告设置为E_NONE,那么您将看到一个白色屏幕,如果设置了$var,那么您将看到$var的值,语法很好

如果设置了$var,那么它将输出,如果没有设置,它将抛出一个关于$var未设置的回音的通知


如果您的错误报告设置为E_NONE,则您将看到一个白色屏幕,如果设置了$var,则您将看到$var的值,这将以任何方式回显$var

由于PHP5.3,可以省略 三元运算符。表达式expr1?:如果expr1为expr3,则返回expr1 计算结果为TRUE,否则为expr3

因此,如果设置了$var,它将回显$var(因为它的计算结果为TRUE),如果它没有设置为任何值或计算结果为false,那么您可以手动要求它回显$var

理想情况下,您需要:

$var = something();
if ($var) {
    echo $var;
} else {
    echo 'false';
}
简而言之,这就是

(condition  ?  if_true_then_do_this : if_false_then_do_this)
由于您在这两个位置都指定了$var,因此无论哪种方式,您都将得到$var。你想要这个:

   (condition ? ? false)

这将以任何方式响应$var

由于PHP5.3,可以省略 三元运算符。表达式expr1?:如果expr1为expr3,则返回expr1 计算结果为TRUE,否则为expr3

因此,如果设置了$var,它将回显$var(因为它的计算结果为TRUE),如果它没有设置为任何值或计算结果为false,那么您可以手动要求它回显$var

理想情况下,您需要:

$var = something();
if ($var) {
    echo $var;
} else {
    echo 'false';
}
简而言之,这就是

(condition  ?  if_true_then_do_this : if_false_then_do_this)
由于您在这两个位置都指定了$var,因此无论哪种方式,您都将得到$var。你想要这个:

   (condition ? ? false)

不,此语法不正确。
回显时,所有变量必须设置并正确格式化
否则,意味着开发人员不知道他们的变量来自何处以及它们包含什么——一条通向注入的直路

因此,正确的语法应该是

echo ($var?:"null");


至于ternaries,我不喜欢它们。

不,这个语法不正确。
<?=$var?>
回显时,所有变量必须设置并正确格式化
否则,意味着开发人员不知道他们的变量来自何处以及它们包含什么——一条通向注入的直路

因此,正确的语法应该是

echo ($var?:"null");

至于ternaries,我不喜欢它们。


<?=$var?>
你可以用这个。



你可以用这个。

我认为这没有意义。当设置了
$var
时,它会回显
true
,但当未设置
$var
时,它会回显
$var
。当未设置$var时,是否有显示我想要的内容的快捷方式?空值?另请参阅:有关详细信息。是的,有快捷方式,请参阅我的答案。回显(isset($var)'Yes':'NO');我认为这没有道理。当设置了
$var
时,它会回显
true
,但当未设置
$var
时,它会回显
$var
。当未设置$var时,是否有显示我想要的内容的快捷方式?空值?另请参阅:有关详细信息。是的,有快捷方式,请参阅我的答案。回显(isset($var)'Yes':'NO');如果不设置$var,这不会生成通知吗?不,它将回显null。我刚刚创建了一个测试脚本,其中有一行,它在屏幕上打印空值;或者类似的,它打印出$var的值。那么这意味着if(isset($var))与if($var)完全相同?我一直想知道这样做是否合适:如果不设置$var,这不会生成一个通知吗?不,它会回显null。我刚刚创建了一个测试脚本,其中有一行,它在屏幕上打印空值;或者类似的,它打印出$var的值。那么这意味着if(isset($var))与if($var)完全相同?我一直想知道这样做是否合适:事实并非如此。它在功能上等同于:
echo-isset($var)?isset($var):$var
在技术上与您的示例不同。($var)?:''将解决我的所有问题,尽管到目前为止