深圳做自适应网站制作/全国十大跨境电商公司排名
PHP
php代码标记
多种标记来区分php脚本
ASP标记:<% php代码 %>
短标记:
脚本标记:
标准标记(常用):
简写风格:
ASP风格:<% php代码 %>
注意:简写风格和ASP风格需要在php.ini配置文件中修改以下配置为on,移植性差
highlighter- ini
short_open_tag = on asp_tags = on
highlighter- php-template
<html><body><b><?php//脚本标记echo 'hello world';?></b> </body> </html>
php注释
行注释
//注释
注释
块注释
/*
注释
*/
php指令分隔符
;
类似C语言,使用分号来结束指令
php数据类型
类型 | 说明 |
---|---|
boolean布尔型 | True and false |
string字符串型 | 字符序列 |
integer整型 | 正负整数 |
float浮点型 | 整,小数 |
array数组 | 一组有序数据集合 |
object对象 | 对象是类的实例,使用new命令创建 |
resource资源 | |
NULL |
$ 是php变量的标识符,所有变量都以$字符开头,无论是申明还是调用
布尔型boolean
直接将true or false赋值给变量即可
php
<?php$foo = True ?>
整型
php
<?php $a = 1234; //十进制数 $a = -1234; //复数 $a = 0123; //八进制,(十进制83) $a = 0x1A; //十六进制(十进制26) $a = 0b11111111;//二进制数字(255) ?>
PHP_INT_MAX 64位下最大值大约为9E18,当整数溢出时,会转换成科学计数法格式定义的浮点数。
浮点型
php
<?php $a = 1.234 $b = 1.2e3; //科学计数法 $c = 7e-10; //科学计数法,负指数
字符串
单引号
双引号
Heredoc结构
复合类型
数组
对象
特殊类型
资源resource
NULL
PHP模式修饰符
在正则匹配时,用来强化正则表达式的能力
可以写为/html/i
or /(?i)html/
两种格式,并且修饰符之间是不需要分隔符号的,直接连续书写即可
修饰符 | 说 明 |
---|---|
i | 匹配时不区分大小写 |
m | 将字符串视为多行。^和$会匹配每一行的开始和结束点 |
s | 将字符串是为一行,换行符会被视为普通的字符 |
x | 忽略空白,转移的空白不会被忽略 |
e | 只用在preg_replace函数中,在替换字符串中逆向引用做正常的替换,将其(即“替换的字符串”)作为php代码求值,并用结果来替换所搜索的字符串 |
A | 匹配字符串的开头部分 |
D | 如果设置该修饰符,模式中的元字符$仅会匹配目标字符串的结尾。没有此选项时,如果最后一个字符是换行符的话,美元符号也会匹配此字符之前(但不会匹配任何其他换行符之前)。如果设定了m修饰符则忽略此选项 |
E | 与m相反,如果使用该修饰符,那么$将匹配绝对字符串的结尾,而不是换行符前,默认打开该模式 |
U | 非贪婪模式,与元字符?的作用相等,最大限度的匹配是贪婪模式,最小限度的匹配时非贪婪模式,即惰性模式 |
s | 单行模式 |
面向对象编程思想
- 面向对象编程不是一种具体的技术,而是一种编程思想
- 更方便与代码的重复利用
- 一切皆对象
- 所有的数据和功能都由主体(对象)来操作
跟面向过程的区别是,得先new一个对象,再去调用函数
面向对象基础
1.面向对象关键字说明
- 类:class,是定义对象主体的最外层结构,用来包裹数据和函数,类是一类具有共性事物的代表。
- 对象:object,是某类事物的具体代表,也是实际数据和功能操作的具体单元,也被称之为实例(instance)
- 实例化:new,从一个抽象的概念得到一个符合抽象概念的具体实例的过程
- 类成员:member,指class结构中创建的函数,类成员里有三种
2.面向对象简单技术实现
类:根据对象分析后得到的一种通用结构(分类)
- class关键字声明
- 类名:自定义名字
- 大括号
php
class 类名{}
实例化:类产生对象的过程
php
new 类名; new 类名(); #使用更多
对象:根据某个类产生的某个具体存在的实体(instance),对象一般使用变量保存
php
$object = new 类名();
步骤:
- 根据需求产生类结构class
- 分析类拥有的数据
- 分析类的行为
示例
php
<?php class Ok{} class IOS{} $n = new Ok(); $m = new IOS(); var_dump($n); var_dump($m); ?> # 打印结果: # object(Ok)#1 (0) { } object(IOS)#2 (0) { } # object:对象 # 数字是编号,代表第几个对象 # (Ok):所属类名 # (0):成员变量(属性)个数 # {}:具体成员变量信息(键值对)
类的命名规范:
命名规范与函数类似,不能用数字开头
多单词用驼峰法:MyClass
3.类成员
目标:了解类成员的类型,作用,能够运用类成员去创建有效类
类成员:
成员访问:属性和方法都属于对象访问,类常量属于类访问
类访问:
php
#实例化 $object = new 类名(); # 属性访问 $object->属性名; # 此时不带属性本身的$符号(前面保存-对象的变量带$符号,object->属性名是整体) # 方法访问 $object->方法名([实参列表]);
步骤
- 声明类结构
- 明确类产生的对象是否需要有数据的存储:确定属性
- 明确类产生的对象是否需要函数实现功能:确定方法
- 明确类是否需要定义常量
- 对象实例化
- 类成员访问(属性和方法)
示例
php
<?php class Buyer{ public $name; public $money = 0; function display(){echo __CLASS__; } } const BIG_NAME = 'BUYER'; $b = new Buyer(); $b->money = 10; $b->eyes = 1; unset($b->name); var_dump($b); $b->display(); ?>
4.访问修饰限定符
修饰限定符:用在属性或者方法前的修饰关键字,用来控制属性或者方法的访问位置
- 访问修饰限定符分类
public:公有,类内类外都可以访问
protected:受保护,只允许在相关类内部访问
private:私有,只能在类内访问,为方法准备的
- 属性必须有访问修饰限定符,方法可以没有,默认public
步骤
- 声明类结构
- 确定类成员
- 确定类成员的访问位置限定,使用对应访问修饰限定符
- 只能在对应位置访问被修饰的成员
示例
1.公有成员访问
php
<?php class Saler{#属性public $count = 100;#方法public function getCount(){echo __METHOD__;}public function setCount(){echo __METHOD__;} } #实例化对象 $s = new Saler(); #访问(类外) echo $s->count; $s->getCount(); $s->setCount(); ?>
5.类内部对象
内部对象:$this,方法内部内置 的一个对象
2.类内部访问类成员,需要通过对象进行访问
php
<?php class Saler{public $count = 100;protected $discount = 0.8;private $money = 100;public function getAll(){global $s; # 需要获取到对象名字:因为方法本身就是函数,访问外部全局变量可以通过global引入实现echo $s->count,$s->discount,$s->money;} } $s = new Saler(); $s->getAll(); ?>
3,使用内置对象$this访问
php
<?php class Saler{public $count = 100;protected $discount = 0.8;private $money = 100;public function getAll(){#global $s; # 需要获取到对象名字:因为方法本身就是函数,访问外部全局变量可以通过global引入实现#cho $s->count,$s->discount,$s->money;var_dump($this);echo $this->count,$this->discount,$this->money;} } $s = new Saler(); $s->getAll(); ?>
$this代表的是对象,$this所在的环境为类内部的方法内部,所以$this对象是在类内部访问,因此可以访问所有的属性和方法,不受访问修饰限定符限制
6.面向对象的开发规范
- 尽可能的增加类对成员的控制 ,尽多的使用private,少用public
- 属性通常是私有化的,一般是通过设定方法来实现属性的访问和修改
7.构造方法
了解魔术方法的概念,明确触发模式,因为构造方法是魔术方法
构造方法:__construct(),是一种类结构特有的特殊方法,由系统规定好,有了构造方法的类在实例化对象之后,对象就会自动调用
- 构造方法是一种魔术方法:魔术方法会被自动触发,不需要手动调用
- 构造方法的目标市实现对象的初始化
对象实例化会自动调用
构造方法通常是为了实现对象所需资源的初始化
- 构造方法本质还是一种方法
受访问修饰限定符控制
对象可以选择调用(一般不会)
- 可以设定形参,对应的实参市在实例化对象的时候传入:new 类名(实参传递给形参)
highlighter-
示例
构造方法实现:
php
<?php class Saler{public fuction __construct(){echo __CLASS__;} } new Saler(); ?>
一旦构造方法拥有了形参,那么对象在调用该方法的时候就应该传入对应的实参,而构造方法又是自动调用的,所以需要在实例化对象的时候使用new类名(构造方法对应的实参列表)来实现
php
<?php class Saler{public $count;private $money;public function __construct($count,$money){echo __CLASS__;#初始化$this->count = $count;$this->money = $money;} } $s1 = new Saler(100,100); $s2 = new Saler(999,999); var_dump($s1,$s2); ?>
__construct()允许手动调用:
php
<?php class Saler{public $count;private $money;public function __construct($count,$money){echo __CLASS__;#初始化$this->count = $count;$this->money = $money;} } $s1 = new Saler(100,100); $s2 = new Saler(999,999); $s2->__construct(0,0); #__construct()允许手动调用 var_dump($s1,$s2); ?>
小结
8.析构方法
主动调用析构方法
highlighter- elixir
$s ->__destruct();
当主动调用析构方法,其实他就是只是一个普通的方法,不会销毁对象
析构方法是当对象销毁的时候调用
9.对象传值
小结:
对象传值方式是引用传值,不论对象如何被赋值给其他对象,始终只有一个内存地址。
10.范围解析操作符(类常量访问)
php
<?php #范围解析操作符 class Saler{const PI = 3.14; } $s1 = new Saler; #echo $s1; #无法访问 echo Saler::PI; echo $s1::PI; #范围解析操作符兼容对象,找到对象所属类,最终进行访问 ?>
不过我们一般不建议使用echo $s1::PI;。
- PHP
相关文章:

php基础语法_面向对象
PHP php代码标记 多种标记来区分php脚本 ASP标记:<% php代码 %> 短标记: 脚本标记: 标准标记(常用): 简写风格: ASP风格:<% php代码 %> 注意:简写风格和ASP风格…...

开源模型应用落地-LangChain高阶-LCEL-表达式语言(八)
一、前言 尽管现在的大语言模型已经非常强大,可以解决许多问题,但在处理复杂情况时,仍然需要进行多个步骤或整合不同的流程才能达到最终的目标。然而,现在可以利用langchain来使得模型的应用变得更加直接和简单。 LCEL是什么? LCEL是一种非常灵活和强大的语言,可以帮助您更…...

c# 协议数据计算陀螺仪的角度,带符号
subStrL str.Substring((76 - 8), 2); subStrH str.Substring((78 - 8), 2); Data[7] (short)(Convert.ToInt16(subStrH, 16) * 256 Convert.ToInt16(subStrL, 16));//角度X subStrL str.Substring((80 - 8), 2); subStrH str.Subst…...

ArcGIS arcpy代码工具——批量要素裁剪栅格影像
系列文章目录 ArcGIS arcpy代码工具——批量对MXD文件的页面布局设置修改 ArcGIS arcpy代码工具——数据驱动工具批量导出MXD文档并同步导出图片 ArcGIS arcpy代码工具——将要素属性表字段及要素截图插入word模板 ArcGIS arcpy代码工具——定制属性表字段输出表格 ArcGIS arc…...

discuz插件之优雅草超级列表互动增强v1.2版本更新
https://doc.youyacao.com/9/2142 v1.2更新 discuz插件之优雅草超级列表互动增强v1.2版本更新 [title]20220617 v1.2发布[/title] 增加了对php8的支持 增加了 对discuz3.5的支持...

三、用户中心项目笔记----后端多环境实战+原始部署
后端多环境主要是修改: 依赖的环境地址 数据库地址 缓存地址 消息队列地址 项目端口号 服务器配置 后端怎么去区分不同的环境? 我们后端的SpringBoot项目,通过application.yml添加不同后缀来区分配置文件 application.yml就是公共的配置&a…...

SpringMVC的使用
SpringMVC详情 RequestMapping("/hello") 负责用户的请求路径与后台服务器之间的映射关系 如果请求路径不匹配,则用户报错404 ResponseBody 作用: 将服务器的返回值转化为JSON. 如果服务器返回的是String类型,则按照自身返回. 新增: post请求类型 PostMapping("…...

Vue73-命名路由
一、路由的name属性 二、小结...

TrustOne发布一周年成绩单,15000家数智化转型客户的选择!
新一代终端安全TrustOne 发布一周年 交出亮眼成绩单 目前已经为 15000家数智化转型客户 带来高效、全方位的解决方案 TrustOne 新一代终端安全 2023年6月 新一代终端安全TrustOne正式发布,极简新主义的创新理念为数字变革而来; 2023年12月 IDC&…...

Nginx实战:故障处理_后端服务正常,nginx偶发502(Bad Gateway)
一、故障场景 用户访问服务偶发报错【502 Bad Gateway】,但是服务后端正常运行。架构如下: #mermaid-svg-4dDszusKEuPgIPlt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-4dDszusKEuPgIPlt .error-icon{fill:#5…...

mac系统清理软件哪个好用?CleanMyMac X清理工具轻松拿捏mac
还在为 mac 电脑里的垃圾文件、无用缓存和隐私痕迹而烦恼?想找一个软件直接全面清理优化电脑?维护苹果设备的清洁和高效运行是非常重要的,特别是在设备经过长时间使用后。有效的苹果清理软件不仅可以帮助您节省时间,还能延长设备的…...

拔掉独显提升性能,AMD新一代核显可以通杀主流游戏了
在今年台北电脑展上,AMD 除了带来了全新的 Ryzen 9000 系列。 与此同时也带来了全新的移动端处理器 Ryzen AI 9 HX 300 系列。 来源:AMD 也许是在 AI 领域稍晚一步,AMD 的全新移动端处理器命名直接把 AI 焊在脸上。 也就是咱们今天的主角 R…...

关于单片机那些事?
周期 时钟周期:也叫振荡周期,就是单片机外接晶振的倒数,如12Mhz,周期就是1/12us,最小的时间单位。频率越高,速度越快 指令周期:执行一条指令需要的时间,一般由若干个机器周期组成 …...

第5章 传输层
王道学习 考纲内容 (一)传输层提供的服务 传输层的功能:传输层寻址与端口;无连接服务和面向连接服务 (二)UDP UDP数据报;UDP检验 (三)TCP …...

典型传感器简介及驱动安装
双目视觉传感器 Indemind 传感器简介 INDEMIND M1 是专为开发者提供的一款硬件,采用“双目摄像头IMU”多传感器融合架构与 微秒级时间同步机制,为视觉 SLAM 研究提供精准稳定数据源,以满足 SLAM 研究、导航及 避障开发、视觉动作捕捉开发、…...

linux和Win——显卡驱动、Anaconda及pytorch安装(无需单独安装cuda、cudnn)
今天给新电脑的双系统(windows11和ubuntu22.04)安装了深度学习环境,在此记录一下。 一、Linux系统 (一)安装显卡驱动 (1)在安装Nvidia显卡驱动前,一定要点一下下面的“软件更新器…...

机器学习之多模态学习FLAVA(Foundational Language and Vision Alignment)
FLAVA(Foundational Language and Vision Alignment)是Meta AI提出的一种多模态学习模型,旨在处理自然语言和视觉任务。FLAVA通过联合学习文本和图像的特征表示,实现了在多模态任务上的优异性能。 FLAVA的基本概念 多模态学习: 多模态学习涉及同时处理多种类型的数据,例…...

Maven高级-证书校验
文章目录 SSL忽略配置IDEA里配置SSL忽略补充场景 SSL忽略配置 mvn -X clean install -Dmaven.resolver.transportwagon -Dmaven.wagon.http.ssl.insecuretrue -Dmaven.wagon.http.ssl.allowalltrue -Dmaven.wagon.http.ssl.ignore.validity.datestrueIDEA里配置SSL忽略 两个地…...

flutter是app跨平台最优解吗?
哈喽,我是老刘 最近在知乎上看到这样一个问题 我们先来解释一下问题中碰到的几个现象的可能原因,然后聊聊跨平台的最优解问题 问题解释 1、跟手、丝滑问题 这个问题其实很多人是有误解的,觉得原生的就丝滑跟手 其实不是这样的 我在做Flut…...

算法 Hw9
Hw 9 1 Scheduling with profits and deadlines12345 2 Parallel machine1234 1 Scheduling with profits and deadlines 1 决策问题表述: 给定一个利润值 P P P,是否存在一个任务调度方案使得完成所有任务的总利润至少为 P P P 2 在 NP 类中&…...

前端JS必用工具【js-tool-big-box】学习,字符串字母大小写转换的方法使用
这一小节,我们说一下 js-tool-big-box 工具库中,字符串字母大小写转换的使用。请注意:不是说单纯的把字符串转为大写,或者小写。关注 js-tool-big-box 的小伙伴可能知道,我们并没有把一些特别基础的,JS原生…...

Zookeeper:分布式系统中的协调者
Zookeeper:分布式系统中的协调者 前言:引言Zookeeper是什么? 基本概念Zookeeper 数据模型Znode 类型会话Watcher 应用场景分布式锁配置维护组服务名字服务 典型应用场景数据发布/订阅负载均衡命名服务分布式协调/通知集群管理Master选举 工作…...

如何使用代理IP进行数据抓取,PHP爬虫抓取京东商品数据
使用代理IP进行数据抓取通常是为了绕过IP封锁、提高抓取效率或保护你的真实IP地址。在PHP中,你可以使用cURL库来发送HTTP请求,并通过设置cURL选项来使用代理IP。 以下是一个基本的步骤说明,展示如何使用PHP和cURL库结合代理IP来抓取京东商品…...

一口气安装【Python】教程
浏览器搜索python,或者直接跳转网址。 https://www.python.orghttps://www.python.org/ 找到想下载的版本 根据自己电脑下载相应的版本 自定义安装 下一步 修改路径,然后点击安装 等待一会,喝个饮料 点击关闭 安装成功 安装结束...

华为HCIP Datacom H12-821 卷13
1.多选题 以下关于二层漫游和三层漫游的描述,以下说法正确的是? A、如果 STA 漫游时前后关联的 VLAN ID 相同则一定属于二层漫游 B、二层漫游是指客户端在同一子网内漫游 C、三层漫游是指客户端在不同子网间漫游 D、三层漫游前后 STA 关联的 AP 服务集上的 VL AN 必须相…...

基于SSM的酒店客房管理系统
基于SSM的酒店客房管理系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅获取项目下载方式🍅 链接点击直达:下载…...

【数据结构与算法】最短路径,Floyd算法,Dijkstra算法 详解
Floyd算法 for (int k 0; k < n; k) {for (int i 0; i < n; i) {for (int j 0; j < n; j) {if (d[i][k] ! INF && d[k][j] ! INF) {d[i][j] min(d[i][j], d[i][k] d[k][j]);}}} }Dijkstra算法(基于最小堆) void dijkstra(int st…...

PHP中如何进行网络爬虫和数据抓取?
随着互联网时代的到来,网络数据的爬取与抓取已成为许多人的日常工作。在支持网页开发的程序语言中,php以其可扩展性和易上手的特点,成为了网络爬虫和数据抓取的热门选项。本文将从以下几个方面介绍php中如何进行网络爬虫和数据抓取。 一、HT…...

【Hadoop集群搭建】实验3:JDK安装及配置、Hadoop本地模式部署及测试
1. 安装 SSH 工具 SSH Secure Shell Client 传输软件 FinalShell(推荐使用) 1.1使用SSH工具将JDK安装包上传至虚拟主机hadoop01, hadoop02, hadoop03,sogou500w 数据上传至 hadoop01。 a. 在虚拟主机/usr 目录下创建文件夹 java,JDK 上传至此目录&…...

分布式锁在Spring Boot应用中的优雅实现
在现代微服务架构中,分布式锁是一种常用的技术手段,用于确保在分布式系统中,同一时间只有一个服务实例能够执行某个特定的操作。这对于防止并发问题、保证数据一致性至关重要。在Spring Boot应用中,我们可以通过自定义注解和切面的…...