网站已经改版为Wordpress版本,这里是旧版本的快照,请不要在页面中留言.

ThinkPhp关闭Debug后出错解决方案


:我使用的是ThinkPHP3.2版本,其他版本类似

从自己入手PHP开发以来,一直使用的是ThinkPHP的框架,前几天偶然间碰到了一个错误,在Debug模式下网站一切正常,而关闭Debug进行部署的时候有些页面却出现了错误无法执行,自己也是百思不得其解,经过自己的各种尝试终于还是找到了错误原因.

·先贴出来一个简单的错误原型

<?php
namespace Home\Controller;
use Think\Controller;
class testController extends Controller
{
         public function index(){
                   echo "Test";
         }
         public function show(){
 
         }
}

 

    检查一下上面代码的语法,可以看出控制器内就只有两个简单的函数,语法上根本就没有错误!


   我们开启Debug测试:

输入链接: http://localhost/Index.php?m=Home&c=Test&a=Index ,执行的结果如下图,显示出了Test文字,一切正常:

                                             


   我们关闭Debug在测试

输入链接: http://localhost/Index.php?m=Home&c=Test&a=Index ,执行的结果如下图,“页面错误!请稍后再试~”直接挂了

 

    当时出现这种情况的时候我也纠结了,我尝试着把代码中的函数一个一个清空,结果关闭Debug后还是出错,后来我想到了是不是函数名字的问题结果误打误撞还真是这个问题,在上面的错误代码中我使用了一个名字为show的函数,当我们show函数改成其他名字的时候,例如show1(),问题就解决了233


·解决方案

    在上面的错误原型分析中我们可以看出,这种错误是由于你的函数命名的问题,我们自己的Controller是继承自ThinkPHPController,当你在自己的Controller中的函数命名ThinkPHP中的Controller类内函数有重名的时候,就会出现Debug下正常,关闭Debug就挂掉的现象.


    所以总的来说,在我们自己的Controller中要避免使用与ThinkPhp中的Controller类有重名的函数名,这样关闭Debug出错的问题就解决了.

 

·附上ThinPHP的Controller类的位置

/ThinkPHP/Library/Think/Controller.class.php

在使用一些常用的函数名的时候最好去瞄瞄那个Controller类里面是否有了.

 



本文出自悠然品鉴原创,转载请注明出处:http://www.youranshare.com/blog/sid/46.html


  • 标签:
  • ThinkPhp关闭Debug出错
  • 页面错误请稍后再试
  • ThinkPHP错误
网站已经改版为Wordpress版本,这里是旧版本的快照,请不要在页面中留言.