2015-11-13 71 views
1

我有一个ID数组,并且对于每个ID,我想包括一个文件,并将ID发送到包含文件,但在第一个ID之后,其他ID为空。为什么其他ID不通过包含文件?在foreach循环中包含文件php

$ids = array(1, 2, 3); 
    foreach($ids as $id) { 
     $id = $id; 
     include_once("file.php"); 
     echo $path . "<br />"; // comes from include-file 
    } 

当我在include文件中回显我的$ id时,我得到'1',但其他两个id是空的?

+1

返回将退出循环 –

+2

同比不需要,因为它的存在重新声明的$ id。因此,只使用包含在你的循环删除/评论de返回和id行 –

+0

对不起,这是回声,我改变了这个 – Lilly

回答

1

你有这个问题,因为你正在使用inlcude_once,这就正是名字所暗示的,它只包括你的文件一次。您需要include。顺便说一句,你可以放弃$id=$id;,因为你已经在这里定义了$ id:foreach($ids as $id)

试试这个:

$ids = array(1, 2, 3); 
foreach($ids as $id) { 
    include("file.php"); 
    echo $path . "<br />"; // comes from include-file 
} 
+0

谢谢!在包含文件中,我声明了一个函数,为什么这是一个问题?因为当我删除功能,我得到每个ID。 – Lilly

+0

这是因为在你的例子中,函数会被声明3次,因为3'include?在foreach中,你只能在php中声明一个函数。 – swidmann