PHP目标有时工作有时不工作


PHP objective sometimes work sometimes not

我在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" );