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

<?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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【服务器】Strace显示后台进程输出

今天有小朋友遇到一个问题 她想把2331509和2854637这两个进程调到前台来&#xff0c;以便于在当前shell查看这两个python进程的实时输出 我第一反应是用jobs -l然后fg &#xff08;参考这里&#xff09; 但是发现jobs -l根本没有输出&#xff1a; 原因是jobs看的是当前ses…

Oracle Database12c数据库官网下载和安装教程

文章目录 下载安装Oracle自带的客户端工具使用 下载 进入oracle官网 点击下载连接之后右上角会有一个下载 我们只需要数据库本体就够了 运行这个下载器 等待下好之后即可 出现 Complete 之后代表下载成功&#xff0c;然后我们解压即可 安装 双击 双击setup.exe 根据…

NLP | 基于LLMs的文本分类任务

比赛链接&#xff1a;讯飞开放平台 来源&#xff1a;DataWhale AI夏令营3&#xff08;NLP&#xff09; Roberta-base&#xff08;BERT的改进&#xff09; ①Roberta在预训练的阶段中没有对下一句话进行预测&#xff08;NSP&#xff09; ②采用了动态掩码 ③使用字符级和词级…

引领行业高质量发展|云畅科技参编《低代码开发平台创新发展路线图(2023)》

8月8日-9日&#xff0c;中国电子技术标准化研究院于北京顺利召开《低代码开发平台创新发展路线图&#xff08;2023&#xff09;》封闭编制会。云畅科技、浪潮、百度、广域铭岛等来自低代码开发平台解决方案供应商、用户方、科研院所等近30家相关单位的40余位专家参与了现场编制…

android studio gradle build running慢 卡住不动 失败 原因与解决方式

快速导航 分析原因解决办法 分析原因 主要原因是 gradle 构建时无法从网络获取需要的包或库。 解决办法 将国外库替换为阿里云镜像库。 例如 google 对应的库是 maven { url ‘https://maven.aliyun.com/repository/google’ }

基于决策树(Decision Tree)的乳腺癌诊断

决策树(DecisionTree)学习是以实例为基础的归纳学习算法。算法从--组无序、无规则的事例中推理出决策树表示形式的分类规则,决策树也能表示为多个If-Then规则。一般在决策树中采用“自顶向下、分而治之”的递归方式,将搜索空间分为若千个互不相交的子集,在决策树的内部节点(非叶…

容灾双活方案,异地容灾备份与双活

数据信息的安全性和完整性面临着硬件问题、病毒入侵、自然灾害等各种威胁。为了应对这些威胁&#xff0c;公司需要采取有效的数据保护措施&#xff0c;其中特别重要的是外部容灾备份和双活技术。  让我们来看看其他地方的容灾备份。这是一种可以将数据复制到避免初始区域的设…

IO day 7

1、使用消息队列完成两个进程间相互通信 msgsnd #include <myhead.h>typedef struct {long msgtype;char data[1024]; }Msg_ds;#define SIZE sizeof(Msg_ds)-sizeof(long)int main(int argc, const char *argv[]) {//创建key值key_t key;if((key ftok("/",k…

物通博联嵌入式数据采集网关采集传感器的数据上传到云端

在当今的物联网&#xff08;IoT&#xff09;时代&#xff0c;各种传感器广泛应用于各种工业领域。传感器数据采集是实现自动化生产的基础&#xff0c;可以为企业决策提供科学的数据支持&#xff0c;通过各类智能传感器采集传输终端&#xff0c;将采集的传感器数据实时传输到设备…

如何将应用程序发布到 App Store

憧憬blog主页 在强者的眼中&#xff0c;没有最好&#xff0c;只有更好。我们是移动开发领域的优质创作者&#xff0c;同时也是阿里云专家博主。 ✨ 关注我们的主页&#xff0c;探索iOS开发的无限可能&#xff01; &#x1f525;我们与您分享最新的技术洞察和实战经验&#xff0…

电工-学习电工有哪些好处

学习电工有哪些好处&#xff1f;在哪学习电工&#xff1f; 学习电工有哪些好处&#xff1f;在哪学习电工&#xff1f;学习电工可以做什么&#xff1f;优势有哪些&#xff1f; 学习电工可以做什么&#xff1f;学习电工有哪些好处&#xff1f; 就业去向&#xff1a;可在企业单位…

docker 03(docker 容器的数据卷)

一、数据卷的概念和作用 删除后&#xff0c;数据也没了。 不能 数据卷 是宿主机中的一个目录或文件当容器目录和数据卷目录绑定后&#xff0c;对方的修改会立即同步一个数据卷可以被多个容器同时挂载 作用&#xff1a; 容器数据持久化 外部机器和容器间接通信 容器之间数据交换…

【运维】linkis1.3.2添加jdbc引擎(添加mysql、greenplum、starrocks、doris数据源查询)与配合多数据源管理提交任务初探

文章目录 一. 引擎的安装1. 前置工作2. 获取引擎插件3. 上传和加载4. 引擎刷新4.1. 重启刷新4.2. 检查引擎是否刷新成功 二. 测试mysql、starrocks与doris数据库1. 通过shell提交任务2. 通过(IDE)shell进行提交3. 通过接口提交 三. 添加greenplum四. 通过linkis的数据源管理提交…

【算法刷题之数组篇(1)】

目录 1.leetcode-59. 螺旋矩阵 II&#xff08;题2.题3相当于二分变形&#xff09;2.leetcode-33. 搜索旋转排序数组3.leetcode-81. 搜索旋转排序数组 II(与题目2对比理解)&#xff08;题4和题5都是排序双指针&#xff09;4.leetcode-15. 三数之和5.leetcode-18. 四数之和6.leet…

无涯教程-Perl - undef函数

描述 此函数未定义EXPR的值。用于标量,列表,哈希,函数或类型范围。在带有诸如undef $hash {$key}之类的语句的哈希上使用&#xff1b;实际上将指定键的值设置为未定义的值。 如果要从哈希中删除元素,请使用delete函数。 语法 以下是此函数的简单语法- undef EXPRundef返回…

学会Mybatis框架:让你的代码更具灵活性、可维护性、安全性和高效性【二.动态SQL】

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Mybatis的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Mybatis动态SQL如何应用 1.需求 2.…

resultType和paramstype的区别

文章目录 1. resultType&#xff1a;2. parameterType&#xff1a;3. 总结看这里就够啦&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;举例 1. resultType&#xff1a; 返回值类型&#xff0c;类型即为对象类型&#xff0c;返回结果字段与对象属性…

【洁洁送书第五期】为什么我们要了解可观测性工程

导读 可观测性已成为一个热门话题&#xff0c;并广受关注。随着它的普及&#xff0c;“可观测性”不幸被误作“监控”或“系统遥测”的同义词。可观测性是软件系统的一个特征。而且&#xff0c;只有当团队采用新的实践进行持续开发时&#xff0c;才能在生产软件系统中有效利用这…

07-Vue基础之综合案例——小黑记事本

个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大二在校生 &#x1f921; 个人主页&#xff1a;坠入暮云间x &#x1f43c;座右铭&#xff1a;懒惰受到的惩罚不仅仅是自己的失败&#xff0c;还有别人的成功。 &#x1f385;**学习目标: 坚持每一次的学习打卡 文章…

分布式ID

分布式ID 背景Snowflake(雪花算法)uid-generator实战美团leaf实战代码地址背景 分布式系统,用什么做为主键呢? uuid 太长(MySQL官方有明确的建议主键要尽量越短越好[4],36个字符长度的UUID不符合要求。)、 无规律(在InnoDB引擎下,UUID的无序性可能会引起数据位置频繁…