我在一个名为website的类中有两个函数。这两个函数是checkStatus和killPage。
函数killPage是关于使用简单的简单样式而不是完整的单词文本。 函数checkStatus应该在代码中使用killPage,但它不会让我使用它。
下面是代码:
class website
{
function killPage($content)
{
die("
<h1>" . Settings::WEBSITE_NAME ." encountered an error</h1>
" . $content . "
");
}
function checkStatus(){
if(Settings::STATUS == 'M')
{
$website->killPage('We are in maintence');
}
if(Settings::STATUS == 'O')
{
}
if(Settings::STATUS == 'C')
{
$website->killPage('We are closed');
}
}
}
$website = new Website;
我得到的错误:
未定义的变量:网站&amp;&amp; 调用一个成员函数killPage() 非对象
答案 0 :(得分:2)
$this
是指类的当前实例,而不是$classname
答案 1 :(得分:1)
将$website
更改为$this
class website
{
function killPage($content)
{
die("
<h1>" . Settings::WEBSITE_NAME ." encountered an error</h1>
" . $content . "
");
}
function checkStatus(){
if(Settings::STATUS == 'M')
{
$this->killPage('We are in maintence');
}
if(Settings::STATUS == 'O')
{
}
if(Settings::STATUS == 'C')
{
$this->killPage('We are closed');
}
}
}
答案 2 :(得分:0)
问题在于:
function checkStatus(){
if(Settings::STATUS == 'M')
{
Settings::STATUS == 'M';
$website->killPage('We are in maintence');
}
您正在取消引用尚未进入范围的$website
。
在这种情况下,$website
是一个全局变量,您需要将其纳入范围:
function checkStatus() {
global $website;
if(Settings::STATUS == 'M')
编辑或其他人指出,由于checkStatus
是会员功能,您应该使用$this
。