代码之家  ›  专栏  ›  技术社区  ›  radman

php中的隐式类变量声明?

  •  3
  • radman  · 技术社区  · 15 年前

    我一直在看一些代码,很难在php类中实现变量声明。具体来说,我看到的代码在使用类变量之前并没有声明它们。现在这可能是预期的,但我找不到任何信息表明这是可能的。所以你会期望这样:

    class Example
    {
    
        public function __construct()
        {
            $this->data = array();
            $this->var = 'something';
    
        }
    
    }
    

    3 回复  |  直到 15 年前
        1
  •  4
  •   deceze    15 年前

    这与普通变量声明的工作原理相同:

    $foo = 'bar'; // Created a new variable
    
    class Foo {
        function __construct() {
            $this->foo = 'bar'; // Created a new variable
        }
    }
    

    PHP类与其他语言不同,在其他语言中,成员变量需要作为类声明的一部分指定。可以随时创建PHP类成员。

    说到这里,你 将变量声明为 public $foo = null;

        2
  •  2
  •   Dennis Williamson    15 年前

    那么,您希望这个:(代码示例)能够工作吗?
    对。这是一个非常糟糕的练习(至少它使我的C++皮肤爬行),但它不会让我感到惊讶。请参阅下一页中的示例2,以获取使用另一个 没有事先声明。 http://www.php.net/manual/en/language.oop5.basic.php 如果启用E\u STRICT,它将抛出一个错误。

    是的。这不好玩吗?从C++或C背景中,PHP花了很长时间,在我身上的打字非常松散,但它有它的优势。

        3
  •  1
  •   wallyk    15 年前

    通常用信息性注释声明类成员变量:

    class Example
    {
        private $data;  // array of example data
    
        private $var;   // main state variable
    
        public function __construct()
        {
            $this->data = array();
            $this->var = 'something';
        }
    }