Blogger Information
Blog 4
fans 0
comment 0
visits 2300
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
不要点进来,都是PHP变量基础
莫小莫
Original
549 people have browsed it

写在前面的话
我在上一篇提过了,我原本就是一名前端,迫于工作压力,也是初学PHP。也有动力不足的时候,那就告诫自己:对于不想做的事情,最好的办法就是快点做完。

什么是变量

  • 变量是用于存储信息的”容器”。可以给PHP变量赋予某个值(x=1)或表达式(z=x+y)
  • php语句和变量都是区分大小写的

变量的声明

  • PHP 没有声明变量的命令。变量在第一次赋值给它的时候就被创建了。
  • PHP是一门弱类型语言。(PHP 会根据变量的值,自动把变量转换为正确的数据类型。)
  • 在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。

变量规则

  • 正确的变量必须使用$作为起始符号
  • 变量名中不允许使用数字开始

php有效的标识,必须由以下三种字符组成:大小写的英文字母、下划线、数字,且不能以数字开始

注:

  1. // 以下的写法虽然正确但无意义
  2. $aaa = 'php.cn';
  3. $_ = 888;;
  4. $_123 = 999;

变量的输出

  • 第一次接触.输出的时候,还不太明白,特意说明下,下面两个的输出结果是一样的。

  1. <?php
  2. $txt = "W3Schools.com";
  3. echo "I love $txt!";//I love W3Schools.com!
  4. ?>
  5. <?php
  6. $txt = "W3Schools.com";
  7. echo "I love " . $txt . "!";//I love W3Schools.com!
  8. ?>

变量的数据类型

  • String(字符串)

    $name = ‘Hello world!’;

  • Integer(整型)

    $price = 3890;

  • Float(浮点型-浮点数是带小数部分的数字,或是指数形式。)

    $x = 10.365;

  • Boolean(布尔型)

    $is5G = true;
    echo gettype($is5G),’<hr>‘;

  • Array(数组)

    $arr = [‘电脑’, 8000, ‘huawei’];
    echo ‘<pre>‘.print_r($arr, true).’</pre>‘;

  • Object(对象)

    $obj = new stdClass;
    $obj->email = ‘test@qq.cn’;
    echo $obj->email . ‘<br>‘;

  • NULL(空值)

    $num = null;
    var_dump($num);

PHP变量作用域

  • 变量作用域,也叫”变量范围”, 即定义变量时的上下文环境
  • 变量作用域,通俗的说,就是变量的生效范围
  • 一个变量必定属于一个作用域, 这个作用域也包括了当前作用域中引入其它文件
  • 也有不受作用域限制的变量,例如超全局变量, 在程序中任何地方都是有定义的
  • 函数作用域: php 中只有函数可以创建作用域, 函数之外的代码全部在全局空间中
序号 作用域 描述
1 函数作用域 使用function关键字创建的作用域
2 全局作用域 函数之外的变量生效范围
  • php 中没有块作用域的概念, 这与其它编程语言不同, 请留意
  • 根据作用域不同, 变量可以分为三类:
序号 变量类型 描述
1 私有变量 函数中定义的变量
2 全局变量 函数之外定义的变量
3 超全局变量 也叫预定义变量,访问不受作用域限制
  • 超全局变量,也叫超全局数组,随系统加载,因此在所有脚本中均有定义,全局和函数中都可以访问
