【问题标题】:PHP OOP lines usage explanationPHP OOP 行使用说明
【发布时间】:2009-08-17 13:53:46
【问题描述】:

这些行的目的是什么:

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

<?=Format::htmlchars($title)?>

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

我看到顶行用作 php 文件中的第一行,然后第二行用于填充标题。

为什么要实现这个?除了对象还有什么用途?

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

【问题讨论】:

    标签: php oop


    【解决方案1】:

    添加换行符和 cmets:

    <?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 集 - 如果没有,它提供一个默认值。然后它以对 html 友好的方式将其打印到屏幕上。与会话或类似的事情无关。

    另一个要点:在您自己的代码中,您应该避免使用快捷方式&lt;?=,因为它不是很便携。也就是说,即使它可能在您的测试服务器上运行,您的部署站点或其他想要使用您的代码的人也可能会关闭它。建议避免。

    【讨论】:

    • 感谢您的出色回答,太棒了。一快一。格式在那一行是什么意思?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      第一行检查$cfg 是否为有效变量以及是否为对象。如果$cfg是有效对象,则将$title的值设置为$cfg-&gt;getTitle()的返回值,否则将$title设置为'Apptitle :: My First App'

      然后第二行输出Format::htmlchars 方法的返回值,该方法通过$title 变量传递。

      【讨论】:

        猜你喜欢
        • 2019-02-04
        • 2015-01-07
        • 2011-08-30
        • 1970-01-01
        • 1970-01-01
        • 2015-12-01
        • 2011-01-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多