有谁能告诉我,如果以下代码中有错误,请?
eval ("\$typeselectbit = \"".$cmstpl->get("admin_selectbitdefault")."\";");
$result = $cmsdb->query("SELECT * FROM cms".$n."_type WHERE deleted = '0' ORDER BY typename ASC");
while ($type = $cmsdb->fetch_array($result))
{
$typeid = $type['typeid'];
$typename = $type['typename'];
eval("\$typeselectbit .= \"".$cmstpl->get(ifelse($GPC['typeid'] == $typeid, "typeselectbit2", "typeselectbit"))."\";");
}
它不会从数组输出第一个条目。但也许错误在其他地方。
目前,我不确定,这个问题来自哪里。
你怎么看?它对你来说是否正确?如果没有,我需要修理什么以及它究竟应该是什么样的?
或者我是否需要查看脚本中的其他位置?
任何具体的提示,可以帮助找到原因?
感谢您的帮助! :)
答案 0 :(得分:0)
代码eval("\$typeselectbit .= \"".$cmstpl->get(ifelse($GPC['typeid'] == $typeid, "typeselectbit2", "typeselectbit"))."\";");
中的最后一行有一个解析错误。 ifelse
不是有效的PHP语法(除非这是您之前声明的函数)。它也可能是eval
构造内发生的任何其他数量的错误。
如果评估代码中存在解析错误,
eval()
将返回FALSE
并继续执行以下代码。使用set_error_handler()
{/ 1}}无法在eval()
中捕获解析错误。
目前还不清楚你为什么选择使用eval
,但其中一个缺点是你通常无法在eval
内轻松调试这些错误。如果您在eval
之外运行此代码,则会立即看到解析错误。