【PHP+代码审计】PHP基础——变量和常量的定义和使用

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

目录

变量

变量命名规则

预定义变量

可变变量

变量传值

常量

常量基本概念

常量定义形式

系统常量


变量

变量命名规则

1、 在PHP中变量名字必须以"$"符号开始;

2、 名字由字母、数字和下划线"_"构成,但是不能以数字开头;

3、 在PHP中本身还允许中文变量(不建议)。

php 复制代码
<?php
//定义变量
$var1 = 2;
//输出变量
echo $var1;
//删除变量,使用unset
unset($var1);

预定义变量

$_GET:获取所有表单以get方式提交的数据

$_POST:POST提交的数据都会保存在此

$_REQUEST:GET和POST提交的都会保存

$GLOBALS:PHP中所有的全局变量

$_SERVER:服务器信息

$_SESSION:session会话数据

$_COOKIE:cookie会话数据

$_ENV:环境信息

$_FILES:用户上传的文件信息

可变变量

可变变量:如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到另外一个变量的值:在变量前面再多加一个$符号。

变量传值

  • 将一个变量赋值给另外一个变量:变量传值
  • 变量传值一共有两种方式:值传递,引用传递

值传递:将变量保存的值赋值一份,然后将新的值给另外一个变量保存(两个变量没有关系)

引用传递:将变量保存的值所在的内存地址,传递给另外一个变量:两个变量指向同一块内存空间(两个变量是同一个值)

新变量 = &老变量;

php 复制代码
<?php

    //php变量传值
    //值传递
    $a = 10;
    $b = $a;
    $b = 5;
    echo $a;
    echo "<br/>";
    echo $b;
    echo "<br/>";
    //引用传递
    $c = 10;
    $d = &$c;
    $c = 5;
    echo $c;
    echo "<br/>";
    echo $d;

常量

常量与变量一样,都是用来保存数据的。

const、define修饰

常量基本概念

常量:const/constant,是一种在程序运行当中,不可改变的量(数据)

常量一旦定义,通常数据不可改变(用户级别)

常量定义形式

在PHP中常量有两种定义方式(5.3之后才有两种)

1、 使用定义常量的函数:define('常量名',常量值);

2、 5.3之后才有的:const 长两名 = 值;

php 复制代码
<?php
    //php常量
    //使用函数定义常量:define
    define('p1',3.14);

    //使用const关键字定义
    const p2 = 3;

常量名字的命名规则

1、 常量不需要使用"$"符号,一旦使用系统就会认为是变量;

2、 常量的名字组成由字母、数字和下划线组成,不能以数字开头;

3、 常量的名字通常是以大写字母为主(与变量以示区别);

4、 常量命名的规则比变量要松散,可以使用一些特殊字符,该方式只能使用define定义;

注意细节:

1、 Define和const定义的常量是有区别:在于访问权限区别

2、 定义常量通常不区分大小写,但是可以区分,可以参照define函数的第三个参数

说明:常量和变量的使用

1、 凡是数据会可能变化的,那么肯定是用变量

2、 数据不一定会变的,可以使用常量或者变量(变量居多)

3、 数据不允许被修改的,一定用常量

系统常量

系统常量:系统帮助用户定义的常量,用户可以直接使用

常用的几个系统常量

PHP_VERSION:PHP版本号

PHP_INT_SIZE:整形大小

PHP_INT_MAX:整形能表示的最大值(PHP中整形是允许出现负数:带符号)

在PHP中还有一些特殊的常量,他们有双下划线开始+长两名+双下划线结束,这种常量称之为系统魔术常量:魔术常量的值通常会跟着环境变化,但是用户改变不了

DIR:当前被执行的脚本所在电脑的绝对路径

FILE:当前被执行的脚本所在的电脑的绝对路径(带自己文件的名字)

LINE:当前所属的行数

NAMESPACE:当前所属的命名空间

CLASS:当前所属的类

METHOD:当前所属的方法

相关推荐
Qter_Sean31 分钟前
自己动手写Qt Creator插件
开发语言·qt
何曾参静谧35 分钟前
「QT」文件类 之 QIODevice 输入输出设备类
开发语言·qt
爱吃生蚝的于勒2 小时前
C语言内存函数
c语言·开发语言·数据结构·c++·学习·算法
小白学大数据4 小时前
Python爬虫开发中的分析与方案制定
开发语言·c++·爬虫·python
大耳猫4 小时前
主动测量View的宽高
android·ui
冰芒猓4 小时前
SpringMVC数据校验、数据格式化处理、国际化设置
开发语言·maven
失落的香蕉4 小时前
C语言串讲-2之指针和结构体
java·c语言·开发语言
红中马喽5 小时前
JS学习日记(webAPI—DOM)
开发语言·前端·javascript·笔记·vscode·学习
数据小小爬虫5 小时前
如何用Java爬虫“偷窥”淘宝商品类目API的返回值
java·爬虫·php
杜杜的man5 小时前
【go从零单排】Closing Channels通道关闭、Range over Channels
开发语言·后端·golang