请查看下面的示例代码,我有一个类文件已加载到配置文件中.然后将配置文件加载到我构建的任何页面中.是否可以像在show_header()方法中那样包含头文件?它似乎不起作用,如何才能达到此结果?
// Core.class.php
class Core
{
public function show_header($page_name){
require_once 'includes/header.inc.php';
}
}
// config.inc.php
require_once 'Core.class.php';
$core = New core;
// testpage.php
require_once 'config.inc.php';
$core->show_header('home');
这是我试图包含在页面中的header.inc.php文件的顶部,似乎可以使用它,但是它破坏了头文件的工作方式.
//header.inc.php
//start page timer
$session->get('user_id');
$profiler = new Profiler;
$profiler->start();
//see if site is turned on/off
$core->sitestatus($config['site_status']);
这部分给我这样的错误…
Notice: Undefined variable: session in
C:\webserver\htdocs\friendproject2\includes\header.inc.php
on line 5
Fatal error: Call to a member function
get() on a non-object in
C:\webserver\htdocs\friendproject2\includes\header.inc.php
on line 5
解决方法:
重新发表评论,听起来您需要一个根Web上下文对象,该对象引用了以下其他对象:
$ctx = WebContext::get();
$ctx->session->get('x');
$ctx->input->get('y');
$ctx->identity->valid;
等等…这就是大多数网络框架的工作方式.
$session需要先定义,然后在包含的文件中引用:
// If a global variable:
global $session;
$session->get('x');
// If a member of Core:
$this->session->get('x');
是的,您可以这样做,可能您需要的是require而不是require_once,并且路径必须基于当前工作目录或绝对路径
尝试添加error_reporting(E_ALL)以查看是否有任何通知在发生…
标签:php,class
来源: https://codeday.me/bug/20191210/2100933.html