【发布时间】:2013-06-25 10:19:13
【问题描述】:
我需要在静态变量中使用 PHP 常量,但我今天发现这是不可能的:Is a global PHP CONSTANT available inside of a Class file?
define("TABLE_PREFIX", "TEST_");
class Test {
private static $sql_query = "select * from ".TABLE_PREFIX."USER";
public static function show_query1() {
echo "My first test";
echo self::$sql_query;
}
public static function show_query2() {
echo "My second test";
echo self::$sql_query;
}
}
Test::show_query1();
Test::show_query2();
我不想将常量作为参数传递给静态函数,也不想在每个静态函数中声明 $sql_query。
最好的方法是什么?
编辑:添加演示 = http://codepad.org/aqzj2TJh
【问题讨论】:
-
你可以使用常量就好了。你不能做的是使用像
"concatenated"."strings"这样的表达式。 -
你已经找到了正确的答案,只是你误会了。
-
@YogeshSuthar :经典的 getter 和 setter 仅适用于对象上下文。我不想定义一个静态设置器并每次都调用它......(如果有其他解决方案)
-
@Jon :您可以很好地使用常量 => 那么为什么我会收到此错误:“解析错误:语法错误,意外 '.',期待 ',' 或 ';'在第 7 行”(参见我添加的演示链接)
-
@deceze:你能解释一下吗?
标签: php variables static constants