充滿濃濃感情的兩段代碼。 1.牛郎織女和牛 2.說不出的愛 讀懂之後,你有什麼感想?
1.牛郎織女和牛的故事,請問他們做了什麼?
<?php class Biology { public function say ($word) { echo $word,"\n"; } } // 牛 class Niu extends Biology{ } // 牛郎 class Niulang extends Biology{ public function shangQiao($niu) { echo "騎牛上橋\n"; } public function xiaQiao($niu) { echo "騎牛下橋\n"; } } // 織女 class Zhinv extends Biology{ public function shangQiao() { echo "織女上橋\n"; } public function xiaQiao() { echo "織女下橋\n"; } } //橋 class Qiao { public function isOk() { return '77' == date('md'); } } // 牛郎織女開污撒狗糧 class SaGouLiang { private $niulang; private $zhinv; private $niu; private $qiao; public function __construct() { $this->niulang = new Niulang(); $this->zhinv = new Zhinv(); $this->niu = new Niu(); $this->qiao = new Qiao(); } /** * 開灑狗糧 **/ public function kaiSa() { if (!$this->qiao->isOk()) { return; } $this->niulang->shangqiao($this->niu); $this->zhinv->shangqiao(); while ($this->qiao->isOk()) { $this->niulang->say("妮,愛你"); $this->zhinv->say("郎,想你"); $this->niu->say("哞哞"); sleep(3600); } $this->niulang->xiaqiao($this->niu); $this->zhinv->xiaqiao(); } } $nz = new SaGouLiang(); while (true) { $nz->kaiSa(); }
2.找不到對象說愛(Fatal error: Call to a member function on a non-object), 他怎麼才能說出愛?
<?php class Lover { public function getName() { return "lover"; } } class LoverFacotry { public static function getLover($man) { return preg_match('/程序員/', $man) ? null : new Lover(); } } class ItMan { private $name = 'nginx作者-程序員'; private $obj; public function sayLove() { $this->obj = LoverFacotry::getLover($this->name); echo sprintf("%s, I Love You!", $this->obj->getName()); } } $man = new ItMan(); $man->sayLove();