时间:2021-07-01 10:21:17 帮助过:22人阅读
mysqli->commit mysqli::commit
我看到有两种不同的写法,不知道这二者有什么区别?
mysqli->commit mysqli::commit
->用来访问实例的成员,一般左面是一个类实例(或者$this), 右面是一个函数或者属性. 箭头也可以通过类实例来访问静态函数.
::用来访问静态成员、常量,访问父类中的成员. 一般左面是一个类名,或self、parent、static关键字, 右面是一个静态函数、静态属性、常量.
property;
//访问实例的函数
print $xxoo->func();
//也可以借助实例来访问静态成员
//访问函数要用箭头,属性要用双冒号
print $xxoo->staticFunc();
print $xxoo::$staticProperty;
//如果不借助实例,那就直接用类名加双冒号
print A::staticFunc();
print A::constValue;
//静态属性要加美元符号
print A::$staticProperty;
//继承类A
class B extends A
{
//覆盖父类的属性
public $property = "covered-properties\n";
//覆盖父类的静态属性
static public $staitcProperty = "covered-staitcProperties\n";
//覆盖父类的函数
public function func()
{
//访问自己的属性
print $this->property;
//访问从父类继承来的静态属性
print self::$staticProperty;
//访问自己的(静态)函数
print $this->staticFunc();
//强制指定访问父类(而不是自己)的函数
print parent::func();
}
//覆盖父类的静态函数
static public function staticFunc()
{
//因为没有$this, 所以用self访问自己的静态属性
print self::$staitcProperty;
}
}
//运行一下上面的例子
$xxoo = new B;
$xxoo->func();
B::staticFunc();总结:
箭头:通过实例访问属性、(静态)函数
双冒号:通过类名或self、parent、static关键字,访问常量、静态属性、静态函数
http://php.com/manual/zh/language.oop...
PHP5.3新增后期静态绑定功能,和双冒号以及static关键字有关,这个我正在学习中.....
mysqli::commit 没有这种用法的,php文档里这样表示的意思是commit 是 mysqli对象 的一个成员方法而不是 mysqli 这个类的静态方法