O "kaçış" mümkün mü

2 Cevap php

Ben PHP MVC yapıyorum, ve ben, () yöntemi benim Denetleyicisi içinde bir liste var URL / varlık / liste / parent_id var, o ebeveyne ait tüm "x" göstermek istiyorum.

Bir PHP ayrılmış anahtar kelime beri Ancak, ben) (yöntem olarak adlandırılır listesi olamaz.

In VB.Net, for example, if I need to have something with a name that clashes with a reserved keyword, I can wrap it in [reserved_name].
In SQL, you can do the same thing.
In MySQL, you use the backtick `

"Bir anahtar kelime olarak, bir tanımlayıcı olarak bu tedavi" belirten PHP bazı yazım var mı?

(NOT:.. I () yöntemi, bir liste olmadan bunu yapmak için yolları kullanabilirsiniz biliyor ben de sadece başka bir şey eylemi arayabilirsiniz soru PHP kaçan bu tür sağlar olup olmadığı)

2 Cevap

Değişken isimleri ile dirsek işaretleri kullanabilirsiniz:

${'array'} = "test";
echo ${'array'};

Ama PHP fonksiyon isimleri kaçış için bir yöntem sağlamaz.

Bu etrafında almanın bir 'kullanıcı-tanımlı' yol istiyorsanız, Yorumu check out:

http://www.php.net/manual/en/reserved.keywords.php#93368

Sen __call() yöntem işlevselliğini uygulayan özel veya kamu _list() yöntemini çağırmak için kullanabilirsiniz.

/**
 * This line for code assistance
 * @method  array list() list($par1, $par2) Returns list of something. 
 */
class Foo 
{
    public function __call($name, $args) 
    {
        if ($name == 'list') {
            return call_user_func_array(array($this, '_list'), $args);
        }
        throw new Exception('Unknown method ' . $name . ' in class ' . get_class($this));
    }

    private function _list($par1, $par2, ...)
    {
        //your implementation here
        return array();
    }
}