我可以使用PHP为我提供一个包含头文件的类方法吗?

请查看下面的示例代码,我有一个文件已加载到配置文件中.然后将配置文件加载到我构建的任何页面中.是否可以像在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
<?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)以查看是否有任何通知在发生…

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...