首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >php中的神奇__get

php中的神奇__get
EN

Stack Overflow用户
提问于 2018-05-20 18:40:32
回答 1查看 25关注 0票数 1

我需要以下方面的帮助:

我理解代码,但不理解最后一行的输出。

为什么输出是b,A,B而不是A,b,B

代码语言:javascript
运行
复制
class magic{

    public $a = "A";    
    protected $b = array("a" => "A", "b" => "B","c" => "C");
    protected $c = array(1,2,3);


    public function __get($name){
        echo "$name,";
        return $this -> b[$name];
    }

}

$m = new magic();

echo $m->a;
// A
// because $a is public

echo $m->b;
// b,B
// because $b is protected

echo $m->a.",".$m->b; 
// b,A,B                                                        
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-20 18:50:01

问题是,您在__get()方法中回显名称,这将立即输出值,但返回变量的值以供稍后显示。

如果你把常规改为..。

代码语言:javascript
运行
复制
public function __get($name){
    //echo "$name,";
    return "$name,".$this -> b[$name];
}

您的输出变成- A,b,B

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50438215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档