有没有办法评估双引号内的常量以避免使用连接.?
例如,我可以做以下事情:
echo "$variable";
echo "{$array["index"]}";
echo "{$this->myProperty}";
Run Code Online (Sandbox Code Playgroud)
不幸地回应"{MY_CONSTANT}"不起作用.
那么,有没有办法像上面的例子一样评估常量,避免连接?
我知道有替代代码并获得相同的结果,但我的目标只是常量.
我的动机是编写sql语句,例如:
$sql = "SELECT * FROM {MY_JOIN} WHERE id > 100";
Run Code Online (Sandbox Code Playgroud)
凡MY_JOIN常会是这样的
"
orders
INNER JOIN
users
ON (orders.user_id = users.id)
"
Run Code Online (Sandbox Code Playgroud)
或者避免类似的事情
$dir = DIRECTORY_SEPARATOR."folder1".DIRECTORY_SEPARATOR."folder2".DIRECTORY_SEPARATOR;
Run Code Online (Sandbox Code Playgroud)
我知道我可以编写类似的东西$separator = DIRECTORY_SEPARATOR和代码
$dir = "{$separator}folder1{$separator}folder2{$separator}";但是如果有可能的话,我想直接用常量来做.
不,这根本不可能。
但是,对于您的特定示例,有两个很好的解决方法:
sprintf('SELECT ... %s ...', MY_CONSTANT);
join(DIRECTORY_SEPARATOR, array('foo', 'bar', 'baz'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2317 次 |
| 最近记录: |