php mysqli中->和::有什么区别?

php中文网
发布: 2016-06-06 20:50:57
原创
1416人浏览过

我看到有两种不同的写法,不知道这二者有什么区别?

mysqli->commit
mysqli::commit
登录后复制

回复内容:

我看到有两种不同的写法,不知道这二者有什么区别?

mysqli->commit
mysqli::commit
登录后复制

->用来访问实例的成员,一般左面是一个类实例(或者$this), 右面是一个函数或者属性. 箭头也可以通过类实例来访问静态函数.

::用来访问静态成员、常量,访问父类中的成员. 一般左面是一个类名,或selfparentstatic关键字, 右面是一个静态函数、静态属性、常量.

PHP轻论坛
PHP轻论坛

简介PHP轻论坛是一个简单易用的PHP论坛程序,适合小型社区和个人网站使用。v3.0版本是完全重构的版本,解决了之前版本中的所有已知问题,特别是MySQL保留字冲突问题。主要特点• 简单易用:简洁的界面,易于安装和使用• 响应式设计:适配各种设备,包括手机和平板• 安全可靠:避免使用MySQL保留字,防止SQL注入• 功能完善:支持分类、主题、回复、用户管理等基本功能• 易于扩展:模块化设计,便于

PHP轻论坛 26
查看详情 PHP轻论坛
<?php

// 费了我好大功夫, 把这些都总结到一个例子里面了
// PHP5.3 PHP5.4 PHP5.5 测试通过

class A
{
    //类常量
    const constValue = "constValue\n";

	//类属性
    public $property = "properties\n";

    //静态属性
    static public $staticProperty = "staticProperty\n";

    //普通函数
    public function func()
    {

    }

    //静态函数
    static public function staticFunc()
    {

    }
}

$xxoo = new A;
//访问实例的属性
print $xxoo->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();
登录后复制

总结:
箭头:通过实例访问属性、(静态)函数
双冒号:通过类名或selfparentstatic关键字,访问常量、静态属性、静态函数

http://php.net/manual/zh/language.oop...
PHP5.3新增后期静态绑定功能,和双冒号以及static关键字有关,这个我正在学习中.....

mysqli::commit 没有这种用法的,php文档里这样表示的意思是commitmysqli对象 的一个成员方法而不是 mysqli 这个类的静态方法

立即学习PHP免费学习笔记(深入)”;

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号