【发布时间】:2014-07-09 04:07:42
【问题描述】:
$time ?: 3600 是否等同于 isset($time) ? $time : 3600?
谢谢大家。
【问题讨论】:
-
试试
$time = 0;。
标签: php operator-keyword ternary
$time ?: 3600 是否等同于 isset($time) ? $time : 3600?
谢谢大家。
【问题讨论】:
$time = 0;。
标签: php operator-keyword ternary
没有。在某些情况下,它们的计算结果相同,但并不等价。
<?php
print $time ?: 3600;
print "\n";
print isset($time) ? $time : 3600;
print "\n\n";
$time = 0;
print $time ?: 3600;
print "\n";
print isset($time) ? $time : 3600;
print "\n\n";
$time = 30;
print $time ?: 3600;
print "\n";
print isset($time) ? $time : 3600;
print "\n\n";
?>
输出:
PHP Notice: Undefined variable: time in /home/hq6/PHP/Test2.php on line 2
3600
3600
3600
0
30
30
【讨论】:
print $time ?: 3600;。它输出3600。 ~~
$time 的情况和未定义$time 的情况。您还必须测试$time = 0的情况。
not defined 案例。有点奇怪。
不,不完全是。 $time ?: 3600 类似于 $time ? $time : 3600。
如果$time 是0,则不同。 isset($time) 会返回 TRUE,所以,你会得到 $time (0),而如果 $time 在第一个是 0,你会得到 3600。
【讨论】: