急求三元运算符的意思
function meth()
{
$a=$_post[user];
return isset($a) ? (is_array($a) ? $a : trim($a) : null;
}
麻烦解释下php里面这个三元运算符什么意思啊?
------解决方案--------------------
function meth()
{
$a=$_post[user];
$rtval = '';
if(isset($a)){
if(is_array($a)){
$rtval = $a;
}else{
$rtval = trim();
}
}else{
$rtval = null;
}
return $rtval;
}
------解决方案--------------------
if(isset($a)){
if ((is_array($a)){
return $a;
}else{
return trim($a);
}
}else{
return null;
}
------解决方案--------------------
引用:function meth()
{
$a=$_post[user];
return isset($a) ? (is_array($a) ? $a : trim($a) : null;
}
麻烦解释下php里面这个三元运算符什么意思啊?
少了一个反括号吧?
举个例子 求两者大的那个
$a=0; $b =1;
echo $a > $b(条件) ? $a(如果条件成立):$b(如果不成立);
输出 1;
------解决方案--------------------
//装b写法
function meth()
{
$a=$_post[user];
return isset($a) ? (is_array($a) ? $a : trim($a) : null;
}
//还原一下
function meth()
{
$a = $_post[user];
if( isset($a)){
if( is_array($a)) {
return $a;
}else {
return trim(a);
}
}else {
return null;
}
}
简易简单的东西,简单点写,没必要折腾成那样。
第二个建议,函数里接收$_post 参数,是很不人道的,函数应该做得更单纯些,就是对参数进行处理,保证参数全从入口得到。
第三个建议,就算要这样写,如果 不存在$_post['user']; 函数也挂了。
建议原函数更改为
function meth()
{
return isset($_post[user]) ? (is_array($_post[user]) ? $_post[user] : trim($_post[user]) : null;
}
return
------解决方案--------------------
三元就是3个元素,
条件?结果1:结果2
两个问号是 结果1里面放了另外一个3元运算