最近在读《php核心技术与最佳实践》这本书,书中第一章提到用__call()方法可以实现一个简单的字符串链式操作,比如,下面这个过滤字符串然后再求长度的操作,一般要这么写:
strlen(trim($str));
那么能否实现下面这种写法呢?
$str->trim()->strlen();
下面就来试下。
链式操作,说白了其实就是链式的调用对象的方法。既然要实现字符串的链式操作,那么就要实现一个字符串类,然后对这个类的对象进行调用操作。我对字符串类的期望如下:(1)当我创建对象时,我可以将字符串赋值给对象的属性,并且可以访问这个属性读取值;(2)我可以调用trim() 和strlen()方法;(3)我还可以这么调用方法$str->trim()->strlen()。
上面的第(1)条,是一个字符串类的基本要求。先把这个实现了:
1 class String2 {3 public $value;4 5 public function __construct($str=null)6 {7 &n


