duanji2002 2011-04-02 12:31
浏览 22

三元运算符的不良做法[关闭]

While writing some PHP, I needed to iterate over a function call that could also return null, so I used the following construct:

foreach (($object->method() ? : array()) as $thing)
{
    // Insert code here
}

My project manager was not fond of this practice and insisted I write something more verbose. I understand his perspective, but if it were up to me, I would leave it as is. What do others think of this practice?

  • 写回答

3条回答 默认 最新

  • dongxin0031 2011-04-02 12:46
    关注

    It's perfectly cromulent. While this will lead to a PHP 5.3 dependency, it's short and still readable. I guess he took exception to its occurence in foreach, where complex expressions are somewhat uncommon, and hencewhy frowned upon.

    Anyway, I sometimes use casting there, which is not more readable, but useful for parameter flexibility (treating a single string as array), not sure if that's really "better" in this case:

     foreach ( (array)$object->method() as $xy )
     {
    

    Obviously, only works if the method returns nothing (NULL). If you can help it, make the method itself return an empty array instead (as good as a boolean false).

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题