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

本文详细介绍了PHP中的全局变量和面向对象编程中的静态成员。全局变量在类外部定义,通过`global`关键字在函数内部访问。静态变量在类中定义,可以在类内外直接通过`类名::变量名`访问,无需实例化对象。静态方法只能操作静态变量,不能操作非静态变量,常用于处理与对象实例无关的数据。示例代码展示了静态变量和静态方法的使用,以及它们在类继承中的应用。
摘要由CSDN通过智能技术生成

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

静态方法的特点:

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值