文档章节

PHP_001 变量

g00m
 g00m
发布于 2015/02/21 23:10
字数 823
阅读 53
收藏 0

码上生花,ECharts 作品展示赛正式启动!>>>

PHP 变量

与代数类似,可以给 PHP 变量赋予某个值(x=5)或者表达式(z=x+y)。

变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 age、carname、totalvolume)。

PHP 变量规则:

  • 变量以 $ 符号开始,后面跟着变量的名称

  • 变量名必须以字母或者下划线字符开始

  • 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )

  • 变量名不能包含空格

  • 变量名是区分大小写的($y 和 $Y 是两个不同的变量)

PHP 变量作用域

变量的作用域是脚本中变量可被引用/使用的部分。

PHP 有四种不同的变量作用域:

  • local

  • global

  • static

  • parameter


局部和全局作用域

在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。

在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:

实例:

<?php

$x=5; // 全局变量


function myTest()

{

$y=10; // 局部变量

echo "<p>Test variables inside the function:<p>";

echo "Variable x is: $x";

echo "<br>";

echo "Variable y is: $y";

} 


myTest();


echo "<p>Test variables outside the function:<p>";

echo "Variable x is: $x";

echo "<br>";

echo "Variable y is: $y";

?>

在以上实例中 myTest() 函数定义了 $x 和 $y 变量。 $x 变量在函数外声明,所以它是全局变量 , $y 变量在函数内声明所以它是局部变量。

当我们调用myTest()函数并输出两个变量的值, 函数将会输出局部变量 $y 的值,但是不能输出 $x 的值,因为 $x 变量在函数外定义,无法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用 global 关键字。

然后我们在myTest()函数外输出两个变量的值,函数将会输出全局部变量 $x 的值,但是不能输出 $y 的值,因为 $y 变量在函数中定义,属于局部变量。

global 关键字

global 关键字用于函数内访问全局变量。

在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:

实例:

<?php

$x=5;

$y=10;


function myTest()

{

global $x,$y;

$y=$x+$y;

}


myTest();

echo $y; // 输出 15

?>

PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

上面的实例可以写成这样:

实例:

<?php

$x=5;

$y=10;


function myTest()

{

$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];

} 


myTest();

echo $y;

?>

Static 作用域

当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。

要做到这一点,请在您第一次声明变量时使用 static 关键字:

实例:

<?php


function myTest()

{

static $x=0;

echo $x;

$x++;

}


myTest();

myTest();

myTest();


?>

然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。

注释:该变量仍然是函数的局部变量。

本文转载自网络

上一篇: PHP_002 echo和print
下一篇: Python_018 JSON
g00m
粉丝 6
博文 51
码字总数 37146
作品 0
广州
私信 提问
ssl 原理、生成ssl密钥、配置nginx ssl```

ssl 原理 SSL工作流程 1.浏览器发送一个https的请求给服务器; 2.服务器要有一套数字证书,可以自己制作(后面的操作就是阿铭自己制作的证书),也可以向组织申请,区别就是自己颁发的证书需...

Linux学习笔记
2018/07/11
189
0
LNMP架构介绍、MySQL安装、PHP安装与Nginx介绍

LNMP架构介绍 和LAMP不同的是,提供web服务的是Nginx 并且php是作为一个独立服务存在的,这个服务叫做php-fpm Nginx直接处理静态请求,动态请求会转发给php-fpm ***LNMP(Linux-Nginx-MySQL...

杉下
2018/01/10
30
0
配置防盗链 访问控制Directory 访问控制FilesMatch······

配置防盗链 通过限制referer来实现防盗链的功能 配置文件增加如下内容 curl -e "http://www.aminglinux.com/123.html" 自定义referer *** 防盗链,就是不让别人盗用你网站上的资源,这个资源...

Linux学习笔记
2018/07/02
57
0
LNMP架构介绍、MySQL安装、PHP安装 、Nginx源码安装

LNMP架构介绍 和LAMP唯一不同的是,LNMP中的N指的是Nginx(类似于Apache的一种web服务软件)。目前这种环境的应用也非常多。Nginx设计的初衷是提供一种快速、高效、多并发的Web服务软件。在静...

Linux学习笔记
2018/07/04
111
2
PHP7 扩展之自动化测试

在安装 PHP7 及各种扩展的过程中,如果你是用源码安装,会注意到在 make 成功之后总会有一句提示:Don't forget to run 'make test'. 这个 make test 就是运行 PHP 的自动化测试了。 如果你刚...

OneAPM蓝海讯通
2016/03/25
59
0

没有更多内容

加载失败,请刷新页面

加载更多

Springboot Actuator

Springboot Actuator 1. 启用springboot actuator <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>dep......

AngerWind
56分钟前
18
0
OSChina 周日乱弹 —— 一个幼小的猕猴桃等待食物转身

1@ 辽元 起床以后, 突然发现时间已经10点啦! 不会晚了吧? 忽然想起来今天是周末, 13 “梦见自己变成猫后,一下子惊醒了,不对是笑醒了。” @冰峰雪座 觉得昨晚的睡眠质量实在不是很好, ...

小小编辑
58分钟前
31
0
【第一行代码--Android】Kotlin入门教程精简版

Google在2017年的I/O大会上宣布Kotlin正式成为Android的以及开发语言,Android Studio也对Kotlin提供了全面支持。 怎样运行kotlin的代码?通过https://try.kotlinlang.org 或者 IDEA 以及 其...

Drop_Table_User
今天
11
0
解决Cannot download "https://github.com/sass/node-sass/releases/download/binding.nod的问题

输入命令解决即可 npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/

千年典韦
今天
10
0
测试jar 是否完整有错

cd WEB-INF/lib/for j in *.jar; do echo $j; jar tvf $j > /dev/null ; echo $j done; done

xiaodong16
今天
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部