登录  /  注册

PHP文档中三元运算符注意事项没理解

php中文网
发布: 2016-10-11 14:23:37
原创
940人浏览过

note: 注意三元运算符是个语句,因此其求值不是变量,而是语句的结果。如果想通过引用返回一个变量这点就很重要。在一个通过引用返回的函数中语句 return $var == 42 ? $a : $b; 将不起作用,以后的 php 版本会为此发出一条警告。

return $var == 42 ? $a : $b; 不起作用是什么意思? 是无法返回值还是什么?

<code class="php">function test($var){
  return $var == 42 ? 1 : 2;
}

echo test(40);    //2</code>
登录后复制
登录后复制

这样测试时可以返回的...

回复内容:

note: 注意三元运算符是个语句,因此其求值不是变量,而是语句的结果。如果想通过引用返回一个变量这点就很重要。在一个通过引用返回的函数中语句 return $var == 42 ? $a : $b; 将不起作用,以后的 php 版本会为此发出一条警告。

return $var == 42 ? $a : $b; 不起作用是什么意思? 是无法返回值还是什么?

<code class="php">function test($var){
  return $var == 42 ? 1 : 2;
}

echo test(40);    //2</code>
登录后复制
登录后复制

这样测试时可以返回的...

影响的是"通过引用返回一个变量"的场景

见例子, get2无法达到预期效果

https://3v4l.org/2Q9ai

<code class="php"><?php $data = new stdClass;
$data->a = 13;
$data-&gt;b = 42;

$var = &amp;get1($data, true);
$var = 14;
var_dump($data);

$var2 = &amp;get2($data, false);
$var2 = 43;
var_dump($data);

function &amp;get1($data, $isA) {
    if($isA) {
        return $data-&gt;a;
    } else {
        return $data-&gt;b;
    }
}

function &amp;get2($data, $isA) {
    return $isA ? $data-&gt;a : $data-&gt;b;
}</code>
登录后复制
智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号