array_wrap
是 Laravel 框架的一個方法(現在要通過 Arr::wrap
來呼叫),用於將目標型別轉化為陣列型別。
<?php
function array_wrap($value)
{
if (is_null($value)) {
return [];
}
return is_array($value) ? $value : [$value];
}
可以看出 array_wrap
與 PHP 強制型別轉化的不同。array_wrap
只是簡單的將用陣列包裹目標型別,而 PHP 的陣列強制轉換則會遵循一定規則。
示例 1 - 將空物件轉化為陣列
class Foo {}
$foo = new Foo();
(array) $foo;
// => []
array_wrap($foo);
// [
// Foo {#1031},
// ]
示例 2 - 將非空物件轉化為陣列
class Bar {
protected $bar;
}
$bar = new Bar();
(array) $bar;
// [
// "\0*\0bar" => null,
// ]
array_wrap($bar);
// [
// Bar {#1030},
// ]
也就是說,如果你的目標型別中可能含有物件,那麼使用 array_wrap
會比陣列強制轉換更加合適,一般情況使用陣列的強制轉換就行。
點選 連結,免費加入心智極客的知識星球分享群,共同成長。