PHP文档中三元运算符注意事项没理解
本文介绍了PHP文档中三元运算符注意事项没理解的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
Note: 注意三元运算符是个语句,因此其求值不是变量,而是语句的结果。如果想通过引用返回一个变量这点就很重要。在一个通过引用返回的函数中语句 return $var == 42 ? $a : $b; 将不起作用,以后的 PHP 版本会为此发出一条警告。
return $var == 42 ? $a : $b;
不起作用是什么意思? 是无法返回值还是什么?
function test($var){
return $var == 42 ? 1 : 2;
}
echo test(40); //2
这样测试时可以返回的...
解决方案
影响的是"通过引用返回一个变量"的场景
见例子, get2无法达到预期效果
<?php
$data = new stdClass;
$data->a = 13;
$data->b = 42;
$var = &get1($data, true);
$var = 14;
var_dump($data);
$var2 = &get2($data, false);
$var2 = 43;
var_dump($data);
function &get1($data, $isA) {
if($isA) {
return $data->a;
} else {
return $data->b;
}
}
function &get2($data, $isA) {
return $isA ? $data->a : $data->b;
}
这篇关于PHP文档中三元运算符注意事项没理解的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文