首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象数组和单个对象的PHP foreach?

对象数组和单个对象的PHP foreach?
EN

Stack Overflow用户
提问于 2011-03-02 09:08:21
回答 3查看 7.9K关注 0票数 5

我有一个相当大的php脚本,它经常使用foreach循环。它现在的工作方式是,我将一个对象数组传递给每个foreach循环,但我想修改脚本,使其也只处理一个对象。我真的很讨厌,也不认为在每次循环之前检查它是一个对象数组还是一个单独的对象,并根据具体情况来决定是遍历整个数组,还是只处理单个对象。有什么解决方法吗?提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-02 09:11:13

代码语言:javascript
复制
$item = $obj;
// or
$item = array( ... );

if(!is_array($item))
   $item = array($item);

foreach($item as $individual)
{
   //...
}
票数 17
EN

Stack Overflow用户

发布于 2011-03-02 09:12:12

你可以传递一个内部只有一个对象的数组。或者使用多态构造函数/函数设置。

传递一个带有单个对象的数组是很明显的,下面是一些其他可能的处理方法:

代码语言:javascript
复制
function test($var)
{
     if(is_a($var,"ClassName")) //Test to see if the passed variable is a member of the class and not an array and put it in an array if so
     {
          $var = array($var);
     }

     foreach($var as $v)
     {
          //Do stuff
     }
}

function test($var)
{
    if(is_array($var)) //Test if object is array or class, call different functions depending on which it is
    {
        call_user_func_array(array($this,'doArray'),$var);
    }
    elseif(is_a($var,"Classname"))
    {
        call_user_func_array(array($this,'doObject'),$var);
    }
}
票数 1
EN

Stack Overflow用户

发布于 2011-03-02 09:12:04

听起来你需要写一个函数/这能满足你的目的吗?

代码语言:javascript
复制
if(is_array($thingy)){
    foreach($thingy as $thing){
        function($thing);
    }
}else{
    function($thingy);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5162323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档