php类的成员变量没有声明

纸牌屋弗兰克 2013-11-12 10:15:08

class test{
private $name;
private $sex;
function __construct(){
$this->aaa='aaa';
}
}

$test=new test();

$reflect=new ReflectionClass($test);
$pro=$reflect->getDefaultProperties();
print_r($pro);//打印结果:Array ( [name] => [sex] => )

echo $test->aaa;//打印结果:aaa


在这个test类中,声明了两个成员变量$name和$sex,但是在构造函数中,又声明了一个变量$aaa,初始化类,使用反射类打印默认成员属性只有声明的两个成员变量属性,但是打印类的$aaa变量发现还是可以输出结果。

请问类的成员变量不用声明,在函数中声明也是可以的吗,有什么区别?
...全文
398 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2013-11-12
  • 打赏
  • 举报
回复
动态产生的对象属性是全局性的,这与变量无需声明就可访问是一脉相承的 但是由于一些学究的批评,php 开始逐渐放弃这种轻巧的表述方法了 所以,应该尽量不要这样做
纸牌屋弗兰克 2013-11-12
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
动态产生的对象属性是全局性的,这与变量无需声明就可访问是一脉相承的 但是由于一些学究的批评,php 开始逐渐放弃这种轻巧的表述方法了 所以,应该尽量不要这样做
http://tanteng.sinaapp.com/2013/11/php-reflectionclass-object/ 谢谢,已有比较完整的回答了。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