PHP OOP线使用说明

问题描述:

什么是这些行的目的:PHP OOP线使用说明

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

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

有人能解释这里使用?

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

为什么这个实现?目标以外的目的是什么?

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

添加换行和评论:

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

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

+0

感谢您的出色答案,太棒了。一个快速的。格式对该行意味着什么? – Codex73 2009-08-17 16:36:28

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

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

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