Php 在类中包含的数组中包含文件

Php 在类中包含的数组中包含文件,php,arrays,class,include,Php,Arrays,Class,Include,可能重复: 我有这个php代码 <?php class Config { public static $__routes = array( "Home" => "index.php", "Support" => "support.php", "Ads" => "ads.php", ); } ?&g

可能重复:

我有这个php代码

   <?php
   class Config {

   public static $__routes = array(

   "Home"                    => "index.php",
   "Support"                 => "support.php",
   "Ads"                     => "ads.php",

   );

   }

   ?>
我想在“类”中的“publicstatic$\uu路由数组”中包含ex.php文件

有点像

   <?php
   class Config {

   public static $__routes = array(

   "Home"                    => "index.php",
   "Support"                 => "support.php",
   "Ads"                     => "ads.php",

   include 'ex.php';

   );

   }

   ?>


请问我该怎么做?

那是行不通的。声明类属性时不能执行任何类型的求值。为什么不加入这些项目呢


如果您必须在另一个文件中配置一些路由,那么我建议将此属性设置为受保护或私有,并使调用方使用静态方法来获取此信息。在这个静态方法中,您可以将静态属性数组中定义的路由与include文件中数组(不仅仅是像您所示的数组段)中定义的路由连接起来,然后返回这个合并的数组。

您不能,我已经在您的:

每个文件本身必须是有效的PHP代码,因为 在运行时发生(即当达到这一行代码时),而不是 在解析时(即加载文件时)

现在这里不同的是,替代解决方案不起作用,因为您无法使用表达式(即
A+B
)初始化类属性,而只能使用文本(标量值和标量值数组)

由于属性是静态的,您甚至不能使用构造函数,因此必须在类之外分配它:

class Config {

   public static $__routes = array(

       "Home"                    => "index.php",
       "Support"                 => "support.php",
       "Ads"                     => "ads.php",

   );

   // ...
}

Config::__routes += (include 'example.php');

不,课堂让一切都变得不同。我想,你的问题的答案是,你为什么要这么做?你的目标是什么?这看起来越来越像是“设计错误”,这是工作。非常感谢你的帮助
class Config {

   public static $__routes = array(

       "Home"                    => "index.php",
       "Support"                 => "support.php",
       "Ads"                     => "ads.php",

   );

   // ...
}

Config::__routes += (include 'example.php');