获取PHP
真正的挖掘机,真正的投球手
我认为只能这样做。
<?php
/**
 * すかさずPHPerオープンゲットでござるよ。
 * PHPerマジックメソッドで抽象化した後力ずくでimplodeするでござる。
 * いつだってPHPerの若い命は真っ赤に燃えているのでござるな。
 */
namespace 早乙女研究所\ゲッターロボ;
function 真 () {
    return 真::class;
}
class 真 {
    const チェンジ!!      = '(チェンジ!!)';
    protected $ケッターマシーン     = null;
    public function __construct ($getter) {
        $this->ケッターマシーン = [
            basename(str_replace("\\", '/', static::class)),
            static::チェンジ!!,
            $getter
        ];
    }
    public function オープンゲット! () {
        return static::class;
    }
    public static function ゲッター () {
        return new static(__FUNCTION__);
    }
    public function __call ($name, $args) {
        $this->ケッターマシーン[3]      = $name;
        return $this;
    }
    public function __toString () {
        return implode('', $this->ケッターマシーン);
    }
}
echo 真()::ゲッター()->ロボ(), \PHP_EOL;
echo 真()::ゲッター()->ロボ()->オープンゲット!()::ゲッター()->ワン(), \PHP_EOL;
<?php
namespace 早乙女研究所\ゲッターロボ;
class 真 {
    const チェンジ!!      = '(チェンジ!!)';
    protected $ケッターマシーン     = null;
    public function __construct ($getter) {
        $this->ケッターマシーン = [
            basename(str_replace("\\", '/', static::class)),
            static::チェンジ!!,
            $getter
        ];
    }
    public function オープンゲット! () {
        return static::class;
    }
    public function __get ($name) {
        $this->ケッターマシーン[3]  = $name;
        return $this;
    }
    public static function ゲッター () {
        return new static(__FUNCTION__);
    }
    public function __toString () {
        return implode('', $this->ケッターマシーン);
    }
}
echo 真::ゲッター()->ロボ, \PHP_EOL;
echo 真::ゲッター()->ロボ->オープンゲット!()::ゲッター()->ツー, \PHP_EOL;
 
    