实例化一个对象,调用一个不存在的方法时,就会自动调用类中__call()
方法。
当调用这个类中并不存在的静态方法时,就自动调用类中__callStatic()
方法。
<?php
class Strings
{
public $str = '';
public function __construct($str)
{
$this->str = $str;
}
public function __call($name, $arguement)
{
$ret = '';
switch ($name)
{
case 'trim' :
$new_s = trim($this->str);
$ret = new Strings($new_s);
break;
case 'strlen' :
$ret = strlen($this->str);
break;
default:
}
return $ret;
}
}
$s = new Strings(" codeman ");
$length = $s->trim()->strlen();
echo "删除空格以后的长度为:" . $length;
?>