我创建了以下类\nPHP 版本 5.5
\n\nabstract class Model\n{\n var $id;\n\n private $cName;\n private $tName;\n\n public function __construct($id = 0)\n {\n $this->cName = 'Im cName';\n $this->tName = 'Im tName'; \n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n然后是扩展课
\n\nclass claseExtend extends Model\n{\n var $id;\n\n public function hola()\n {\n $this->id = 1;\n return (array) $this;\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n如果我执行这个:
\n\n$obj = new claseExtend() ;\n$retHola =$obj->hola();\nprint_r($retHola);\nRun Code Online (Sandbox Code Playgroud)\n\n我期望得到: array(id => 1)
\n\n但输出是: array( \\u0000Model\\u0000cName: => 'Im cName',\n \\u0000Model\\u0000tName => 'Im tName')
\n\n我做错了什么,或者如果属性是私有的,为什么会发生这种情况?
\n\n\xc2\xbf为什么数组转换包含私有属性?
\n\n感谢您的帮助。 …