1.全局变量[其不属于面向对象的思想,因为其放在对象之外的],面向对象有一个特点,其实封装的,php希望其所有的成员都应该放在类中;php的面向对象是基于面向对象的,不是纯粹面向对象的;也就是其可以面向对象编程,也可以不面向对象编程。

使用global定义全局变量,其放在内存的全局区/静态区中,在代码中其是放在class外面的。

global $global_a;

$global_a=8;//只能这样给全局变量赋值,否则会报错

//在函数中使用全局变量

function test(){

global $global_a;//global才能得到$a的地址

$global_a=90;//找到外层的$a的地址位置并将其值改成90

}

test();

echo $global_a;//输出90,如果函数中在使用全局变量时没有使用global关键字的话,输出的值是8

2.static关键字的理解

注意:

a.要在类中定义static变量

b.使用static变量可以在类中也可以在类外使用(静态对象不会依赖于对象的创建而创建,也就是说在访问static变量时,不用去创建对象就可以直接方法:

class Person{

public static $a=90;

public function __construct(){

echo "你好";

}

}

echo Person::$a;

//没有new

Person();但是还是可以得到$a等于90。在php中new关键字才会调用__construct方法,如果没有new就不会调用该方法;因此在这里“你好”不会输出

)

class Child{

public $name;

public static

$num=0;//定义static属性

function __construct($cname){

$this->name=$cname;

}

public function play_game(){

//使用static属性,在类中,1.self::$类变量名

2. 类名::$类变量名(在类外部才用第二种方式使用)

self::$num+=1;//在类中使用static变量

echo

$this->name."加入了玩游戏
";

}

}

$child1=new Child(‘倪华‘);

$child1->play_game();

$child2=new

Child(‘万鑫‘);

$child2->play_game();

$child3=new

Child(‘盛盛‘);

$child3->play_game();

echo Child::$num;//在类外使用static属性

3.static方法(静态方法,注意:在类方法中不能使用非静态属性[变量],在使用静态变量时往往采用静态方法)

静态方法也叫类方法,静态方法是属于所有对象的实例的,其定义形式为:[修饰符] static  function

方法名(){}

在类中使用类方法:self::类方法名

或者    类名::类方法名

在类的外部使用:类名::类方法名

或者  对象名->类方法名

class Student{

public $name;

public static $fee;

function

__construct($name){

$this->name=$name;

}

public static function enter_school($fee){

self::$fee+=$fee;

}

static function getFee(){

return self::$fee;

}

}

$stu=new Student("张三");

Student::enter_school(200);

$stu=new

Student("张三333");

$stu->enter_school(300);

echo

"总费用是".$stu->getFee();

静态方法的特点:

静态方法只能操作静态变量

静态方法不能操作非静态变量

普通成员方法可以操作静态变量也可以操作普通变量,但是不能访问静态方法,静态方法也不能访问静态方法

php全局变量的关键字,php的static关键字和全局变量相关推荐

  1. static关键字_聊聊static关键字

    前言:今天看看powermock测试框架的基础知识,简单了解了一下Mock 的底层原理. Mockito底层使用了动态代理,用到了CGLIB.因此需要被mock的对象,Mockito都会生成一个子类继 ...

  2. C语言之static关键字详解

    目录 前言: 一.几个概念 1.变量 2.局部变量和全局变量 3.变量的作用域 4.变量的生命周期 二.static关键字的作用 三.static关键字修饰局部变量 四.static关键字修饰全局变量 ...

  3. 面试季,Java中的static关键字解析

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面 ...

  4. static关键字了解解析

    什么是static关键字 static关键字我们经常接触,不过我们一直没有讨论过它到底是什么,有什么具体的作用,那static关键字是什么呢,有啥用呢? static是静态的意思,是一个修饰符,就像是 ...

  5. Java:封装的概念,UML类图,构造方法,this关键字,static关键字,方法重载,包package

                     oop三大特性:封装,继承,多态 oop一般指面向对象程序设计(一种计算机编程架构) 一.封装的概念:    将东西包在一起,然后以新的完整形式呈现出来       ...

  6. java中的static类_再议Java中的static关键字

    再议Java中的static关键字 java中的static关键字在很久之前的一篇博文中已经讲到过了,感兴趣的朋友可以参考:<Java中的static关键字解析>. 今天我们再来谈一谈st ...

  7. 【零基础学Java】—static关键字概述(十六)

    [零基础学Java]-static关键字概述(十六) 一.static关键字 二.static关键字修饰成员变量 /*** @author :CaiCai* @date : 2022/4/8 11:1 ...

  8. [转载] Java static关键字详解

    参考链接: Java中的static关键字 static关键字 在类中,用static声明的成员变量为静态成员变量,也成为类变量.类变量的生命周期和类相同,在整个应用程序执行期间都有效. 这里要强调一 ...

  9. java static关键字的作用是什么_static关键字有什么作用

    今天主要学习下Java语言中的static关键字. static关键字的含义及使用场景 static是Java50个关键字之一.static关键字可以用来修饰代码块表示静态代码块,修饰成员变量表示全局 ...

最新文章

  1. C++ 数据类型转换
  2. android点击事件注册方式,Android界面控件(3)— 注册同一个点击事件的监听器...
  3. tensorflow从入门到精通100讲(一)-如何申明一个tensor,Tensorflow中最重要的基本操作
  4. 抖音是用python写的吗_用 Python 实现抖音尬舞机
  5. 关于方程a^x=1(mod m)的最小x解
  6. Python列表、元组
  7. oracle adf_Oracle ADF和Oracle Jet一起工作。 建筑模式
  8. An internal error occurred during: Retrieving archetypes:. GC overhead limit exceeded
  9. redis 学习笔记(6)-cluster集群搭建
  10. wpa_supplicant使用
  11. 南航率先启用“手机登机”
  12. 阿里P7晒出1月工资单:狠补了这个,真香...
  13. 中文版-Plan9汇编器手册-A Manual for the Plan 9 assembler
  14. 原来我还写过这么浪漫的东西
  15. 提高网络营销的转化只需掌握这四步
  16. java选择题《每日一练》
  17. Kaggle:Quora Question Pairs
  18. 对seed()的个人理解
  19. ESP8266 固件下载
  20. SpringCloud-Netfilx

热门文章

  1. python文件读写用到的库_Python使用pyshp库读取shapefile信息的方法
  2. 许多计算机英语,计算机英语翻译
  3. frexp 中文_带有Python示例的math.frexp()方法
  4. 你没有见过的 7 种 for 循环优化,超好用!
  5. MySQL 快速创建千万级测试数据
  6. Ubuntu apt-get和pip源更换
  7. Linux(CentOS)安装apache(httpd),其他电脑无法访问的原因 【iptables打开某端口】
  8. Python格式化字符串f-string常用用法
  9. PyCharm PyQt5创建主窗口源代码
  10. ELK开机自启动脚本