PHP语言基础
一.标记风格
标记风格分为四类(推荐XML)
1.XML风格
<?php
echo'这是xml风格‘;
?>
注意:结束标识符必须单独另起一行,并且不能有空格。在标识符前后有其他符号或者字符也会发生错误。
2.脚本风格
<script language='php'>
echo'这是脚本风格';
</script>
3.简短风格
<?echo'这是简短风格的标记’;?>
4.ASP风格
<%
echo'这是ASP风格标记';
%>
说明:如果要使用简短风格和ASP风格,要在php.ini中对其进行配置。
二.PHP注释的作用
支持3种风格的注释
1.单行注释(//)
<?php
//这是php的单行注释,使用C++的注释风格
?>
2.多行注释(/*....*/)
<?php
/*
1
2
3
*/
?>
3.文档注释
4.风格注释(#)
注意:在单行注释中内容不要出现?>标志,因为解释器会认为PHP脚本结束,而不去执行?>后面的代码。
三.PHP的数据类型
PHP支持8种原始类型,包括4种标量类型,即Boolean,integer,float/double和string;2种复合类型,即array和object;两种特殊类型,即resource与null。
1.标量数据类型
标量数据类型是数据结构中最基本的单元,只能存储一个数据。
说明:所有变量都是以$开头的,无论是声明变量还是调用变量,都应该使用$.
Boolean:最简单的类型,只有两个值。
在PHP中不是只有false值才被认为是假的,一些特殊情况也是如,0、00、"0"、空白字符串("")、只声明没有赋值的数组等。
string:字符串就是连续的字符序列,可以是计算机所能表示的一切字符集合。
有三种定义字符串的方式,分别是(’)、(“)和定界符(<<<)
注意:双引号中所包含的变量会自动替换成实际数值,而单引号中包含的变量则按普通字符串输出。
注意:如果对非转义字符使用\,那么在输出时,\也会一起输出。
说明:在定义简单的字符串时,使用单引号是一个更加合适的处理方式,使用双引号的话php要花费一些时间来解析。
单引号格式:$a = '字符串';
双引号格式:$a ="字符串";
定界符格式:$string = <<<str 要输出的字符串 str
integer:只能包含整数,可以是正数也可以是负数。
注意:如果在8进制出现了非法数字(8和9),则后面的数字会被忽略掉。
注意:如果给的数值超过了int型能表示的最大范围。将会被当成float型处理,这种情况称为整数溢出。同样的,如果表达式的最后运算结果超出了int型的范围,也会返回float型。
float:只能用于存储数字,和整型不同的是有小数点。
默认有两种书写格式
第一种
3.14415
-35.8
第二种是科学记数法
358E1
849.72E-3
注意:浮点型的数值只是一个近似值,所有要尽量避免浮点数值之间比较大小,因为最后的结果往往是不准确的。
2.复合数据类型
array:一组类型相同的变量的集合。
格式:$array = array('value1','value2'...) or $array[key] = 'value' or $array = [key1=>value1,key2=> value....]
key是数组元素的下标,value是数组下标所对应的元素,以下都是正确的格式
$arr1 = array('This','is');
$arr2 = (0=>'php',1=>'is','the' =>'the','str'=>'best');
$arr3[0] = 'tmpname';
object:对象是类的实例,使用new命令来创建。
3.特殊数据类型
resource:资源是一种特殊变量,又叫作句柄,保存了到外部资源的一个引用,资源是通过专门的函数的函数来建立和使用。
null:特殊的值,表示没有值,唯一的就是null。
注意:is_null()函数用于判断变量是否为null。返回一个Boolean型,如果为null则返回true。unset()函数用来销毁指定变量。
4.数据类型的转换
(boolean)转换为布尔型 如(boolean)$num (boolean)$str
(string)转换为字符型
(integer)转换成整型
(float)转换成浮点型
(array)转换成数组
(object)转换成对象
类型转换还可以通过settype()函数来完成,该函数可以将指定的变量转换成指定的数据类型。
bool settype(mixed var,string type)
其中var为指定的变量,type为指定的类型,转换成功则返回true。
5.检测数据类型
is_bool 检查变量是否为布尔型
is_string 检查变量是否为字符串类型 如:is_string('1234')
is_float/is_double 检查变量是否为浮点类型
is_integer/is_int 检查变量是否为整数
is_null 检查变量是否为null
is_array 检查变量是否为数组类型
is_object 检查变量是否为一个对象类型
is_numeric 检查变量是否为数字或由数字组成的字符串
四.PHP常量
1.声明和使用常量
在PHP中用define()函数来定义常量,该函数语法格式如下:
defing(string constant_name,mixed value,case_sensitive=false)
如:
<?php
define('message','cxy');
echo message;
?>
参数说明:
value:必选参数,常量的值。
constant_name:必选参数,常量的名称,即标识符。
case_sensitive:可选参数,指定是否大小写敏感,设定为true,表示不敏感。
获取常量的值有两种方法:
第一种:使用常量名直接获取值。
第二种:使用constant()函数
constant函数和直接使用常量名输出的效果是一样的,但函数可以动态地输出不同的常量。
语法格式:mixed constant(striing const_name)
用defined函数判断一个常量是否被定义,语法格式如下:
bool defined (string constant_name);
2.预定义常量
__FILE__:默认常量,PHP程序文件名。
__LINE__:默认常量,PHP程序行数。
PHP_VERSION:内建常量,PHP程序的版本。
PHP_OS:内建常量,执行PHP解析器的操作系统名称,如Windows。
TRUE:该常量是一个真值(true)。
FALSE:该常量是一个假值(false)。
NULL:一个null值。
E_ERROR:该常量指到最近的错误处。
E_WARNING:该常量指到最近的警告处。
E_PARSE:该常量指到解析器语法有潜在问题处。
E_NOTICE:该常量为发生不寻常的提示但不一定是错误处。
注意:__FILE__和__LINE__的下划线是两条而不是一条。
5.PHP变量
1.变量声明及使用
对于字符串和数字类型的变量,可以通过‘=’来实现。格式:
<?php $name = value; ?>
非法命名:$11112_var = 11112; $@spcn = 'spcn';
合法命名:$thisCup='oink'; $_Class='roof';
除了直接赋值外,还有两种方式可以为变量声明或赋值,
一种是变量间的赋值:$string1 = $string2;
另外一种是引用赋值 $j = & $i;
引用和复制的区别在于:复制是将原变量的内容复制下来,开辟一个新的内存空间来保存,而引用则是给变量的内容再起一个名字。
2.变量作用域
局部变量:在函数内部定义的变量,其作用域是所在函数。
全局变量:被定义在所有函数以外的变量,其作用域是整个PHP文件,但在用户自定义函数内部是不可用的。如果希望在用户自定义函数内部使用全局变量,则要使用global关键字声明。
静态变量:能够在函数调用结束后仍保留变量值,当再次回到其作用域时,又可以继续使用原来的值,而一般变量是在函数调用结束后,其存储的数据值将被清除,所占的内存空间被释放。使用静态变量时,先要用关键字static来声明变量,把关键字static放在要定义的变量之前。
在函数内部定义的变量,作用域在函数内部,如果在函数外赋值,将被认为是完全不同的另一个变量,在推出声明变量的函数时,该变量及相应的值会被清除。
3.可变变量
可变变量是一种独特的变量,允许动态的改变一个变量的名称,工作原理是该变量的名称由另外一个变量的值来确定,实现过程就是在变量的前面再多加一个$.
<?php
$a='b';
$b='php';
echo $a;
echo $$a; //通过可变变量来输出$b的值
?>
结果 b php
六.PHP运算符
1.算数运算符
加法(+)
减法(-)
乘法(*)
除法(/)
取余数运算(%)
说明:在算术运算符中使用%求余,如果被除数是负数,那么取德的结果也是一个负值。
2.字符串运算符(.)
字符串运算符只有一个,即是.,这里的+只能作算数运算符,不能用作字符串运算符。
<?php
$n='3.14';//声明一个字符串变量,以数字开头
$m=1;//声明一个整型变量
$nm = $n.$m;
$mn = $n+$m;
echo $nm;
echo $mn;
?>
结果:3.141 4.14
3.赋值运算符
赋值(=)$a=3 将右边的值赋值给左边
加(+=)$a+=2 $a=$a+2
减(-=)$a-=2
乘(*=)$a*=3
除(/=)$a/=4
连接字符(.=)$a.='b' $a=$a.'b'
取余数(%=)$a%=5
4.递增递减运算符
递增(++)递减(--)
使用方法有两种
第一种:将运算符放在变量前面。先将变量加一或者减一运算后再将值赋值给原变量。
第二种:将运算符放在变量后面。先放回变量当前的值再将变量加一或者减一。
5.位运算符
&(与)、|(或)、^(异或)、~(取反)、<<(向左移位)、>>(向右移位)
6.逻辑运算符
&&或and (与)
||或or(或)
xor(异或)
!(非)
7.比较运算符
<(小于)
>(大于)
<=(小于等于)
>=(大于等于)
==(相等)
!=(不等)
===(恒等)
!==(非恒等)
8.条件运算符
条件运算符(.?:),也称为三目运算符,用于根据一个表达式再另外两个表达式中选择一个,而表示用来再两个语句或程序中选择。
<?php
$value=100;
echo($value==true)?'条件运算':'没有该值';
?>
结果:条件运算
9.运算符的优先级
七.PHP的表达式
表达式是PHP最重要的基石。在php语言中,几乎所写的任何对象都是表达式。
八.PHP函数
1.基本语法格式
function fun_name($str1,$str2.....$strn){
fun_body;
}
fun_name为自定义函数名。
$str1,$str2为函数的参数。
fun_body为自定义函数的主体,功能实现的部分。
2.在函数间传递参数
按值传递方式
按引用传递方式
默认参数(可选参数)方式
当使用默认参数时,默认参数必须放在非默认参数的右侧,否则函数可能出错。
3.从函数中返回值
4.变量函数
相关文章:
PHP语言基础
一.标记风格 标记风格分为四类(推荐XML) 1.XML风格 <?php echo这是xml风格‘; ?> 注意:结束标识符必须单独另起一行,并且不能有空格。在标识符前后有其他符号或者字符也会发生错误。 2.脚本风格 <script languagephp> …...
怎么用Excel VBA写一个excel批量合并的程序?
您可以按照以下VBA代码来实现把同一路径上的所有工作簿合并到同一个工作簿中: VBA Option Explicit Sub MergeWorkbooks() Dim path As String, fileName As String, sheet As Worksheet Dim targetWorkbook As Workbook, sourceWorkbook As Workbook Dim workshe…...
WuThreat身份安全云-TVD每日漏洞情报-2023-05-22
漏洞名称:Apple WebKit 任意代码执行漏洞 漏洞级别:中危 漏洞编号:CVE-2023-32373 相关涉及:Apple iOS和iPadOS 16.4.1 漏洞状态:在野 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-12579 漏洞名称:海康威视部分iVMS系统存在文件上传漏洞 漏洞级别:未定义…...
Eclipse教程 Ⅵ
今天分享Eclipse Java 构建路径、Eclipse 运行配置(Run Configuration)和Eclipse 运行程序 Eclipse Java 构建路径 设置 Java 构建路径 Java构建路径用于在编译Java项目时找到依赖的类,包括以下几项: 源码包项目相关的 jar 包及类文件项目引用的的类…...
Seaborn.load_dataset()加载数据集失败最佳解决方法
load_dataset() 是 Seaborn 库中提供的一个函数,用于加载一些原始数据集。这些数据集包含了许多经典的数据集,比如鸢尾花数据集、小费数据集等,这些数据集在数据可视化和机器学习中非常常见。 使用 load_dataset() 函数可以方便地获取这些数…...
java 区分缺陷Defects/感染Infections/失败Failure
java 区分缺陷Defects/感染Infections/失败Failure 缺陷Defects 软件故障总是从代码中一个或多个缺陷的执行开始。 缺陷只是一段有缺陷、不正确的代码。 缺陷可能是程序语句的一部分或完整部分,也可能对应于不存在但应该存在的语句。 尽管程序员要对代码中的缺陷负…...
如何学习R-Meta分析与【文献计量分析、贝叶斯、机器学习等】多技术融合?
专题一:Meta分析的选题与文献计量分析CiteSpace应用 1、Meta分析的选题与文献检索 1) 什么是Meta分析 2) Meta分析的选题策略 3) 文献检索数据库 4) 精确检索策略,如何检索全、检索准 5) 文献的管理与清洗,如何制定文献纳入排除标准 6…...
分布式锁的应用场景与分布式锁实现(二):基于Redis实现分布式锁
分布式锁的应用场景与分布式锁实现(一):传统锁处理并发及传统锁的问题 基于Redis实现分布式锁 所有代码已同步到GitCode:https://gitcode.net/ruozhuliufeng/distributed-project.git 基本实现 借助Redis中的命令setnx(key&a…...
【JavaSE】Java基础语法(四十二):NIO
文章目录 1. 概述2. NIO与BIO的区别3. NIO三大模块4. NIO创建缓冲区对象【应用】5. NIO缓冲区添加数据【应用】6. NIO缓冲区获取数据【应用】7. 小结 1. 概述 BIO Blocking IO,阻塞型IONIO No Blocking IO,非阻塞型IO阻塞IO的弊端 在等待的过程中,什么事也做不了非阻塞IO的好处…...
Linux---systemctl
1. systemctl命令 Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启。 能够被systemctl管理的软件,一般也称之为:服务 语法:systemctl start | stop | status | enabl…...
零钱兑换,凑零钱问题,从暴力递归到动态规划(java)
凑零钱问题,从暴力递归到动态规划 leetcode 322 题 零钱兑换暴力递归(这个会超时,leetcode 跑不过去)递归缓存动态规划优化暴力递归动态规划专题 leetcode 322 题 零钱兑换 322 零钱兑换 - 可以打开链接测试 给你一个整数数组 c…...
Vue登录界面精美模板分享
文章目录 🐒个人主页🏅Vue项目常用组件模板仓库📖前言:🎀源码如下: 🐒个人主页 🏅Vue项目常用组件模板仓库 📖前言: 本篇博客主要提供vue组件之登陆组件源码…...
Linux设备驱动程序(二)——建立和运行模块
文章目录 前言一、设置测试系统二、Hello World 模块1、代码详解2、执行效果 三、内核模块相比于应用程序1、用户空间和内核空间2、内核的并发3、当前进程4、几个别的细节 四、编译和加载1、编译模块2、加载和卸载模块3、版本依赖 五、内核符号表六、预备知识七、初始化和关停1…...
【算法】单调栈问题
文章目录 题目思路分析代码实现 题目 给定一个不含有重复值的数组arr,找到每一个i位置左边和右边离i位置最近且值比arr[i]小的位置,返回所有位置相应的消息。 比如arr{3,4,1,5,6,2,…...
Hack The Box - 关卡Dancing
SMB(全称是Server Message Block)是一个协议名,可用于在计算机间共享文件、打印机、串口等,电脑上的网上邻居就是靠它实现的。 SMB 是一种客户机/服务器、请求/响应协议。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写服务器上的…...
【软件设计与体系结构】 软件体系结构风格
软件体系结构(Software Architecture) 软件体系结构(Software Architecture)包括构成系统的设计元素的描述、 设计元素 之间的交互、 设计元素的组合模式以及在这些模式中的约束。 定义 软件体系结构表示系统的框架结构…...
detectron2 使用教程
本范例演示使用非常有名的目标检测框架detectron2 🤗🤗 在自己的数据集(balloon数据)上训练实例分割模型MaskRCNN的方法。 detectron2框架的设计有以下一些优点: 1,强大:提供了包括目标检测、实例分割、全景分割等非常广泛的视觉任务模型库。 2,灵活:可以通过注册机…...
哈希表常用数据结构
哈希表常用数据结构 查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。 哈希法也是空间换时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。 集合底层实现…...
Java字节流
4 字节流 字节流抽象基类 InputStream:这个抽象类是表示字节输入流的所有类的超类OutputStream:这个抽象类是表示字节输出流的所有类的超类子类名特点:子类名称都是以其父类名作为子类名的后缀4.1 IO流概述和分类 IO流概述: IO: 输入/输出(Input/Output)流:是一种抽象概念…...
arm3399主板-使用ubuntu20.04搭建LVS-DR(netplan)
目录 一、规划 1、网络拓扑 2、检查 二、配置设备 1、配置LVS 1.配置IP转发 2.清除防火墙 3.安装ipvsadm工具 4.配置VIP 5.netplan与NetworkManager介绍 6.添加LVS规则 1.清除防火墙 2.添加伪装IP 3.安装web服务 4. 修改内核参数,防止IP冲突 3、配置w…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
沙箱虚拟化技术虚拟机容器之间的关系详解
问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...
Java中HashMap底层原理深度解析:从数据结构到红黑树优化
一、HashMap概述与核心特性 HashMap作为Java集合框架中最常用的数据结构之一,是基于哈希表的Map接口非同步实现。它允许使用null键和null值(但只能有一个null键),并且不保证映射顺序的恒久不变。与Hashtable相比,Hash…...
LINUX编译vlc
下载 VideoLAN / VLC GitLab 选择最新的发布版本 准备 sudo apt install -y xcb bison sudo apt install -y autopoint sudo apt install -y autoconf automake libtool编译ffmpeg LINUX FFMPEG编译汇总(最简化)_底部的附件列表中】: ffmpeg - lzip…...
WinUI3开发_使用mica效果
简介 Mica(云母)是Windows10/11上的一种现代化效果,是Windows10/11上所使用的Fluent Design(设计语言)里的一个效果,Windows10/11上所使用的Fluent Design皆旨在于打造一个人类、通用和真正感觉与 Windows 一样的设计。 WinUI3就是Windows10/11上的一个…...
Qt 按钮类控件(Push Button 与 Radio Button)(1)
文章目录 Push Button前提概要API接口给按钮添加图标给按钮添加快捷键 Radio ButtonAPI接口性别选择 Push Button(鼠标点击不放连续移动快捷键) Radio Button Push Button 前提概要 1. 之前文章中所提到的各种跟QWidget有关的各种属性/函数/方法&#…...
