【问题标题】:PHP awkward function declaration [duplicate]PHP尴尬的函数声明[重复]
【发布时间】:2012-06-08 19:50:47
【问题描述】:

可能重复:
What does it mean to start a PHP function with an ampersand?

最近我偶然发现了这段代码:

public static function &get_instance()
{
return self::$instance;
}

这种函数声明&get_instance()是什么意思?函数名可以是变量吗?

【问题讨论】:

  • 这只是糟糕且已弃用的代码。
  • 无论如何这是什么意思?及其兼容性?
  • @OZ_ btw,在探索codeigniter时发现了它@
  • 它通过引用传递结果 - 已弃用。
  • @gopi1410:简而言之,Singleton 正在强制对象具有单个实例。该实例将在整个应用程序中全局可用。这有很多缺点,而优点很少。它被认为是有害的。

标签: php


【解决方案1】:

它是单例模式的一部分,在旧式代码中。

单例是一种用于确保类只有一个实例的模式。 (从技术上讲,它可以用来确保任何类都有一定数量的实例,但这个数量几乎总是一个。)它是四人帮模式之一,你可以找到关于它的使用和滥用的无休止的讨论。通过网络。

【讨论】:

【解决方案2】:

表示get_instance()的结果是通过引用返回的。由于自 PHP 5 起对象总是通过引用,因此编写这样的代码不再有意义。顺便说一句,public 也特别好奇,因为这意味着这是 PHP 5 代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-03
    • 2014-10-20
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    相关资源
    最近更新 更多