|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。 class A{
private $handle;
public funciton __construct(){
}
public function say($word){
if(!isset($handle)){
$this->__construct();
}
echo $word;
}
}
class B extends A{
private $word;
public funciton __construct($word){
$this->word = $word;
}
pulbi function call(){
$this->say($this->word);
}
}
$b = new B('hello');
$b->call();
运转这段代码发明不会输入 ‘hello’,
细心看看,发明class A的say办法中 $this->__contruct()很有成绩,原本是想挪用class A的机关函数,实践上挪用了B
这是得利用 self
这个关头字润色的意义都暗示"静态",在PHP手册中提到self, parent和static这几个关头字,但实践上除static是关头字之外,其他两个均不是关头字,在手册的关头字列表中也没有这两个关头字,要验证这一点很复杂:
var_dump(self); // -> string(4) "self"
下面的代码并没有报错,假如你把error_reporting(E_ALL)翻开,就可以看到实践是甚么情形了:运转这段代码会呈现“ Notice: Use of undefined constant self - assumed 'self'“,也就是说PHP把self当做一个通俗常量了,测验考试不决义的常量会把产量自己当做一个字符串,例如上例的”self",不外同时会出一个NOTICE,这就是说self这个标示符并没有甚么特别的。
self是一个特别类,它指向以后类,但只要在类界说外部才无效,它不止请求在类的界说外部,还请求在类的高低文情况,好比 new self()的时分,这时候self就指向以后类。
因而class A的say办法 改成 self::__parent()便可
会HTML吗?会,我能编好几个大表格排板的网页啦! |
|