繁体   English   中英

使用未定义的常量-学习OOP PHP

[英]Use of undefined constant - Learning OOP PHP

不确定的常数问题不是一个新问题,我已经尝试过Google,并找到了一百万个包含缺少引号的数组的答案,但这不是我的解决方案。 我正在学习使用PHP进行OOP编码,这实际上是我使用它的最初几个小时。 这是我创建的类。

class template {

var $page;

function __construct() {
    $this->page = 'home';
}

function getHeader($header = 'header') {
    include ('template/'.$header.'.php');
}

function getFooter($footer = 'footer') {
    include ('template/'.$footer.'.php');
}

function setPage($page = 'home') {
    $this->page = $page;
}

function getPage() {
    if(page === 'home') {
        include('template/home.php');
    } else {
        include('template/'.$this->page.'.php');
    }
}



}

这就是我实例化的方式。

include('class.template.php'); 

$template = new template();

$template->getHeader();

if(isset($_GET['page'])) {
    $template->setPage($_GET['page']);
}

$template->getPage();



$template->getFooter();

当然还有错误-注意:使用未定义的常量页面-在第24行的/Applications/MAMP/htdocs/titan-up/class.template.php中假定为“ page”

很明显,这是我应该马上发现我做错了的事情,但是已经晚了,我茫然了。 任何帮助是极大的赞赏。

编辑 :任何使学习过程更轻松的链接将不胜感激。 我已经阅读过PHP手册,并且对PHP有很深的了解,但是对OOP却没有。

从此更改:

function getPage() {
    if(page === 'home') {

对此:

function getPage() {
    if($this->page === 'home') {

错误消息“注意:使用未定义的常量页面-假定为'页面'”并不是很有帮助,但这是由于不幸的事实,PHP将隐式将未知标记转换为具有相同值的常量。

那就是看到page (它前面没有$ ,因此不是变量名),并把它当作之前的一条语句define('page', 'page');对待define('page', 'page');

注意:此错误消息的另一个常见原因是,如果您忘记将字符串用引号引起来,例如$some_array[some_key]而不是$some_array['some_key']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM