PHP类实例教程(十七):abstract类和abstract方法
可以使用abstract来修饰一个类或者方法。
用abstract修饰的类表示这个类是一个抽象类,用abstract修饰的方法表示这个方法是一个抽象方法。
抽象类不能被实例化。
抽象方法是只有方法声明,而没有方法的实现内容。
abstract 抽象类
可以使用abstract来修饰一个类。
用abstract修饰的类表示这个类是一个抽象类。
抽象类不能被实例化。
这是一个简单抽象的方法,如果它被直接实例化,系统会报错。<?php
//定义一个抽象类
abstract class User
{
public function __toString() {
return get_class($this);
}
}
//实例化这个类会出现错误
echo new User();
?>
下面例子的 NormalUser 继承自 User类,就可以被实例化了。
<?php
//定义一个抽象类
abstract class User
{
public function __toString() {
return get_class($this);
}
}
//实例化这个类会出现错误
echo new User();
class NormalUser extends User
{
}
$a = new NormalUser();
echo "这个类" . $a . "的实例";
?>
单独设置一个抽象类是没有意义的,只有有了抽象方法,抽象类才有了血肉。下面介绍抽象方法。
abstract 抽象方法
用abstract修饰的类表示这个方法是一个抽象方法。
抽象方法,只有方法的声明部分,没有方法体。
抽象方法没有 {} ,而采用 ; 结束。
一个类中,只要有一个抽象方法,这个类必须被声明为抽象类。
抽象方法在子类中必须被重写。
下面是一个抽象类,其中有两个抽象方法,分别是 setSal() 和 getSal()。用来取回 $sal 员工的工资。
<?php
abstract class User
{
protected $sal = 0;
//这里定义的抽象方法。
//注意抽象方法没有方法体,而且方法结束使用 ; 号。
abstract function getSal();
abstract function setSal();
//定义它的__tostring方法
public function __toString() {
return get_class($this);
}
}
?>
既然User类不能被直接继承,我们写一个NormalUser类继承自User类。当我们写成如下代码时,系统会报错。 这个错误告诉我们,在 User类中有两个抽象方法,我们必须在子类中重写这两个方法。
<?php
abstract class User
{
protected $sal = 0;
//这里定义的抽象方法。
//注意抽象方法没有方法体,而且方法结束使用 ; 号。
abstract function getSal();
abstract function setSal();
//定义它的__tostring方法
public function __toS
相关文档:
我的gentoo系统flash无法显示中文字体,而且无法睡眠和待机,有功夫再研究一下如何解决吧
因为要开发一个富文本过滤的php扩展,因此研究了一下php扩展的开发技术。
php.net上的文档写的不全。还要到处找。
关于富文本过滤,就是说给一段混杂了html,js,css的文本,过滤出安全的部分,因此要做html,css解析,黑白名单设计 ......
0、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。
1、如果能将类的方法定义成static,就尽 ......
前几天在Firebug扩展开发一文中就提到过Firephp这个基于Firebug的插件,通过使用Firephp你可以在Firebug的Console栏中看到要调试的数据,而不影响php程序的正常执行,所以说,这东西对于Ajax开发是很有帮助的!下面一起来看下Firephp的使用方法。
第一步:安装
1.如果你的FireFox没有Firebug这个插件的话,首先要安装Fire ......
http://php.net/manual/en/reserved.variables.httprawpostdata.php
http://www.cnblogs.com/mustardpeanut/archive/2009/06/15/1503395.html
http://blog.csdn.net/letianok/archive/2009/02/27/3941731.aspx
http://www.woria.cn/blog/read.php/596.htm ......