代码之家  ›  专栏  ›  技术社区  ›  Codex73

PHP OOP行使用说明

  •  1
  • Codex73  · 技术社区  · 15 年前

    这些行的目的是什么:

    <?php $title=($cfg && is_object($cfg))?$cfg->getTitle():'Apptitle :: My First App'; ?>
    
    <?=Format::htmlchars($title)?>
    

    有人能解释一下这里的用法吗?

    我看到在一个PHP文件中,第一行被用作第一行,第二行被用来填充标题。

    为什么要实施?目标以外的目的是什么?

    我想目的可能是在整个会话中重用对象。不确定。

    3 回复  |  直到 6 年前
        1
  •  7
  •   nickf    15 年前

    添加换行符和注释:

    <?php
    $title = $cfg && is_object($cfg)   // if $cfg isn't empty (false, 0, null) and it's an object
           ? $cfg->getTitle()  // then set $title to the return of getTitle()
           : 'Apptitle :: My First App'; // otherwise use this as a default
    ?>
    
    <?=Format::htmlchars($title)?>  // this is a shortcut for echo. it probably escapes
                                    // special characters: < becomes &lt; etc
                                    // it doesn't change any values: it just echoes
    

    基本上它所做的就是检查你的 $cfg 对象(无论是什么)以查看是否存在 title set-如果不是,则提供默认值。然后它以一种HTML友好的方式将它打印到屏幕上。与会话或类似的事情无关。

    另一个要点:在您自己的代码中,应该避免使用快捷方式 <?= 因为它不是很轻便。也就是说,即使它可能在您的测试服务器、部署站点或其他想要使用您的代码的人身上工作,也可能已将其关闭。建议避免。

        2
  •  0
  •   Zed    15 年前

    这似乎是一个通用模板,您可以通过提供$cfg对象对其进行自定义。 在这个简短的示例中,如果为当前页提供标题,则为;否则将打印默认的标题。

        3
  •  0
  •   Adam Raney    6 年前

    第一行是检查 $cfg 是有效变量,如果它是对象。如果 $CFG 是有效对象,它设置 $title 到的返回值 $cfg->getTitle() ,否则设置 美元头衔 'Apptitle :: My First App' .

    然后,第二行输出 Format::htmlchars 方法,通过 美元头衔 变量。