充满浓浓感情的两段代码。 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();