理解PHP中的foreach循环

时间:2014-02-27 15:31:30

标签: php wordpress loops

我有两个foreach循环,我正在使用WordPress生成的对象。

在我看来,这些都应该是一样的。但是,他们没有。请注意循环中的$post$not_a_post

A:

$array_A = array( 'posts_per_page' => 2 );
$get_posts_A = get_posts( $array_A );

foreach ( $get_posts_A as $post ) { //uses $post
    the_title(); 
}

B:

$array_B = array( 'posts_per_page' => 5 );
$get_posts_B = get_posts( $array_B );

foreach ( $get_posts_B as $not_a_post ) {  //uses $not_a_post
    the_title(); 
 }

唯一的区别在于我使用变量$post作为条件第一循环。

我一直认为(显然,错误地)第二个条件变量只是一个占位符。所以我可以做$ x,$ y等。

有人可以向我解释为什么这个foreach循环需要变量$post

1 个答案:

答案 0 :(得分:6)

那是因为the_title()依赖于来自外部范围的名为$post的变量,顺便说一下这是一个糟糕的设计理念 - 它应该作为参数传递给函数,例如:

the_title($some_id || $some_resource);

编辑:实际上WP允许您传递帖子ID check the code here