|
|
1
270
使用:
抛出一个错误。
看见
http://php.net/manual/en/language.variables.scope.php#language.variables.scope.static
|
|
|
2
122
不幸地 Inwdr's answer 下面是一个正确的可继承单例基类。
|
|
|
3
120
这就解决了问题,在PHP5.3之前,任何扩展单例的类都会生成其父类的实例,而不是自己的实例。 现在您可以执行以下操作:
|
|
|
4
39
真实与现代 制作单例模式的方法是:
所以现在你可以像这样使用它。
正如您所看到的,这种实现更加灵活。 |
|
|
5
26
您可能应该添加一个private _clone()方法来禁止克隆实例。
如果不包括此方法,则可以使用以下方法
现在
|
|
|
6
12
使用:
答复:
如果您使用的是PHP 5.4: 特质 这是一个选项,因此您不必浪费继承层次结构来获得 单例模式 还要注意的是,您是否使用 或 扩展单例
在儿童班 意外结果将是:
|
|
|
7
10
|
|
|
8
8
此方法将在您希望的任何类上强制执行singleton,您所要做的就是向您希望创建singleton的类添加1个方法,这将为您做到这一点。
创建一个名为SingletonBase.php的文件,并将其包含在脚本的根目录中!
然后,对于任何想要创建单例的类,只需添加这个小的单例方法。
下面是一个小例子:
你可以在任何一个类中添加这个单例函数,每个类只创建一个实例。 注意:您应该始终将_构造设置为私有,以避免使用新类();实例化。 |
|
|
9
5
|
|
|
10
5
您实际上不需要使用单例模式,因为它被认为是一种反模式。基本上有很多理由根本不实施这种模式。请阅读以下内容: Best practice on PHP singleton classes . 如果您仍然认为需要使用Singleton模式,那么我们可以编写一个类,通过扩展SingletonClassVendor抽象类来获得Singleton功能。
使用示例:
为了证明它按预期工作:
|
|
|
11
3
对我来说,所有这些复杂性(“后期静态绑定”…harumph)只是PHP对象/类模型崩溃的标志。如果类对象是第一类对象(参见Python),那么“$\u实例”将是一个类 在PHP中,在我看来,似乎我们需要牢记模式是编写代码的指南——我们可能会考虑使用单例模板,但尝试编写从实际“单例”类继承的代码对于PHP来说似乎是错误的(尽管我认为一些有进取心的人可以创建合适的SVN关键字)。
请注意,我绝对不参与单身是邪恶的讨论,生命太短暂了。 |
|
|
12
3
基本上,我看到了这样的典型结果: php test.php Run time: 27.842966794968 seconds using singleton Run time: 237.78191494942 seconds without using singleton 因此,虽然我当然不是专家,但我看不到一种更方便、更可靠的方法来减少对某种数据的缓慢调用的开销,同时使其变得超级简单(只需一行代码即可完成所需操作)。假设我的例子只有一个有用的方法,因此并不比一个全局定义的函数好,但是一旦你有了两个方法,你就会想把它们组合在一起,对吗?我离基地很远吗? 另外,我更喜欢实际做一些事情的例子,因为有时候很难想象一个例子包含“//这里做一些有用的事情”这样的语句,我在搜索教程时经常看到这些语句。 不管怎么说,我希望得到任何反馈或评论,说明为什么在这种情况下使用单例是有害的(或过于复杂)。 |
|
|
13
1
http://www.phptherightway.com/pages/Design-Patterns.html#singleton
|
|
|
14
1
我很久以前就写过想在这里分享的东西
|
|
|
15
0
下面是一些示例代码。
这会阻止你做什么(这会违反单例模式.)。。
|
|
|
16
0
这应该是单身的正确方式。
|
|
|
17
0
我喜欢使用traits的@josesegura方法,但不喜欢在子类上定义静态变量。下面是一个解决方案,它通过将静态局部变量中的实例缓存到按类名索引的工厂方法来避免这种情况:
用法与@jose segura相同,只是子类中不需要静态变量。 |
|
|
18
0
数据库类,用于检查是否存在任何现有数据库实例,它将返回以前的实例。
裁判 http://www.phptechi.com/php-singleton-design-patterns-example.html |
|
|
19
0
这是在数据库类上创建singleton的示例 设计模式 1) 独生子女
然后就出局了--
仅使用单个实例,不创建3个实例 |
|
|
20
0
快速示例:
希望能有所帮助。 |
|
|
21
-4
下面是我的示例,它提供了调用$var=new Singleton()的功能,还可以创建3个变量来测试它是否创建了新对象:
|
|
|
S qasem · Android内存性能 8 年前 |
|
|
R83nLK82 · 在单例设计模式上引发IOException 8 年前 |
|
|
hal · 两个课程有什么区别?他们的工作方式不同吗? 8 年前 |
|
Jaquarh · 如何在不使用DI的情况下实例化父类 8 年前 |
|
|
Deepanshu · 基于PHP的Web应用程序中的单例对象状态 8 年前 |
|
|
dicle · 视图控制器中的依赖项注入 8 年前 |
|
|
Kozuki · 如何在生产代码中考虑单例? 8 年前 |