阵列上的Foreach()

时间:2016-01-12 00:41:24

标签: php

据我所知,这个foreach()语句正在打印字段" name_first'从数组中的每个项目馈送到它......

foreach ($data as $author) { 
    print get('name_first', $author) . 
    " " . get('emailaddress', $author) .
    "<br/>";
    if(strpos($author['emailaddress'], ">")) { 
        $sp->update($listName, $author['id'], array('emailaddress'=> email_from_link($author['emailaddress'])));
    }

但有人可以解释一下最后的if语句是做什么的吗?这对我来说真的没有任何意义。

if(strpos($author['emailaddress'], ">")) { 
    $sp->update($listName, $author['id'], array('emailaddress'=> email_from_link($author['emailaddress'])));

2 个答案:

答案 0 :(得分:4)

在第一个字符后检查字符串public function dwg_list($porject_no){ echo $porject_no; ...... } 中的字符>

如果$author['emailaddress']存在,则>数组update,并在括号之间指定值。

答案 1 :(得分:3)

询问字符串中>字符的位置。如果字符位于第一个字符以外的任何位置,则输入if块。

这就是我考虑草率/懒惰的编程 - 养成以同样方式处理int和booleans的习惯是个坏主意,尤其是当像strpos这样的函数可以返回时整数0也是假:

来自the docs

  

警告此函数可能返回布尔值FALSE,但也可能返回a   非布尔值,其值为FALSE。

此外,像你这样的代码会让人感到困惑,就像你的情况一样。明确地编码更好:

$index = strpos($author['emailaddress'], '>');

if(FALSE === $index) {
    // Handle error
} 
else if($index > 0) {
    $sp->update($listName, $author['id'], array('emailaddress'=> email_from_link($author['emailaddress'])));
}

当然,它更详细,但结果更容易理解,因此更容易维护