1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
<?php
class Fluent
{
private $start;
function __construct(string $start)
{
$this->start = $start;
}
function __toString() : string
{
return $this->start;
}
private function format(string $name, string $value) : string
{
return " ({$name}={$value})";
}
function __call(string $name, array $values) : Fluent
{
foreach ( $values as $value )
{
$this->start .= $this->format( $name, $value );
}
return $this;
}
}
$f = new Fluent("Return value inspection");
$g = $f->php('8.1', 'great')->xdebug('awesome', 'amazing');
echo $g, "\n";
?>
|