Как получить доступ к члену парламента, не занимающему официального поста в статической функции в PHP

У меня есть следующий класс в PHP

class MyClass
{
  // How to declare MyMember here? It needs to be private
  public static function MyFunction()
  {
    // How to access MyMember here?
  }
}

Я полностью смущен который синтаксис использовать

$MyMember = 0; и echo $MyMember

или

private $MyMember = 0; и echo $MyMember

или

$this->MyMember = 0; и echo $this->MyMember

Кто-то может сказать мне, как сделать это?

Я отчасти не силен в OOPS.

Можно ли сделать это во-первых?

В противном случае, как я должен объявить участника так, чтобы я мог получить доступ к нему в статических функциях?

25
задан 24 December 2009 в 09:57
поделиться

3 ответа

class MyClass
{
  private static $MyMember = 99;

  public static function MyFunction()
  {
    echo self::$MyMember;
  }
}

MyClass::MyFunction();

см. Наглядность и Оператор разрешения сферы действия (::) в главе op5 руководства php.

.
69
ответ дан 28 November 2019 в 17:53
поделиться

Внутри статических методов нельзя вызывать переменные, используя $this, так как статические методы вызываются вне "контекста экземпляра".

Это четко указано в PHP doc.

.
2
ответ дан 28 November 2019 в 17:53
поделиться
<?php
    class MyClass
    {
        // A)
        // private $MyMember = 0;

        // B)
        private static $MyMember = 0;

        public static function MyFunction()
        {
            // using A) //  Fatal error: Access to undeclared static property: 
            //              MyClass::$MyMember
            // echo MyClass::$MyMember; 

            // using A) // Fatal error: Using $this when not in object context
            // echo $this->MyMember; 

            // using A) or B)
            // echo $MyMember; // local scope

            // correct, B) 
            echo MyClass::$MyMember;
        }
    }

    $m = new MyClass;
    echo $m->MyFunction();
    // or better ...
    MyClass::MyFunction(); 

?>
2
ответ дан 28 November 2019 в 17:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: