PHP foreach((数组))行为

时间:2018-04-11 17:50:05

标签: php foreach

我遇到了一条PHP foreach声明,说我无法找到任何文档。

以下是我无法理解的代码:

<?php foreach((array)$this->item->partno as $value): ?>
    // do some stuff
<?php endforeach; ?>

这个foreach是什么(数组)正在做什么以及发生了什么?

2 个答案:

答案 0 :(得分:3)

你在数组中投射(转换)$this->item->partno的任何类型。

更多关于php docs here

的内容

答案 1 :(得分:1)

当您拥有一个函数并且希望它获取可以是单个值或数组的参数时,此技术很有用。例如,您通常可以执行以下操作:

function foo($items) {
    if (!is_array($items)) {
        $items = array($items);
    }
    foreach ($items as $item) {
        // ...
    }
}

通过将变量强制转换为内联数组,可以避免显式数组检查,如果将单个值或数组传递给代码,代码将正常工作:

function foo($items) {
    foreach ((array) $items as $item) {
        // ...
    }
}
foo(1);
foo([1, 2, 3]);