序号 变量名 描述
1 $GLOBALS 引用全局作用域中可用的全部变量
2 $_SERVER 服务器和执行环境信息
3 $_GET HTTP GET 请求:通过 URL 参数传递给当前脚本的变量的数组
4 $_POST HTTP POST 请求: 将变量以关联数组形式传入当前脚本
5 $_FILES HTTP 文件上传变量,保存着上传文件的全部信息
6 $_COOKIE 通过 HTTP Cookies 方式传递给当前脚本的变量的数组
7 $_SESSION 当前脚本可用 SESSION 变量的数组
8 $_REQUEST 默认情况下包含了 $_GET$_POST$_COOKIE 的数组
9 $_ENV 通过环境方式传递给当前脚本的变量的数组

  1. // 声明函数: 同时也创建一个函数作用域
  2. function getInfo() : string
  3. {
  4. // 定义了一个函数"私有变量"
  5. // 1. 方法1: global
  6. // global $siteName;
  7. // 2. 使用超全局变量
  8. $private = $GLOBALS['siteName'];
  9. // 函数中可以直接访问超全局变量
  10. echo $_SERVER['SCRIPT_NAME']. '<br>';
  11. return $private;
  12. }
  13. echo getInfo();
  14. echo $_SERVER['SCRIPT_NAME']. '<br>';

静态变量

基本常识

  • 定义在函数中的静态变量使用static修饰,并且与函数作用域绑定
  • 静态变量定义时必须初始化,且只能初始化一次,默认为0
  • 当程序执行离开函数作用域后,静态变量的值不丢失
  • 静态变量的值,可以在函数的多次调用中保持不变,即可带入下次调用中
  • 函数中静态变量遵循私有变量约束, 全局不可访问

应用场景

  • 当多次调用同一函数,且要求每次调用之间共享或保留某些变量的时候
  • 尽管全局变量也可以办到,但没必要, 采用局部静态变量更合适
  1. # 静态变量
  2. namespace ns1;
  3. function test1(): float
  4. {
  5. // 私有变量,也叫动态变量,在函数中每一次都会自动初始化
  6. // 并且无法在多次调用过程中保持不变
  7. $sum = 0;
  8. $sum = $sum + 1;
  9. return $sum;
  10. }
  11. echo test1(), '<br>';
  12. echo test1(), '<br>';
  13. echo test1(), '<br>';
  14. echo '<hr>';
  15. // 命名空间
  16. // 不同的目录下面可以有相同的文件名
  17. namespace ns2;
  18. // 全局变量
  19. $sum = 0;
  20. function test1(): float
  21. {
  22. global $sum;
  23. $sum = $sum + 1;
  24. return $sum;
  25. }
  26. echo test1(), '<br>';
  27. echo test1(), '<br>';
  28. echo test1(), '<br>';
  29. echo '<hr>';
  30. namespace ns3;
  31. function test1(): float
  32. {
  33. // 局部静态变量: 只在函数第一次调用的时候被初始化,以后不会再被更新了
  34. // 静态变量,可以理解为在函数中的"伪全局变量"
  35. // 实现函数在多次调用的过程中共享数据
  36. static $sum = 0;
  37. $sum = $sum + 1;
  38. return $sum;
  39. }
  40. echo test1(), '<br>';
  41. echo test1(), '<br>';
  42. echo test1(), '<br>';
  43. echo '<hr>';
  44. $num1 = 20;
  45. // 变量的本质是数据共享
  46. // 函数的本质是代码共享
  47. echo $num1 + 40;
  48. echo '<br>';
  49. echo $num1 + 20;
  50. echo '<br>';
  51. echo $num1 + 90;

变量过滤器

  • PHP 过滤器用于验证和过滤来自非安全来源的数据(外部数据——来自表单的输入数据、Cookies、Web services data、服务器变量、数据库查询结果)。

过滤器函数有哪些?

  • filter_var() - 通过一个指定的过滤器来过滤单一的变量
  • filter_var_array() - 通过相同的或不同的过滤器来过滤多个变量
  • filter_input - 获取一个输入变量,并对它进行过滤
  • filter_input_array - 获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤

最后

我相信你肯定也是拖着鼠标快速浏览到底部的,其实我们都一样。如盖房子,看着一块块的砖头都一样,可当房子盖成的时候,砖头就是不可或缺的重要部分。对于常量、变量的基础内容,js里面也会有,学起来还是很枯燥的,但你要相信学的每一部分内容都是为你后面的大工程在做准备。奥力给!

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post