【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:当前所属的方法

相关推荐
Kapaseker1 小时前
Compose 进阶—巧用 GraphicsLayer
android·kotlin
黄林晴2 小时前
Android17 为什么重写 MessageQueue
android
阿巴斯甜1 天前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker1 天前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95271 天前
Andorid Google 登录接入文档
android
黄林晴1 天前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
BingoGo1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
冬奇Lab2 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿2 天前
Android MediaPlayer 笔记
android