[英]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.