foreach的疑问???

echophp 发布于 2015/10/16 10:28
阅读 253
收藏 0
PHP
那进入foreach的条件是什么?例如for循环要进入for循环要满足第二个表达式,那foreach的条件呢?
加载中
0
纪广财
纪广财
foreach是遍历用的,遍历的数组或者list有元素就会进入循环,有两个元素就会循环两次,这是基础,具体百度
0
54mark
54mark

进入foreach的条件是,foreach里的数组必定不是空数组。

具体可以var_dump一下。一清二楚

0
睡不醒的黑客
睡不醒的黑客

foreach($he as $they){//do something},they是一个一维数组(二维数组可以看成一维数组里面套一个一维数组),he是数组they中的一个元素,php中会把they中所有的元素逐个赋值给he,当he有值后会执行{}内的程序,可以在{}中执行你自定义的判断

睡不醒的黑客
睡不醒的黑客
回复 @echophp : foreach($they as $he){//do something},they是一个一维数组(二维数组可以看成一维数组里面套一个一维数组),he是一个变量,php中会把they中所有的元素逐个赋值给he,当he有值后会执行{}内的程序(会把he传进{}内),可以在{}中执行你自定义的对he的判断
睡不醒的黑客
睡不醒的黑客
回复 @echophp : 嗯,没注意,不好意思啊
e
echophp
这回答看了比较易懂,应该是(foreach($they as $he))吧?
0
inuxor
inuxor

foreach实际上是包装了一下php的迭代器标准库。

其执行类似这样

<?php
$obj = new ArrayObject(['name', 'age', 'gender']);

$iterator = $obj->getIterator();
 
while( $iterator->valid()) {
    echo $iterator->current();
 
    $iterator->next();
}
$iterator->valid()
这个方法检测对象中是否还有未触及的元素
e
echophp
哦 原来涉及到迭代器了,表示还理解不来 ⊙︿⊙ 强啊
0
Ambitor
Ambitor
PHP的我不知道,但JAVA的 是 需要继承Iterator接口,数组也是可以的。
返回顶部
顶部