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、camame、totalvolume).

PHP变量规则:

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

创建(声明)PHP变量

PHP没有声明变量的命令.

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

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

在上面的语句执行中,变量txt将保存值Hello World!,且变量x将保存值5.
注释:当您赋一个文本值给变量时,请在文本值两侧加上引号.

PHP是一门弱类型语言

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

PHP会根据变量的值,自动把变量转换为正确的数据类型.

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

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变量在函数中定义,

属于局部变量.

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++;
}
myTest();
myTest();
myTest();
?>

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

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

参数的作用域

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

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

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

4.PHP 教程_PHP 变量的更多相关文章

  1. 6.PHP 教程_PHP数据类型

    PHP数据类型 String(字符串),Integer(整型),Float(浮点型),Boolean(布尔型),Array(数组),Object(对象), NULL(空值). PHP字符串 一个字符串 ...

  2. 11.PHP 教程_PHP Switch 语句

    switch 语句用于根据多个不同条件执行不同动作. PHP Switch 语句 如果您希望有选择地执行若干代码块之一,请使用 switch 语句. 语法 switch (n) { case labe ...

  3. 9.PHP 教程_PHP运算符

    PHP 运算符 在 PHP 中,赋值运算符 = 用于给变量赋值. 在 PHP 中,算术运算符 + 用于把值加在一起. PHP 算术运算符 运算符 名称 描述 实例 结果 x + y 加 x 和 y 的 ...

  4. 8.PHP 教程_PHP字符串

    字符串变量用于存储并处理文本. PHP中的字符串变量 字符串变量用于包含有字符的值. 在创建字符串之后,我们就可以对它进行操作了.您可以直接在函数中使用字符串,或者把它存储在变量中. 在下面的实例中, ...

  5. 5.PHP 教程_PHP echo/print

    PHP echo 和 print 语句 echo和print区别: echo-可以输出一个或多个字符串 print-只允许输出一个字符串,返回值总为1 提示:echo输出的速度比print快,echo ...

  6. 1.PHP 教程_PHP 简介

    PHP是服务器端脚本语言. 在学习之前,您需要对以下知识有基本的了解: HTML css PHP是什么? PHP代表PHP:Hypertext Preprocessor PHP是一种使用广泛的开源的脚 ...

  7. 10.PHP 教程_PHP If...Else 语句

    条件语句用于根据不同条件执行不同动作. PHP 条件语句 当您编写代码时,您常常需要为不同的判断执行不同的动作.您可以在代码中使用条件语句来完成此任务. 在 PHP 中,提供了下列条件语句: if 语 ...

  8. 7.PHP 教程_PHP常量

    常量值被定义后,在脚本的其他任何地方都不能被改变. PHP常量 常量是一个简单值的标识符.该值在脚本中不能改变. 一个常量由英文字母.下划线.和数字组成,但数字不能作为首字母出现.(常量名不需要加$修 ...

  9. 3.PHP 教程_PHP 语法

     基础的PHP语法 PHP脚本可以放在文档中的任何位置. PHP脚本以<?php开始,以?>结束: <?php //PHP代码 ?> PHP文件的默认文件扩展名是". ...

随机推荐

  1. 链表-Reverse Linked List

    /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * } ...

  2. mysql的查询缓存

        查询是数据库技术中最常用的操作.查询操作的过程比较简单,首先从客户端发出查询的SQL语句,数据库服务端在接收到由客户端发来的 SQL语句后, 执行这条SQL语句,然后将查询到的结果返回给客户端 ...

  3. ExecuteScalar

    ExecuteScalar运行查询,并返回查询所返回的结果集中第一行的第一列或空引用(假设结果集为空).忽略其它列或行. 使用 ExecuteScalar 方法从数据库中检索单个值. 由于不用创建行集 ...

  4. SMTP协议分析

    SMTP协议分析 第1章.     SMTP概述 1.1.  SMTP在邮件通信中的位置 SMTP,即简单邮件传送协议,所相应RFC文档为RFC821.同http等多数应用层协议一样,它工作在C/S模 ...

  5. ViewPager引导

    1.首先要导入android-support.v4.jar第三方工具包 2.activity_guid.xml <RelativeLayout xmlns:android="http: ...

  6. python 调用hive查询实现类似存储过程

    需求:数据仓库中所有表的定义结构保存到新的文件中,保存后类似下面数据,重复的数据只保留7月份即可 ****************ods_log_info*****************lid st ...

  7. VS2013 快捷键 与 RESHARPER 冲突

    1.VS设置工具-->选项-->环境-->键盘-->重置 2.RESHARPER -->Options-->Environment → Keyboard & ...

  8. 提供一段Excel获取Title的标题,类似于A、AA、AAA,我们操作Excel的时候通常根据次标题来获取一定的操作范围。

    /******************************************** FormatExcelColumTitle Purpose Get excel title like &qu ...

  9. ThinPHP第二十七天(kindEditor使用,$.each)

    1.KindEditor简单使用实例 <js file="__PUBLIC__/kindeditor/kindeditor.js" /> <js file=&qu ...

  10. 安卓里面JSON处理和JAVA SE里面的JSON包

    今天编译安卓项目遇到这个问题 com.android.dex.DexException: Multiple dex files define的解决办法 大致意思就是引用了 相同的包 在JAVA SE里 ...