2023-05-12 开启多语言插件支持……

php class中self,parent,this的区别以及实例介绍

php 苏 demo 2678℃ 0评论

php class中self,parent,this的区别以及实例介绍_php技巧_脚本之家

 
<?php
 
class test{
 public $public;
 private $private;
 protected $protected;
 static $instance;
 static $good = 'tankzhang <br>';
 public $tank = 'zhangying <br>';
 
 public function __construct(){
 $this->public = 'public <br>';
 $this->private = 'private <br>';
 $this->protected = 'protected <br>';
 
 }
 public function tank(){ //私有方法不能继承,换成public,protected
 if (!isset(self::$instance[get_class()]))
 {
 $c = get_class();
 self::$instance = new $c;
 }
 return self::$instance;
 } 

 public function pub_function() {
 echo "you request public function<br>";
 echo $this->public;
 }
 protected function pro_function(){
 echo "you request protected function<br>";
 echo $this->protected;
 }
 private function pri_function(){
 echo "you request private function<br>";
 echo $this->private;
 }
 static function sta_function(){
 echo "you request static function<br>";
 }
}
 
class test1 extends test{
 
 static $love = "tank <br>";
 private $aaaaaaa = "ying <br>";
 
 public function __construct(){
 parent::tank();
 parent::__construct();
 }
 public function tank(){
 echo $this->public;
 echo $this->protected;
 echo $this->aaaaaaa;
 $this->pro_function();
 }
 
 public function test1_function(){
 echo self::$love;
 echo self::$good;
 echo parent::$good;
 echo parent::$tank; //Fatal error: Access to undeclared static property: test::$tank
 echo self::$tank; //Fatal error: Access to undeclared static property: test::$tank
 }
 static function extends_function(){
 parent::sta_function();
 self::pro_function();
 echo "you request extends_private function<br>";
 }
}
 
error_reporting(E_ALL);
$test = new test1();
$test->tank(); //子类和父类有相同名字的属性和方法,实例化子类时,会调用子类中的方法。
test1::test1_function();
test1::extends_function(); //执行一部分后,报Fatal error: Using $this when not in object context in D:\xampp\htdocs\mytest\www4.php on line 32
?>

php class中self,parent,this的区别以及实例介绍_php技巧_脚本之家

打赏

转载请注明:苏demo的别样人生 » php class中self,parent,this的区别以及实例介绍

   如果本篇文章对您有帮助,欢迎向博主进行赞助,赞助时请写上您的用户名。
支付宝直接捐助帐号oracle_lee@qq.com 感谢支持!
喜欢 (0)or分享 (0)