


Detailed explanation of the definition, usage, and difference examples of public, private, and protected attributes in PHP
public: Public attributes or methods
can be called in subclasses through self::var or self::method, and can be called in parent classes through parent::method method, but public properties cannot be called.
In the instance, it can be called through $obj->var or self::method
protected: protected type
In the subclass, you can call it through self::var or self::method. You can call the method in the parent class through parent::method.
In the instance, you cannot call the protected type method through $obj->var. Or attribute
private: private type
The attributes or methods of this type can only be used in this class, and cannot be called in instances of this class, subclasses, or instances of subclasses Properties and methods of private types
2. The difference between self and parent
a). These two objects are commonly used in subclasses. Their main difference is that self can call public or protected properties in the parent class, but parent cannot call
b).self:: It represents the static members of the current class ( Methods and properties) Unlike $this, $this refers to the current object
<?php class BaseClass { public $public = 'public'; private $private = 'private'; protected $protected = 'protected'; function construct(){ } function print_var(){ print $this->public;echo '<br />'; print $this->private; echo '<br />'; print $this->protected; echo '<br />'; } } class Subclass extends BaseClass { // public $public = 'public2'; protected $protected ='protected2'; function construct(){ echo $this->protected;//可以访问,因为类中定义为受保护的,所以在本类或子类中可以,子类中还可以重复付值 echo '<br />'; echo $this->private;//error 因为是私有的只有在定义她的类baseclass中可以用 } } $obj1 = new BaseClass(); $obj1->print_var(); //echo $obj1->protected;//error 因为是受保护的,只有在本类内部或子类父类中可以调用 //echo $obj1->private;//error 同上私有的,只有在本类内调用 echo $obj1->public; echo "<hr />"; $obj2 = new Subclass(); echo '<br />'; echo $obj2->public;echo '<br />'; echo $obj2->protected; //echo $obj2->private;//error //echo $obj2->protected;//error ?>
Summary
public means global, and can be accessed by both internal and external subclasses of the class;
private means private, It can only be used within this class;
protected means protected and can only be accessed in this class or subclass or parent class;
The above is the detailed content of Detailed explanation of the definition, usage, and difference examples of public, private, and protected attributes 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

AI Hentai Generator
Generate AI Hentai for free.

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



The PHP Client URL (cURL) extension is a powerful tool for developers, enabling seamless interaction with remote servers and REST APIs. By leveraging libcurl, a well-respected multi-protocol file transfer library, PHP cURL facilitates efficient execution of various network protocols, including HTTP, HTTPS, and FTP. This extension offers granular control over HTTP requests, supports multiple concurrent operations, and provides built-in security features.

Alipay PHP...

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,

Article discusses late static binding (LSB) in PHP, introduced in PHP 5.3, allowing runtime resolution of static method calls for more flexible inheritance.Main issue: LSB vs. traditional polymorphism; LSB's practical applications and potential perfo

Article discusses essential security features in frameworks to protect against vulnerabilities, including input validation, authentication, and regular updates.

The article discusses adding custom functionality to frameworks, focusing on understanding architecture, identifying extension points, and best practices for integration and debugging.

Sending JSON data using PHP's cURL library In PHP development, it is often necessary to interact with external APIs. One of the common ways is to use cURL library to send POST�...

An official introduction to the non-blocking feature of ReactPHP in-depth interpretation of ReactPHP's non-blocking feature has aroused many developers' questions: "ReactPHPisnon-blockingbydefault...
