这些界限的目的是什么:
<?php $title=($cfg && is_object($cfg))?$cfg->getTitle():'Apptitle :: My First App'; ?>
<?=Format::htmlchars($title)?>
有人可以解释一下这里的用法吗?
我看到顶行被用作php文件中的第一行,然后第二行用于填充标题。
为什么要这样实施?除了对象之外的目的是什么?
我想目的可能是在整个会话中重用该对象。不确定。
答案 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 < 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
变量。