zoukankan      html  css  js  c++  java
  • php中静态变量和静态方法

    1,静态变量:所有对象共享的变量成为静态变量。静态变量类似于全局变量,不过全局变量破坏对象的封装性,因此其对应于面向过程;静态变量对应于面向对象。

    2,全局变量,全局变量的使用实例如下,声明全局变量时候 global $global_nums;在局部函数中使用全局变量时候,需要先声明下全局变量再使用,声明时候系统会在栈区创建一个变量,这变量存放地址,指向全局区的全局变量。

    <?php
    /**
     * Created by PhpStorm.
     * User: usa007lhy
     * Date: 2015/10/15
     * Time: 21:38
     */
    global $global_nums;
    $global_nums = 0;
    class Child{
        public $name;
        function __construct($name){
            $this->name = $name;
        }
    
        public function join_game(){
            global $global_nums;
            $global_nums++;
            echo $this->name."加入玩雪球游戏<br/>";
        }
    }
    $child1 = new Child('小刚');
    $child1->join_game();
    
    
    echo $global_nums."个人加入堆雪球的游戏。<br/>"
    ?>
    

      程序变化时候,内存变化如下图所示

    3,静态变量

     静态变量只能被类访问,访问静态变量有两种方式,(1)类名::静态变量,任何位置可以使用;(2)self::静态变量,只能在类内部使用,即只能适用于成员函数。

    <?php
    /**
     * Created by PhpStorm.
     * User: usa007lhy
     * Date: 2015/10/15
     * Time: 21:38
     */
    
    class Child{
        public static $nums = 0;
        public $name;
        function __construct($name){
            $this->name = $name;
        }
    
        public function join_game(){
            self::$nums++;
            echo $this->name."加入玩雪球游戏<br/>";
        }
    }
    $child1 = new Child('小刚');
    $child1->join_game();
    
    echo Child::$nums."个人加入堆雪球的游戏。<br/>"
    ?>
    

      程序运行时,内存变化如下:

    4,静态方法

          静态方法也叫类方法,静态方法是属于所有对象实例的,其形式如下:访问修饰符 static 方法名(){}。类方法中不能访问非静态变量;静态方法的访问方式:

    在类外部:类名::类方法名或对象名->类方法名;在类内部:类名::类方法名或self::类方法名。

          普通函数可以访问静态变量和非静态变量,静态函数只能访问静态变量,不能访问非静态变量;

  • 相关阅读:
    redis客户端连接,最大连接数查询与设置
    基于php实现QQ授权登陆 --qq授权登录
    在H5页面内通过地址调起高德地图实现导航
    数据库备份的两种方法
    ThinkPHP5.0 实现 app支付宝支付功能
    jQuery选取所有复选框被选中的值并用Ajax异步提交数据
    php 微信公众号接入支付宝支付
    MySQL查询优化
    php函数的使用技巧
    安装Django时解决的问题-mysql及访问(附pycharm激活)
  • 原文地址:https://www.cnblogs.com/usa007lhy/p/4894774.html
Copyright © 2011-2022 走看看