微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP:这些行中有多少行不起作用,是静态访问还是非静态访问

如何解决PHP:这些行中有多少行不起作用,是静态访问还是非静态访问

|| http://codepad.viper-7.com/ezvlkQ 因此,我试图找出:
...?PHP

$object = new A();

class A 
{
  static public $foo = \'bar\';
  function displayFoo()
  {
    echo $this->$foo;
  }
}

A::displayFoo();
A->displayFoo();
?>
与此相关,您可以找到多少个错误?您能告诉我它们的真实含义吗?我无法真正从键盘使用的验证器中解释什么是什么以及什么不正确...     

解决方法

        我已经在这里更新了您的代码http://codepad.viper-7.com/UaUE4g 错误1:
echo $this->$foo;
内容应为:
echo self::$foo;
..因为它是静态的。 错误2:
A::displayFoo();
该方法是实例方法
::
,用于访问静态方法。 错误3:
A->displayFoo();
这是一个错误,因为未定义
A
,如果是,则应读取
$A
。可以的:
$object->displayFoo();
..作为$ object是A类的实例。 下一步,请参考静态主题手册。     ,        不知道从哪里开始。静态方法属于该类,普通方法属于该类的实例的对象。例如,您可以拥有:
Class A {
   static public $foo = \'WOOHOOO\';
   static function displayFoo() {
       echo self::$foo;
   }
}

echo A::displayFoo();
之所以有效,是因为您正在调用属于类
A
displayFoo
方法。或者您可以这样做:
Class A {
    public $foo = \"WOOHOO\";
    public function displayFoo() {
        echo $this->foo;
    }
}

$obj = new A();
$obj->displayFoo();
现在,您将基于
A
类创建一个对象。该对象可以调用其方法。但是该对象没有静态方法。如果要声明该函数为静态,,14ѭ将无法使用它。 您不能:
A->displayFoo()
在任何情况下都不会。
->
运算符假定一个对象,
A
不能是对象,因为它不是变量。     ,        您可以在手册中阅读静态类成员: http://php.net/static 请密切注意这些示例。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。