当前位置: 首页 > news >正文

【PHP】基础语法变量常量

文章目录

  • PHP简介
  • 前置知识了解
    • 静态网站的特点
    • 动态网站特点
  • PHP基础语法
    • 代码标记
    • 注释
    • 语句分隔(结束)符
    • 变量
      • 变量的基本概念
      • 变量的使用
      • 变量命名规则
      • 预定义变量
      • 可变变量
      • 变量传值
      • 内存分区
    • 常量
      • 基本概念
      • 常量定义形式
      • 命名规则
      • 使用形式
      • 系统常量
      • 魔术常量

PHP简介

PHP定义:一种服务器端的 HTML 脚本/编程语言,是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言。是一种广泛用于 Open Source(开放源代码)的尤其适合 Web 开发并可以嵌入 HTML 的多用途脚本语言。它的语法接近 C,Java 和 Perl,而且容易学习。该语言让 Web 开发人员快速的书写动态生成的网页

前置知识了解

静态网站的特点

1.网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件;

2.静态网页的内容相对稳定,因此容易被搜索引擎检索;

3.静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难;

4.静态网页的交互性较差,在功能方面有较大的限制。


动态网站特点

1.交互性:网页会根据用户的要求和选择而动态地改变和响应,浏览器作为客户端,成为一个动态交流的桥梁,动态网页的交互性也是今后Web发展的潮流。

2.自动更新:即无须手动更新HTML文档,便会自动生成新页面,可以大大节省工作量。

3.因时因人而变:即当不同时间、不同用户访问同一网址时会出现不同页面。

此外动态网页是与静态网页相对应的,也就是说,网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见形式,而是以.asp、.jsp、.php、.perl、.cgi等形式为后缀。在动态网页网址中有一个标志性的符号——“?”


PHP基础语法

首先:PHP是一种运行在服务器端的脚本语言,可以嵌入到HTML中

为了防止显示中文出现乱码,建议加上下面的这句话

//处理脚本让浏览器按照指定字符集解析的方法
header('Content-type:text/html;charset=utf-8');

代码标记

在PHP历史发展中,可以使用多种标记来区分PHP脚本

  • ASP标记:<% php代码 %>
  • 短标记:<? Php代码 ?>

以上两种基本弃用,更加常用的标志是:<?php php代码?>

image-20230731095213555


注释

PHP中注释分为两种:行注释和块注释

  • 行注释:一次注释一行 。写法1:# 写法2://
  • 块注释:一次注释多行 /* 中间直到*/出现之前,全部都是注释 */

语句分隔(结束)符

在PHP中,代码是以行为单位,系统需要通过判断行的结束,该结束通常都是一个符号分号;

特殊说明:

1.PHP中标记结束符?>有自带语句结束符的效果,最后一行PHP代码可以没有语句结束符

<?phpecho "hello I am Mango ! PHP yyds!";echo "我可以没有分号"
?>   

2.PHP中其实很多代码的书写并不是嵌入到HTML中,而是单独存在,通常书写习惯中就不建议使用标记结束符?>,PHP会自动从开始到最后全部认为是PHP代码,从而解析

<?phpecho "hello I am Mango ! PHP yyds!";echo "hello world";

变量

变量的基本概念

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

1.变量是用来存储数据的

2.变量是存在名字的

3.变量是通过名字来访问的(数据)

4.变量是可以改变的(数据)

变量的使用

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

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

2.赋值:可以将数据赋值给变量名(可以在定义的同时完成)

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

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

image-20230731101054100


变量命名规则

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

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

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

$1var;//err    
$中国 = 'China'; #中文变量 ok

预定义变量

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

  • $_GET:获取所有表单以get方式提交的数据
  • $_POST:POST提交的数据都会保存在此
  • $_REQUEST:GET和POST提交的都会保存
  • $GLOBALS:PHP中所有的全局变量
  • $_SERVER:服务器信息
  • $_SESSION:session会话数据
  • $_COOKIE:cookie会话数据

例子:

image-20230731101624474


可变变量

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

$a = 'b';
$b = 'I am b';
echo $$a;   # $$a == > $b ==> 'I am b'
  • 1.先找到$a,解析出结果为b
  • 2.将前面的$符号和b进行绑定,就是$b,然后输出

