=波波日志 > PHP/apache/Perl > php学习---class=
php学习---class
特殊的方法__autoload()。它不是一个类方法,而是一个单独的函数;也就是说,可以在任何类声明之外声明这个函数。如果实现了这个函数,它将在实例化一个还没有被声明的类时自动调用__autoload()方法的主要用途是尝试包括或要求任何用来初始化所需类的文件。如下所示,该代码实现将包括一个具有与该类相同名称的文件。
function __autoload($name){
include_once $name.'.php';
}
function __autoload($name){
include_once $name.'.php';
}
+展开
-PHP
ini_set("date.timezone","PRC");//设置时间区域
interface Display{//PHP5
function Display();
function __set($name,$value);
function __get($name);
}
abstract class ABSCls{//PHP5
abstract function funcABS($x,$y);
function ABSF(){
return "抽象类的抽象方法";
}
}
class base implements Display{
var $name;
function __construct($name){//PHP5的构造函数
$this->name=$name;
}
function base($name){//PHP5的构造函数
$this->name=$name;
}
function SM(){
echo "Base-->".date("H:i:s"),"<br/>";
}
function Display(){
echo "Base","<br/>";
}
function __destruct(){//PHP5的虚构函数
echo "Base destruct->{$this->name}<br/>";
unset($this->name);
}
//属性读取设置器
function __get($name){
return $this->$name;
}
function __set($name,$value){
$this->$name=$value;
}
}
class child extends base{
function child(){//PHP4的构造函数
parent::base($name);
}
function __construct($name){//PHP5的构造函数
parent::__construct($name);
}
function SM(){
parent::SM();
echo "Child-->".date("H:i:s"),"<br/>";
}
function Display(){
parent::Display();
echo "Child","<br/>";
}
function __destruct(){//PHP5+的虚构函数
parent::__destruct();
}
function __clone(){//PHP5+引入的克隆方法,如果存在次函数则使用关键字clone时将执行该方法
$this->name=$this->name." clone at time:".date("H:i:s");
}
}
class overload{//重载类,需要实现__call()方法
function __call($method,$p){
if($method=="overFunc"){
if(is_object($p))echo "参数为对象:<br/>".get_class($p)."<br/>";
elseif (is_array($p)){
echo "参数为数组:<br/>";
foreach($p as $pv)echo $pv." ";
}
else echo "其他类型参数--".gettype($p)."--".$p;
}
}
}
//迭代器
class IObjectIterator implements Iterator{
private $obj,$count,$currentIndex;
function __construct($obj){
$this->obj=$obj;
$this->count=count($this->obj->data);
}
function rewind(){
$this->currentIndex=0;
}
function valid(){
return $this->count>$this->currentIndex;
}
function key(){
return $this->currentIndex;
}
function current(){
return $this->obj->data[$this->currentIndex];
}
function next(){
$this->currentIndex++;
}
}
class IObject implements iteratorAggregate{
public $data=array();
function __construct($in){
$this->data=$in;
}
function getIterator(){
return new IObjectIterator($this);
}
function __toString(){//如果存在这个方法,则打印此类的实例时被调用
return "打印返回值测试";
}
}
//final可以标记类不可以继承或者方法不能重载[就是子类中不能存在和父类一样的函数名]
/*final */class fcls{//不可以继承的类
function __construct(){}
/*final */function ffuc(){}
}
class cfcls extends fcls implements Display{
function ffuc(){}
function display(){}
function __get($name){}
function __set($name,$value){}
}
/*//克隆测试代码
$o=new child('bb');
$copy=clone $o;
echo '$copy->name='.$copy->name."<br>";
echo '$o->name='.$o->name."<br>";*/
/*//抽象类测试代码
echo 'ABSCls:'.ABSCls::ABSF()."<br>";*/
/*//迭代测试代码和__toString()测试
$o=new IObject(array(2,4,6,8,10));
$myIterator=$o->getIterator();
for($myIterator->rewind();$myIterator->valid();$myIterator->next()){
$key=$myIterator->key();
$value=$myIterator->current();
echo "$key => $value <br/>";}
echo $o;//调用__toString();
*/
/*//反射测试代码
$info=new ReflectionClass("child");
echo "<pre>$info</pre>";*/
interface Display{//PHP5
function Display();
function __set($name,$value);
function __get($name);
}
abstract class ABSCls{//PHP5
abstract function funcABS($x,$y);
function ABSF(){
return "抽象类的抽象方法";
}
}
class base implements Display{
var $name;
function __construct($name){//PHP5的构造函数
$this->name=$name;
}
function base($name){//PHP5的构造函数
$this->name=$name;
}
function SM(){
echo "Base-->".date("H:i:s"),"<br/>";
}
function Display(){
echo "Base","<br/>";
}
function __destruct(){//PHP5的虚构函数
echo "Base destruct->{$this->name}<br/>";
unset($this->name);
}
//属性读取设置器
function __get($name){
return $this->$name;
}
function __set($name,$value){
$this->$name=$value;
}
}
class child extends base{
function child(){//PHP4的构造函数
parent::base($name);
}
function __construct($name){//PHP5的构造函数
parent::__construct($name);
}
function SM(){
parent::SM();
echo "Child-->".date("H:i:s"),"<br/>";
}
function Display(){
parent::Display();
echo "Child","<br/>";
}
function __destruct(){//PHP5+的虚构函数
parent::__destruct();
}
function __clone(){//PHP5+引入的克隆方法,如果存在次函数则使用关键字clone时将执行该方法
$this->name=$this->name." clone at time:".date("H:i:s");
}
}
class overload{//重载类,需要实现__call()方法
function __call($method,$p){
if($method=="overFunc"){
if(is_object($p))echo "参数为对象:<br/>".get_class($p)."<br/>";
elseif (is_array($p)){
echo "参数为数组:<br/>";
foreach($p as $pv)echo $pv." ";
}
else echo "其他类型参数--".gettype($p)."--".$p;
}
}
}
//迭代器
class IObjectIterator implements Iterator{
private $obj,$count,$currentIndex;
function __construct($obj){
$this->obj=$obj;
$this->count=count($this->obj->data);
}
function rewind(){
$this->currentIndex=0;
}
function valid(){
return $this->count>$this->currentIndex;
}
function key(){
return $this->currentIndex;
}
function current(){
return $this->obj->data[$this->currentIndex];
}
function next(){
$this->currentIndex++;
}
}
class IObject implements iteratorAggregate{
public $data=array();
function __construct($in){
$this->data=$in;
}
function getIterator(){
return new IObjectIterator($this);
}
function __toString(){//如果存在这个方法,则打印此类的实例时被调用
return "打印返回值测试";
}
}
//final可以标记类不可以继承或者方法不能重载[就是子类中不能存在和父类一样的函数名]
/*final */class fcls{//不可以继承的类
function __construct(){}
/*final */function ffuc(){}
}
class cfcls extends fcls implements Display{
function ffuc(){}
function display(){}
function __get($name){}
function __set($name,$value){}
}
/*//克隆测试代码
$o=new child('bb');
$copy=clone $o;
echo '$copy->name='.$copy->name."<br>";
echo '$o->name='.$o->name."<br>";*/
/*//抽象类测试代码
echo 'ABSCls:'.ABSCls::ABSF()."<br>";*/
/*//迭代测试代码和__toString()测试
$o=new IObject(array(2,4,6,8,10));
$myIterator=$o->getIterator();
for($myIterator->rewind();$myIterator->valid();$myIterator->next()){
$key=$myIterator->key();
$value=$myIterator->current();
echo "$key => $value <br/>";}
echo $o;//调用__toString();
*/
/*//反射测试代码
$info=new ReflectionClass("child");
echo "<pre>$info</pre>";*/
类别:PHP/apache/Perl 作者:波波 日期:2009-07-10 【评论:0】
暂时没有评论!
发表留言
百度赞助
同类热门博文
- ·IE里Cookie跨域不能..
- ·php隐形字符65279
- ·Apache NameVirtual..
- ·Apache2.2提示Canno..
- ·Cookie在IE浏览器跨..
- ·获取google的pr值
- ·php根据访问者ip地址..
- ·PHP“Cannot use ob..
博格Tag
- flash/flex/fcs/AIR(752)
- Asp.Net/C#/WCF(598)
- 操作系统及应用软件(376)
- JavaScript/Ajax(330)
- SQL及数据库(134)
- 黑客技术(115)
- Asp/VBScript(111)
- HTML/WML/CSS兼容/XML(102)
- PHP/apache/Perl(96)
- 网站排名及优化(92)
- 其他(75)
- showbo日志(66)
- lucene.net/分词技术(33)
- 计算机网络(26)
- 机械重工(26)
- C#设计模式(24)
- Google Maps开发(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(11)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
最新博文
- ·PHP socket套接字学..
- ·Warning Cannot sen..
- ·php与flash as3 soc..
- ·php socket套接字聊..
- ·php获取来源页面
- ·CentOS5.5配置Apach..
- ·wget使用详解
- ·curl使用详解
随机博文
