Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Composer项目访问不同的类_Php - Fatal编程技术网

Php Composer项目访问不同的类

Php Composer项目访问不同的类,php,Php,试图理解一些事情。我有一个Config类,我在其中定义了一个常量负载。在我的另一个类中,我需要使用Config中的一个常量。所以我从使用这个类开始 use \CONFIG\Config; 在我的类构造函数中,我然后将类分配给一个变量 public function __construct() { $config = new Config; } 在constructor中,我可以通过这样做来访问常量 $config::BASE_PATH; 所以我在做这件事时似乎没有收到任何抱怨。如果

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

use \CONFIG\Config;
在我的类构造函数中,我然后将类分配给一个变量

public function __construct() {
    $config = new Config;
}
在constructor中,我可以通过这样做来访问常量

$config::BASE_PATH;
所以我在做这件事时似乎没有收到任何抱怨。如果我创建一个类变量,并将构造函数更改为

public function __construct() {
    $this->config = new Config;
    $this->config::BASE_PATH;
}
它抱怨正在使用对静态类成员的不正确访问

为什么它看起来像是一个局部变量,而不是一个类变量


谢谢

这个问题与作曲家无关。 这是PHP在访问类常量时的语法问题

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


嗯<代码>:未列在php.net的运算符优先级页面上。我的猜测是作用域解析是在应用
->
之前发生的。可能是
<?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;
?>