龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php的多态

时间:2014-07-22 14:51来源: 作者: 点击:
分享到:
p适用平台PHP5.0以上。br / php因为其语法特点,不支持固定变量类型,它是根据上下文来确定当前的类型是什么,即,最后一次赋值是什么类型,现在它就是什么类型。也就不存在将子类

适用平台PHP5.0以上。
php因为其语法特点,不支持固定变量类型,它是根据上下文来确定当前的类型是什么,即,最后一次赋值是什么类型,现在它就是什么类型。也就不存在将子类变量赋给基类变量的说法了。但是php函数的参数,是可以规定类型的,如下面的show函数。如果传递一个不是此类型的参数,将会在运行时报错。废话不多说,看下面代码,大家可以运行运行试试。
欢迎板砖。


<?php

/**
 * 虚基类
 */
abstract class T{
	abstract function show();
}

/**
 * 子类
 */
class T1 extends T {
	public function show(){
		echo "T1 from abstract class!<br/>";
	}
	public function show1(){
		echo "T1 not from abstract class!<br/>";
	}
}

/**
 * 子类
 */
class T2 extends T {
	public function show(){
		echo "T2 from abstract class!<br/>";
	}
	public function show1(){
		echo "T2 not from abstract class!<br/>";
	}
}

class T3 {
	public function show(){
		echo "in T3!<br/>";
	}
	public function show1(){
		echo "in T3!<br/>";
	}
}

$t1 = new T1();
$t2 = new T2();
$t3 = new T3();

show($t1);
show($t2);

//报错,$t3不是T,所以被show函数调用的时候,会报类型不对的错误
//show($t3);

function show( T $t ){//注意参数的类型
	$t->show();
	$t->show1();
}
?>
精彩图集

赞助商链接