变量基本机制与核心概念
声明与命名规范
<?php
$userName = "技术开发人员"; // 合法命名
$versionNum = "8.3"; // 下划线起始
$userAge = 30; // 驼峰格式
// $4year = 4; // 错误命名
// $user-name = "测试"; // 错误命名
?>
规则要求:
- $符号前缀
- 首字符字母或下划线
- 后续字符字母、数字、下划线
- 区分大小写
类型系统特征
| 类别 | 具体类型 | 示例 |
| 标量类型 | 整型、浮点 | $total = 100; $price = 12.5 |
| 字符串、布尔 | $label = "用户"; $flag = false |
| 复合类型 | 数组、对象 | $items = []; $obj = new Product() |
| 特殊类型 | 资源、NULL | $stream = fopen(); $data = null |
is_float($input); // 类型判断
is_callable($func);
作用域工作机制
作用域类别
function localScope() {
$innerVar = "函数内变量";
echo $innerVar;
}
$globalName = "全局数据";
function accessGlobal() {
global $globalName;
echo $globalName;
}
function persistentCounter() {
static $persist = 0;
echo ++$persist;
}
persistentCounter(); // 1
persistentCounter(); // 2
预定义全局变量
| 变量名称 | 功能描述 | 应用示例 |
| $_REQUEST | 请求数据集合 | $_REQUEST['action'] |
| $_SERVER | 服务器参数 | $_SERVER['HTTP_HOST'] |
| $_FILES | 上传文件信息 | $_FILES['document'] |
进阶运用方法
动态变量名称
$fieldKey = "userEmail";
$$fieldKey = "contact@domain.com";
echo $userEmail; // 输出结果
$formFields = ['firstName', 'lastName'];
foreach ($formFields as $item) {
$$item = $_POST[$item];
}
引用绑定
$primary = 15;
$secondary = &$primary;
$secondary = 30;
echo $primary; // 输出30
结构化存储
$config = [
'theme' => 'dark',
'notify' => true
];
$archived = serialize($config);
$restore = unserialize($archived);
安全规范与性能优化
数据安全处理
$inputName = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$validEmail = filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL);
$command = $db->prepare("SELECT * FROM accounts WHERE login = ?");
$command->bind_param("s", $loginName);
$command->execute();
错误处理
if (!isset($unknownVar)) {
$defaultVal = 0;
}
xdebug_start_trace();
$complexArray = [];
$complexArray[] = &$complexArray;
unset($complexArray);
现代版本特性
function handleInput(string|int $value): void {
// 处理逻辑
}
$address = $order?->customer?->contact?->street;