use*_*034 0 php function operators ternary-operator
我想做一些非常简单的事情:
if (getStatus()) {
require_once('a.php');
} else {
require_once('b.php');
}
function getStatus() {
return true; //For the sake of this demo
}
Run Code Online (Sandbox Code Playgroud)
如何使用三元运算符重写?
我假设这样的事情:
getStatus() ? require_once('a.php') : require_once('b.php');
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚语法.我见过的所有例子都用它来做某事.例如x = y ? a : b;,但我不想以这种方式使用它.
我想做什么甚至可能吗?
更复杂:
这也可以用三元形式表达吗?
if (websiteIsLive()) {
setcookie("token", x, 0, '/', $_SERVER['HTTP_HOST'], true);
} else {
setcookie("token", y, 0, '/');
}
Run Code Online (Sandbox Code Playgroud)
与任何其他运算符一样,三元运算符的参数必须是表达式.require_once是PHP语法,它不是函数,因此不能在表达式中使用.所以你应该在参数中使用三元运算符require_once,这是一个表达式.
require_once (getStatus() ? 'a.php' : 'b.php');
Run Code Online (Sandbox Code Playgroud)
为了您的额外要求,您可以用三元运算符做到这一点,但结果并不漂亮,恕我直言难度比原来的理解:
call_user_func_array('setcookie',
websiteIsLive() ?
array("token", x, 0, '/', $_SERVER['HTTP_HOST'], true) :
array("token", y, 0, '/'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |