这个代码是做什么的?php中的递归迭代器?
我正在从事一个基于zend framework的电子邮件项目,并在线跟踪一些代码示例。。我无法理解这行代码,它显然在电子邮件的不同“部分”之间循环。顺便说一句,我不知道它是如何工作的,我怀疑发生了一些错误,我的解析器没有正确显示这个代码是做什么的?php中的递归迭代器?,php,recursion,Php,Recursion,我正在从事一个基于zend framework的电子邮件项目,并在线跟踪一些代码示例。。我无法理解这行代码,它显然在电子邮件的不同“部分”之间循环。顺便说一句,我不知道它是如何工作的,我怀疑发生了一些错误,我的解析器没有正确显示 foreach (new RecursiveIteratorIterator($mail->getMessage($i)) as $ii=>$part) 上面的foreach循环是什么意思?它基于id为$i的消息内容创建一个新的递归迭代器,并循环遍历电子邮
foreach (new RecursiveIteratorIterator($mail->getMessage($i)) as $ii=>$part)
上面的foreach循环是什么意思?它基于id为$i的消息内容创建一个新的递归迭代器,并循环遍历电子邮件的各个部分。电子邮件通常由多部分消息组成,因此getmessage方法可能会在检索头之后调用以检索消息的第一部分。获取部件的方法可能使用递增的id(递归地)调用自身以返回部件,因此$ii=>$part 如果不知道方法调用的全部内容,则很难进行扩展 目录递归示例
$dir = new RecursiveDirectoryIterator(".");
foreach(new RecursiveIteratorIterator($dir) as $file) {
// find .txt files
if (preg_match('/.txt$/i', $file->getFilename())) {
}
}
编辑2:使用链接站点上的示例:
$foundPart = null;
foreach (new RecursiveIteratorIterator($mail->getMessage(1)) as $part) {
if (strtok($part->contentType, ';') == 'text/plain') {
$foundPart = $part;
break;
}
}
这将检索所有部分并查找纯文本部分。它是一种递归循环的方式,允许对其进行操作。它根据id为$i的消息内容创建一个新的递归迭代器,并循环遍历电子邮件的各个部分。电子邮件通常由多部分消息组成,因此getmessage方法可能会在检索头之后调用以检索消息的第一部分。获取部件的方法可能使用递增的id(递归地)调用自身以返回部件,因此$ii=>$part 如果不知道方法调用的全部内容,则很难进行扩展 目录递归示例
$dir = new RecursiveDirectoryIterator(".");
foreach(new RecursiveIteratorIterator($dir) as $file) {
// find .txt files
if (preg_match('/.txt$/i', $file->getFilename())) {
}
}
编辑2:使用链接站点上的示例:
$foundPart = null;
foreach (new RecursiveIteratorIterator($mail->getMessage(1)) as $part) {
if (strtok($part->contentType, ';') == 'text/plain') {
$foundPart = $part;
break;
}
}
这将检索所有部分并查找纯文本部分。这是一种递归循环的方式,允许对其进行操作。简单来说,该语句将遍历mail->getMessage包含的所有元素,并将树结构展平,使其更像一个列表
递归迭代器用于遍历树(或者更准确地说,是可以包含迭代器的迭代器)。文档并没有很好地解释它,但请通读示例。简单来说,该语句将遍历mail->getMessage包含的所有元素,并将树结构展平,使其更像一个列表
递归迭代器用于遍历树(或者更准确地说,是可以包含迭代器的迭代器)。文档并没有很好地解释它,但请通读示例。实际上,我不知道递归迭代器是什么,这是我需要知道的,如果我要复制这个for语句。。。怎么可能呢。。。只是为了理解conceptgetMessage实际上返回消息编号$i-它是Zend_Mail_消息类的一个对象。。。我不明白的是递归迭代器在这里做什么?它循环(迭代)在调用自身的部分上(递归地)。我以前使用过的上下文用于目录循环。将为答案添加一个示例。我使用的代码在这里-只需对recursive运行ctrl F搜索我相信在检索它们之前,您需要知道有多少个部分,因为getPart方法需要整数输入。实际上,我不知道递归迭代器是什么,这是我需要知道的,如果我是要复制此for语句。。。怎么可能呢。。。只是为了理解conceptgetMessage实际上返回消息编号$i-它是Zend_Mail_消息类的一个对象。。。我不明白的是递归迭代器在这里做什么?它循环(迭代)在调用自身的部分上(递归地)。我以前使用过的上下文用于目录循环。将为答案添加一个示例。我使用的代码如下-只需对Recursive运行ctrl F搜索我相信您需要知道有多少部分,然后才能检索它们,因为getPart方法需要整数输入。参考:参考: