讲师中心 微信公众号
AI工具推荐 视频效率加速

PHP变量怎么声明和使用_PHP变量基本使用规则【说明】

夏敏同学_7727

夏敏同学_7727

发布时间:2026-02-12 12:22:35

|

214人浏览过

|

来源于php中文网

原创

PHP变量以$开头、区分大小写,首次赋值即创建;标量传值、对象和资源默认传引用;作用域需global或$GLOBALS访问全局变量;isset()、empty()、is_null()行为差异大,需按需选用。

php变量怎么声明和使用_php变量基本使用规则【说明】

PHP变量名必须以$开头,且区分大小写

PHP里没有“声明”这回事,变量第一次赋值时自动创建。不加$就是普通字符串或常量,加了才是变量——这是最常踩的坑:比如写name = "张三"会报Parse error: syntax error, unexpected '=',因为PHP根本没看到变量符号。

大小写敏感也容易翻车:$User和$user是两个变量。函数参数、数组键、类属性都遵循这个规则,但函数名、关键字(如if、echo)不区分大小写。

  • 变量名只能包含字母、数字、下划线,且首字符不能是数字($1abc非法,$abc1合法)
  • 不能用PHP保留字当变量名,比如$class、$function在较新版本中会警告或报错
  • 动态变量($$var)要谨慎,可读性差,调试困难,线上尽量不用

变量赋值是传值还是传引用?看类型和操作符

标量类型(int、string、bool、float)默认传值;对象和资源默认传引用(PHP 5.0+);数组在PHP 7+也是“写时复制”,看起来像传值,实际底层优化了内存。

想强制传引用,得用&操作符:$b = &$a。这时候改$b,$a也会变。但注意:foreach循环中直接用&$v后忘了unset($v),下次循环可能污染数据。

立即学习“PHP免费学习笔记(深入)”;

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载
  • 函数参数默认传值,需要传引用得在函数定义和调用时都加&(如function foo(&$x) { ... })
  • unset()只销毁变量名,不影响其他引用指向的值;只有所有引用都被销毁,值才会被回收
  • 用debug_zval_dump()可以看引用计数,但仅限开发环境,别放线上

变量作用域:函数内访问全局变量得用global或$GLOBAL

函数内部不能直接读写外部变量,这是很多新手卡住的地方。比如你在main作用域写了$config = ['host' => 'localhost'],进函数后直接用$config['host']会报Undefined variable。

两种解法:global $config把变量引入当前作用域,或者直接用超全局数组$GLOBALS['config']。前者更常见,但容易掩盖依赖关系;后者明确但啰嗦。

  • 闭包(anonymous function)要用use关键字导入外部变量,如function() use ($db) { ... }
  • 类方法里的$this不是变量,是对象引用,不能用global,也不能被unset
  • 静态变量static $count = 0只初始化一次,函数多次调用时保持上次值,适合计数器、缓存简单状态

isset()、empty()、is_null()的区别不是语义差异,而是行为陷阱

判断变量是否存在或为空,这三个函数行为完全不同,混用会出逻辑错误。比如isset($x)返回false不仅因为$x没定义,还因为它是null;而empty($x)对0、"0"、[]、false都返回true,但"0"其实是非空字符串——这是最隐蔽的坑。

is_null($x)只认null,连未定义变量都会触发Notice,所以必须先用isset()兜底。

  • 检查变量是否已定义且不为null:用isset($x)
  • 检查变量是否“逻辑为空”(含0、"0"等):用empty($x),但务必确认业务是否真要视"0"为空
  • 确认变量值就是null:先isset($x)再is_null($x),或直接$x === null

变量本身没玄学,但PHP的隐式转换、作用域规则和引用机制叠在一起,会让一个$符号背后藏着好几层判断逻辑。写的时候多看一眼var_dump()输出的类型和值,比背规则管用。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

6739

2023.08.02

css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

6907

2024.04.28

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

804

2025.10.23

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

549

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

1698

2024.03.01

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

6164

2023.10.24

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3408

2023.11.20

php中foreach用法
php中foreach用法

本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

798

2025.12.04

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

120

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn