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

<?php 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/manual/zh/language.oop5.abstract.php

[PHP - 官方网站]

http://www.php/

[PHP - 关键词]

php

[PHP - 相关论坛]

http://php.board.newsmth/ http://bbs.pku.edu/, homepage看版 http://forum.csdn/SList/PHP/

[PHP - 下载]

AppServ 2.5.9, http://www.appservnetwork/

Zend Optimizer 3.3.0a, http://www.zend/products/zend_optimizer

phpMyAdmin 2.11.2, http://www.phpmyadmin/home_page/index.php

Zend Core 2.5.0, http://www.zend/products/zend_core

Zend Platform 3.0.3, http://www.zend/products/zend_platform

PHP 5.2.5, http://www.php/releases/5_2_5.php

Zend Studio 5.5, http://www.zend/products/zend_studio

Zend Guard 5.0, http://www.zend/products/zend_guard

[PHP - Manual手册]

foreach遍历数组, http://www.php/manual/zh/control-structures.foreach.php

SOAP configuration options missing documentation文档中丢失SOAP配置选项, http://bugs.php/bug.php?id=38644

PHP 的命令行模式, http://www.php/manual/zh/featuresmandline.php

位运算符, http://www.php/manual/zh/language.operators.bitwise.php#id2665181

file_exists检查文件或目录是否存在, http://www.php/manual/zh/function.file-exists.php

is_file判断给定文件名是否为一个正常的文件, http://www.php/manual/zh/function.is-file.php  

settype设置变量的类型, http://cn.php/manual/zh/function.settype.php#function.settype

is_numeric检测变量是否为数字或数字字符串, http://www.php/manual/zh/function.is-numeric.php

ksort对数组按照键名排序, http://www.php/manual/zh/function.ksort.php

[PHP - Manual手册 - 下载]

http://www.php/download-docs.php

[PHP - Manual手册 - 语言参考 - 类型]

字符串转换为数值, http://www.php/manual/zh/language.types.string.php#language.types.string.conversion

[PHP - Manual手册 - 第 12 章 变量]

全局和静态变量的引用, http://www.php/manual/zh/language.variables.scope.php#language.variables.scope.references

[PHP - Manual手册 - 第 13 章 常量]

魔术常量, http://www.php/manual/zh/language.constants.predefined.php

[PHP - Manual手册 - 第 15 章 运算符]

错误控制运算符, http://www.php/manual/zh/language.operators.errorcontrol.php

[PHP - Manual手册 - 语言参考 - 类与对象(PHP 5)]

Object cloning对象克隆, http://www.php/manual/zh/language.oop5.cloning.php

Class Abstraction类抽象, http://www.php/manual/zh/language.oop5.abstract.php

[PHP - Manual手册 - 第20章 异常处理]

概述, http://www.php/manual/zh/language.exceptions.php

用异常处理php改进流程

[PHP - Manual手册 - 第21章 引用的解释]

引用返回, http://www.php/manual/zh/language.references.return.php

[PHP - Manual手册 - 第 43 章 PHP 的命令行模式]

表 43.2. CLI 专用常量, http://www.php/manual/zh/featuresmandline.php#id2715646

[PHP - Manual手册 - V. Array 数组函数]

计算数组的交集, http://www.php/manual/zh/function.array-intersect.php

array_merge合并一个或多个数组, http://www.php/manual/zh/function.array-merge.php

reset将数组的内部指针指向第一个单元, http://www.php/manual/zh/function.reset.php

[PHP - Manual手册 - XVIII. CURL, 客户端URL库函数]

概述, http://www.php/manual/zh/ref.curl.php

curl_setopt设置cURL传输的选项, http://www.php/manual/zh/function.curl-setopt.php

[PHP - Manual手册 - XXII. Date/Time 日期/时间函数]

date格式化一个本地时间/日期, http://www.php/manual/zh/function.date.php

[PHP - Manual手册 - XXXIII. Error Handling and Logging Functions错误处理和日志函数]

概述, http://www.php/manual/zh/ref.errorfunc.php

[PHP - Manual手册 - XL. Filesystem 文件系统函数]

is_uploaded_file判断文件是否是通过 HTTP POST 上传的, http://www.php/manual/zh/function.is-uploaded-file.php

fgetcsv从文件指针中读入一行并解析 CSV 字段, http://www.php/manual/zh/function.fgetcsv.php

