当前位置:Gxlcms > PHP教程 > 定义这个函数为什么会出错

定义这个函数为什么会出错

时间:2021-07-01 10:21:17 帮助过:9人阅读

老是提示这个错误:Parse error: syntax error, unexpected 'function' (T_FUNCTION) in D:\wamp\www\myshop\upload\includes\cls_template.php on line 313

我用的是php5.5.12
我只是初哥,代码是老板买回来的,运行到这个函数的时候接不上了

/**
* 判断是否缓存
*
* @access public
* @param string $filename
* @param sting $cache_id
*
* @return bool
*/

function is_cached($filename,$cache_id = '')
{
$cachename = basename($filename, strrchr($filename, '.')) . '_' . $cache_id;
if ($this->caching == true && $this->direct_output == false)
{
$hash_dir = $this->cache_dir . '/' . substr(md5($cachename), 0, 1);
if ($data = @file_get_contents($hash_dir . '/' . $cachename . '.php'))
{
$data = substr($data, 13);
$pos = strpos($data, '<');
$paradata = substr($data, 0, $pos);
$para = @unserialize($paradata);
if ($para === false || $this->_nowtime > $para['expires'])
{
$this->caching = false;

return false;
};
$this->_expires = $para['expires'];

$this->template_out = substr($data, $pos);

foreach ($para['template'] AS $val)
{
$stat = @stat($val);
if ($para['maketime'] < $stat['mtime'])
{
$this->caching = false;

return false;
}
};
}
else
{
$this->caching = false;

return false;
};

return true;
}
else
{
return false;
}
}


回复讨论(解决方案)

Parse error: syntax error, unexpected 'function'
语法错误,意想不到的“function”

错误出现在 cls_template.php 第 313 行之前
你认真检查一下

public function

检查了一下是不是我上面修改的有问题:
原来:return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);
修改:return preg_replace_callback("/{([^\}\{\n]*)}/", function($r){return $this->select($r[1]);};

这是我百度的,现在看来是上面的有问题,大家能不能帮修改一下,这是因为PHP的源代码是5.2,我用的版本是5.5.12

313是哪行?

return preg_replace_callback("/{([^\}\{\n]*)}/", function($r){return $this->select($r[1]);} , $source);
尾巴怎么丢了?

ECSHOP不支持PHP5.5,真是郁闷啊,错误实在是太那个多

我这个初鸡,真是搞不了,求大虾有搞过ECSHOP的,能不能发个对照表过来,让我自己学习并搞好

我使用php5.3.10 没问题,版本太多,ecshop有些东西不支持,建议更换版本。

语法错误,仔细检查一下吧

还是装了php5.2.x上去,问题就没有了
谢谢大家

人气教程排行