【PHP入门】1.2-常量与变量

news2024/10/7 12:17:53

-常量与变量-

PHP是一种动态网站开发的脚本语言,动态语言特点是交互性,会有数据的传递,而PHP作为“中间人”,需要进行数据的传递,传递的前提就是PHP能自己存储数据(临时存储)

1.2.1变量基本概念

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的。

1、 变量是用来存储数据的;

2、 变量是存在名字的;

3、 变量是通过名字来访问的:数据;

4、 变量是可以改变的:数据。

1.2.2变量的使用

PHP中的所有变量都必须使用“$”符号

1、 定义:在系统中增加对应的变量名字(内存)

2、 赋值:可以将数据赋值给变量名(可以在定义的同时完成)
请添加图片描述

3、 可以通过变量名访问存储的数据

请添加图片描述

4、 可以将变量从内存中删除

请添加图片描述

1.2.4变量命名规则

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

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

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

请添加图片描述

1.2.5预定义变量

预定义变量:提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)

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

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

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

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

$_SERVER					//:服务器信息

$_SESSION					//:session会话数据

$_COOKIE					//:cookie会话数据

$_ENV						//:环境信息

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

1.2.6可变变量

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

$a = ‘b’;
$b = ‘bb’;
$$=bb

请添加图片描述

1.2.7变量传值

将一个变量赋值给另外一个变量:变量传值

变量传值一共有两种方式:值传递,引用传递

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

请添加图片描述

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

KaTeX parse error: Expected 'EOF', got '&' at position 7: 新变量 = &̲老变量;

请添加图片描述

在内存中,通常有以下几个分区

栈区:程序可以操作的内存部分(不存数据,运行程序代码),少但是快

代码段:存储程序的内存部分(不执行)

数据段:存储普通数据(全局区和静态区)

堆区:存储复杂数据,大但是效率低

代码实现:

请添加图片描述


1.2.8常量基本概念

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

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

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

常量定义形式

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

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

2、 5.3之后才有的:const 常量名 = 值;

请添加图片描述

常量名字的命名规则

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

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

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

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

请添加图片描述

注意细节:

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

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

1.2.9常量使用形式

常量的使用与变量一样:不可改变值(在定义的时候必须赋值)

请添加图片描述

有的时候还需要使用另外一种形式来访问(针对的是特殊名字的常量),需要用到另外一个访问常量的函数:

constant(‘常量名’)

请添加图片描述

说明:常量和变量的使用

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

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

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

1.2.10系统常量

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

常用的几个系统常量

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

请添加图片描述

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

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

请添加图片描述

__NAMESPACE__:当前所属的命名空间
__CLASS__:当前所属的类
__METHOD__:当前所属的方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1319779.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

未来LED全彩显示屏的发展趋势研究

随着LED产品性能的不断提升,全彩 LED 显示屏在亮度、颜色改善和白平衡方面已经达到了比较理想的效果,完全可以满足户外全天候的环境条件。由于全彩 LED 显示屏在价格性能比上的优势,未来数年内有望逐渐取代传统的灯箱、霓虹灯、磁翻板等产品&…

如何在Eclipse中安装WindowBuilder插件,详解过程

第一步:找到自己安装eclipse的版本,在Help-关于eclipse里面,即Version 第二步:去下面这个网站找到对应的 link(Update Site),这一步很重要,不然版本下载错了之后还得删除WindowBuil…

2023大湾区汽车创新大会在深圳坪山开幕

12月15日,2023大湾区汽车创新大会在深圳坪山开幕。 本次大会是由广东省科学技术厅、深圳市发展和改革委员会、深圳市工业和信息化局、中共深圳市新能源和智能网联汽车产业链委员会、坪山区人民政府指导,北京理工大学深圳汽车研究院、广东省大湾区新能源汽…

关于“Python”的核心知识点整理大全27

目录 10.5 小结 第11 章 测试代码 11.1 测试函数 name_function.py 函数get_formatted_name()将名和姓合并成姓名,在名和姓之间加上一个空格,并将它们的 首字母都大写,再返回结果。为核实get_formatted_name()像期望的那样工…

SwitchHosts - 管理、切换多个 hosts 方案的工具

一、hosts文件 简单的说,hosts文件是用于本地dns服务的,采用ip 域名的格式写在一个文本文件当中,Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关…

机器学习——数据划分

【说明】文章内容来自《机器学习入门——基于sklearn》,用于学习记录。若有争议联系删除。 1、数据划分 在机器学习中,通常将数据集划分为训练集和测试集。训练集用于训练数据,生成机器学习模型;测试集用于评估学习模型的泛化性能…

如何让.NET应用使用更大的内存

我一直在思考为何Redis这种应用就能独占那么大的内存空间而我开发的应用为何只有4GB大小左右,在此基础上也问了一些大佬,最终还是验证下自己的猜测。 操作系统限制 主要为32位操作系统和64位操作系统。 每个进程自身还分为了用户进程空间和内核进程空…

