首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么PHP私有变量在扩展类中被公开

为什么PHP私有变量在扩展类中被公开
EN

Stack Overflow用户
提问于 2016-06-03 20:43:31
回答 2查看 531关注 0票数 4

我创建了以下类PHPver5.5

代码语言:javascript
运行
复制
abstract class Model
{
    var $id;

    private $cName;
    private $tName;

    public function __construct($id = 0)
    {
        $this->cName = 'Im cName';
        $this->tName = 'Im tName';            
    }
}

然后是一个扩展类

代码语言:javascript
运行
复制
class claseExtend extends Model
{
    var $id;

    public function hola()
    {
        $this->id = 1;
        return (array) $this;
    }
}

如果我执行这个:

代码语言:javascript
运行
复制
$obj = new claseExtend() ;
$retHola =$obj->hola();
print_r($retHola);

我本来希望得到:=> 1(id

但是输出是:数组( \u0000Model\u0000cName:=> 'Im‘,\u0000Model\u0000tName => 'Im tName')

我做错了什么,或者如果属性是私有的,为什么会发生这种情况?

为什么数组强制转换包括私有属性?

谢谢你的帮助。

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

https://stackoverflow.com/questions/37623079

复制
相关文章

相似问题

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