PHP中不同类之间函数式调用对象与同类中对象的函数式使用

使用魔术方法__call可以实现对象间的函数式调用(以数组形式传递),也可以直接在本对象中使用__invoke(类似函数)。

<?php

class class1{

var $a;

function __call($name,$u){

if(class_exists($name))

$a=new class2();

return $a->__input($u[0]);

}

}

class class2{

function __construct(){

echo "对象已经建立"."<br>";

}

function __input($u){

if($u<5)

echo "小于5"."<br>";

else 

echo "大于或等于5"."<br>";

}

function __invoke($k){

if($k<5)

echo "小于5"."<br>";

else 

echo "大于或等于5"."<br>";

}

function __destruct(){

echo "对象已经销毁"."<br>";

}

}

$e=new class1();

$e->class2(2);

$e=null;

$e=new class2();

$e(9);

?>

调试结果为:

对象已经建立
小于5
对象已经销毁
对象已经建立
大于或等于5
对象已经销毁

总结:实现了不同对象的函数式调用,类的自动加载,也可用函数方法使用单独的类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值