首页 > 编程语言 >PHP变量

PHP变量

时间:2025-01-15 21:33:43浏览次数:3  
标签:php 变量 示例 作用域 -- PHP 上传

上一篇文章已经学习了PHP的数据类型,今天将学习新的内容:变量。

定义

PHP 中变量用一个美元符号后面跟变量名来表示(如$a),变量名是严格区分大小写的,并且不能以数字开头。

<?php
    $a = 1;
    $b = 'test';
    $c = [1, 2, 3];
    $4d = 2;//非法变量名,以数字开头

预定义变量

像上面的例子这种是我们自定义的变量,在PHP中有一些已经定义好的变量称之为预定义变量。利用这些预定义变量我们可以处理很多问题、实现很多功能,比如通过$_GET、$_POST获取用户输入的数据、$_SERVER获取服务器和执行环境信息等等。接下来我们学习一下几个预定义变量。

$_SERVER

$_SERVER可以获取服务器和执行环境信息,下面配合示例进行简单介绍,如果想了解它包含的所有信息可以直接打印$_SERVER即可。

<?php
    var_dump($_SERVER['SERVER_NAME']);//域名,结果:string 'a.com'
    var_dump($_SERVER['SERVER_PORT']);//端口,结果:string '80'
    var_dump($_SERVER['REQUEST_METHOD']);//请求方式,结果:string 'GET'
    var_dump($_SERVER['REQUEST_URI']);//请求的URI,结果:/1.php

输出结果

$_GET

它是一个通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组。

<?php
    var_dump($_GET);

输出结果

可以看到我们通过URL的方式传递的两个参数服务器都接收到了。

$_POST

当POST请求的Content-type是application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前变量。

#示例,先创建1.php文件用于提交数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传Demo</title>
</head>
<body>

<form action="/2.php" method="post" enctype="multipart/form-data">
    账号:<input name="account"><br/>
    密码:<input name="password"><br/>
    <input type="submit" value="提交">
</form>

</body>
</html>

创建2.php接收数据

<?php
    var_dump($_POST);

访问1.php,填写并提交数据

提交后会自动跳转至2.php,执行结果如下

$_REQUEST

包含了$_GET,$_POST 和 $_COOKIE 的数组。跟上面的示例差不多,这里就不再演示了。

$_COOKIE

通过http方式请求时,如果有携带cookie,则会传递到这个变量中。

$_SESSION

session是一种存贮机制,$_SESSION变量可以获取到session的所有数据。

$_FILES

获取当前上传文件的相关信息,如名称、类型、大小、临时存放路径等。

#示例,先创建1.php文件,用于上传文件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传Demo</title>
</head>
<body>

<form action="/2.php" method="post" enctype="multipart/form-data">
    <label for="fileUpload">选择文件:</label>
    <input type="file" id="fileUpload" name="file">
    <input type="submit" value="上传文件">
</form>

</body>
</html>

创建2.php文件用于接收上传的文件。

<?php
    var_dump($_FILES);

访问1.php,并选择文件上传

 点击上传之后会自动跳转到2.php,结果如下

变量作用域

变量的作用域是定义该变量的上下文。PHP 有函数作用域和全局作用域。在函数之外定义的任何变量都仅限于全局作用域。该怎么理解这句话呢,也就是说有函数作用域和全局作用域,函数之外定义的变量只能在全局作用域使用(即函数之外使用)。我们通过下面的例子辅助理解。

全局作用域变量,函数内部无法使用

<?php
    $a = 2;
    function test() {
        echo $a;
    }
    test();

结果

可以看到报错了:变量没有定义。

global 关键字

如果我们要使用这个$a,则需要使用到global关键字:global关键字用于将变量从全局作用域绑定到局部作用域。将创建引用同名全局变量的局部变量。如果全局变量不存在,则将在全局作用域内创建该变量并赋值为 null

#示例 使用global关键字

<?php
    $a = 2;
    function test() {
        global $a;
        echo $a;
    }
    test();

 执行结果

static 变量

变量作用域的另一个重要特性是 static 变量。静态变量仅在局部函数作用域中存在,但当程序执行离开此作用域时,其值并不丢失。

#示例,非静态变量例子

<?php
    function test() {
        $a = 2;
        echo $a . ' -- ';
        $a++;
    }
    //执行5次
    test();test();test();test();test();

执行结果

2 -- 2 -- 2 -- 2 -- 2 -- 

由于每次调用test方法,变量a都会重新赋值,所以执行结果都一样。

#示例,静态变量例子

<?php
    function test() {
        static $a = 2;
        echo $a . ' -- ';
        $a++;
    }
    //执行5次
    test();test();test();test();test();

执行结果

2 -- 3 -- 4 -- 5 -- 6 -- 

使用static关键字声明使得变量a成为了静态变量,因此它只会在第一次调用的时候执行初始化(即a=2)。

可变变量

定义:一个变量的变量名可以动态的设置。其实就是使用变量作为另外一个变量名。

