php面向对象高级功能

php不支持函数重载(但可以使用__call模拟),不支持运算符重载,不支持多继承。

延迟静态绑定(版本需要php5.3以后):

<?php
class A {
	static function call() {
		echo __CLASS__;
	}

	static function test() {
		self :: call(); //不属于静态延迟,因为使用的是self表示自己
	}
}

class B extends A {
	static function call() {
		echo __CLASS__;
	}
}

B :: test(); 

class Employee {
	public static $favSport = "Football";
	public static function watchTV() {
		echo "Watching " . static :: $favSport; //属于静态绑定,使用的是static
	}
}
class Executive extends Employee {
	public static $favSport = "Polo";
}

echo Executive :: watchTV();
?>

 

__autoload方法:

<?php
	function __autoload($name){
		echo 'load :'. $name;
	}
	
	$a = new A();
?>

在尝试初始化一个类A时,会调用__autoload方法,参数是类名。


Total views.

© 2013 - 2018. All rights reserved.

Powered by Hydejack v6.6.1