我在Ubuntu 11.10。当我编写一个像echo phpinfo();
这样的简单脚本时,它会运行并显示没有错误。但如果我尝试在浏览器服务器错误页面上编写一些额外的PHP代码。这里有什么问题我不明白?
假设我将代码更改为以下内容,则会出现服务器错误;
<?php
class MyClass{
private $prop;
public function __construct(){
echo "The class \"".__CLASS__."\"was created";
}
public function __destruct(){
echo "The class \"".__CLASS__."\" was destroyed";
}
protected function getProperty(){
return $prop;
}
public function __toString(){
echo "__toString() method called.<br />";
return $this->getProperty().'<br />';
}
public function setProperty($prop){
$this->prop = $prop;
}
}
class MyOtherClass extends MyClass{
public function __construct(){
parent::__contruct();
echo "A new constructor in class \"".__CLASS__"\"";
}
public function newMethod(){
echo 'From a new method in class '.__CLASS__.'<br />';
}
}
$newClass = new MyOtherClass();
echo $newClass->getProperty();
?>
答案 0 :(得分:3)
class MyClass{
protected getProperty(){
//...
public __toString(){
//...
public setProperty($prop){
//...
class MyOtherClass extends MyClass{
public __construct(){
// ...
您在function
/ public
之后的几种方法中遗漏了protected
。
更多错误:
class MyOtherClass extends MyClass{
public function __construct(){
parent::__contruct();
echo "A new constructor in class \"".__CLASS__"\"";
}
//...
parent::_construct()
的情况下拼错了s
。 在echo
行中,__CLASS__
后面缺少.
连接运算符。
echo $newClass->getProperty();
MyClass::getProperty()
为protected
,因此您无法在此处拨打电话。