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 < etc
// it doesn't change any values: it just echoes
基本上所有它做的是检查你$cfg
对象(无论是),看看是否有一个title
集 - 如果不是,它提供了一个默认值。然后以html友好的方式将其打印到屏幕上。与会议或类似的事情无关。
另一个要点是:在你自己的代码中,你应该避免使用快捷键<?=
,因为它不是很便携。也就是说,即使它可能在您的测试服务器上工作,您的部署站点或其他想要使用您的代码的人可能会关闭它。建议避免它。
答
这似乎是一个通用模板,您可以通过提供$ cfg对象来进行自定义。 在这个简短的例子中,如果你提供当前页面的标题,它是;否则打印默认的一个。
答
第一行检查$cfg
是否是一个有效变量,如果它是一个对象。如果$cfg
是一个有效的对象,它将$ title的值设置为返回值$cfg->getTitle()
,否则它将$ title设置为'Apptitle :: My First App'
。
第二行然后输出通过$title
变量传递的Format :: htmlchars方法的返回值。
感谢您的出色答案,太棒了。一个快速的。格式对该行意味着什么? – Codex73 2009-08-17 16:36:28