PHP面向对象相关特性
来源:互联网 发布:淘宝如何分享链接 编辑:程序博客网 时间:2024/06/07 11:44
1.类,命名空间,成员方法和类方法
定义类,hello.php:
<?phpclass Hello{ public function sayHello(){ echo 'hello php'; }}class Desktop{//一个php可以写多个类 public function work(){ echo 'work'; }}调用:
<?php/*面向对象特性在php5后出现*/require_once 'hello.php';$h = new Hello();$h->sayHello();//hello php$d = new Desktop();$d->work();//work
命名空间
新建文件选择php class
放入文件夹m,
<?php//命名空间namespace m;class HELLO2{ public function sayHello() { echo 'hello m'; }}同样方法建个放入m2:
<?phpnamespace mm;class HELLO2{ public function sayHello() { echo 'hello mm'; }}调用:
<?phprequire_once 'm/HELLO2.php';require_once 'm2/HELLO2.php';$h = new \m\HELLO2();$h->sayHello();//hello mecho '<br>';$h2 = new \mm\HELLO2();$h2->sayHello();//hello mm
成员方法和类方法
Man.php
<?phpclass Man { public function __construct(){//__construct() 构造方法 echo '构造方法在创建类的实例就执行'; }}调用:
<?phprequire_once 'Man.php';$m = new Man();
Man2.php
<?phpclass Man2 { /* 输入 /**后回车 */ /** * @param $age int 年龄 * @param $name string 姓名 */ public function __construct($age,$name){//__construct() $this->age = $age; $this->name = $name; } public function getAge(){//成员方法 return $this->age; } public function getName(){ return $this->name; } private $age,$name; //类方法,成员方法前+static,又叫静态方法 用来描述类的 public static function sayHello(){ echo '用来描述属性'; } private static $NUM = 0;//静态变量,只在类内部使用 const MAX_NUM=10;//静态常量 public static function sayHello2(){ Man2::$NUM++; if(Man2::$NUM>Man2::MAX_NUM){ throw new Exception('抛出异常'); } }}/**
* @param $age int 年龄
* @param $name string 姓名
*/
调用加提示
调用:
<?phprequire_once 'Man2.php';$m2 = new Man2(10,'m');//echo $m2->getName();//m//静态方法用::执行//Man2::sayHello();//类方法/静态方法 ::执行/*for($i=0;$i<10;$i++){ Man2::sayHello2();//没输出}*//*for($i=0;$i<11;$i++){ Man2::sayHello2();//Fatal error: Uncaught exception 'Exception' with message '抛出异常'}*/for($i=0;$i<Man2::MAX_NUM;$i++){ Man2::sayHello2();}
2.类的继承与方法重写
People.php<?phpclass People { /** * @param $age int 年龄 * @param $name string 姓名 * @param string $sex 性别 */ public function __construct($age,$name,$sex){//__construct() $this->age = $age; $this->name = $name; $this->sex = $sex; } public function getAge(){//成员方法 return $this->age; } public function getName(){ return $this->name; } public function getSex(){ return $this->sex; } private $age,$name,$sex; public function hi(){ echo $this->name.'say hi'; } public function hi2(){//和hi相同 echo $this->name.'say hi'; }}Man.php
<?phprequire_once 'People.php';class Man extends People{//继承 public function __construct($age,$name){ parent::__construct($age,$name,'男'); } public function hi2(){//重写 // parent::hi2();//执行父类的方法 echo "重写的".$this->getName();//不能用this.name }}index.php
<?phprequire_once 'Man.php';$m = new Man(10,'w ');//$m->hi();//w say hi$m->hi2();//重写的w
0 0
- PHP面向对象相关特性
- php的面向对象相关特性
- PHP面向对象特性
- PHP面向对象----继承特性
- PHP面向对象高级特性
- PHP面向对象特性-封装
- PHP面向对象特性-继承
- PHP面向对象特性-多态
- PHP基础----面向对象相关特性----10类和命名空间介绍
- PHP基础----面向对象相关特性----11成员方法和类方法
- PHP基础----面向对象相关特性----12类的继承与方法重写
- PHP---面向对象的3个特性
- PHP面向对象继承特性的笔记
- PHP面向对象编程三大特性之继承特性
- PHP5新特性: 更加面向对象化的PHP
- PHP5新特性: 更加面向对象化的PHP
- PHP面向对象的三大特性之封装性
- PHP面向对象的三大特性之封装性
- 【BZOJ 1629】 [Usaco2007 Demo]Cow Acrobats
- android SDK install
- zookeeper replicated模式
- iOS沙盒机制
- Xcode6设置启动图
- PHP面向对象相关特性
- 问候 Maven 他大爷(使用 Maven 建立一个普通 Java 项目)
- 实用数据结构---树状数组(二叉索引树)
- c#基础(三)----类型转换
- CodeForces 514D R2D2 and Droid Army RMQ+二分
- Lucene5 学习笔记(3) —— 重用 IndexReader 和常用的搜索方法
- 通讯录的简单实现
- 【leetcode】 Largest_Number
- iOS数据持久化