本文实例分析了PHP面向对象程序设计方法。分享给大家供大家参考,具体如下:

PHP5开始支持面向对象,示例如下:
<?php
class classname{
var $attr1;
var $attr2;
public $attribute;
const PI = 3.14;
// 构造函数
function __construct($param = 'default'){
echo "Constructor called with parameter $param<br />";
}
// 析构函数
function __destruct(){
echo '<br />destruct';
}
//
function oper1(){
echo 'oper1<br />';
}
function oper2($param){
$this->attr1 = $param;
echo $this->attr1;
}
protected function oper3(){
echo 'this is protected function<br />';
}
// 禁止继承
final function oper5(){
}
function __get($name){
return $this->$name;
}
function __set($name, $value){
$this->$name = $value;
}
// 静态方法
static function double($param){
return $param * $param;
}
}
$a = new classname('First');
$b = new classname('Second');
$c = new classname();
$c->oper2("hello");
echo '<br />';
echo $c->attr1;
echo '<br /><br />';
echo ' Per-Class常量 classname::PI -'.classname::PI;
echo '<br />静态方法: classname::double(3) - ' . classname::double(3);
echo '<br />';
// 实现继承
echo '实现继承<br />';
class B extends classname{
function oper4(){
$this->oper3(); // protected方法只能在
}
function oper1(){ // 重载
echo 'this is class B /'s oper1. <br />';
}
}
$d = new B("forth");
$d->oper1();
$d->oper4();
// 接口
interface Displayable
{
function display();
function show();
}
class C implements Displayable
{
function display(){
echo '这是对应接口的方法.<br />';
}
function show(){}
}
$e = new C();
$e->display();
echo '检查$e是否为C的实例:';
echo ($e instanceof C) ? 'Yes':'No';
// 克隆对象
$f = clone $e;
echo '<br /><br />可以使用__clone()方法,在使用clone关键字时调用';
// 抽象类
abstract class E{}
// $f = new E(); // 这行将报错,不能实例化抽象类
// 参数重载,多态
class F{
public $a = 1;
public $b = 2;
public $c = 3;
function displayString($elem){
echo '<br />string:'.$elem;
}
function displayInt($elem){
echo '<br />int:'.$elem;
}
// 注意参数$p,是作为数组传入,必须使用下标访问
function __call($method, $p){
if ($method == 'display'){
if (is_string($p[0])){
$this->displayString($p[0]);
} else {
$this->displayInt($p[0]);
}
}
}
}
$g = new F();
$g->display('abc');
// 迭代器,读出实例的所有属性
foreach ($g as $att){
echo '<br />'.$att;
}
// 反射
echo '<br />';
$class = new ReflectionClass('F');
echo '<pre>';
echo $class;
echo '</pre>';
?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
# PHP
# 面向对象
# 程序设计
# php类的定义与继承用法实例
# PHP面向对象程序设计OOP继承用法入门示例
# PHP面向对象程序设计高级特性详解(接口
# 继承
# 抽象类
# 析构
# 克隆等)
# PHP面向对象程序设计之命名空间与自动加载类详解
# PHP面向对象程序设计之类与反射API详解
# PHP面向对象自动加载机制原理与用法分析
# PHP入门教程之面向对象的特性分析(继承
# 多态
# 接口
# 抽象方法等)
# PHP入门教程之面向对象基本概念实例分析
# PHP 面向对象 final类与final方法
# PHP面向对象之旅:深入理解static变量与方法
# php面向对象中static静态属性和静态方法的调用
# PHP面向对象程序设计类的定义与用法简单示例
# 这是
# 操作技巧
# 相关内容
# 感兴趣
# 给大家
# 可以使用
# 报错
# 更多关于
# 所述
# 这行
# 运算符
# 迭代
# 编程技巧
# 只能在
# function
# param
相关文章:
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何通过建站之星自助学习解决操作问题?
如何获取开源自助建站系统免费下载链接?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
实现虚拟支付需哪些建站技术支撑?
如何在Tomcat中配置并部署网站项目?
C++时间戳转换成日期时间的步骤和示例代码
C#如何使用XPathNavigator高效查询XML
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何高效配置香港服务器实现快速建站?
如何在IIS管理器中快速创建并配置网站?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
如何撰写建站申请书?关键要点有哪些?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
家庭建站与云服务器建站,如何选择更优?
建站之星安装后如何配置SEO及设计样式?
如何彻底卸载建站之星软件?
Thinkphp 中 distinct 的用法解析
建站上市公司网站建设方案与SEO优化服务定制指南
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
网站制作公司排行榜,四大门户网站排名?
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
小程序网站制作需要准备什么资料,如何制作小程序?
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
青岛网站建设如何选择本地服务器?
如何续费美橙建站之星域名及服务?
网页设计网站制作软件,microsoft office哪个可以创建网页?
如何通过万网虚拟主机快速搭建网站?
黑客如何通过漏洞一步步攻陷网站服务器?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
如何快速上传自定义模板至建站之星?
建站之星Pro快速搭建教程:模板选择与功能配置指南
如何设计高效校园网站?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
招贴海报怎么做,什么是海报招贴?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
已有域名如何快速搭建专属网站?
TestNG的testng.xml配置文件怎么写
如何获取PHP WAP自助建站系统源码?
一键网站制作软件,义乌购一件代发流程?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
如何实现建站之星域名转发设置?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
网页设计与网站制作内容,怎样注册网站?
如何在Windows服务器上快速搭建网站?
C++如何使用std::optional?(处理可选值)
如何用VPS主机快速搭建个人网站?
Android自定义listview布局实现上拉加载下拉刷新功能
*请认真填写需求信息,我们会在24小时内与您取得联系。