


Detailed explanation of the usage and access qualifiers of $this in PHP
$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>
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 的话,也许会看得更清楚,不过不常见. }
2 子类重写了
@Override private void method2(){ // 当然,编译错误,我们只是用来说明这样做的问题 }
3 子类的子类
如果他调用 method1() 会出现什么后果呢?
a) 他能访问method1(), 因为那是他的基类,且是public
b) 但很可惜,method1()里面 却不能访问method2()了,因为在父类是private的了。
这岂不是很可笑的情况。
所以,子类不能比父类的更私有,但可以更公开。 呵呵。这样才能保证父类已经实现的代码能够使用。
另:从5.0开始,子类方法override时,可以返回与父类不同的类型。但参数必须完全相同。
4、
1, 兼容性的问题
早先的 php的面向对象不完善,没有访问控制!
在声明属性时,使用 var 关键字!
声明方法时,什么都不使用!function
为了兼容,上面的做法还是可以使用!
var, function。访问权限都是public的!
相关推荐:
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!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
