【发布时间】:2013-04-04 11:56:25
【问题描述】:
class Constants
{
public static $url1 = "http=//url1";
public static $url2 = Constants::$url1."/abc2";
public static $url3 = Constants::$url1."/abc3";
public static $url4 = Constants::$url1."/abc4";
}
我知道这是不可能的
所以我应该像在一个地方有 $url1 定义一样使用它
class urlOnly
{
public static $url1 = "http=//url1";
}
class Constants
{
public static $url1 = urlOnly::$url1;
public static $url2 = urlOnly::$url1."/abc2";
public static $url3 = urlOnly::$url1."/abc3";
public static $url4 = urlOnly::$url1."/abc4";
}
另外,如果我想这样使用,我可以确保类“urlOnly”只能由类“Constants”访问。
替代解决方案最受欢迎,因为在此解决方案中我需要创建两个类。 我也想把变量作为一个变量而不是作为一个函数来访问,我希望它像静态一样被访问
【问题讨论】:
-
这并不能解决您的实际问题。
public static $foo = self::$bar工作得很好;你只是不能在static声明中连接东西。 -
正如我所说,我不想创建对象或调用函数,所以它不重复
-
那我不知道你在问什么。您不能按照您的方式动态声明类常量。链接的欺骗显示了一种解决方法。接受它或提出不同的问题。
-
当您实际上可以单独创建这些静态变量而不必使用 Paamayim Nekudotaim 时,我不明白这一点。:P