<?php
   $a = 'test';
   $$a = '可变变量';
   echo $$a . PHP_EOL;
   //其实就是
   echo $test;

执行结果

可变变量
可变变量

完结

如果你在阅读这篇文章时有所收获,请不要忘记点赞评论加关注,你的支持是我创作的最大动力。当然,如果你在文中发现了疏漏之处,或是有着其他的见解,欢迎私信与我交流。


我是老卢,一个热爱分享、不断探索的知识旅者。

标签:php,变量,示例,作用域,--,PHP,上传
From: https://blog.csdn.net/qq_29861999/article/details/145163204

相关文章

  • 服务端开发模式-thinkphp-重新整理workman
    一、登录接口<?php/***登录退出操作*User:龙哥·三年风水*Date:2024/10/29*Time:15:53*/namespaceapp\controller\common;useapp\controller\Emptys;useapp\model\permission\Admin;useapp\model\param\SystemasSystemModel;useEmail\EmailSen......
  • MSGNet:多尺度序列间相关性学习的多变量时间序列预测
    MSGNet——多尺度序列间相关性学习的多变量时间序列预测[2401.00423v1]MSGNet:LearningMulti-ScaleInter-SeriesCorrelationsforMultivariateTimeSeriesForecasting——来自CCF-A(AAAI,AAAlConferenceonArtificialIntelligence)GitHub代码:YoZhibo/MSGNet:MS......
  • php的token管理类(AI生成)
    当然,以下是一个简单的PHP类,用于生成和管理令牌(token)。这个类可以生成一个随机的令牌、验证令牌是否有效,并允许设置一个令牌的过期时间。<?phpclassToken{private$secretKey;private$token;private$expiration;/***Tokenconstructor.......
  • Php+Mysql统计网页总访问次数和实时在线人数-海云博客
    自己写了一个统计,一个简单的网站流量统计,不错拿出来分享。可以统计当前页面的总访问次数和当前页面的实时在线人数。还可以显示你进入多少次。样式还有彩色背景渐变盒子,鼠标滑过或点击变成彩色直线,其他样式可以自己再改改。废话不多说直接上代码。海云博客 | 此文章链接:ht......
  • 代码审计-PHP原生开发&SQL注入&数据库监控&正则搜索&文件定位&静态分析
    知识点1、PHP审计-原生态开发-SQL注入&数据库语句监控2、PHP审计-原生态开发-SQL注入&正则匹配搜索3、PHP审计-原生态开发-SQL注入&功能追踪代码审计分类:1、原生态开发-代码审计源码案例2、框架类开发-代码审计源码案例3、组件类开发-代码审计源码案例4、前端类开发-代码......
  • PHP语法进阶
    PHP语法进阶数组数组能够在单个变量中存储多个值,并且可以根据键访问其中的值PHP有两种数组:数值数组、关联数组。数值和关联两个词都是针对数组的键而言的。先介绍下数值数组,数值数组是指数组的键是整数的数组,并且键的整数顺序是从0开始,依次类推。数值数组$maoshu=ar......
  • 基于PHP+Mysql 论坛信息系统(源码+LW+部署讲解+数据库+ppt)
    !!!!!!!!!选题不知道怎么选不清楚自己适合做哪块内容都可以免费来问我避免后期給自己答辩找麻烦增加难度(部分学校只有一次答辩机会没弄好就延迟毕业了)会持续一直更新下去有问必答一键收藏关注不迷路源码获取:https://pan.baidu.com/s/1aRpOv3f2sdtVYOogQjb8jg?pwd=jf1d提取码:......
  • 基于PHP+Mysql人员信息管理(源码+LW+部署讲解+数据库+ppt)
    !!!!!!!!!选题不知道怎么选不清楚自己适合做哪块内容都可以免费来问我避免后期給自己答辩找麻烦增加难度(部分学校只有一次答辩机会没弄好就延迟毕业了)会持续一直更新下去有问必答一键收藏关注不迷路源码获取:https://pan.baidu.com/s/1aRpOv3f2sdtVYOogQjb8jg?pwd=jf1d提取码:......
  • 基于PHP+Mysql购物管理系统(源码+LW+部署讲解+数据库+ppt)
    !!!!!!!!!选题不知道怎么选不清楚自己适合做哪块内容都可以免费来问我避免后期給自己答辩找麻烦增加难度(部分学校只有一次答辩机会没弄好就延迟毕业了)会持续一直更新下去有问必答一键收藏关注不迷路源码获取:https://pan.baidu.com/s/1aRpOv3f2sdtVYOogQjb8jg?pwd=jf1d提取码:......
  • PHP语法基础
    PHP语法基础php文档拓展名是.phpphp文件通常包含html标签以及一些php脚本运行代码,注意:htmljscss可以在php文件执行但是,php不能在htmljscss在php文件执行php语法用;结尾<!DOCTYPEhtml><html><body><h1>我的第一张php页面><h1><?phpecho"hellomaoshu";?>......