loganlinn / constantsarray
一个简单的PHP类,用于在字符串中使用常量
dev-master
2012-10-01 19:41 UTC
This package is not auto-updated.
Last update: 2024-09-22 02:23:09 UTC
README
一个简单的PHP类,用于在字符串中使用常量
在PHP中,如果您想在字符串中使用常量,您有一些选择。
您可以使用连接运算符
define('COLOR_RED', 0); define('COLOR_GREEN', 1); define('COLOR_BLUE', 2); echo "SELECT * FROM shirts WHERE color IN (".COLOR_RED.",".COLOR_GREEN.",".COLOR_BLUE.")";
或者使用古老的 sprintf()
define('COLOR_RED', 0); define('COLOR_GREEN', 1); define('COLOR_BLUE', 2); echo sprintf( 'SELECT * FROM shirts WHERE color IN (%d, %d, %d)', COLOR_RED, COLOR_GREEN, COLOR_BLUE ) SQL;
或者将常量分配给变量
define('COLOR_RED', 0); define('COLOR_GREEN', 1); define('COLOR_BLUE', 2); $COLOR_RED = COLOR_RED; $COLOR_GREEN = COLOR_GREEN; $COLOR_BLUE = COLOR_BLUE; echo <<<SQL SELECT * FROM shirts WHERE color IN ( $COLOR_RED, $COLOR_GREEN, $COLOR_BLUE ) SQL;
注意:这些示例很简单,但考虑更复杂的情况(查询)。
这些都是我看到的方法,不要误会,它们能完成任务,但有些可能很难或难以阅读,有些则仅仅在输入或编辑时令人烦恼。还有什么其他选择吗?
介绍 ConstantsArray。这是一个简单的数组类,允许在字符串内部轻松访问您的常量,而无需退出双引号字符串或为heredoc分配大量变量。
define('COLOR_RED', 0); define('COLOR_GREEN', 1); define('COLOR_BLUE', 2); $const = new ConstantsArray(); echo <<<SQL SELECT * FROM shirts WHERE color IN ( {$const['COLOR_RED']}, {$const['COLOR_GREEN']}, {$const['COLOR_BLUE']} ) SQL;
简短、简洁、易读。
ConstantsArray 实现了 ArrayAccess 接口,以便类似数组的方式访问 constant() 函数,因此它简单且相对轻量。我鼓励您阅读此类的源代码。
我应该承认,另一种选择是使用PHP的 get_defined_constants() 函数来获取环境中的所有常量作为数组,您可以像使用 ConstantsArray 一样使用它。然而,这可能会造成大量内存浪费。
基本上就是这样。享受吧!
许可证
ConstantsArray 使用MIT许可证。有关更多详细信息,请参阅LICENSE