我知道您可以使用字符串连接彼此创建全局常量:
define('FOO', 'foo');
define('BAR', FOO.'bar');
echo BAR;
将打印’foobar’。
但是,尝试使用类常量执行相同操作时遇到错误。
class foobar {
const foo = 'foo';
const foo2 = self::foo;
const bar = self::foo.'bar';
}
foo2的定义没有问题,但是声明const bar会出错
解析错误:语法错误,意外的“。”,期望为“,”或“;”
我也尝试过使用sprintf()之类的函数,但它比字符串连接器’。’更不喜欢左括号。
那么,除了像foo2这样的琐碎的设置情况之外,还有什么方法可以彼此创建类常量吗?
从PHP 5.6开始,您可以为常量定义静态标量表达式:
class Foo {
const BAR = "baz";
const HAZ = self::BAR . " boo\n";
}
尽管这不是问题的一部分,但应该意识到实施的局限性。以下内容不起作用,尽管它是静态内容(但可以在运行时进行操作):
class Foo {
public static $bar = "baz";
const HAZ = self::$bar . " boo\n";
}
// PHP Parse error: syntax error, unexpected '$bar' (T_VARIABLE), expecting identifier (T_STRING) or class (T_CLASS)
class Foo {
public static function bar () { return "baz";}
const HAZ = self::bar() . " boo\n";
}
// PHP Parse error: syntax error, unexpected '(', expecting ',' or ';'
问题内容: 我在某些类上定义了几个CONST,并希望获得它们的列表。例如: 有什么方法可以获取在类中定义的CONST的列表吗?据我所知,最接近的option()无法解决问题。 我真正需要的是常量名称列表-像这样: 要么: 甚至: 问题答案: 您可以为此使用反射。请注意,如果您经常这样做,则可能需要查看缓存结果。 输出:
我有下面的代码,它抛出了下面给出的错误。当'string[]args'被替换为'java.lang.string[]args'时,它不会抛出错误并运行方法s1.method1()。 错误:在diff.test类中找不到Main方法,请将Main方法定义为:public static void Main(string[]args)或JavaFX应用程序类必须扩展JavaFX.application.
问题内容: 我正在使用Python创建XML文档。(逻辑结构-> XML字符串,反之则不行。) 如何使它转义我提供的字符串,以使它们无法弄乱XML? 问题答案: 您是说您要执行以下操作: 然后,您将获得很好的转义XML字符串:
问题内容: 假设我有一个自定义类,该类实现/重写了一些方法: 现在,我现在必须通过在构造函数中传递一个字符串来手动创建的实例: 这还不错,但是它导致了这样的想法,即使用类似于or或or的自定义字符串前缀会很酷。 是否有可能在Python中创建/注册这样的自定义字符串文字前缀,以使文字产生新的实例? 还是将这些前缀硬编码到Python解释器中? 问题答案: 这些前缀在解释器中进行了硬编码,您不能注册
问题内容: 我认为这是不可能的,但我想我要是有办法的话。我的想法是,我有一个用于Web资源文件夹路径的变量: 我得到这个结果: 但是,我希望将字符串合并为一个字符串,如下所示: 是否可以在Less中将字符串连接在一起? 问题答案: 使用变量插值 完整代码: