【PHP】基础语法变量常量

news2025/3/11 3:13:35

文章目录

  • 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代码可以没有语句结束符

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

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

<?php
	echo "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(‘常量名’)

<?php
	define('-_-','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

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

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

相关文章

10.应用部署

配置项目编码 配置IDEA IDE编码 不配置会出现idea内部log中文乱码&#xff0c;而外部正常的现象 增加配置代码&#xff1a; -Dfile.encodingUTF-8需要重新启动idea 配置运行看板 services docker 如果docker尚未配置&#xff0c;则docker看板不会显示&#xff0c;但可以先…

睡眠模式下如何快速唤醒电脑,看这里!

这篇文章解释了如何唤醒正在睡觉的电脑,以及如果正常方法不起作用该怎么办。 一、如何从睡眠中唤醒电脑 不管你使用的是什么操作系统,关闭睡眠模式就像唤醒电脑一样简单,你可以通过某种方式与电脑交互来完成: 移动鼠标 滑动触摸板 按键盘上的任意键 有些设备有点不同,只…

淘宝API技术解析:实现店铺所有商品接口的高效获取与处理

当涉及到淘宝店铺的所有商品接口&#xff0c;我们可以利用淘宝开放平台提供的API进行操作。 &#xff08;首先&#xff0c;我们需要确保已经在淘宝开放平台注册并创建了应用&#xff0c;并获取了相应的App Key和App Secret。&#xff09; 1. 获取授权&#xff1a;使用OAuth 2…

自组织地图 (SOM) — 介绍、解释和实现

自组织地图 &#xff08;SOM&#xff09; — 介绍、解释和实现 一、说明 什么是SOM&#xff08;self orgnize map&#xff09;自组织地图&#xff0c;是GNN类似的图神经网络的概念。因为神经网络实质上可以解释为二部图的权重&#xff0c;因此无论GNN还是SOM都有共同的神经网络…

AIGC的发展

AIGC&#xff08;Artificial Intelligence Generated Content&#xff09;&#xff0c;即人工智能生产内容&#xff0c;是人工智能在内容领域的最新进展。AIGC利用人工智能算法通过分析大量数据集&#xff0c;自动生成具有特定风格和主题的内容。AIGC涵盖了多种应用领域&#x…

ITIL4的知识体系及必要性

官方网站 www.itilzj.com 文档资料: wenku.itilzj.com 点击进入IT管理资料库 ITIL4 的必要性及历史 在这个前所未有的变革时代&#xff0c;人们身处着被誉为“第四次工业革命”的时代&#xff0c;这个时代催生出了一个日益加速、变得愈发错综复杂的环境。在这种环境下&#xf…

电脑文件夹密码怎么设置?文件夹加密介绍

文件夹是电脑管理文件必不可少的工具&#xff0c;而我们为了保护文件夹的数据安全&#xff0c;通常会采用设置密码的方法来保护文件夹。那么&#xff0c;电脑文件夹密码该怎么设置呢&#xff1f; 文件夹加密超级大师 文件夹加密超级大师不但可以为电脑文件夹设置密码&#xff…

阿里云大语言模型(LLM)实战训练营,火热开营中!

简介&#xff1a;大语言模型实战训练营已正式开营&#xff0c;汇集阿里云、黑马程序员多位AI领域资深技术专家手把手带您快速实现大语言模型从入门到应用落地&#xff01;完成课程学习任务更有机会领取LAMY钢笔、小米充电宝、双肩包等精美礼品&#xff0c;快来一起学习体验吧~ …

MySQL高可用Orchestrator

目录 一 Orchestrator简介 二 Orchestrator功能 1 Discovery(发现复制拓扑) 2 Refactoring(重构复制拓扑) 3 Recovery(恢复主库故障) 三 orchestrator支持的操作方式 四 部署要求 五 下载 六 安装 1 下载软件包 2 解压软件包 3 创建账号 第一种是 orc后端MySQL数据…

识别图片翻译怎么操作?几个好方法了解一下

图片翻译是一项非常有用的工具&#xff0c;可以让人们轻松地识别和翻译图片中的文字&#xff0c;对于一些步入职场的小伙伴尤其是从事文案编辑的朋友更是一个需要的技能&#xff0c;很多时候我们参考的多语言文献资料都是图片的格式&#xff0c;翻译内容的话会比较麻烦&#xf…

【python】python开源代理ip池

一、前言 随着互联网的不断发展&#xff0c;越来越多的应用需要使用高匿代理IP才能访问目标网站&#xff0c;而代理IP作为一种能够隐藏本机真实IP地址的工具&#xff0c;在网络抓取、搜索引擎排名、广告投放、反爬虫等方面有着广泛的应用场景。但是&#xff0c;由于代理IP的稳…

黑客自学路线

谈起黑客&#xff0c;可能各位都会想到&#xff1a;盗号&#xff0c;其实不尽然&#xff1b;黑客是一群喜爱研究技术的群体&#xff0c;在黑客圈中&#xff0c;一般分为三大圈&#xff1a;娱乐圈 技术圈 职业圈。 娱乐圈&#xff1a;主要是初中生和高中生较多&#xff0c;玩网恋…

玩转软件|钉钉个人版内测启动:AI探索未来的工作方式

目录 前言 正文 AI为核心&#xff0c;个人效率为王&#xff01; 指令中心&#xff0c;解锁AI技巧&#xff01; 灵感Store&#xff0c;探索更多可能&#xff01; 未来的AI&#xff0c;即将问世&#xff01; 个人内测体验 前言 重磅消息&#xff1a;钉钉个人版在8月16日正…

【JavaSE】详解final关键字

在Java中&#xff0c;final可以用来修饰类、方法和变量。final修饰类&#xff0c;表示该类无法被继承&#xff0c;并且此类的设计已被认为很完美而不需要进行修改或扩展。final修饰类中的方法&#xff0c;表示不可以被重写&#xff1b;也就是把该方法锁定了&#xff0c;以防止继…

最小栈00

题目链接 最小栈 题目描述 注意点 pop、top 和 getMin 操作总是在 非空栈 上调用 解答思路 由于栈先进后出的特点&#xff0c;对于任意一次入栈操作&#xff0c;只要该元素未被弹出&#xff0c;则其前面插入的元素一定都还在栈中&#xff0c;所以每次入栈时只需要根据其前…

Lnton羚通视频算法算力云平台【PyTorch】教程:学习Datasets-DataLoader基础知识

Dataset & DataLoader PyTorch 提供了两个数据处理的基本方法&#xff1a;torch.utils.data.DataLoader torch.utils.data.Dataset 允许使用预加载的数据集以及自己的数据。 Dataset 存储样本及其对应的标签&#xff0c; DataLoader 在 Dataset 基础上封装了一个可迭代的对…

苍穹外卖 day3 实现登录过程中MD5加密

一 原来是明文存的 密码可见度太高&#xff0c;MD5加密为密文图像 效果 二 密文实现步骤 修改明文密码&#xff0c;改成密文 123456 密文值&#xff1a;e10adc3949ba59abbe56e057f20f883e代码如下所示 在这里插入代码片 package com.sky.service.impl;import com.sky.con…

[bug日志]springboot多模块启动,在yml配置启动端口8081,但还是启动了8080

【问题描述】 配置的启动端口是8081&#xff0c;实际启动端口是8080 【解决方法】 1.检查application.yml的配置是否有错误(配置项中&#xff0c;显示白色就错&#xff0c;橙色无措) 2.检查pom.xml的打包方式配置项配置&#xff0c;主pom.xml中的配置项一般为&#xff1a;&l…

司徒理财:8.23黄金最新行情走势分析及操作策略

黄金走势分析&#xff1a;      黄金下跌遇阻&#xff0c;短线开启震荡调整走势&#xff0c;但跌势依旧没有改变&#xff0c;没有突破1906压力前&#xff0c;还是偏空走势&#xff0c;反弹继续干空。趋势行情&#xff0c;不要轻言翻转&#xff01;即便下跌结束&#xff0c;…

DB2的日志

在DB2中&#xff0c;该机制使用日志功能实现。所谓日志&#xff0c;可以被认为在一条事务被落实之前&#xff0c;能够保证其记录被写入永久存储系统的一种方法。 那么为什么需要日志呢&#xff1f;直接把变化的数据写入磁盘不是更好&#xff1f;之所以需要日志&#xff0c;主要…