Table of Contents
The basic reason for using $this: " >The basic reason for using $this:
Modification qualifier" >Modification qualifier
需要注意的是:" >需要注意的是:
Home Backend Development PHP Tutorial Detailed explanation of the usage and access qualifiers of $this in PHP

Detailed explanation of the usage and access qualifiers of $this in PHP

Mar 15, 2018 pm 03:23 PM
php this Detailed explanation

$this cannot be used in static functions in classes because static memory space is generated without instantiation, while classes need to be instantiated before memory space is generated. The two memories are not together and cannot access each other.

So the following writing is wrong;

<span style="font-family: 微软雅黑, "Microsoft YaHei";">class Book extends Goods {<br/>	public $anthor;<br/>	public $publisher;<br/>	static public function get_author($author){<br/>		$this->author = $author;<br/>	} <br/>}</span>
Copy after login


That is to say, $this can only be used by calling non-static methods using objects

The non-static method can only be determined after the object has determined the value of $this

The basic reason for using $this:

1. Which object calls the calling method, $this in the method is that object

Just like the following:

This also shows that $this has nothing to do with the position of which class, only with which object is instantiated.

2. The object environment can be passed down:


If it is within the current method, it has been determined Object environment, if there is a static call to a non-static method in the cover method, then the current object environment will be passed down to the statically called non-static method,

$this It is not the object that always represents where you are tired.

Modification qualifier

public Shared

protect Protected

private Private

is used to describe where a member (property, method) can be accessed.

Note:

PHP uses the concept of classes to modify and qualify members.

PHP divides the accessed code into three areas: within the class, outside the class, and within the class on the inheritance chain.

It is decided based on where the member is accessed and where the member is defined

Take property as an example


public

Public means that the members are within this class, within the class on the inheritance chain, and Outside the class, everything can be accessed!

protect

Protected refers to classes whose members are within this class and on the inheritance chain (subclass, parent class) Can be accessed

private

Private means that only within this class can be accessed!

How to choose:

One principle is to try to reflect the encapsulation. Encapsulation means hiding the internal implementation as much as possible and only developing external operation interfaces!

Syntax is to privatize (protect) the properties and methods that are not needed for external use, leaving only some necessary public methods!

需要注意的是:

1、一定要先明确访问的是哪里定义的!


2、私有成员不能被重写

只有在自己的类中才能访问到对应的私有成员


建议是

如果需要通过继承,你就使用保护的,少用私有的!

在没有继承时,尽量使用私有的!

3、在重写时,如果重写成员的访问级别不一致。子类的级别比父类的级别,相等或者弱,可以!强,不行!


这样是语法规定,如果想解释也是很简单的

是这样的,我简单说明
1 基类有一个方法,比如 // 我们不考虑Object作为所有类的基类啦。 呵呵呵!

public void method1(){
  method2(); // 此方法需要调用method2();
}
public void method2(){ // 如果这个方法是abstract 的话,也许会看得更清楚,不过不常见.
}
Copy after login

2 子类重写了

@Override
private void method2(){ // 当然,编译错误,我们只是用来说明这样做的问题
}
Copy after login

3 子类的子类
如果他调用 method1() 会出现什么后果呢?
a) 他能访问method1(), 因为那是他的基类,且是public
b) 但很可惜,method1()里面 却不能访问method2()了,因为在父类是private的了。

这岂不是很可笑的情况。

所以,子类不能比父类的更私有,但可以更公开。 呵呵。这样才能保证父类已经实现的代码能够使用。

另:从5.0开始,子类方法override时,可以返回与父类不同的类型。但参数必须完全相同。

4、

1, 兼容性的问题

早先的 php的面向对象不完善,没有访问控制!

在声明属性时,使用 var 关键字!

声明方法时,什么都不使用!function

为了兼容,上面的做法还是可以使用!

var, function。访问权限都是public的!

相关推荐:

详解PHP中self与$this的区别

PHP中$this指针使用实例详解

php 静态函数中$this的问题

The above is the detailed content of Detailed explanation of the usage and access qualifiers of $this in PHP. For more information, please follow other related articles on the PHP Chinese website!

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

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 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)

Hot Topics

Java Tutorial
1672
14
PHP Tutorial
1277
29
C# Tutorial
1256
24
PHP vs. Python: Understanding the Differences PHP vs. Python: Understanding the Differences Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

PHP: A Key Language for Web Development PHP: A Key Language for Web Development Apr 13, 2025 am 12:08 AM

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP in Action: Real-World Examples and Applications PHP in Action: Real-World Examples and Applications Apr 14, 2025 am 12:19 AM

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

The Enduring Relevance of PHP: Is It Still Alive? The Enduring Relevance of PHP: Is It Still Alive? Apr 14, 2025 am 12:12 AM

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.

PHP and Python: Different Paradigms Explained PHP and Python: Different Paradigms Explained Apr 18, 2025 am 12:26 AM

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP vs. Other Languages: A Comparison PHP vs. Other Languages: A Comparison Apr 13, 2025 am 12:19 AM

PHP is suitable for web development, especially in rapid development and processing dynamic content, but is not good at data science and enterprise-level applications. Compared with Python, PHP has more advantages in web development, but is not as good as Python in the field of data science; compared with Java, PHP performs worse in enterprise-level applications, but is more flexible in web development; compared with JavaScript, PHP is more concise in back-end development, but is not as good as JavaScript in front-end development.

PHP and Python: Code Examples and Comparison PHP and Python: Code Examples and Comparison Apr 15, 2025 am 12:07 AM

PHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.

See all articles