安全算法(二):共享密钥加密、公开密钥加密、混合加密和迪菲-赫尔曼密钥交换

安全算法(二):共享密钥加密、公开密钥加密、混合加密和迪菲-赫尔曼密钥交换 本章介绍了共享密钥加密、公开密钥加密,和两种加密方法混合使用的混合加密方法;最后介绍了迪菲-赫尔曼密钥交换。 加密数据的方法可以分为…

人工智能工程师

据悉:为进一步贯彻落实中共中央印发《关于深化人才发展体制机制改革的意见》和国务院印发《关于“十四五”数字经济发展规划》等有关工作的部署求,深入实施人才强国战略和创新驱动发展战略,加强全国数字化人才队伍建设,持续推进人…

Axure之交互与情节与一些实例

目录 一.交互与情节简介 二.ERP登录页到主页的跳转 三.ERP的菜单跳转到各个页面的跳转 四.省市联动 五.手机下拉加载 今天就到这里了,希望帮到你哦!!! 一.交互与情节简介 "交互"通常指的是人与人、人与计算机或物体…

lseek()函数的原型及使用方法,超详细

对于所有打开的文件都有一个当前文件偏移量(current file offset),文件偏移量通常是一个非负整数,用于表明文件开始处到文件当前位置的字节数。 读写操作通常开始于当前文件偏移量的位置,并且使其增大,增量为读写的字节数。文件被…

苹果M系列芯片安装Notepad-- 详细教程(亲测14以上系统也可用)

目录 1. 介绍2. 前言说明3. 安装使用教程3.1 下载3.2 安装3.3 打开3.4 最终效果 4. 主体功能一览5. 其他信息 1. 介绍 鉴于某些Notepad竞品作者的不当言论,Notepad–的意义在于:减少一点错误言论,减少一点自以为是。 Notepad–的目标&#xf…

Xpath注入

这里学习一下xpath注入 xpath其实是前端匹配树的内容 爬虫用的挺多的 XPATH注入学习 - 先知社区 查询简单xpath注入 index.php <?php if(file_exists(t3stt3st.xml)) { $xml simplexml_load_file(t3stt3st.xml); $user$_GET[user]; $query"user/username[name&q…

【网络安全技术】传输层安全——SSL/TLS

一、TLS位置及架构 TLS建立在传输层TCP/UDP之上&#xff0c;应用层之下。 所以这可以解决一个问题&#xff0c;那就是为什么抓不到HTTP和SMTP包&#xff0c;因为这两个在TLS之上&#xff0c;消息封上应用层的头&#xff0c;下到TLS层&#xff0c;TLS层对上层消息整个做了加密&…

SpringBoot 3.2.0 版本 mysql 依赖下载错误

最近想尝试一下最新的 SpringBoot 项目&#xff0c;于是将自己的开源项目进行了一些升级。 JDK 版本从 JDK8 升级至 JDK17。SpringBoot 版本从 SpringBoot 2.7.3 升级到 SpringBoot 3.2.0 其中 JDK 的升级比较顺利&#xff0c;毕竟 JDK 的旧版本兼容性一直非常好。 但是在升级…

STM32_通过Ymodem协议进行蓝牙OTA升级固件教程

目录标题 前言1、OTA升级的重要性和应用场景2、理论基础2.1、单片机的启动流程2.2、什么是IAP&#xff1f;2.3、什么是OTA&#xff1f;2.4、什么是BootLoader&#xff1f;2.5、Ymodem协议是什么&#xff1f;2.6、IAP是如何实现的&#xff1f; 3、具体操作3.1、软硬件工具准备3.…

链表基础知识(二、双向链表头插、尾插、头删、尾删、查找、删除、插入)

目录 一、双向链表的概念 二、 双向链表的优缺点分析​与对比 2.1双向链表特点&#xff1a; 2.2双链表的优劣&#xff1a; 2.3循环链表的优劣 2.4 顺序表和双向链表的优缺点分析​ 三、带头双向循环链表增删改查实现 3.1SList.c 3.2创建一个新节点、头节点 3.3头插 3.…

互联网加竞赛 python+opencv+深度学习实现二维码识别

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; pythonopencv深度学习实现二维码识别 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;3分 该项目较为新颖&…

libxls - 编译

文章目录 libxls - 编译概述笔记静态库工程测试控制台exe工程测试备注备注END libxls - 编译 概述 想处理.xls格式的excel文件. 查了一下libxls库可以干这个事. 库地址 https://github.com/libxls/libxls.git 但是这个库的makefile写的有问题, 在mingw和WSL下都编译不了. 好在…

C# WPF上位机开发(进度条操作)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 软件上面如果一个操作比较缓慢&#xff0c;或者说需要很长的时间&#xff0c;那么这个时候最好添加一个进度条&#xff0c;提示一下当前任务的进展…