首页 » PHP » PHP调用类的方法->和::

PHP调用类的方法->和::

7812 1

我们经常看到PHP里用$object->callback的方法来做调用,比较少看到object::callback这样的写法,不过在C里面,后则的写法比较常见,具体区别在哪里呢?tiandi告诉你实际上两种方法达到的效果几乎一样,唯一的区别就是是否实例化。下面用代码具体展现区别。

有一段代码如下,我们想调用a类去调用b类的dosome方法:

class a{
	static private $__instance = null;

	function single($class_name) {
		if(!isset(self::$__instance)) {
			self::$__instance = new $class_name;
		}
		return self::$__instance;
	}
}
class b {
	function __construct(){
		echo "class init<br>";
	}

	static function dosome() {
		echo "function do";
	}
}

第一种常规的$object->callback方法:

$ob = new a();
$ob ->single("b")->dosome();

第二种object::callback的方法:

a::single("b")->dosome();

两种方法返回的都是下面的结果:
class init
function do

可以看到第二种方法,调用前并没有实例化a这个类,而是直接用a::来执行。

文章评分2次,平均分3.0

本文原始地址:https://www.tiandiyoyo.com/2015/06/load_function_of_class_on_php/
本站所有文章,除了特别注明外,均为本站原创,转载请注明出处来自www.tiandiyoyo.com

您可能还会对以下文章感兴趣:

评论前先开启评论开关:


1 Comment

  1. 哦。看懂了,没有实例化,学习了。

载入分页评论...