变量传值

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

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

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

例子:

<?php$a = 1;$b = $a; //值传递$b = 2;echo $a,'<hr/>',$b; //输出1,2

image-20230731102045621


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

  • $新变量 = &$老变量
<?php$a = 1;$b = &$a; //值传递$b = 2;echo $a,'<hr/>',$b; //输出2,2

image-20230731102127858


内存分区

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

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

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

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

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


常量

基本概念

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

常量:const/constant,是一种在程序运行当中,不可改变的量(数据)。常量一旦定义,通常数据不可改变(用户级别)

常量定义形式

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

  • 1.使用定义常量的函数:define(‘常量名’,常量值);
  • 2.5.3版本之后才有的:const 常量名 = 值;
define('PI',3.14);
const PII = 3.14;

命名规则

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

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

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

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

image-20230731102438245

细节:

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

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

image-20230731102701222

第一个参数规定常量的名称,也叫标识符

第二个参数规定常量的值,就是一个不希望被改变的标量数据类型的数据

第三个参数是可选参数,用来规定常量名是否区分大小写


使用形式

常量的使用与变量一样:不可改变值**(在定义的时候必须赋值)**。常量不需要使用“$”符号,一旦使用系统就会认为是变量

echo PI;
echo PII;

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

<?phpdefine('-_-','smile');//echo  '-_-';// 特殊符号不能直接使用echo constant('-_-');
?>

说明:常量和变量的使用

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

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

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


系统常量

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

常用的系统常量:

  • PHP_VERSION:PHP版本号
  • PHP_INT_SIZE:整形大小
  • PHP_INT_MAX:整形能表示的最大值(PHP中整形是允许出现负数:带符号)
echo '<hr/>',PHP_VERSION,'<hr/>',PHP_INT_SIZE,'<hr/>',PHP_INT_MAX;  #5.4.8  4   2147483647

魔术常量

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

  • _DIR_:当前被执行的脚本所在电脑的绝对路径
  • _FILE_:当前被执行的脚本所在的电脑的绝对路径(带自己文件的名字)
  • _LINE_:当前所属的行数
  • __NAMESPACE__:当前所属的命名空间
  • __CLASS__:当前所属的类__
  • _METHOD_:当前所属的方法
  • __FUNCTION__:当前函数的名字

image-20230731140030853

相关文章:

【PHP】基础语法变量常量

文章目录 PHP简介前置知识了解静态网站的特点动态网站特点 PHP基础语法代码标记注释语句分隔(结束)符变量变量的基本概念变量的使用变量命名规则预定义变量可变变量变量传值内存分区 常量基本概念常量定义形式命名规则使用形式系统常量魔术常量 PHP简介 PHP定义&#xff1a;一…...

Failed to resolve: com.github.mcxtzhang:SwipeDelMenuLayout:V1.3.0

