Composer Project访问不同的类

时间:2015-11-12 16:48:49

标签: php

试图了解一些事情。我有一个Config类,我定义了一个常量负载。在我的其他一个类中,我需要使用Config中的一个常量。所以我开始使用类

use \CONFIG\Config;

在我的类构造函数中,然后我将类赋给变量

public function __construct() {
    $config = new Config;
}

在consturctor中,我可以通过执行类似

的操作来访问常量
$config::BASE_PATH;

所以我这样做时似乎没有任何抱怨。如果我创建了一个类变量,并将我的构造函数更改为以下

public function __construct() {
    $this->config = new Config;
    $this->config::BASE_PATH;
}

它抱怨它使用了对静态类成员的错误访问。

为什么它似乎作为局部变量工作,而不是作为类变量?

由于

1 个答案:

答案 0 :(得分:1)

该问题与Composer无关。 它是PHP的语法问题,同时访问类常量。

PHP 7以下的PHP版本不支持访问类常量的语法$this->myclass::CONSTANT

DEMO

<?php
class MyClass
{
    const CONSTANT = 'constant value';

    function showConstant() {
        echo  self::CONSTANT . "\n";
    }
}

echo MyClass::CONSTANT . "\n";

$classname = "MyClass";
echo $classname::CONSTANT . "\n"; // As of PHP 5.3.0

class B 
{
   function __construct()
   {
       $this->myclass = new MyClass();
       $this->myclass->showConstant();

       /**
        * #### This will not work in PHP Version below PHP 7! ####
        */
       echo $this->myclass::CONSTANT;
   }
}

$b = new B;
?>