zoukankan      html  css  js  c++  java
  • PHP自学之路静态方法

    静态方法

        静态方法也就类方法,静态方法属于所有对象实例的,其形式如下:

    访问修饰符 static 方法名(){}

    注意:在静态类方法中不能访问非静态属性(变量)。 

    在类内部 : 类名::类方法名 或者对象名-〉类方法名

    在类内部:  类名::类方法名  或者 self::类方法名

     案例:

    <?php
        //静态方法的使用
    	class Student{
    		public static $fee=0;
    		public $name;
    		//构造函数
    		function __construct($name){
    			$this->name=$name;
    			echo "初始化变量<br/>";
    		}
    
    		public static function enterSchool($ifee){
    			self::$fee+=$ifee;
    		}
    		public static function getFee(){
    			//return self::$fee;
    			return Student::$fee;
    		}
    		//下面写法是不正确的,静态方法只能操作静态变量
    	    public static function test(){
    			echo $this->name;
    		}
    
    	}
    
    	//创建学生
    	$stu1=new Student("阿辉");
    	//调用静态方法的方法:
    	//1 通过类名直接调用。
    	//Student::enterSchool(340);
    	//2 通过对象调用
    	$stu1->enterSchool(340);
    	$stu2=new Student("佩佩");
    	Student::enterSchool(30);
    	echo "总学费=".Student::getFee()."||".$stu2->getFee()."<br/>";
    
    	Student::test();
    	//报错如下:
        //Fatal error: Using $this when not in object context in /var/myphp/class/Static.class.php on line 21
    
    ?>

    在实际的编程中,我们往往使用静态方法去操作静态变量。
    静态方法的特点:
    1、  静态方法去操作静态变量
    2、  静态方法不能操作费静态变量。
    注意:普通成员的方法既可以操作静态变量,也可以操作非静态变量。



  • 相关阅读:
    【leetcode】538/1038: 把二叉搜索树转化为累加树
    k8s-nginx二进制报Illegal instruction (core dumped)
    k8s-记一次安全软件导致镜像加载失败
    Ubuntu1804下k8s-CoreDNS占CPU高问题排查
    Ubuntu 18.04 永久修改DNS的方法
    NLP资源
    《转载》14种文本分类中的常用算法
    PyCharm 使用技巧
    python模块包调用问题
    强化学习(8)------动态规划(通俗解释)
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3087684.html
Copyright © 2011-2022 走看看