函数
<meta charset='utf-8'>
<?php
function im_GiveGift()
{
return array(
'GiveFlowers' => function() {die('接口未定义');},
'GiveChocolate' => function() { die('接口未定义');},
);
}
function SchoolGirl(Array $data)
{
extract($data);
return array(
'Name' => function() use($name)
{
return $name;
}
);
}
function Pursuit($mm)
{
return array_merge(
im_GiveGift(),
array(
'GiveFlowers' => function() use($mm)
{
echo $mm['Name']().' 送你鲜花<br/>';
},
'GiveChocolate' => function() use($mm)
{
echo $mm['Name']().' 送你巧克力<br/>';
},
)
);
}
function Proxy($mm)
{
$gg = Pursuit($mm);
return array_merge(
im_GiveGift(),
array(
im_GiveGift(),
'GiveFlowers' => function() use($gg)
{
$gg['GiveFlowers']();
},
'GiveChocolate' => function() use($gg)
{
$gg['GiveChocolate']();
},
)
);
}
$jiaojiao = SchoolGirl(array('name' => 'jiaojiao'));
$daili = Proxy($jiaojiao);
$daili['GiveFlowers']();
$daili['GiveChocolate']();
/* c_daili.php */
面向对象
<meta charset='utf-8'>
<?php
//送礼物
interface GiveGift
{
function GiveFlowers();
function GiveChocolate();
}
class SchoolGirl
{
private $name;
public function Name($value = '')
{
if ($value !== '') $this->name = $value;
return $this->name;
}
}
class Pursuit implements GiveGift
{
private $mm = Null;
public function __construct(SchoolGirl $mm)
{
$this->mm = $mm;
}
public function GiveFlowers()
{
echo $this->mm->Name(),' 送你鲜花<br/>';
}
public function GiveChocolate()
{
echo $this->mm->Name(),' 送你巧克力<br/>';
}
}
class Proxy implements GiveGift
{
private $gg = Null; //Pursuit
public function __construct(SchoolGirl $mm)
{
$this->gg = new Pursuit($mm);
}
public function GiveFlowers()
{
$this->gg->GiveFlowers();
}
public function GiveChocolate()
{
$this->gg->GiveChocolate();
}
}
$jiaojiao = new SchoolGirl();
$jiaojiao->Name('jiaojiao');
$daili = new Proxy($jiaojiao);
$daili->GiveFlowers();
$daili->GiveChocolate();
/* c_daili,php */