is_dir判断给定文件名是否是一个目录, http://www.php/manual/zh/function.is-dir.php

[PHP - Manual手册 - XLVII. Function Handling Functions函数管理函数]

register_shutdown_function注册一个脚本结束时调用的函数, http://www.php/manual/zh/function.register-shutdown-function.php

[PHP - Manual手册 - XC. Miscellaneous Functions杂项函数]

sleep延迟执行, http://www.php/manual/zh/ref.misc.php

uniqid生成唯一ID, http://www.php/manual/zh/function.uniqid.php

[PHP - Manual手册 - XCVIII. MySQL 函数]

mysql_real_escape_string转义SQL语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集, http://www.php/manual/zh/function.mysql-real-escape-string.php

[PHP - Manual手册 - CII. Network Functions网络函数]

setcookie发送一个cookie, http://www.php/manual/zh/function.setcookie.php

[PHP - Manual手册 - 函数参考 - PHP Options&Information - PHP选项与信息]

extension_loaded查询是否加载指定的扩展, http://www.php/manual/zh/function.extension-loaded.php

[PHP - Manual手册 - CXXVII. PostgreSQL 数据库函数]

pg_insert将数组插入到表中, http://www.php/manual/zh/index.php

[PHP - Manual手册 - CXXX. Program Execution Functions程序调用函数]

proc_open执行命令并打开用于输入输出的文件指针, http://www.php/manual/zh/function.proc-open.php

[PHP - Manual手册 - CXLIX. Session 会话处理函数]

session.save_path 定义了传递给存储处理器的参数, http://www.php/manual/zh/ref.session.php#ini.session.save-path

session.use_only_cookies指定是否在客户端仅仅使用 cookie 来存放会话 ID, http://www.php/manual/zh/ref.session.php#ini.session.use-only-cookies

[PHP - Manual手册 - CLIII. SOAP Functions - SOAP函数]

soap.wsdl_cache_enabled启用或禁用WSDL缓存功能, http://www.php/manual/zh/ref.soap.php#ini.soap.wsdl-cache-enabled

[PHP - Manual手册 - CLXI. String 字符串处理函数]

str_pad使用另一个字符串将一个字符串填充到指定长度, http://www.php/manual/zh/function.str-pad.php

strpos查找一个字符串第一次出现的位置, http://www.php/manual/zh/function.strpos.php

substr返回字符串中的一部分, http://www.php/manual/zh/function.substr.php

str_replace用替换字符串替换所有出现的搜索字符串, http://www.php/manual/zh/function.str-replace.php

[PHP - Manual手册 - CLXVI. Tidy Functions - Tidy函数]

概述, http://www.php/manual/zh/ref.tidy.php

[PHP - Manual手册 - CLXVII. Tokenizer Functions解析器代号函数]

token_get_all把给定源代码分解成解析器代号, http://www.php/manual/zh/function.token-get-all.php

[PHP - Manual手册 - CLXIX. URL 函数]

概述, http://www.php/manual/zh/ref.url.php

[PHP - Manual手册 - CLXX. Variable 变量函数]

serialize产生一个可存储的值的表示, http://www.php/manual/zh/function.serialize.php

[PHP - Manual手册 - CLXXXVII. Zip File Functions - Zip文件压缩函数]

概述, http://www.php/manual/zh/ref.zip.php

[PHP - Manual手册 - 附录 H. php.ini 配置选项]

register_globals 决定是否将 EGPCS(Environment,GET,POST,Cookie,Server)变量注册为全局变量, http://www.php/manual/zh/ini.core.php#ini.register-globals

short_open_tag决定是否允许使用PHP代码开始标志的缩写形式, http://www.php/manual/zh/ini.core.php#ini.short-open-tag

[PHP - Manual手册 - 附录 L. 保留字列表]

服务器变量:$_SERVER, http://www.php/manual/zh/reserved.variables.php#reserved.variables.server

[PHP - Manual手册 - 附录 Q. PHP 类型比较表]

表 Q.2. 用 == 进行松散比较, http://www.php/manual/zh/typesparisons.php#id9240444

[PHP - 应用实例]

语法着色, php.exe -s "%1" > "%1.html"

移除SimpleXML对象中的子对象

算24点

更多推荐

PHP - Manual手册 - 语言参考 - 类与对象(PHP 5)- Class Abstraction类抽象