致命错误:无法重新声明先前声明的function()

时间:2019-12-09 21:55:05

标签: php kendo-ui kendo-grid

我知道有很多类似问题的问题,但是我一直在寻找答案,但仍然找不到我的问题。我已经尝试了几种方法来解决此问题,但找不到任何解决方案...

我的代码部分:(我在其他任何地方都没有使用此功能)

function Validar($r)
{
$Msg = '';
$aError = array();
if (strlen($Msg) > 0) {
    $aError[] = array('success' => false);
    $aError[] = array('msg' => '1001');
    $aError[] = array('error' => $Msg);;
}

我得到以下信息:

  

致命错误:无法重新声明Validar()(先前在   C:\ wamp64 \ www \ myProject-dev \ public \ cajas \ reposiciones \ controller3.php:20)   在C:\ wamp64 \ www \ myProject-dev \ public \ cajas \ reposiciones \ controller3.php中   在第20行

所以我添加了

if(function_exists("Validar")){
echo "The function already exists.";
} else {
 function Validar($r){
   $Msg = '';
   $aError = array();
   if (strlen($Msg) > 0) {
    $aError[] = array('success' => false);
    $aError[] = array('msg' => '1001');
    $aError[] = array('error' => $Msg);;
  }

所以我几乎不知道发生了什么,我收到的信息有256行

  

该功能已经存在。

跟着

  

致命错误:未捕获错误:达到最大函数嵌套级别“ 256”,正在中止!在第39行的C:\ wamp64 \ www \ myProject-dev \ public \ lib \ DataSourceResult.php中

     

错误:达到最大功能嵌套级别“ 256”,正在中止!在第39行的C:\ wamp64 \ www \ myProject-dev \ public \ lib \ DataSourceResult.php中

还有一张这样的桌子:(对不起,我不知道该怎么做)

<table><tbody><tr><th>#</th><th>Time</th><th>Memory</th><th>Function</th><th>Location</th></tr><tr><td>1</td><td>0.0017</td><td>371568</td><td>{main}( )</td><td>...\controller3.php:0</td></tr><tr><td>2</td><td>0.0053</td><td>474480</td><td>include( 'C:\wamp64\www\myProject-dev\public\cajas\reposiciones\controller3.php' )</td><td>...\controller3.php:36</td></tr><tr><td>3</td><td>0.0091</td><td>476240</td><td>include( 'C:\wamp64\www\myProject-dev\public\cajas\reposiciones\controller3.php' )</td><td>...\controller3.php:36</td></tr></tbody></table>
<br><br><br>
And this repeats 256 times.

这是什么意思,我该如何解决?也许您可以给我一些指导或建议,我有点新。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果有人遇到我同样的问题,@ Don'tPanic的答案就是解决问题的方法。出现问题的代码部分是

if (file_exists("controller3.php")) include "controller3.php";

在完成我的验证功能后,删除/注释它,这是解决方案,它的工作原理与预期完全相同;没有循环,没有错误。