文章目录
一、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. 基本变量赋值和输出
<?php$name = "John Doe";$age = 30;echo "Name: " . $name . "<br>";echo "Age: " . $age;?>
输出:
Name: John DoeAge: 30
2. 变量类型自动转换
<?php$number = 10;$string = "20";$sum = $number + $string; // 自动将 $string 转换为整数echo "Sum: " . $sum;?>
输出:
Sum: 30
3. 使用变量存储数组
<?php$fruits = array("apple", "banana", "orange");echo $fruits[0]; // 输出 appleecho $fruits[1]; // 输出 bananaecho $fruits[2]; // 输出 orange?>
4. 使用变量存储对象
<?phpclass Person { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; }}$person = new Person("Alice", 25);echo "Name: " . $person->name . "<br>";echo "Age: " . $person->age;?>
输出:
Name: AliceAge: 25
5. 可变变量(Variable Variables)
<?php$var = 'hello';$$var = 'world'; // 相当于 $hello = 'world';echo $hello; // 输出 world?>
6. 全局变量和局部变量
<?php$globalVar = "I'm global";function testFunction() { $localVar = "I'm local"; echo $globalVar; // 输出 I'm global,因为可以在函数内部访问全局变量 echo $localVar; // 输出 I'm local}testFunction();?>
7. 注意事项:
变量名是区分大小写的。变量名不能以数字开头。变量名不能包含特殊字符,除了下划线_
和美元符号 $
。变量在使用前必须先声明和赋值,否则会产生错误或警告。 二、PHP变量作用域
在 PHP 中,变量的作用域决定了变量在哪些代码块中是可访问的。变量的作用域可以是全局的或局部的。全局变量在整个脚本中都是可用的,而局部变量仅在声明它的函数或代码块内可用。
1. 全局变量和局部变量
<?php$globalVar = "I'm global"; // 全局变量function testFunction() { $localVar = "I'm local"; // 局部变量 echo $globalVar; // 可以访问全局变量 echo $localVar; // 可以访问局部变量}echo $globalVar; // 可以访问全局变量// echo $localVar; // 错误:局部变量在外部不可访问testFunction();?>
2. 函数内的全局变量访问
在函数内部访问全局变量需要使用 global
关键字:
<?php$globalVar = "I'm global";function testFunction() { global $globalVar; // 声明要使用的全局变量 echo $globalVar; // 输出全局变量的值}testFunction(); // 输出 "I'm global"?>
3. 超全局变量
超全局变量在脚本的任何地方都是可用的,无需使用 global
关键字。这些变量包括 $_GET
、$_POST
、$_SESSION
、$_COOKIE
、$_REQUEST
、$_SERVER
、$_ENV
、$_FILES
和 $_GLOBALS
。
<?php// 假设这是一个通过 POST 方法提交的表单echo $_POST['username']; // 访问 POST 数组中的 'username' 键?>
4. 静态变量
静态变量在函数调用结束后不会被销毁,它们的值在函数调用之间保持不变。
<?phpfunction testStatic() { static $count = 0; // 静态变量 $count++; echo $count;}testStatic(); // 输出 1testStatic(); // 输出 2testStatic(); // 输出 3?>
5. 变量的可见性
在类内部,变量的可见性可以通过 public
、protected
和 private
关键字来控制。这些关键字决定了变量在类内部、子类或类外部的可访问性。
<?phpclass MyClass { 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
是用于输出一个或多个字符串的关键字。
案例:
<?phpecho "Hello, World!";?>
2. if
if
关键字用于条件判断。
案例:
<?php$age = 25;if ($age >= 18) { echo "You are an adult.";} else { echo "You are not an adult.";}?>
3. function
function
关键字用于定义函数。
案例:
<?phpfunction greet($name) { echo "Hello, " . $name . "!";}greet("John");?>
4. class
class
关键字用于定义类。
案例:
<?phpclass Car { 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
关键字用于引入一个文件,并确保该文件只被引入一次。
案例:
<?phprequire_once 'config.php'; // 假设 config.php 包含数据库连接配置// ... 在这里使用 config.php 中定义的配置 ...?>
6. foreach
foreach
关键字用于遍历数组。
案例:
<?php$fruits = array("apple", "banana", "orange");foreach ($fruits as $fruit) { echo $fruit . "<br>";}?>
7. while
while
关键字用于执行循环,只要指定的条件为真。
案例:
<?php$i = 0;while ($i < 10) { echo $i . "<br>"; $i++;}?>
8. try
和 catch
try
和 catch
关键字用于异常处理。
案例:
<?phptry { // 可能会抛出异常的代码 $file = fopen("nonexistent.txt", "r"); // ... 读取文件 ... fclose($file);} catch (Exception $e) { // 处理异常的代码 echo "An error occurred: " . $e->getMessage();}?>
9. final
final
关键字用于声明类和方法不可被继承或重写。
案例:
<?phpfinal class Singleton { // ... 单例模式的实现 ...}// 尝试继承 Singleton 类会导致错误class AnotherClass extends Singleton { // ... 无效的代码 ...}?>