1
Leechael 2012-01-30 23:51:20 +08:00
@wuxiaolin
您好,请问有没有更详细的简历呢? 或者试试回答这个,请根据下面示例编写 MagicObject 的源码: $user = new MagicObject; $user->isOwnerTo = function ($self, $car) { return ($self->id == $car->owner_id); }; $car = new StdClass; $car->owner_id; $car->owner_id = 1; $user->id = 1; assert($user->isOwnerTo($car)); 欢迎连同上述的答案和个人简历,发至我的邮箱: yanleech (at) gmail.com ;注意注明来自于 V2EX。 :) |
2
xinkiang 2012-06-03 19:45:26 +08:00
|
3
v4an 2012-06-03 19:50:18 +08:00
虽然不知道你们在说什么。
但还是觉得你们很牛的样子。 |
4
qq286735628 2012-06-03 20:39:56 +08:00
@livid 2楼调用Github后样式撑破了原有布局了
|
5
gee 2012-06-03 20:42:08 +08:00
@Leechael
我猜你这个MagicObject的意图是动态加方法和变量吧,@xinkiang的思路没错,也可以通过测试,可是那个MagicObject却没有实际用途啊 class MagicObject{ public $_mothods = array(); public $_vars = array(); public function __set($name,$value){ if(is_callable($value)) $this->_mothods[$name] = $value; else $this->_vars[$name] = $value; } public function __get($name){ if(isset($this->_vars[$name]))return $this->_vars[$name]; } public function __call($name,$args){ if(isset($this->_mothods[$name])){ array_unshift($args,$this); return call_user_func_array($this->_mothods[$name],$args); } } } |
6
Leechael 2012-06-28 01:46:39 +08:00
@gee
动态加方法之于 PHP 可能没有太多实际意义,主要还是看实现思路和想象能力。能做到什么和会不会做应该是两个不同的事情。 拿打牌作为类比,能做到什么就如你拿着怎么样的牌,在怎么进行一场牌局里面,手头上的好牌越多,自然能有更多的应变之术了。 |