PHP - Manual手册 - 语言参考 - 类与对象(PHP 5)- Class Abstraction类抽象
Class Abstraction
PHP 5 introduces abstract classes and methods. It is not allowed to create an instance of a class that has been defined as abstract. Any class that contains at least one abstract method must also be abstract. Methods defined as abstract simply declare the method's signature they cannot define the implementation.
When inheriting from an abstract class, all methods marked abstract in the parent's class declaration must be defined by the child; additionally, these methods must be defined with the same (or a less restricted) visibility. For example, if the abstract method is defined as protected, the function implementation must be defined as either protected or public, but not private.
Example#1 Abstract class example
abstract class AbstractClass
{
// Force Extending class to define this method
abstract protected function getValue();
abstract protected function prefixValue($prefix);
// Common method
public function printOut() {
print $this->getValue() . "/n";
}
}
class ConcreteClass1 extends AbstractClass
{
protected function getValue() {
return "ConcreteClass1";
}
public function prefixValue($prefix) {
return "{$prefix}ConcreteClass1";
}
}
class ConcreteClass2 extends AbstractClass
{
public function getValue() {
return "ConcreteClass2";
}
public function prefixValue($prefix) {
return "{$prefix}ConcreteClass2";
}
}
$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue('FOO_') ."/n";
$class2 = new ConcreteClass2;
$class2->printOut();
echo $class2->prefixValue('FOO_') ."/n";
?>
上例将输出:
ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2
Old code that has no user-defined classes or functions named 'abstract' should run without modifications.
[Class Abstraction类抽象 - 文档]
http://www.php.net/manual/zh/language.oop5.abstract.php
[PHP - 官方网站]
http://www.php.net/[PHP - 关键词]
php[PHP - 相关论坛]
http://php.board.newsmth.net/http://bbs.pku.edu.cn/, homepage看版
http://forum.youkuaiyun.com/SList/PHP/
[PHP - 下载]
AppServ 2.5.9, http://www.appservnetwork.com/Zend Optimizer 3.3.0a, http://www.zend.com/products/zend_optimizer
phpMyAdmin 2.11.2, http://www.phpmyadmin.net/home_page/index.php
Zend Core 2.5.0, http://www.zend.com/products/zend_core
Zend Platform 3.0.3, http://www.zend.com/products/zend_platform
PHP 5.2.5, http://www.php.net/releases/5_2_5.php
Zend Studio 5.5, http://www.zend.com/products/zend_studio
Zend Guard 5.0, http://www.zend.com/products/zend_guard
[PHP - Manual手册]
foreach遍历数组, http://www.php.net/manual/zh/control-structures.foreach.phpSOAP configuration options missing documentation文档中丢失SOAP配置选项, http://bugs.php.net/bug.php?id=38644
PHP 的命令行模式, http://www.php.net/manual/zh/features.commandline.php
位运算符, http://www.php.net/manual/zh/language.operators.bitwise.php#id2665181
file_exists检查文件或目录是否存在, http://www.php.net/manual/zh/function.file-exists.php
is_file判断给定文件名是否为一个正常的文件, http://www.php.net/manual/zh/function.is-file.php
settype设置变量的类型, http://cn.php.net/manual/zh/function.settype.php#function.settype
is_numeric检测变量是否为数字或数字字符串, http://www.php.net/manual/zh/function.is-numeric.php
ksort对数组按照键名排序, http://www.php.net/manual/zh/function.ksort.php
[PHP - Manual手册 - 下载]
http://www.php.net/download-docs.php[PHP - Manual手册 - 语言参考 - 类型]
字符串转换为数值, http://www.php.net/manual/zh/language.types.string.php#language.types.string.conversion
[PHP - Manual手册 - 第 12 章 变量]
[PHP - Manual手册 - 第 13 章 常量]
魔术常量, http://www.php.net/manual/zh/language.constants.predefined.php
[PHP - Manual手册 - 第 15 章 运算符]
错误控制运算符, http://www.php.net/manual/zh/language.operators.errorcontrol.php
[PHP - Manual手册 - 语言参考 - 类与对象(PHP 5)]
Object cloning对象克隆, http://www.php.net/manual/zh/language.oop5.cloning.phpClass Abstraction类抽象, http://www.php.net/manual/zh/language.oop5.abstract.php
[PHP - Manual手册 - 第20章 异常处理]
概述, http://www.php.net/manual/zh/language.exceptions.php
用异常处理php改进流程
[PHP - Manual手册 - 第21章 引用的解释]
引用返回, http://www.php.net/manual/zh/language.references.return.php
[PHP - Manual手册 - 第 43 章 PHP 的命令行模式]
表 43.2. CLI 专用常量, http://www.php.net/manual/zh/features.commandline.php#id2715646
[PHP - Manual手册 - V. Array 数组函数]
计算数组的交集, http://www.php.net/manual/zh/function.array-intersect.phparray_merge合并一个或多个数组, http://www.php.net/manual/zh/function.array-merge.php
reset将数组的内部指针指向第一个单元, http://www.php.net/manual/zh/function.reset.php
[PHP - Manual手册 - XVIII. CURL, 客户端URL库函数]
概述, http://www.php.net/manual/zh/ref.curl.php
curl_setopt设置cURL传输的选项, http://www.php.net/manual/zh/function.curl-setopt.php
[PHP - Manual手册 - XXII. Date/Time 日期/时间函数]
date格式化一个本地时间/日期, http://www.php.net/manual/zh/function.date.php[PHP - Manual手册 - XXXIII. Error Handling and Logging Functions错误处理和日志函数]
概述, http://www.php.net/manual/zh/ref.errorfunc.php [PHP - Manual手册 - XL. Filesystem 文件系统函数]
is_uploaded_file判断文件是否是通过 HTTP POST 上传的, http://www.php.net/manual/zh/function.is-uploaded-file.php
fgetcsv从文件指针中读入一行并解析 CSV 字段, http://www.php.net/manual/zh/function.fgetcsv.php
is_dir判断给定文件名是否是一个目录, http://www.php.net/manual/zh/function.is-dir.php
[PHP - Manual手册 - XLVII. Function Handling Functions函数管理函数]
[PHP - Manual手册 - XC. Miscellaneous Functions杂项函数]
sleep延迟执行, http://www.php.net/manual/zh/ref.misc.php
uniqid生成唯一ID, http://www.php.net/manual/zh/function.uniqid.php
[PHP - Manual手册 - XCVIII. MySQL 函数]
[PHP - Manual手册 - CII. Network Functions网络函数]
setcookie发送一个cookie, http://www.php.net/manual/zh/function.setcookie.php
[PHP - Manual手册 - 函数参考 - PHP Options&Information - PHP选项与信息]
extension_loaded查询是否加载指定的扩展, http://www.php.net/manual/zh/function.extension-loaded.php
[PHP - Manual手册 - CXXVII. PostgreSQL 数据库函数]
pg_insert将数组插入到表中, http://www.php.net/manual/zh/index.php[PHP - Manual手册 - CXXX. Program Execution Functions程序调用函数]
proc_open执行命令并打开用于输入输出的文件指针, http://www.php.net/manual/zh/function.proc-open.php
[PHP - Manual手册 - CXLIX. Session 会话处理函数]
session.save_path 定义了传递给存储处理器的参数, http://www.php.net/manual/zh/ref.session.php#ini.session.save-path[PHP - Manual手册 - CLIII. SOAP Functions - SOAP函数]
[PHP - Manual手册 - CLXI. String 字符串处理函数]
str_pad使用另一个字符串将一个字符串填充到指定长度, http://www.php.net/manual/zh/function.str-pad.phpstrpos查找一个字符串第一次出现的位置, http://www.php.net/manual/zh/function.strpos.php
substr返回字符串中的一部分, http://www.php.net/manual/zh/function.substr.php
str_replace用替换字符串替换所有出现的搜索字符串, http://www.php.net/manual/zh/function.str-replace.php
[PHP - Manual手册 - CLXVI. Tidy Functions - Tidy函数]
概述, http://www.php.net/manual/zh/ref.tidy.php[PHP - Manual手册 - CLXVII. Tokenizer Functions解析器代号函数]
token_get_all把给定源代码分解成解析器代号, http://www.php.net/manual/zh/function.token-get-all.php
[PHP - Manual手册 - CLXIX. URL 函数]
概述, http://www.php.net/manual/zh/ref.url.php[PHP - Manual手册 - CLXX. Variable 变量函数]
serialize产生一个可存储的值的表示, http://www.php.net/manual/zh/function.serialize.php
[PHP - Manual手册 - CLXXXVII. Zip File Functions - Zip文件压缩函数]
概述, http://www.php.net/manual/zh/ref.zip.php[PHP - Manual手册 - 附录 H. php.ini 配置选项]
register_globals 决定是否将 EGPCS(Environment,GET,POST,Cookie,Server)变量注册为全局变量, http://www.php.net/manual/zh/ini.core.php#ini.register-globalsshort_open_tag决定是否允许使用PHP代码开始标志的缩写形式, http://www.php.net/manual/zh/ini.core.php#ini.short-open-tag
[PHP - Manual手册 - 附录 L. 保留字列表]
服务器变量:$_SERVER, http://www.php.net/manual/zh/reserved.variables.php#reserved.variables.server
[PHP - Manual手册 - 附录 Q. PHP 类型比较表]
表 Q.2. 用 == 进行松散比较, http://www.php.net/manual/zh/types.comparisons.php#id9240444
[PHP - 应用实例]
语法着色, php.exe -s "%1" > "%1.html"
移除SimpleXML对象中的子对象