有关一段 php 代码的疑惑

2014-07-02 21:28:41 +08:00
 LukeXuan
之前我一直在用其他人的模板架构,今天仔细看了一下 发现很多奇怪的地方,比如这里

var_dump(method_exists('page', 'buildRevisions'));

var_dump($page->buildRevisions());

php返回的是

bool(false)
object(fRecordSet)#221 (5) { ["class:private"]=> string(8) "Revision" ["limit:private"]=> NULL ["page:private"]=> int(1) ["non_limited_count:private"]=> NULL ["records:private"]=> array(58) { [0]=> object(Revision)#217 (4) { ["cache:protected"]=> array(0) { } ["old_values:protected"]=> array(0) { } ["related_records:protected"]=> array(0) { } ["values:protected"]=> array(10) { ["id"]=> string(3) "229" ["page_id"]=> string(1) "1" ["title"]=> string(6) "首页" ["body"]=> string(7037) "

谁能告诉我这个method是怎么出现的啊= =、在对Page这个类的定义里也没有出现过 但是在另外一个不具备继承关系的class Preview里面却出现了定义

对Page类的定义在这里:
https://github.com/iwg/phpwiki/blob/master/inc/phpwiki/Page.php

我就是想提出对于getLatestRevision里$this->buildRevisions()是如何执行的疑惑 谢谢!
2154 次点击
所在节点    问与答
2 条回复
raincious
2014-07-02 21:47:09 +08:00
用的是flourishlib么?代码没仔细研究,但fActiveRecord用了__call魔法方式,几乎能实现你想要Call的任何东西了,而且我知道的IDE里面是跟不到的。实现是这里:

https://github.com/flourishlib/flourish-classes/blob/master/fActiveRecord.php#L192
CoX
2014-07-03 09:44:10 +08:00
var_dump(method_exists($page, 'buildRevisions'));
第一个参数是object,不是string

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/120666

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX