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

博客讨论了在PHP中如何正确地在类文件中包含和使用头部文件。出现了一个错误,即在未定义$session变量的情况下尝试调用其方法。解决方案包括确保$session已经初始化或者作为类的成员来访问。还提到了使用require_once可能导致的问题,建议检查路径和使用require,以及启用错误报告以获取更多信息。
摘要由CSDN通过智能技术生成

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值