class.dog.php

来自「Professional PHP5 code for this book」· PHP 代码 · 共 60 行

PHP
60
字号
<?phpclass Dog {  private $_onspeak;  public function __construct($name) {    $this->_name = $name;  }  public function bark() {    if(isset($this->_onspeak)) {      if(! call_user_func($this->_onspeak)) {        return false;      }    }       print "Woof, woof!";  }  public function onspeak($functionName, $objOrClass = null) {    if($objOrClass) {      $callback = array($objOrClass, $functionName);    } else {      $callback = $functionName;    }        //make sure this stuff is valid    if(!is_callable($callback, false, $callableName)) {      throw new Exception("$callableName is not callable " .                           "as a parameter to onspeak");      return false;    }        $this->_onspeak = $callback;  }}  //end class Dog//procedural functionfunction isEveryoneAwake() {  if(time() < strtotime("today 8:30am") ||        time() > strtotime("today 10:30pm")) {    return false;  } else {    return true;  }}$objDog = new Dog('Fido');$objDog->onspeak('isEveryoneAwake');$objDog->bark(); //polite dog$objDog2 = new Dog('Cujo');$objDog2->bark(); //always barks!//Throws exception when onspeak is called.$objDog3 = new Dog('Lassie');$objDog3->onspeak('nonExistentFunction', 'NonExistentClass');$objDog3->bark();?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?