Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCart PHP自定义函数不工作_Php_Variables_Opencart - Fatal编程技术网

OpenCart PHP自定义函数不工作

OpenCart PHP自定义函数不工作,php,variables,opencart,Php,Variables,Opencart,在opencart模板中包含自定义php函数有点困难。事情是这样的 在header.tpl文件中,我将在以下部分插入此代码: <?php $blah = file_get_contents("my_url_goes_here"); ?> <?php echo $blah; ?> 然后在footer.tpl文件中插入以下代码: <?php if(!isset($blah)) die; ?> 这样做的目的是检测头中的blah函数是否

在opencart模板中包含自定义php函数有点困难。事情是这样的

在header.tpl文件中,我将在以下部分插入此代码:

<?php
$blah = file_get_contents("my_url_goes_here");
?>
<?php       
echo $blah;   
?>

然后在footer.tpl文件中插入以下代码:

<?php if(!isset($blah)) die; ?>

这样做的目的是检测头中的blah函数是否仍然存在,如果不存在,则退出脚本

然而,die函数似乎让我陷入了一个循环,因为如果我把它移到header.tpl文件中,那么所有的代码都在一起,它就可以完美地按照设计工作

但是,如果我将它移动到footer.tpl文件中(我希望它移动到该文件的位置),不管发生什么,它都会终止脚本,最后我会得到一个空白页面——即使blah变量在header.tpl文件中是完整的

这让我非常困惑,我不明白如果变量位于不同的文件中,为什么它不读取变量,因为这两个文件都应该包含在每个页面上


提前感谢您的任何想法

它们是两个独立的实体,因此来自其中一个实体的数据将不在另一个实体中。我猜这是一种用于反向代码的检测脚本,就像wordpress模板的许多检测脚本一样。OpenCart是基于MVC的,不是线性的,因此,标题中的$blah几乎在代码完全执行时就被忽略了

Jay-谢谢你的帖子。你说得有点对。有没有办法绕过这个问题,比如使变量为全局变量?你完全可以做到这一点。甚至可能将该值保存到会话值中,这样您就不必在每次页面加载时调用它,这将是一项开销,您的服务器和客户端站点都不希望这样做。我将尝试实现这一点。谢谢Jay-至于将该值保存到会话中-看起来如何?我添加了$_会话['blah']=“$blah”;在上面的第一个php函数之后,但是我的页脚代码仍然没有读取它。