PHP array_unshift在函数内不起作用

时间:2018-12-05 21:52:08

标签: php

这是返回包含4个或5个索引的数组的代码的前一部分:

$page = icl_object_id(2880, 'page', true);
$url = get_permalink($page);
$parts = explode("/", $url);

我创建了一个计算数组中索引数量的函数。这样做的想法是在总数为4的情况下,用1个索引对数组进行人工膨胀。

function partsSumcheck() {
    if (count($parts) === 5) {
        return $parts;
    } else {
        $parts = array_unshift($parts, 'filler');
        return $parts;
    };
}
partsSumcheck();
var_dump($parts);

但是,当数组返回4个索引时,我在$ parts上执行了var_dump,即使取消移位后,数组仍然具有4个索引。为什么?

2 个答案:

答案 0 :(得分:1)

array_unshift返回数组中新元素的数量,而不是新数组。另外,您应该传递数组,并在数组返回后重新分配它。

function partsSumcheck($parts) {
    if (count($parts) === 5) {
        return $parts;
    } else {
        array_unshift($parts, 'filler');
        return $parts;
    };
}
$parts = partsSumcheck($parts);

答案 1 :(得分:-1)

您应该在函数正文的顶部添加global $parts