PHP 变量


变量是用于存储信息的"容器":

实例

<?php $x=5; $y=6; $z=$x+$y; echo $z; ?>

运行实例 »


与代数类似

x=5
y=6
z=x+y

在代数中,我们使用字母(如 x),并给它赋值(如 5)。

从上面的表达式 z=x+y ,我们可以计算出 z 的值为 11。

在 PHP 中,这些字母被称为变量

变量是用于存储数据的容器。

PHP 变量

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

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

PHP 变量规则:

  • 变量以 $ 符号开始,后面跟着变量的名称
  • 变量名必须以字母或者下划线字符开始
  • 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
  • 变量名不能包含空格
  • 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
PHP 语句和 PHP 变量都是区分大小写的。

创建(声明)PHP 变量

PHP 没有声明变量的命令。

变量在您第一次赋值给它的时候被创建:

实例

<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>

运行实例 »

在上面的语句执行中,变量 txt 将保存值 Hello world!,且变量 x 将保存值 5

注释:当您赋一个文本值给变量时,请在文本值两侧加上引号。


PHP 是一门弱类型语言

在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型。

PHP 会根据变量的值,https://www.cgewang.com/category-7.html自动把变量转换为正确的数据类型。

在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。


PHP 变量作用域

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

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

  • local
  • global
  • static
  • parameter

局部和全局作用域

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

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

实例

<?php 
$x=5; // 全局变量

function myTest() 

    $y=10; // 局部变量 
    echo "<p>测试函数内变量:<p>"; 
    echo "变量 x 为: $x"; 
    echo "<br>"; 
    echo "变量 y 为: $y"; 
}

myTest();

echo "<p>测试函数外变量:<p>"; 
echo "变量 x 为: $x"; 
echo "<br>"; 
echo "变量 y 为: $y"; 
?>

运行实例 »

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

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

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

你可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。

PHP 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++;
echo PHP_EOL; // 换行符
}

myTest();
myTest();
myTest();
?>

运行实例 »

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

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


参数作用域

参数是通过调用代码将值传递给函数的局部变量。

参数是在参数列表中声明的,作为函数声明的一部分:

实例

<?php
function myTest($x)
{
echo $x;
}
myTest(5);
?>

PHP 变量讲解的更多相关文章

  1. Python中__init__方法/__name__系统变量讲解

    __init__方法在类的一个对象被建立时,马上运行.这个方法可以用来对你的对象做一些你希望的初始化. 代码例子 test.py#!/usr/bin/python# Filename: class_i ...

  2. Mysql 变量讲解

    set语句的学习: 使用select定义用户变量的实践将如下语句改成select的形式: set @VAR=(select sum(amount) from penalties);我的修改: sele ...

  3. golang 环境变量讲解

    以下配置以MAC 下配置为例,但其他环境下大同小异. GOROOT就是go的安装路径在~/.bash_profile中添加下面语句: GOROOT=/usr/local/go export GOROO ...

  4. JSP技术模型(五)JSP隐含变量

    在JSP页面的转换阶段,容器在_jspService()方法中申明并初始化一些变量,可以在JSP页面小脚本中或表达式中直接使用这些变量. 一.JSP页面中可使用的隐含变量 1.applicationj ...

  5. Dos命令讲解

    目录 一.什么是DOS 二.启动DOS的多种方法 三.DOS的内部命令与外部命令 四.系统环境变量讲解 增加Path环境变量路径 常见的系统环境变量 五.常用的运行命令 六.DOS使用技巧 设置CMD ...

  6. 你能知道的或者不知道的shell变量都在这里

    第2章 shell变量讲解 2.1 shell中的变量讲解 2.1.1 什么是shell变量 变量的本质就是内存中的一块区域 变量名 位置 变量是脚本中经常会使用的内容信息 变量可以在脚本中直接使用 ...

  7. Java多线程初学者指南系列教程

    转自:http://developer.51cto.com/art/200911/162925.htm 51cto 本系列来自NokiaGuy的“真的有外星人吗”博客,系列名称为<Java多线程 ...

  8. STM32学习笔记——SPI串行通讯(向原子哥学习)

    一.SPI  简介 SPI是 Serial Peripheral interface 的缩写,就是串行外围设备接口.SPI 接口主要应用在  EEPROM, FLASH,实时时钟,AD 转换器,还有数 ...

  9. 从零开始学习前端JAVASCRIPT — 2、JavaScript基础ES5

    1:ES5简介 ECMAScript 5.1 (或仅 ES5) 是ECMAScript(基于JavaScript的规范)标准的修正. 与HTML5规范进程本质类似,ES5通过对现有JavaScript ...

随机推荐

  1. springsecurity简单学习

    一.初识SpringSecurity 在springboot项目中加入spring security. 1.在pom.xml中加入依赖 <dependency> <groupId&g ...

  2. JVM类加载机制小结

    这篇文章我们关注一个问题:Java程序是怎么进入JVM并执行的?经常写Java程序的小伙伴应该都听说过类加载机制,在<深入理解Java虚拟机>里周老师已经讲的很清楚了,这篇随笔把之前的笔记 ...

  3. 机器分配——线性dp输出路径

    题目描述 总公司拥有高效设备M台, 准备分给下属的N个分公司.各分公司若获得这些设备,可以为国家提供一定的盈利.问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值.其中M <= 15 ...

  4. 如何针对 iPhone X 设计网站?

    在全面屏的 iPhone X 上,不需要而外的代码,Safari 可以非常完美的展示现有的网站.整个网站的内容都会自动地展示在一个“安全区域”内,并不会被四周的圆角或者“小刘海”遮挡住. Safari ...

  5. Kafka消费者拉取数据异常Unexpected error code 2 while fetching data

    Kafka消费程序间歇性报同一个错: 上网没查到相关资料,只好自己分析.通过进一步分析日志发现,只有在拉取某一个特定的topic的数据时报错,如果拉取其他topic的数据则不会报错.而从这个异常信息来 ...

  6. day51 表格与表单

    目录 一.表格标签 二.表单标签 1 form内最重要的就是input标签,它通过type变形 2 select标签 3 textarea标签 4 重点 三.通过flask实现表单提交 四.css 1 ...

  7. Django之重写用户模型

    django——重写用户模型 Django内建的User模型可能不适合某些类型的项目.例如,在某些网站上使用邮件地址而不是用户名作为身份的标识可能更合理. 1.修改配置文件,覆盖默认的User模型 D ...

  8. CSS数据样式

    CSS数据样式 表格 定制表格 我们除了可以使用<table>标签进行绘制表格,在css3中display也支持进行表格的样式绘制. 样式规则 说明 table 对应 table tabl ...

  9. PowerShell创建参考窗口

    背景 平常我们经常遇到这样一个问题,在使用一个窗口工作时常常需要参考其他窗口的文字或图片,此时就需要频繁切换窗口:或者是看视频时需要参考前面进度的画面:或者是阅读或写文档时需要参考其他位置的文字,这时 ...

  10. Lodash中数组常用方法

    数组方法 1.数组对象去重 differenceBy(array, [values], [iteratee=_.identity]) let newArr =_.differenceBy( [{ na ...