<?php
////
// Цепочка вызовов

class MethodsChain {
	
	function __construct($words) {
		$this->var = $words;
	}

	function to_upper_case() {
		$this->var = strtoupper($this->var);
		return $this;
		// Чтобы это сработало, нужно вернуть объект.
	}

	function to_lower_case() {
		$this->var = strtolower($this->var);
		return $this;
	}

}

$check = new MethodsChain('Wanna see you in lower');

print "Традиционный для PHP стиль\n";
print "В верхний регистр\n";
$check->to_upper_case();
var_dump($check->var);

print "\nВ нижний регистр\n";
$check->to_lower_case();
var_dump($check->var);

print "\nЦепочка методов\n";
$check->to_upper_case()->to_lower_case();
  // у объекта который вернется после $check->to_upper_case() должен
  // быть метод to_lower_case()
var_dump($check->var);
