


PHP neutron class overloads the method of the parent class [parent::method name], neutron parent_PHP tutorial
Jul 12, 2016 am 08:53 AMIn PHP, the subclass overrides the method of the parent class [parent::method name]. The neutron parent
cannot define functions with the same name in PHP, including functions that cannot be defined again. Methods with the same name are defined in the same class, so there is no method overloading. Methods with the same name as those of the parent class can be defined in the subclass alone, because the methods of the parent class already exist in the subclass, so the methods inherited from the parent class can be overridden in the subclass.
The method of overriding the parent class in a subclass is to overwrite the methods inherited from the parent class in the subclass. Can’t the methods in the parent class be used directly if they are inherited by the subclass? Why do we need to overload it? Because there are some situations that we have to cover. For example, there is a "Bird" class, in which the general method "Fly" for birds is defined. Taking the "ostrich" class as its subclass will inherit the "flying" method, but as soon as the "flying" method in the "ostrich" class is called, the ostrich will fly away. Although ostriches cannot fly, other characteristics have the characteristics of "birds". Therefore, when declaring the "ostrich" class, you can still inherit the "bird" class, but you must add the "bird" class to the "ostrich" class. To rewrite the "flying" method inherited from the class, you need to overload the method in the parent class in the subclass.
In the following example, there is a "speak" method in the declared Person class. After the Student class inherits the Person class, it can directly use the "speak" method. However, the "speak" method in the Person class can only speak its own member attributes, while the Student class extends the Person class and adds several new member attributes. The code looks like this:
<?php class Person{ protected $name; protected $sex; protected $Wage; function __construct($name="",$sex="男",$age=1){ $this ->name = $name; $this ->sex = $sex; $this ->age = $age; } //在人類中聲明一個通用的說話方法,介紹一下自己 function say(){ echo "我的名字:".$this-> name.",性別:".$this ->sex.",年齡:".$this ->age."。<br>"; } } //聲明一個學生類,使用extends關鍵字擴展(繼承)person類 class Student extends Person { private $school; //在學生類中聲明一個所在學校school的成員屬性 //覆蓋父類中的構造方法,在參數(shù)列表中添加一個學校屬性,用來創(chuàng)建對象并初始化成員屬性 function __construct($name="",$sex="男",$age=1,$school=""){ $this ->name = $name; $this ->sex = $sex; $this ->age = $age; $this ->school = $school; } function study(){ echo $this ->name."正在".$this ->school."學習<br>"; } //定義一個和父類中同名的方法,將父類中的說話方法覆蓋并重寫,多說出所在的學校名稱 function say(){ echo "我的名字:".$this ->name.",性別:".$this ->sex.",年齡:".$this ->age.",在".$this ->school."學校上學<br>"; } } $student= new Student("張三","男",20,"edu"); //創(chuàng)建一個學生對象,并傳給一個學校名稱參數(shù) $student -> say(); //調用學生類中覆蓋父類的說話方法 ?>
The output result after running the modified program is:
My name is: Zhang San, gender: male, my age is: 20, studying in edu school
In PHP, the function of calling the overridden method of the parent class in the overloaded method of the subclass is provided. In this way, in the methods overridden by the subclass, you can continue to use the methods inherited and overridden from the parent class, and then add more new functions as required. The format of the call is to use "parent: method name" to call the overridden method in the parent class in the overloaded method of the subclass. Modify the code in the above example, use "parent::__construct()" in the overridden constructor of the subclass to call the overridden constructor of the parent class, and add an additional member attribute for the newly extended member of the subclass. Initialization code. Use "parent::say()" in the say() method overridden in the subclass to call the overridden say() method in the parent class, and then add the function of outputting the member attributes of the subclass.
The code is as follows:
<?php class Person{ protected $name; protected $sex; protected $Wage; function __construct($name="",$sex="男",$age=1){ $this ->name = $name; $this ->sex = $sex; $this ->age = $age; } //在人類中聲明一個通用的說話方法,介紹一下自己 function say(){ echo "我的名字:".$this-> name.",性別:".$this ->sex.",年齡:".$this ->age."。<br>"; } } //聲明一個學生類,使用extends關鍵字擴展(繼承)person類 class Student extends Person { private $school; //在學生類中聲明一個所在學校school的成員屬性 //覆蓋父類中的構造方法,在參數(shù)列表中添加一個學校屬性,用來創(chuàng)建對象并初始化成員屬性 function __construct($name="",$sex="男",$age=1,$school=""){ //調用父類中被覆蓋的構造方法,為從父類中集成過來額出行賦初值 parent::__construct($name,$sex,$age); $this ->school = $school; } function study(){ echo $this ->name."正在".$this ->school."學習<br>"; } //定義一個和父類中同名的方法,將父類中的說話方法覆蓋并重寫,多說出所在的學校名稱 function say(){ parent::say(); //調用父類中被本方法覆蓋掉的方法 echo "在".$this ->school."學校上學<br>"; } } $student= new Student("張三","男",20,"edu"); //創(chuàng)建一個學生對象,并傳給一個學校名稱參數(shù) $student -> say(); //調用學生類中覆蓋父類的說話方法 ?>
The output result of the above example is the same as the previous example, but in this case it is much simpler to directly call the overridden method in the parent class in the subclass. In addition, when a subclass overrides a method of a parent class, it must be noted that the access permissions of the methods overridden in the subclass must not be lower than the access permissions of the overridden methods of the parent class. For example, if the access permission in the parent class is protected, then the permission of the method overridden in the child class must be protected or public.
The above content is the relevant content of the method [parent::method name] of the subclass overloading the parent class in PHP introduced by the editor. I hope it will be helpful to everyone! If you want to know more information, please pay attention to the Bangkejia website!

Hot AI Tools

Undress AI Tool
Undress images for free

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

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

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

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

In PHP, you can use square brackets or curly braces to obtain string specific index characters, but square brackets are recommended; the index starts from 0, and the access outside the range returns a null value and cannot be assigned a value; mb_substr is required to handle multi-byte characters. For example: $str="hello";echo$str[0]; output h; and Chinese characters such as mb_substr($str,1,1) need to obtain the correct result; in actual applications, the length of the string should be checked before looping, dynamic strings need to be verified for validity, and multilingual projects recommend using multi-byte security functions uniformly.

To prevent session hijacking in PHP, the following measures need to be taken: 1. Use HTTPS to encrypt the transmission and set session.cookie_secure=1 in php.ini; 2. Set the security cookie attributes, including httponly, secure and samesite; 3. Call session_regenerate_id(true) when the user logs in or permissions change to change to change the SessionID; 4. Limit the Session life cycle, reasonably configure gc_maxlifetime and record the user's activity time; 5. Prohibit exposing the SessionID to the URL, and set session.use_only

The urlencode() function is used to encode strings into URL-safe formats, where non-alphanumeric characters (except -, _, and .) are replaced with a percent sign followed by a two-digit hexadecimal number. For example, spaces are converted to signs, exclamation marks are converted to!, and Chinese characters are converted to their UTF-8 encoding form. When using, only the parameter values ??should be encoded, not the entire URL, to avoid damaging the URL structure. For other parts of the URL, such as path segments, the rawurlencode() function should be used, which converts the space to . When processing array parameters, you can use http_build_query() to automatically encode, or manually call urlencode() on each value to ensure safe transfer of data. just

You can use substr() or mb_substr() to get the first N characters in PHP. The specific steps are as follows: 1. Use substr($string,0,N) to intercept the first N characters, which is suitable for ASCII characters and is simple and efficient; 2. When processing multi-byte characters (such as Chinese), mb_substr($string,0,N,'UTF-8'), and ensure that mbstring extension is enabled; 3. If the string contains HTML or whitespace characters, you should first use strip_tags() to remove the tags and trim() to clean the spaces, and then intercept them to ensure the results are clean.

There are two main ways to get the last N characters of a string in PHP: 1. Use the substr() function to intercept through the negative starting position, which is suitable for single-byte characters; 2. Use the mb_substr() function to support multilingual and UTF-8 encoding to avoid truncating non-English characters; 3. Optionally determine whether the string length is sufficient to handle boundary situations; 4. It is not recommended to use strrev() substr() combination method because it is not safe and inefficient for multi-byte characters.

To set and get session variables in PHP, you must first always call session_start() at the top of the script to start the session. 1. When setting session variables, use $_SESSION hyperglobal array to assign values ??to specific keys, such as $_SESSION['username']='john_doe'; it can store strings, numbers, arrays and even objects, but avoid storing too much data to avoid affecting performance. 2. When obtaining session variables, you need to call session_start() first, and then access the $_SESSION array through the key, such as echo$_SESSION['username']; it is recommended to use isset() to check whether the variable exists to avoid errors

Key methods to prevent SQL injection in PHP include: 1. Use preprocessing statements (such as PDO or MySQLi) to separate SQL code and data; 2. Turn off simulated preprocessing mode to ensure true preprocessing; 3. Filter and verify user input, such as using is_numeric() and filter_var(); 4. Avoid directly splicing SQL strings and use parameter binding instead; 5. Turn off error display in the production environment and record error logs. These measures comprehensively prevent the risk of SQL injection from mechanisms and details.
