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

  

  $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 没有声明变量的命令。

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

  

  $txt="Hello world!";

  $x=5;

  $y=10.5;

  ?>

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

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

  PHP 是一门弱类型语言

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

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

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

  PHP 变量作用域

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

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

  local

  global

  static

  parameter

  局部和全局作用域

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

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

  

  $x=5; // 全局变量

  function myTest()

  {

  $y=10; // 局部变量

  echo "

测试函数内变量:

";

  echo "变量 x 为: $x";

  echo "
";

  echo "变量 y 为: $y";

  }

  myTest();

  echo "

测试函数外变量:

";

  echo "变量 x 为: $x";

  echo "
";

  echo "变量 y 为: $y";

  ?>

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

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

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

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

  PHP global 关键字

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

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

  

  $x=5;

  $y=10;

  function myTest()

  {

  global $x,$y;

  $y=$x+$y;

  }

  myTest();

  echo $y; // 输出 15

  ?>

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

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

  

  $x=5;

  $y=10;

  function myTest()

  {

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

  }

  myTest();

  echo $y;

  ?>

  Static 作用域

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

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

  

  function myTest()

  {

  static $x=0;

  echo $x;

  $x++;

  }

  myTest();

  myTest();

  myTest();

  ?>

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

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

  参数作用域

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

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

  

  function myTest($x)

  {

  echo $x;

  }

  myTest(5);

  ?>

  我们将在 PHP 函数 章节对它做更详细的讨论。

  点击查看所有 PHP 教程 文章: https://www.codercto.com/courses/l/5.html(编辑:雷林鹏 来源:网络 侵删)

转载于:https://www.cnblogs.com/linpeng1/p/10967227.html

雷林鹏分享:PHP 变量相关推荐

  1. 雷林鹏分享:PHP 字符串变量

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

  2. 雷林鹏分享:MySQL 及 SQL 注入

    MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入 ...

  3. 雷林鹏分享:PHP 超级全局变量

    超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用. PHP 超级全局变量 PHP中预定义了几个超级全局变量(superglobals) ,这意味着 ...

  4. php mysql 插入多条数据_雷林鹏分享:PHP MySQL 插入多条数据

    使用 MySQLi 和 PDO 向 MySQL 插入多条数据 mysqli_multi_query() 函数可用来执行多条SQL语句. 以下实例向 "MyGuests" 表添加了三 ...

  5. 雷林鹏分享:PHP 数组

    数组能够在单个变量中存储多个值: $cars=array("Volvo","BMW","Toyota"); echo "I lik ...

  6. 雷林鹏分享:C# 运算符

    C# 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C# 有丰富的内置运算符,分类如下: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本教程将逐一讲解算术运算 ...

  7. 雷林鹏分享:Lua 面向对象

    面向对象编程(Object Oriented Programming,OOP)是一种非常流行的计算机编程架构. 以下几种编程语言都支持面向对象编程: C++ Java Objective-C Smal ...

  8. 雷林鹏分享:PHP 表单验证

    PHP 表单验证 在处理PHP表单时我们需要考虑安全性. 本章节我们将展示PHP表单数据安全处理,为了防止黑客及垃圾信息我们需要对表单进行数据安全验证. 在本章节介绍的HTML表单中包含以下输入字段: ...

  9. 雷林鹏分享:Lua break 语句

    Lua 编程语言 break 语句插入在循环体中,用于退出当前循环或语句,并开始脚本执行紧接着的语句. 如果你使用循环嵌套,break语句将停止最内层循环的执行,并开始执行的外层的循环语句. 语法 L ...

最新文章

  1. ajax无刷新页面切换,历史记录后退前进解决方案
  2. CCNP学习笔记2-路由部分--EIGRP
  3. 3部世界顶级宇宙纪录片,献给对宇宙万物充满好奇的你
  4. python 字体_python docx字体设置
  5. VUE项目中 获得多个复选框 checkbox 选中的值(jquery)+ 解决 Uncaught TypeError: Cannot read property ‘push‘ of undefine
  6. vue-cli4.x 中 配置允许跨域请求
  7. 牛年春节海报怎么设计?psd分层模板,给你灵感!
  8. Atitit 知识点 文章 框架 结构 attilax总结.docx
  9. MSSQL存储过程调用 C#DLL
  10. linux自动任务计划任务,「linux下的计划任务——只执行一次的定时任务」- 海风纷飞Blog...
  11. k2450 linux 显卡驱动,Debian系统安装NVIDIA驱动支持双显卡切换
  12. Character controller
  13. Silverlig1.Silverlight读取外部XML加载配置-(使用WebClient读取XAP包同目录下的XML文件)...
  14. MySQL实战45讲——MySQL是怎么保证数据不丢的?
  15. 分享75个JS特效倒计时,总有一款适合您
  16. 人工智能:免疫算法概述
  17. JavaScript知识要点 - Web前端开发必备
  18. redis 用scan 代替keys,hgetAll
  19. 移动互联网十年,谁主沉浮?
  20. 国内下载vscode速度慢问题解决

热门文章

  1. SQLite指南(5) - PRAGMA命令用法(完整)
  2. access 文本转换数字_ACCESS的短文本和长文本分类
  3. [Python] L1-053 电子汪-PAT团体程序设计天梯赛GPLT
  4. [Python] L1-052 2018我们要赢-PAT团体程序设计天梯赛GPLT
  5. tuxedo linux 安装
  6. Linux 环境 简单启动 Java程序
  7. openstack ha 部署
  8. CC自定义防护验证最佳实践
  9. Hadoop如何迎击大数据分析的挑战
  10. wordpress静态文件加速,整合CDN