我检查了Joomla1.6 index.php,并在最后一行找到了以下代码
回声$app;
这将打印整个页面内容。
我刚刚使用print_r()打印出了这个对象中的内容,并得到了以下细节
JSite Object
(
[template:JSite:private] => stdClass Object
(
[id] => 6
[home] => 1
[template] => beez5
[params] => JRegistry Object
(
[data:protected] => stdClass Object
(
[wrapperSmall] => 53
[wrapperLarge] => 72
[logo] => images/sampledata/fruitshop/fruits.gif
[sitetitle] => Matuna Market
[sitedescription] => Fruit Shop Sample Site
[navposition] => left
[html5] => 0
)
)
)
[_language_filter:JSite:private] =>
[_detect_browser:JSite:private] =>
[_clientId:protected] => 0
[_messageQueue:protected] => Array
(
)
[_name:protected] => site
[scope] =>
[requestTime] => 2011-10-17 17:23
[startTime] => 1318872200.5365
[_errors:protected] => Array
(
)
)那么回显$app如何显示所有站点内容,它在对象中不包含任何HTML。
非常感谢
发布于 2011-10-19 16:51:03
它在类中声明了神奇的方法__toString()。
如果在类中声明此函数,则在将对象转换为字符串时将使用该函数的返回值。
简单示例:http://codepad.org/UmZUQA3v
发布于 2011-10-19 16:51:46
$app是一个对象,print_r以与echo不同的方式访问它的值。当调用echo时,它还隐式地调用神奇的__toString方法。它的定义使得它返回一个带有页面内容的字符串,给定存储在对象中的值。print_r会给出这些值,但不会给出__toString表示。
https://stackoverflow.com/questions/7824950
复制相似问题