文档章节

PHP_001 变量

g00m
 g00m
发布于 2015/02/21 23:10
字数 823
阅读 28
收藏 0
点赞 0
评论 0

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


?>

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

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

© 著作权归作者所有

共有 人打赏支持
g00m
粉丝 5
博文 42
码字总数 37146
作品 0
广州
LNMP架构介绍、MySQL安装、PHP安装与Nginx介绍

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

杉下 ⋅ 01/10 ⋅ 0

windows下安装php,git,composer

本文是我在windows下安装composer的过程,主要涉及PHP的安装,git安装,composer的安装以及系统环境变量配置。 原文:[ekan001.com/article/39][1] 首先明确一点,composer是php的包管理器,...

吾爱 ⋅ 2015/05/06 ⋅ 0

nodejs获取当前url和url参数值

php中可以通过post or get 获取到url中的参数值,最近接触了node那么在nodejs里是怎么做的呢,上代码了! //需要使用的模块 http url 当前url http://localhost:8888/select?aa=001&bb=002 ...

李佳顺 ⋅ 2014/08/07 ⋅ 0

PHP7 扩展之自动化测试

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

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

ubuntu 下配置 eclipse + java + adt 开发环境

一.安装配置 java 下载 jdk 就一笔带过 jdk安装后,会 /etc/bin 目录中 终端输入 java -version看是否安装 然后参考这篇 http://www.linuxdiyf.com/viewarticle.php?id=82153 配置好环境变量...

Zero__One ⋅ 2012/03/03 ⋅ 0

php打印warning日志引发的core追查

内容 春节期间线上出了两个php-cgi的core,具体追查过程如下: 一、 Core信息 file core.xxx bug.php-cgi.3611.1296586902: ELF 64-bit LSB core file AMD x86-64, version 1 (SYSV), SVR4-s......

晨曦之光 ⋅ 2012/03/09 ⋅ 0

12.17 Nginx负载均衡 12.18 ssl原理 12.19 生成ssl密钥对 12.20 N

12.17 Nginx负载均衡 [root@martin001 ~]# yum install -y bind-utils [root@martin001 ~]# dig www.qq.com ANSWER SECTION: www.qq.com. 73 IN A 59.37.96.63 www.qq.com. 73 IN A 14.17.4......

martin20162018 ⋅ 03/16 ⋅ 0

PHP7 学习笔记(十)会话控制

防守打法 1、设置Cookie,【基于内存的Cookie】 setcookie('Username','tinywan');setcookie('Age','24'); 2、查看Cookie存储位置: 3、读取一个Cookie,(Cookie数据保存在$_COOKIE这个预定...

tinywan1227 ⋅ 2017/11/16 ⋅ 0

apache 重定向(301)到新域名

Apache下301重定向代码(因为我使用的是WINDOWS 2003 + APACHE 所以本文仅限APACHE服务器使用。) 新建.htaccess文件,输入下列内容(需要开启modrewrite): 1)将不带WWW的域名转向到带WWW...

而今我谓昆仑 ⋅ 2015/05/27 ⋅ 0

编写一个automation case的流程

编写一个automation case的流程 http://192.168.20.105/projects/automation-test/wiki/AutomationDB_Management 1.在testlink 里添加一个manual test case, 2. 将这个case 添加到test plan......

xxjbs001 ⋅ 2014/04/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql in action / alter table

change character set ALTER SCHEMA `employees` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci ;ALTER TABLE `employees`.`t2` CHARACTER SET = utf8mb4 , COLLAT......

qwfys ⋅ 今天 ⋅ 0

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

MySQL

查看表相关命令 - 查看表结构    desc 表名- 查看生成表的SQL    show create table 表名- 查看索引    show index from  表名 使用索引和不使用索引 由于索引是专门用于加...

stars永恒 ⋅ 昨天 ⋅ 0

easyui学习笔记

EasyUI常用控件禁用方法 combobox $("#id").combobox({ disabled: true }); ----- $("#id").combobox({ disabled: false}); validatebox $("#id").attr("readonly", true); ----- $("#id").r......

miaojiangmin ⋅ 昨天 ⋅ 0

金山WPS发布了Linux WPS Office

导读 近日,金山WPS发布了Linux WPS Office中文社区版新版本,支持大部分主流Linux系统,功能更加完善,兼容性、稳定性大幅度提升。本次更新WPS将首次在Linux提供专业办公文件云存储服务,实...

问题终结者 ⋅ 昨天 ⋅ 0

springboot2输出metrics到influxdb

序 本文主要研究一下如何将springboot2的metrics输出到influxdb maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo......

go4it ⋅ 昨天 ⋅ 0

微信小程序 - 选择图片显示操作菜单

之前我分享过选择图片这个文章,但是我在实际开发测试使用中发现一个问题在使用 wx.chooseImage 选择照片显示出第一格是拍照,后面是相册里的图片。这种实现之前说过了,效果如下。 但是你从...

hello_hp ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部