PHP OOP行使用说明

时间:2009-08-17 13:53:47

标签: php oop

这些界限的目的是什么:

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

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

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

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

为什么要这样实施?除了对象之外的目的是什么?

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

3 个答案:

答案 0 :(得分:7)

添加换行符和评论:

<?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友好的方式将其打印到屏幕上。与会话或其他任何事情无关。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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