有人能解释一下这个PHP语法吗?


Could someone explain this PHP syntax?

我试图在一个相当大而复杂的WordPress主题中修补一点PHP,我发现了这一行:

if(is_array($taxonomys)) {
    $tax = 1;
    foreach ($taxonomys as $key => $value ) {
        if($taxonomys[$key]->parent == 0 && isset($taxonomys[$key]->name) && in_array($taxonomys[$key]->name, $used_taxonomys)) {
            echo '<li class="tab"><li class="selected"><a href="#" data-filter="*" class="selected">'.lambda_translate_meta($taxonomys[$key]->name).'</a></h3></li>';
        } 
        if(in_array($taxonomys[$key]->name, $used_taxonomys) && $taxonomys[$key]->parent != 0 ) {                           
            echo '<li class="tab"><h3><a href="#" data-filter=".'.$taxonomys[$key]->slug.'_filt">'.lambda_translate_meta($taxonomys[$key]->name).'</a></h3></li>';
        }
    $tax++;
    }
}
谁能解释一下->和=>的语法?

作为旁注,如果有人也能提供一些关于if语句的想法,我将非常感激。

foreach ($taxonomys as $key => $value ) {

循环遍历$taxonomys数组中的每个元素,将键赋给$key,将值赋给$value。这个数组是一个关联数组,其中的值有特定的键,不一定是数字键。

$taxonomys[$key]->parent

->使您获得对象的属性。这个例子中的对象是$taxonomys[$key],他们想要的属性是parent。注意,他们也可以只使用$value->parent,因为由于foreach循环,$value$taxonomys[$key]相同。

->表示对象的方法或属性

=>用于初始化数组中的键/值对,或者在本例中用于提取foreach循环中的键/值对

->表示访问对象的属性或方法。

=>通常用于在数组中定义array('key' => 'value')对。foreach的情况是特殊的,它只是意味着foreach块内部的代码将对$taxonomys数组中的每个元素执行一次,元素键将在$key变量中可用,值将在$value变量中可用。