不了解PHP的这种行为

时间:2016-06-28 04:33:58

标签: php arrays string str-replace

enter image description here这是我准备完成任务的数组

<?php 
    $findArray = array();
    $findArray[] = '{{var1}}';
    $findArray[] = '{{var2}}';
    $findArray[] = '{{var3}}';
    $findArray[] = '{{var4}}';
?>

现在问题是当我print_r这个数组时,我得到以下输出:

Array
(
    [0] => 
    [1] => 
    [2] => 
    [3] => 
)

以下是var_dump输出:

array(4) {
  [0]=>
  string(8) ""
  [1]=>
  string(8) ""
  [2]=>
  string(8) ""
  [3]=>
  string(8) ""
}

任何人都可以让我知道我做错了什么以及为什么?

  

正如@postrel建议检查模板引擎,正如我正在使用的那样   当我试图打印时,Twig这种行为出现在图片中   在twig环境设置之后的数组,当我之前做同样的事情   树枝环境的设置,它按预期工作。

2 个答案:

答案 0 :(得分:1)

您可以通过这种方式将值作为数组获取

$findArray = array();
$findArray[] = '{{var1}}';
$findArray[] = '{{var2}}';
$findArray[] = '{{var3}}';
$findArray[] = '{{var4}}';

$newarray = array();
foreach ($findArray as $arr){
    if (preg_match("~\{\{\s*(.*?)\s*\}\}~", $arr, $atr))
        $newarray[] = $atr[1];

}

var_dump($newarray);

答案 1 :(得分:0)

最有可能的情况是,当您转储它们时,某些模板引擎会将值替换为值。尝试将它们写入文件,检查文件内容,花括号表示法将在那里。如果你想在屏幕上(在浏览器中),你将不得不逃避或html编码curlies。