PHP面向对象程序设计方法实例详解
程序员文章站
2024-04-01 18:47:16
本文实例分析了php面向对象程序设计方法。分享给大家供大家参考,具体如下:
php5开始支持面向对象,示例如下:
本文实例分析了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数据库处理封装类实例