Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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 为什么这需要一个默认值?_Php_If Statement - Fatal编程技术网

Php 为什么这需要一个默认值?

Php 为什么这需要一个默认值?,php,if-statement,Php,If Statement,如果: Session::has('tk') ? Session::get('tk') : 1; 我想跳过:1,但由于某种原因,它失败了,而tk总是在另一个if中设置?简单地说,if需要定义两个: <?php $var = ($someThing) ? true: false; 三元运算符,称为boolean?真值:假值 始终需要一个布尔值(比较),如果布尔值为真,则返回一个值,如果布尔值为假,则返回一个值 我会像你一样使用它 $tk = Session::has('tk')

如果:

Session::has('tk') ? Session::get('tk') : 1;

我想跳过:1,但由于某种原因,它失败了,而tk总是在另一个if中设置?

简单地说,if需要定义两个:

<?php
    $var = ($someThing) ? true: false;

三元运算符,称为
boolean?真值:假值

始终需要一个布尔值(比较),如果布尔值为真,则返回一个值,如果布尔值为假,则返回一个值

我会像你一样使用它

$tk = Session::has('tk') ? Session::get('tk') : null;
$check = Session::has('tk') ? Session::get('tk') : 1;

使$tk包含会话值,如果没有会话值,则为null。

如果您已经知道
tk
有一个值,则不需要使用
has()
函数来检查它

仅使用:

Session::get('tk');
我会像你一样使用它

$tk = Session::has('tk') ? Session::get('tk') : null;
$check = Session::has('tk') ? Session::get('tk') : 1;

“跳过1”是什么意思?如果使用短版本,则需要else@Dinistro是否正确-三元运算符具有严格的语法,您可以使用
$v=S::has('k')?S::get('k'):$v:)注意,这个特殊的语句应该写成
$var=$他写了一句话“而tk总是被另一个if设置?”所以我理解,他已经知道,在这一点上,三元结构中的小错误,冒号,而不是问号