PHP中的一个DB类中的成员方法为什么 可以 当作静态方法使用!求指点?

zhdj1109 2014-02-15 07:52:37
这是一个db.php文件,里面是一个DB类

class DB
{
function &object()
{
static $db;
if (empty($db))
{
$db = new pgsql();
}
return $db;
}
function query($sql, $transaction = false)
{
$db = & DB::object();

return $db->query($sql, $transaction);
}
}


我想问的是 DB类中的方法 都不是静态的(static), 为什么 在外部PHP文件中 可以像DB::query() 这样使用,还有 他本身 内部 这样使用的 DB::object(), 我很奇怪 为什么? 不是 静态的 方法 才这样用的吗??

求 大神 指点一二!! 先在此谢过了!
...全文
218 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
风火程序员 2014-02-16
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
这是 php4 的代码 php4 没有那么多约束
引用 1 楼 xuzuning 的回复:
这是 php4 的代码 php4 没有那么多约束
xuzuning 2014-02-16
  • 打赏
  • 举报
回复
这是 php4 的代码 php4 没有那么多约束
xuzuning 2014-02-16
  • 打赏
  • 举报
回复
php 5.2 基本与 php4 一致,除了对象总是以引用传递,即无需使用用声明 & php 5.3 打开 E_STRICT 级别错误检查时,不能以静态方式使用非静态方法 php 5.4 默认打开 E_STRICT 级别错误检查,不能以静态方式使用非静态方法
xuzuning 2014-02-16
  • 打赏
  • 举报
回复
php5 是可以有条件接受 php4 的
zhdj1109 2014-02-16
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
这是 php4 的代码 php4 没有那么多约束
我的 PHP环境 是5.2以上的, 它是也支持 PHP4 的代码吗??

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