「PHP系列」PHP变量
作者:mmseoamin日期:2024-04-01

文章目录

  • 一、PHP变量
    • 1. 基本变量赋值和输出
    • 2. 变量类型自动转换
    • 3. 使用变量存储数组
    • 4. 使用变量存储对象
    • 5. 可变变量(Variable Variables)
    • 6. 全局变量和局部变量
    • 7. 注意事项:
    • 二、PHP变量作用域
      • 1. 全局变量和局部变量
      • 2. 函数内的全局变量访问
      • 3. 超全局变量
      • 4. 静态变量
      • 5. 变量的可见性
      • 6. 注意事项:
      • 三、PHP关键字
        • 1. `echo`
        • 2. `if`
        • 3. `function`
        • 4. `class`
        • 5. `require_once`
        • 6. `foreach`
        • 7. `while`
        • 8. `try` 和 `catch`
        • 9. `final`
        • 四、相关链接

          一、PHP变量

          在 PHP 中,变量是用于存储数据值的标识符。它们可以存储各种类型的数据,如整数、浮点数、字符串、布尔值、数组和对象等。变量名称以 $ 符号开头,后面跟着一个或多个字母、数字或下划线。

          1. 基本变量赋值和输出

          ";
          echo "Age: " . $age;
          ?>
          

          输出:

          Name: John Doe
          Age: 30
          

          2. 变量类型自动转换

          
          

          输出:

          Sum: 30
          

          3. 使用变量存储数组

          
          

          4. 使用变量存储对象

          
              public $name;
              public $age;
              
              public function __construct($name, $age) {
                  $this->name = $name;
                  $this->age = $age;
              }
          }
          $person = new Person("Alice", 25);
          echo "Name: " . $person->name . "
          "; echo "Age: " . $person->age; ?>

          输出:

          Name: Alice
          Age: 25
          

          5. 可变变量(Variable Variables)

          
          

          6. 全局变量和局部变量

          
              $localVar = "I'm local";
              echo $globalVar; // 输出 I'm global,因为可以在函数内部访问全局变量
              echo $localVar; // 输出 I'm local
          }
          testFunction();
          ?>
          

          7. 注意事项:

          • 变量名是区分大小写的。
          • 变量名不能以数字开头。
          • 变量名不能包含特殊字符,除了下划线 _ 和美元符号 $。
          • 变量在使用前必须先声明和赋值,否则会产生错误或警告。

            二、PHP变量作用域

            在 PHP 中,变量的作用域决定了变量在哪些代码块中是可访问的。变量的作用域可以是全局的或局部的。全局变量在整个脚本中都是可用的,而局部变量仅在声明它的函数或代码块内可用。

            1. 全局变量和局部变量

            
                $localVar = "I'm local"; // 局部变量
                echo $globalVar; // 可以访问全局变量
                echo $localVar; // 可以访问局部变量
            }
            echo $globalVar; // 可以访问全局变量
            // echo $localVar; // 错误:局部变量在外部不可访问
            testFunction();
            ?>
            

            2. 函数内的全局变量访问

            在函数内部访问全局变量需要使用 global 关键字

            
                global $globalVar; // 声明要使用的全局变量
                echo $globalVar; // 输出全局变量的值
            }
            testFunction(); // 输出 "I'm global"
            ?>
            

            3. 超全局变量

            超全局变量在脚本的任何地方都是可用的,无需使用 global 关键字。这些变量包括 $_GET、$_POST、$_SESSION、$_COOKIE、$_REQUEST、$_SERVER、$_ENV、$_FILES 和 $_GLOBALS。

            
            

            4. 静态变量

            静态变量在函数调用结束后不会被销毁,它们的值在函数调用之间保持不变。

            
                static $count = 0; // 静态变量
                $count++;
                echo $count;
            }
            testStatic(); // 输出 1
            testStatic(); // 输出 2
            testStatic(); // 输出 3
            ?>
            

            5. 变量的可见性

            在类内部,变量的可见性可以通过 public、protected 和 private 关键字来控制。这些关键字决定了变量在类内部、子类或类外部的可访问性。

            
                public $publicVar = "I'm public"; // 公有变量,任何地方都可访问
                protected $protectedVar = "I'm protected"; // 受保护变量,只能在类和子类中访问
                private $privateVar = "I'm private"; // 私有变量,只能在类内部访问
            }
            $obj = new MyClass();
            echo $obj->publicVar; // 输出 "I'm public"
            // echo $obj->protectedVar; // 错误:受保护变量在类外部不可访问
            // echo $obj->privateVar; // 错误:私有变量在类外部不可访问
            ?>
            

            6. 注意事项:

            • 在函数内部,局部变量会覆盖同名的全局变量,除非使用 global 关键字明确指定。
            • global 关键字用于在函数内部访问全局变量,但过度使用可能导致代码难以理解和维护。
            • 超全局变量是 PHP 预定义的,用于访问来自 Web 服务器、客户端、会话和环境的信息。
            • 静态变量在函数调用之间保持其值,这在某些情况下非常有用,比如计数或保持状态。
            • 类内部的变量可见性控制了变量在类、子类或类外部的可访问性,是面向对象编程中的一个重要概念。

              三、PHP关键字

              PHP关键字是在PHP编程中用于执行特定操作或指示的保留字。这些关键字具有特殊的意义,不能用作变量名、函数名或类名等标识符。

              1. echo

              echo 是用于输出一个或多个字符串的关键字。

              案例:

              
              

              2. if

              if 关键字用于条件判断。

              案例:

              = 18) {
                  echo "You are an adult.";
              } else {
                  echo "You are not an adult.";
              }
              ?>
              

              3. function

              function 关键字用于定义函数。

              案例:

              
                  echo "Hello, " . $name . "!";
              }
              greet("John");
              ?>
              

              4. class

              class 关键字用于定义类。

              案例:

              
                  public $color;
                  
                  function __construct($color) {
                      $this->color = $color;
                  }
                  
                  function describe() {
                      echo "This car is " . $this->color . ".";
                  }
              }
              $myCar = new Car("red");
              $myCar->describe();
              ?>
              

              5. require_once

              require_once 关键字用于引入一个文件,并确保该文件只被引入一次。

              案例:

              
              

              6. foreach

              foreach 关键字用于遍历数组。

              案例:

              
                  echo $fruit . "
              "; } ?>

              7. while

              while 关键字用于执行循环,只要指定的条件为真。

              案例:

              
                  echo $i . "
              "; $i++; } ?>

              8. try 和 catch

              try 和 catch 关键字用于异常处理。

              案例:

              
                  // 可能会抛出异常的代码
                  $file = fopen("nonexistent.txt", "r");
                  // ... 读取文件 ...
                  fclose($file);
              } catch (Exception $e) {
                  // 处理异常的代码
                  echo "An error occurred: " . $e->getMessage();
              }
              ?>
              

              9. final

              final 关键字用于声明类和方法不可被继承或重写。

              案例:

              
                  // ... 单例模式的实现 ...
              }
              // 尝试继承 Singleton 类会导致错误
              class AnotherClass extends Singleton {
                  // ... 无效的代码 ...
              }
              ?>
              

              四、相关链接

              1. php官网
              2. php_Github
              3. PHP实现Token
              4. 「PHP系列」PHP简介与起步
              5. 「PHP系列」PHP语法介绍