仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1233|回复: 19
打印 上一主题 下一主题

[学习教程] PHP编程:活用php的self

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:32:41 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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吗?会,我能编好几个大表格排板的网页啦!
乐观 该用户已被删除
沙发
 楼主| 发表于 2015-6-23 16:04:02 | 显示全部楼层
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 02:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表