Php 如何处理向函数传递数组或单个值

Php 如何处理向函数传递数组或单个值,php,Php,我想创建一个接受数组或单个值作为参数的函数(我希望foreach()在两种情况下都能工作) 因此,我真正想做的是,如果我将handle($users)作为一个对象数组传递,或者将handle($user)作为一个对象传递,在使用它之前测试$users,那么上述函数就可以工作了 function handle($users) { if (is_array($users)) { foreach($users as $user){} }else{

我想创建一个接受数组或单个值作为参数的函数(我希望
foreach()
在两种情况下都能工作)


因此,我真正想做的是,如果我将
handle($users)
作为一个对象数组传递,或者将
handle($user)
作为一个对象传递,在使用它之前测试$users,那么上述函数就可以工作了

function handle($users)
{
    if (is_array($users)) {
        foreach($users as $user){}    
    }else{
        // its a single object
    }
}
或者在数组中传递单个用户

function handle($users)
{
   foreach($users as $user){}    
}

handle([$user]);

在使用$users之前对其进行测试

function handle($users)
{
    if (is_array($users)) {
        foreach($users as $user){}    
    }else{
        // its a single object
    }
}
或者在数组中传递单个用户

function handle($users)
{
   foreach($users as $user){}    
}

handle([$user]);

使用
is_数组
检测

function handle($users)
{
   $users = is_array($users) ? $users : [$users];
   foreach($users as $user){}
}

使用
is_数组
检测

function handle($users)
{
   $users = is_array($users) ? $users : [$users];
   foreach($users as $user){}
}


使用前测试
$users
:)在数组
句柄([$user])
中传递单个用户。或者,您可以在函数中使用
is_array
来检测是否已获取数组。我希望
foreach()
可以在两种情况下工作,因此如果我使用
句柄([$user])
它将数组转换为数组array@El_Vanja如果您在回答中表示将使用
句柄([$user])
此方法只传递单个值,因此这是一个好答案,我们需要检查:DTest
$users
在使用它之前:)在数组中传递单个用户
句柄([$user])
。或者,您可以在函数中使用
is_array
来检测是否已获取数组。我希望
foreach()
可以在两种情况下工作,因此如果我使用
句柄([$user])
它将数组转换为数组array@El_Vanja如果您在回答中表示将使用
句柄([$user])
此方法只传递单个值,因此它是一个好的答案,我们需要检查:DNice answer bro,但我们可以像上面那样使其更容易answers@TheGeeky另一种方法是:)回答得好,兄弟,但我们可以像上面那样让它变得更容易answers@TheGeeky除了:)之外的另一种方法是在函数中进行检查,而不是将其作为数组传递?就像使用这个
句柄([$user])
一样,它既不好也不坏。当有人通过not数组并得到一些奇怪的输出,甚至异常时,检入函数只会帮助避免一个错误当我限制在这个函数中只使用数组时,我认为这样更好。Typehint也有帮助。在函数中进行检查是否比将其作为数组传递好?就像使用这个
句柄([$user])
一样,它既不好也不坏。签入函数有助于避免错误,当有人传递not array时,会得到一些奇怪的输出,甚至异常。但我的观点是使用类型提示(array)更好,因为我限制在此函数中仅使用数组。类型提示也有帮助。