【发布时间】:2018-10-07 19:30:14
【问题描述】:
我正在尝试将刀片模板字符串解析为 php 格式并使用 eval() 将字符串评估为 php 代码
$array = [
'foo' => 'bar',
'bar' => 'foo'
];
$content = '@foreach($array as $value){{$value}}@endforeach';
$blade = Blade::compileString($content);
$php = eval($blade);
这是我目前的测试代码,它会抛出异常
ParseError: 语法错误,意外的'
compileString()
之后$blade的值<?php $__currentLoopData = $array; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $value): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?><?php echo e($value); ?><?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
是什么导致了这个错误? eval() 与 compileString() 将刀片解析为 php 的方式不兼容吗?
【问题讨论】:
标签: php laravel laravel-5 eval blade