我在php 5.3.28上遇到了一个非常奇怪的问题
我有这个代码:
ob_start( );
session_start( );
include( "../common.php" );
check_user_login( );
$Pageination->Pagination( );
$p = $Pageination;
我使用这个代码为我所有的网站分页,但我不知道为什么有时我得到这个错误
PHP致命错误:调用
未定义的函数Pagination()
有时这段代码工作得很好没有错误!
[UPDATED 1]
这段代码来自我的main/main.php
ob_start( );
session_start( );
include( "../common.php" );
check_user_login( );
$Var_120->Pagination( );
$p = $Var_120;
$page = setpage( );
$Var_336->AdminLoginlist( );
$al = $Var_336;
及其工作
从我的main/edit-faq.php中删除这段代码
ob_start( );
session_start( );
include( "../common.php" );
check_user_login( );
$Var_312->Pagination( );
$p = $Var_312;
$page = setpage( );
$Var_528->viewcategory( );
不工作,错误就在
致命错误:在非对象上调用成员函数Pagination()在/home/zmintco/public_html/z/main/edit-faq.php第91行
这是我的common.php代码
include( "lib/connect.php" );
include( "lib/function.php" );
include( "lib/pagination.php" );
include( "lib/validation.php" );
include( "lib/simpleimage.php" );
include( "language/".get_page_settings( "11" ).".php" );
首先,在脚本的顶部设置错误报告:
error_reporting(E_ALL);
ini_set('display_errors', 1);
现在你很可能会得到错误(正如你所说的):
PHP致命错误:调用
未定义的函数Pagination()
这可能是因为变量$Pageination
没有实例化。只需实例化它,然后调用它的成员函数。
ob_start( );
session_start( );
include( "../common.php" );
check_user_login( );
$Pageination = new Pagination();
$Pageination->Pagination( );
$p = $Pageination;
假设它是存在于您的common.php
包含的某个地方的类?
你可以在你的common.php
中显示代码吗?
您可能将错误报告设置为不显示警告。因此,您看不到include()
语句失败。因此,您的Paginator类不可用于脚本,并在尝试实例化它时导致致命错误。
参见如何在PHP中获得有用的错误信息?有关如何正确设置错误报告的详细信息。
这很可能是因为当脚本不在包含该文件的目录下的一个目录时,您使用了该文件的相对路径,这是不正确的。将include的路径更改为绝对路径以解决此问题。
例如:include( "/full/path/to/includes/common.php" );