这个语法是啥意思? $node->option [重复]

Posted

技术标签:

【中文标题】这个语法是啥意思? $node->option [重复]【英文标题】:What does this syntax mean? $node->option [duplicate]这个语法是什么意思? $node->option [重复] 【发布时间】:2012-08-21 17:54:41 【问题描述】:

我是一家公司的新实习生,正在查看某人的代码时,我看到了这个符号:

if($o_eventNode->$calOption[0]['value'] == 1)

我不明白带大括号的部分。有没有其他的打字方式?这种语法有什么好处?

【问题讨论】:

@BorisGuery 我不这么认为,这些问题完全不同。 【参考方案1】:

使用该语法,您可以动态调用类的方法和变量,而无需知道它们各自的名称(另请参阅文档中的 variable variable names)。

/edit:用更复杂的例子更新了答案,我希望这更容易理解。修复了原来的代码,这个应该真的可以了。


例子:

<?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!'
?>

【讨论】:

【参考方案2】:

变量$calOption 的内容将用作$o_eventNode 中的类成员的名称。大括号在那里,以清楚地标记变量的结尾,因此很明显不是$calOption[0]['value']

请参阅:http://php.net/language.variables.variable.php,以了解在将可变变量与数组一起使用时这种歧义问题的解释。

【讨论】:

以上是关于这个语法是啥意思? $node->option [重复]的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript 这个语法“-?”是啥意思? (破折号问题)是啥意思?

这个 C 语法是啥意思?

node.js中的+new Date语法是啥[重复]

-> 在这个函数调用的上下文中是啥意思? [复制]

/// <reference types="node" /> 是啥意思?

这个语法在ruby中是啥意思[重复]