首页 > 解决方案 > 致命错误:无法重新声明先前声明的函数()

问题描述

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

我的代码的一部分:(我没有在其他任何地方使用这个函数)

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

我得到以下信息:

致命错误:无法在 C:\wamp64\www\myProject-dev\public\cajas 中重新声明 Validar()(之前在 C:\wamp64\www\myProject-dev\public\cajas\reposiciones\controller3.php:20 中声明) \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.

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

提前致谢。

标签: phpkendo-uikendo-grid

解决方案


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

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

在我的验证功能删除/评论它之后,解决方案就是它,它完全按预期工作;没有循环,没有错误。


推荐阅读