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();

静态方法的特点:

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

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

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

原文:http://www.cnblogs.com/tangyue/p/3745251.html

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

  1. 【C语言】局部变量、全局变量,局部静态变量,全局静态变量,extern,static的区别...

    局部变量: 创建在栈区(向下生长),生命周期存在于当前作用域中.     创建时若未初始化,则为随机值. 全局变量: 创建在static区,生命周期一直存在. 创建时若未初始化,则为0. 静态局部变量 ...

  2. php中如何声明静态属性,PHP使用static关键字声明静态属性和静态方法

    PHP使用static关键字声明静态属性和静态方法 在PHP中,通过static关键字修饰的成员属性和成员方法被称为静态属性和静态方法. 静态属性和静态方法不需要在被类实例化的情况下就可以直接使用. ...

  3. 全局变量和全局静态变量

    主要区别就是作用域:全局变量定义的变量可以被其他文件所看见(即可以被其他文件extern),全局静态变量的作用范围只限于本文件中. 关于在头文件中定义:在#include之后会在cpp文件中展开,相当 ...

  4. wpf绑定全局静态变量并且实现变更通知(mvvm)

    在实际的开发中,有一些集合或者属性可能是全局的,比如当你做一个oa的时候,可能需要展示所有的人员,这时这个所有的人员列表显然可以作为全局参数,比如这里有一个全局的静态属性UserList.而你在使用m ...

  5. 【转载】wpf绑定全局静态变量并且实现变更通知(mvvm)

    这篇看了之后,很有启发,也很有用!,分享给大家 以下是转载内容. ---------------- 版权声明:本文为CSDN博主「returnTrue999」的原创文章,遵循CC 4.0 BY-SA版 ...

  6. php的 静态变量,PHP之static静态变量详解

    在看别人项目过程中,看到函数里面很多static修饰的变量,关于static修饰的变量,作用域,用法越看越困惑,所以查了下资料. static用法如下: 1.static 放在函数内部修饰变量 2.s ...

  7. 【原创】 关于全局静态变量初始化

    今天碰到个问题,直接上代码: Class Program{private static string _str= "StringValue";private static Uri ...

  8. 局部静态变量和全局静态变量

    静态变量的类型说明符是static. 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能 ...

  9. java静态函数_(基础)java中的静态变量与静态函数Static

    静态static 静态出现最大的原因:节约内存,只存一份,由对象共享这个属性. 静态的作用是什么? 场景: 当每个对象都有一个相同的属性,如country="China",那么每个 ...

最新文章

  1. C++实现十大排序算法(冒泡,选择,插入,归并,快速,堆,希尔,桶,计数,基数)排序算法时间复杂度、空间复杂度、稳定性比较(面试经验总结)
  2. Nature: 人的肠道古细菌基因组集
  3. The Swift Code之UITextField的使用,及事件委托
  4. 哎!马上要涉水了,装修的水!
  5. 阻塞非阻塞和同步异步
  6. centos who命令 查看当前登录系统用户信息
  7. Istio 网关之南北向流量管理
  8. 【图说Word】怎么在word的每一行前面和后面加上同一个字或字符?
  9. 杭电5620 KK's Steel
  10. Centos源码安装Python3
  11. 神经网络测试集loss不变_神经网络训练过程中不收敛或者训练失败的原因
  12. 《Oracle SQL疑难解析》——1.10 删除表中的所有行
  13. docker入门、docker基本命令
  14. DSB matlab仿真
  15. python绝技运用python成为顶级pdf_python绝技:运用python成为顶级黑客 中文pdf完整版[42MB]...
  16. css文字和数字或者英文对不齐解决方案
  17. 【neutron源码分析】neutron-server启动流程分析
  18. uestc oj 1831 论程序的阿卡林化
  19. do while循环语句的学习以及练习
  20. java创建byte数组_java.创建一个byte数组,long length = file.length(); byte[] bytes =

热门文章

  1. manjaro初步配置
  2. PTA天梯赛L1-058 6翻了(c语言实现)
  3. HOOK启思录---第三章 HOOK的应用模式
  4. Nmap系统扫描实战
  5. 微信公众号中如何关闭本页面
  6. node.js 使用nodemailer发送qq邮件
  7. 邦纳传感器K50CABT2XGHQ
  8. 2022P气瓶充装考试题及答案
  9. java8 stream_Java 8 Stream中间操作(方法)示例
  10. 时隔一年半,我,一个卑微的前端菜鸡,又来写面经了