автоматическое перенаправление / геолокация и поисковая оптимизация - определите, есть ли у паука доступ к сайту

Я знаю, что это старо, но я думаю, что черты прекрасно справляются с этой проблемой, если вы используете PHP 5.4 +

. Сначала создайте черту, которая делает свойства вызываемыми:

trait CallableProperty {
    public function __call($method, $args) {
        if (property_exists($this, $method) && is_callable($this->$method)) {
            return call_user_func_array($this->$method, $args);
        }
    }
}

Затем вы можете использовать эту черту в своих классах:

class CallableStdClass extends stdClass {
    use CallableProperty;
}

Теперь вы можете определить свойства через анонимные функции и вызвать их напрямую:

$foo = new CallableStdClass();
$foo->add = function ($a, $b) { return $a + $b; };
$foo->add(2, 2); // 4
1
задан AJM 21 September 2010 в 09:39
поделиться