如何列出PHP中的所有类并显示它们的自定义值?

如何列出PHP中的所有类并显示它们的自定义值?,php,Php,我有两个具有以下代码的类:Class1.class.php和Class2.class.php <?php namespace App; class Class1 { public $version = "1.0.0"; public $vendor = "somevendorname"; public $name = __CLASS__; public function __construct() { } public function

我有两个具有以下代码的类:Class1.class.php和Class2.class.php

<?php
namespace App;
class Class1 {
    public $version = "1.0.0";
    public $vendor = "somevendorname";
    public $name = __CLASS__;

    public function __construct() {

    }

    public function _Version()
    {
        return $this->version;
    }

    public function _Name()
    {
        return $this->name;
    }

    public function _Vendor()
    {
        return $this->vendor;
    }
}
?>

正如您所看到的,我正在使用名称空间,无法正确处理它们。我尝试了echo$vendor->_Name();但它表明找不到类名。

首先,您的方法是非常错误的,您试图模拟spl\u自动\u寄存器 错误的方式

但让我们假设这是你的方式:

加载类文件与“调用”类不同:

您的代码应该如下所示:

 namespace App;
   class Class1 {

    const Version = "1.0.0";
    const Vendor = "somevendorname";
    const ClassName ="Your Class Name"; <--- you can't use __CLASS___ 

     function __construct() {

          }  etc....

     }
<?php
include 'classes/Class1.class.php';
include 'classes/Class2.class.php';

$autoload = new App\Class2();
?>
<?php
include 'vendor/autoload.php';
foreach($autoload->_LoadVendors() as $vendor)
{
    //here what to do?
}
?>
$myarray = array(
    Class1 = array(
        Name => Class1->_Name(),
        Vendor => Class1->_Vendor(),
        Version => Class1->_Version()
    ),
    Class2 = array(
        Name => Class2->_Name(),
        Vendor => Class2->_Vendor(),
        Version => Class2->_Version()
    )
);
 namespace App;
   class Class1 {

    const Version = "1.0.0";
    const Vendor = "somevendorname";
    const ClassName ="Your Class Name"; <--- you can't use __CLASS___ 

     function __construct() {

          }  etc....

     }
      include 'vendor/autoload.php';
        $classList = [];
      foreach($autoload->_LoadVendors() as $vendor)
      {
         $classList[] = array('name'=>$vendor::Vendor,
                      'Version'::$Vendor::Version,
                      'Name'=>$Vendor::Name);
      }