为什么在类外用对象可以访问静态方法,但不能访问静态变量
class Test
{
public static $num = 100;
public static function abc()
{
echo '静态';
}
}
$t = new Test();
$t->abc();
// 提示notice
echo $t->num;
感谢您的帮助
为什么在类外用对象可以访问静态方法,但不能访问静态变量
class Test
{
public static $num = 100;
public static function abc()
{
echo '静态';
}
}
$t = new Test();
$t->abc();
// 提示notice
echo $t->num;
感谢您的帮助
类的静态成员属性和静态成员方法要通过 类名::[属性名/方法名]
访问 。类的实例化对象可以通过 self::[属性名/方法名]
。
从我的理解来看,静态成员是 类的,不是对象的,所以没办法通过对象访问。实在有需要,可以在对象中添加指定的方法来修改。
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答1.4k 阅读✓ 已解决
796 阅读
646 阅读
echo $t::$num;