这个语法是什么意思? $节点

这个问题在这里已经有了答案:

  • PHP大括号语法为成员变量5的答案
  • 在PHP 5中的字符串大括号的答案

  • 使用该语法,您可以在不知道各自名称的情况下动态调用类的方法和变量(另请参阅文档中的变量变量名称)。

    /编辑:用更复杂的例子更新答案,我希望这更容易理解。 修正了原来的代码,这个应该实际上工作。


    例:

    <?php
        class Router {
            // respond
            //
            // just a simple method that checks wether
            // we got a method for $route and if so calls
            // it while forwarding $options to it
            public function respond ($route, $options) {
                // check if a method exists for this route
                if (method_exists($this, 'route_'.$route) {
                    // call the method, without knowing which
                    // route is currently requested
                    print $this->{'route_'.$route}($options);
                } else {
                    print '404, page not found :(';
                }
            }
    
            // route_index
            //
            // a demo method for the "index" route
            // expecting an array of options.
            // options['name'] is required
            public function route_index ($options) {
                return 'Welcome home, '.$options['name'].'!';
            }
        }
        // now create and call the router
        $router = new Router();
        $router->respond('foo'); 
        // -> 404, because $router->route_foo() does not exist
        $router->respond('index', array('name'=>'Klaus'));
        // -> 'Welcome home Klaus!'
    ?>
    

    变量$calOption的内容将用作$o_eventNode类成员的名称。 花括号在那里,以清楚地标记变量的结尾,所以不同的是,不是$calOption[0]['value']而是代替。

    请参阅:http://php.net/language.variables.variable.php,了解在数组中使用变量变量时该歧义问题的解释。

    链接地址: http://www.djcxy.com/p/59533.html

    上一篇: What does this syntax mean? $node

    下一篇: PHP echo replacement for a variable