zend框架3:如何在inlineScript方法中使用php代码或变量



我正在尝试在基于zend框架3的项目中使用php变量的值作为javascript变量。但是,它没有正确渲染。下面给出了我尝试过的示例代码。

<?php
$this->inlineScript()->captureStart();
echo <<<JS
function abc(){
var a='<?php echo $name?>';
......
}
JS;
$this->inlineScript()->captureEnd();
?>

在这里,它是按原样打印,而不是呈现$name的值。有没有什么方法可以做到这一点,就像我们可以在下面这样的纯脚本标记中使用一样。

<script type='text/javascript'>
function abc(){
var a='<?php echo $name?>'; 
}
</script>

尽量不要过多地混合PHP和JS。。。在这里,当您使用echo指向流(包含js和PHP的字符串)时,您的代码会得到响应。

试试可读性更强的东西:

<?php $this->inlineScript()->captureStart() ?>
function abc() {
var a='<?= $name ?>';
......
}
<?php $this->inlineScript()->captureEnd() ?>

在这里,PHP指令将被执行,因为它不在heredoc 中

此外,这不是一个与Zend框架相关的问题,而是一个PHP问题。请花一些时间阅读本文中链接的PHP文档,而不仅仅是Heredoc部分。。。PHP有很多处理字符串的方法!

最新更新