【发布时间】:2015-07-15 14:10:38
【问题描述】:
我正在尝试编写一些代码来生成一个带有数组的 php 文件,like this。
但是,为了创建正确的配置文件,我需要能够在数组中保留表达式“原样”。这是因为该文件将被许多用户使用,并且表达式基于用户设置的环境变量等进行评估。
所以,假设我们在数组中有这个键/值,我最终想要输出到文件中:
[
...
'connection' => $isFork ? $sourceArray['connection'] : config('database.default'),
...
]
当这个数组最终被写入一个 php 文件时(现在使用var_export 和file_put_contents)我会看到
'connection' => config('database.default')
成为
'connection' => 'default_connection',
因为表达式已被计算。我需要的是一种方法来防止表达式作为数组中的值被评估但也确保
'connection' => $isFork ? $sourceArray['connection']
确实评估为
'connection' => 'my_connection'
有什么办法吗?
编辑:我基本上想做this,但反过来用表达式。
【问题讨论】:
-
如果您想阻止评估,请使用引号?也许我不在主题? '连接' => $isFork ? $sourceArray['connection'] : 'config('database.default')',
-
ho.. 好的,您想在不评估的情况下输出它.. 为什么不像字符串一样使用?
$string = '\'connection\' => $isFork ? $sourceArray[\'connection\'] : config(\'database.default\')'; -
@Jean-philippeEmond :输出没有进入浏览器,我正在尝试生成一个 config.php 文件。当我想要的是
'connection' => config('database.default')