dongshao4207 2013-11-26 00:02
浏览 13
已采纳

无限地寻找父母的对象

I'm propably too tired but I've been wrestling with this one for a while. A container can either have a layout on its own, or it can have a parent somewhere up the hierarchy that has a layout. I need to find that layout no matter how far up the line it is.

The object $container has a property $parent which, if not null, references another $container object (same type).

I think this code has a problem in the while condition?

private function findInheritedLayout($container) {

    do {
        if ( $container->getLayoutTemplate() ) {
            return $container->getLayoutTemplate();
        }
        else {
            if ( $container->getParent() ) {
                $container = $container->getParent();
            }
            else {
                return null;
            }   
        }
    } while ( $container->getParent() ); //flawed? looks for a parent one step too far?
}
  • 写回答

2条回答 默认 最新

  • dongmijgnnq0118 2013-11-26 00:37
    关注

    Your assumption is correct. The while condition checks if the current $container has a parent, without checking for a layout.

    Try the following:

    while (!$container->getLayoutTemplate() && $container->getParent()) {
        $container = $container->getParent();
    }
    
    $template = $container->getLayoutTemplate();
    return $template ?: null;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