在allprojects下的repositories闭包里面添加jcenter()和maven {url https://jitpack.io}&#xff0c;具体可以看你的第三方框架需要添加什么仓库&#xff0c;大多数都只需要上面两个。 我的build.gradle&#xff08;Project&#xff09;完整内容如下&#xff1a; buildscript …...

常用 Python IDE 汇总(非常详细)从零基础入门到精通,看完这一篇就够了

写 Python 代码最好的方式莫过于使用集成开发环境&#xff08;IDE&#xff09;了。它们不仅能使你的工作更加简单、更具逻辑性&#xff0c;还能够提升编程体验和效率。 每个人都知道这一点。而问题在于&#xff0c;如何从众多选项中选择最好的 Python 开发环境。初级开发者往往…...

【Hive】HQL Map 『CRUD | 相关函数』

文章目录 1. Map 增删改查1.1 声明 Map 数据类型1.2 增1.3 删1.4 改1.5 查 2. Map 相关函数2.1 单个Map 3. Map 与 String3.1 Map 转 string3.2 string 转 Map 1. Map 增删改查 1.1 声明 Map 数据类型 语法&#xff1a;map<基本数据类型, 基本数据类型> 注意是<>…...

ELF修复基本工作原理

ELF修复基本工作原理 ELF(Executable and Linkable Format)是一种常见的可执行文件和可链接文件的格式,广泛用于Linux和UNIX系统中。ELF修复是指对ELF文件进行修改或修复,以确保其正确加载和执行。 ELF修复的基本工作原理如下: 识别ELF文件:首先,需要识别和验证目标文…...

matlab实现输出的几种方式(disp函数、fprintf函数、print函数)

matlab实现输出的几种方式&#xff08;disp函数、fprintf函数、print函数&#xff09; 输出为文本、文件、打印 1、disp函数 显示变量的值&#xff0c;如果变量包含空数组&#xff0c;则会返回 disp&#xff0c;但不显示任何内容。 矩阵 A [1 0]; disp(A)结果 字符串 S …...

C/C++数据库编程

文章目录 0. Mysql安装与开发环境配置1. win10 Navicat 连接虚拟机的MySQL需要关闭防火墙2. 由于找不到libmysql.dIl, 无法继续执行代码。重新安装程序可能会解决此问题。3. 测试连接数据库&#xff0c;并插入数据4. C封装MySQL增删改查操作 0. Mysql安装与开发环境配置 MySQL…...

通过python在unity里调用C#接口

log: 背景 最近在做虚拟人底层驱动sdk测试&#xff0c;因为后端使用的是C#,我个人更倾向于python编程辅助测试工作&#xff0c;测试sdk需要通过开发提供的接口方法文档&#xff0c;通过传测试场景参数调用方法进行单元测试 技术&工具 项目语言 C# 项目工具 unity 测试…...

C++笔记之左值与右值、右值引用

C笔记之左值与右值、右值引用 code review! 文章目录 C笔记之左值与右值、右值引用1.左值与右值2.右值引用——关于int&& r 10;3.右值引用——对比int&& r 10;和int& r 10;4.右值引用&#xff08;rvalue reference&#xff09;的概念 1.左值与右值 2.…...

JS逆向-某招聘平台token

前言 本文是该专栏的第56篇,后面会持续分享python爬虫干货知识,记得关注。 通常情况下,JS调试相对方便,只需要chrome或者一些抓包工具,扩展插件,就可以顺利完成逆向分析。目前加密参数的常用逆向方式大致可分为以下几种,一种是根据源码的生成逻辑还原加密代码,一种是补…...

LLMs高效的多 GPU 计算策略Efficient multi-GPU compute strategies

很有可能在某个时候&#xff0c;您需要将模型训练工作扩展到超过一个GPU。在上一个视频中&#xff0c;我强调了当您的模型变得太大而无法适应单个GPU时&#xff0c;您需要使用多GPU计算策略。但即使您的模型确实适合单个GPU&#xff0c;使用多个GPU加速训练也有好处。即使您正在…...

jvm-类加载子系统

1.内存结构概述 类加载子系统负责从文件系统或网络中加载class文件&#xff0c;class文件在文件开头有特定的文件标识 ClassLoader只负责class文件的加载&#xff0c;至于它是否运行&#xff0c;则由Execution Engine决定 加载的类信息存放于一块称为方法区的内存空间&#xff…...

【实例分割】(一)Mask R-CNN详细介绍带python代码

目录 1.&#x1f340;&#x1f340;实例分割定义 2.&#x1f340;&#x1f340;Mask R-CNN 3.&#x1f340;&#x1f340;经典的实例分割算法 4.&#x1f340;&#x1f340;Mask R-CNN python代码 整理不易&#xff0c;欢迎一键三连&#xff01;&#xff01;&#xff01;…...

面试官问我Redis怎么测,我一脸懵逼!

有些测试朋友来问我&#xff0c;redis要怎么测试&#xff1f;首先我们需要知道&#xff0c;redis是什么&#xff1f;它能做什么&#xff1f; redis是一个key-value类型的高速存储数据库。 redis常被用做&#xff1a;缓存、队列、发布订阅等。 所以&#xff0c;“redis要怎么测试…...

【Spring Boot】四种核心类的依赖关系:实体类、数据处理类、业务处理类、控制器类

//1.配置项目环境&#xff0c;创建Spring Boot项目。 //2.数据库设置&#xff0c;配置数据库。 //3.创建实体类&#xff0c;映射到数据库。 //4.创建数据处理层类&#xff0c;Repository //5.创建业务处理类&#xff0c;Service类 //6.创建控制器类&#xff0c;Controller类 Ar…...

opencv 进阶15-检测DoG特征并提取SIFT描述符cv2.SIFT_create()

前面我们已经了解了Harris函数来进行角点检测&#xff0c;因为角点的特性&#xff0c;这些角点在图像旋转的时候也可以被检测到。但是&#xff0c;如果我们放大或缩小图像时&#xff0c;就可能会丢失图像的某些部分&#xff0c;甚至有可能增加角点的质量。这种损失的现象需要一…...

ES5 的构造函数和 ES6 的类有什么区别

文章目录 语法不同方法定义方式不同继承方式不同类内部的this指向不同静态成员定义方式不同访问器属性类的类型检查 在JavaScript中&#xff0c;类和构造函数都被用来创建对象&#xff0c;接下来会从以下几点说说两者的区别&#xff1a; 语法不同 构造函数使用函数来定义类使用…...

AUTOSAR配置与实践(配置篇) 如何条件控制PDU外发

AUTOSAR配置与实践(配置篇)如何条件控制PDU外发 一、需求1.1 需求简要分析1.2 需求进一步分析二、流程实现和具体配置一、需求 需要针对特定的PDU(外发)进行条件控制,这里要通过不同配置字进行PDU是否外发的控制 1.1 需求简要分析 正常PDU分组时分为两组,接收报文组和…...

2023年湖北中级工程师职称申报专业有哪些?甘建二告诉你

中级职称职称申报专业&#xff1a;环境工程、 土木建筑、土建结构、土建监理、土木工程、岩石工程、岩土、土岩方、风景园林、园艺、园林、园林建筑、园林工程、园林绿化、古建筑园林、工民建、工民建安装、建筑、建筑管理、建筑工程、建筑工程管理、建筑施工、建筑设计、建筑装…...

记录:ubuntu20.04+ORB_SLAM2_with_pointcloud_map+ROS noetic

由于相机实时在线运行需要ROS&#xff0c;但Ubuntu22.04只支持ROS2&#xff0c;于是重装Ubuntu20.04。上一篇文章跑通的是官方版本的ORB_SLAM2&#xff0c;不支持点云显示。高翔修改版本支持RGB-D相机的点云显示功能。 高翔修改版本ORB_SLAM2&#xff1a;https://github.com/ga…...

文心问数Sugar Bot :大模型+BI,多轮会话自动生成可视化图表与数据结论

Sugar BI 的文心问数功能是基于大语言模型实现的&#xff0c;支持您使用自然语言&#xff0c;通过多轮会话的方式&#xff0c;获取实时数据的图表展现&#xff0c;也可以自动为您总结与图表相关的业务结论。 文心问数功能邀测中&#xff0c;欢迎CSDN的用户前来报名&#xff1a;…...

21、WEB漏洞-文件上传之后端黑白名单绕过

目录 前言验证/绕过 前言 关于文件上传的漏洞&#xff0c;目前在网上的常见验证是验证三个方面&#xff1a; 后缀名&#xff0c;文件类型&#xff0c;文件头&#xff0c;其中这个文件头是属于文件内容的一个验证 后缀名&#xff1a;黑名单&#xff0c;白名单 文件类型&#xf…...

windows的django项目部署到linux的docker上

编辑dockerfile文件&#xff0c;可以自行寻找相关教程 创建镜像 docker bulid -t imagename:tag .查看镜像 docker images 如果想自己先试一下&#xff0c;那就需要运行容器 docker run -it -d -p 8000:8000 --name volume_name imagename:tag 查看容器 docker ps -a 进…...

【力扣】70. 爬楼梯 <动态规划>

【力扣】70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. …...

数据结构(3)

线性表是多个具有相同特征的数据的有限序列。 前驱元素&#xff1a;A在B前面&#xff0c;称A为B的前驱元素。 后继元素&#xff1a;B在A后面&#xff0c;称B为A的后继元素。 线性表特征&#xff1a; 1.一个元素没有前驱元素&#xff0c;就是头结点&#xff1b; 2.最后一个…...

深入浅出Pytorch函数——torch.nn.init.xavier_uniform_

分类目录&#xff1a;《深入浅出Pytorch函数》总目录 相关文章&#xff1a; 深入浅出Pytorch函数——torch.nn.init.calculate_gain 深入浅出Pytorch函数——torch.nn.init.uniform_ 深入浅出Pytorch函数——torch.nn.init.normal_ 深入浅出Pytorch函数——torch.nn.init.c…...

优橙内推安徽专场——5G网络优化(中高级)工程师

可加入就业QQ群&#xff1a;801549240 联系老师内推简历投递邮箱&#xff1a;hrictyc.com 内推公司1&#xff1a;浙江省邮电工程建设有限公司 内推公司2&#xff1a;北京宜通华瑞科技有限公司 内推公司3&#xff1a;浙江明讯网络技术有限公司 浙江省邮电工程建设有限公司 …...

2023年计算机设计大赛国三 数据可视化 (源码可分享)

2023年暑假参加了全国大学生计算机设计大赛&#xff0c;并获得了国家三等奖&#xff08;国赛答辩出了点小插曲&#xff09;。在此分享和记录本次比赛的经验。 目录 一、作品简介二、作品效果图三、设计思路四、项目特色 一、作品简介 本项目实现对农产品近期发展、电商销售、灾…...

工业生产全面感知!工业感知云来了

面向工业企业数字化转型需求&#xff0c;天翼物联基于感知云平台创新能力和5G工业物联数采能力&#xff0c;为客户提供工业感知云服务&#xff0c;包括工业泛协议接入、感知云工业超轻数采平台、工业感知数据治理、工业数据看板四大服务&#xff0c;构建工业感知神经系统新型数…...

Lnton羚通关于Optimization在【PyTorch】中的基础知识

OPTIMIZING MODEL PARAMETERS &#xff08;模型参数优化&#xff09; 现在我们有了模型和数据&#xff0c;是时候通过优化数据上的参数来训练了&#xff0c;验证和测试我们的模型。训练一个模型是一个迭代的过程&#xff0c;在每次迭代中&#xff0c;模型会对输出进行猜测&…...

导购网站如何做/微信推广链接怎么制作

动态代理分为Java SDK 动态代理以及cglib动态代理&#xff0c;这里先了解下Java SDK动态代理 Java SDK动态代理代码demo&#xff1a; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;public class JDKDynamic…...

网站备案号位置/深圳网络推广哪家

风险管理的含义和类别 风险敞口 未加保护的风险&#xff0c;也成“风险暴露”。 在某个项目、项目集或项目组合中&#xff0c;针对任一特定对象&#xff0c;而适时作出的对所有风险的潜在影响的综合评估。 单个项目风险 vs 整体项目风险 案例&#xff1a;田忌赛马、杀毒软件 变…...

做渠道的网站有哪些/seo推广费用需要多少

上篇文章 《Nacos 配置中心原理》我和大家分析了 Nacos 的配置中心原理&#xff0c;主要分析了 Nacos 客户端是如何感知到服务端的配置变更的&#xff0c;但是只是从客户端的角度进行了分析&#xff0c;并没有从服务端的角度进行分析&#xff0c;本篇文章我将结合服务端从两个角…...

济南智能网站建设流程/电子商务平台有哪些

例如需求&#xff0c;我有一个WebView 加载一个url, 该url对应的网页本身自带下拉刷新 &#xff0c;但是网页本身会有出现400 500 等异常请求错误码这时候网页加载失败&#xff0c;页面本身的下拉是无法使用的&#xff0c;要求重新加载页面的话就需要在webview外层套一个androi…...

有专门做食品的网站吗/苏州seo关键词优化推广

定义&#xff1a;辛普森法则&#xff08;Simpsons rule&#xff09;是一种数值积分方法&#xff0c;是牛顿-寇次公式的特殊形式&#xff0c;以二次曲线逼近的方式取代矩形或梯形积分公式&#xff0c;以求得定积分的数值近似解。其近似值如下&#xff1a; 注&#xff1a;辛普森法…...

专业做网站服务/windows优化大师会员

如何实现富文本文字链接完全自定义效果图实现UITextView 的配置链接点击事件重定向效果图 环境&#xff1a;XCode12.3 - IOS14.3 语言&#xff1a;Objective-C 副标题为富文本实现的文字链接 实现 带链接的富文本只能使用 UITextView&#xff0c;使用 UILabel 无法完全自定…...