Table of Contents
回复内容:
Home Backend Development PHP Tutorial php mysqli中->和::有什么区别?

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

Jun 06, 2016 pm 08:50 PM
mysql mysqli php

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

mysqli->commit
mysqli::commit
Copy after login
Copy after login

回复内容:

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

mysqli->commit
mysqli::commit
Copy after login
Copy after login

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

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

<?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();
Copy after login

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

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

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

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

MySQL: The Ease of Data Management for Beginners MySQL: The Ease of Data Management for Beginners Apr 09, 2025 am 12:07 AM

MySQL is suitable for beginners because it is simple to install, powerful and easy to manage data. 1. Simple installation and configuration, suitable for a variety of operating systems. 2. Support basic operations such as creating databases and tables, inserting, querying, updating and deleting data. 3. Provide advanced functions such as JOIN operations and subqueries. 4. Performance can be improved through indexing, query optimization and table partitioning. 5. Support backup, recovery and security measures to ensure data security and consistency.

Can I retrieve the database password in Navicat? Can I retrieve the database password in Navicat? Apr 08, 2025 pm 09:51 PM

Navicat itself does not store the database password, and can only retrieve the encrypted password. Solution: 1. Check the password manager; 2. Check Navicat's "Remember Password" function; 3. Reset the database password; 4. Contact the database administrator.

How to create navicat premium How to create navicat premium Apr 09, 2025 am 07:09 AM

Create a database using Navicat Premium: Connect to the database server and enter the connection parameters. Right-click on the server and select Create Database. Enter the name of the new database and the specified character set and collation. Connect to the new database and create the table in the Object Browser. Right-click on the table and select Insert Data to insert the data.

How to view database password in Navicat for MariaDB? How to view database password in Navicat for MariaDB? Apr 08, 2025 pm 09:18 PM

Navicat for MariaDB cannot view the database password directly because the password is stored in encrypted form. To ensure the database security, there are three ways to reset your password: reset your password through Navicat and set a complex password. View the configuration file (not recommended, high risk). Use system command line tools (not recommended, you need to be proficient in command line tools).

Navicat cannot connect to MySQL/MariaDB/PostgreSQL and other databases Navicat cannot connect to MySQL/MariaDB/PostgreSQL and other databases Apr 08, 2025 pm 11:00 PM

Common reasons why Navicat cannot connect to the database and its solutions: 1. Check the server's running status; 2. Check the connection information; 3. Adjust the firewall settings; 4. Configure remote access; 5. Troubleshoot network problems; 6. Check permissions; 7. Ensure version compatibility; 8. Troubleshoot other possibilities.

Navicat connects to database error code and solution Navicat connects to database error code and solution Apr 08, 2025 pm 11:06 PM

Common errors and solutions when connecting to databases: Username or password (Error 1045) Firewall blocks connection (Error 2003) Connection timeout (Error 10060) Unable to use socket connection (Error 1042) SSL connection error (Error 10055) Too many connection attempts result in the host being blocked (Error 1129) Database does not exist (Error 1049) No permission to connect to database (Error 1000)

How to execute sql in navicat How to execute sql in navicat Apr 08, 2025 pm 11:42 PM

Steps to perform SQL in Navicat: Connect to the database. Create a SQL Editor window. Write SQL queries or scripts. Click the Run button to execute a query or script. View the results (if the query is executed).

How to create a new connection to mysql in navicat How to create a new connection to mysql in navicat Apr 09, 2025 am 07:21 AM

You can create a new MySQL connection in Navicat by following the steps: Open the application and select New Connection (Ctrl N). Select "MySQL" as the connection type. Enter the hostname/IP address, port, username, and password. (Optional) Configure advanced options. Save the connection and enter the connection name.

See all articles