PHP基础语法(四)

一、字符串类型

1、字符串定义语法

1)单引号字符串:在单引号内部,所有的字符都会按照字面意义解释,不会进行变量替换或转义处理,除了 \' 表示单引号本身。

$str1 = 'Hello, World!';

2)双引号字符串:双引号内部可以包含变量,并会进行变量替换。(保证变量的独立性,可以给变量加一组大括号{})

$name = "Alice";
$str2 = "Hello, $name!";

1)、2)比较适合定义较短的或无结构要求的字符串

3)、转义字符

在字符串中可以使用反斜杠 \ 进行转义,来表示一些特殊字符:

$str3 = "This is a \"quoted\" string.";

4)、Heredoc 语法

eredoc 语法允许你定义多行字符串,类似于双引号字符串的行为,但是更适合在多行文本中使用。

上边界符后面不能有任何东西(包括注释)

下边界符必须顶格

下边界符后面只能跟分号,不能跟任何内容

$str4 = <<<EOT
This is a Heredoc string.
It can span multiple lines.
Variables like $name will be evaluated.
EOT;

<<<EOTEOT; 之间的文本会被视为字符串,EOT 是任意的结束标识符,可以使用其他有效的标识符代替。

5)、 Nowdoc 语法

Nowdoc 语法类似于 Heredoc,但它会将内容作为纯文本处理,不进行变量替换

它使用单引号包裹标识符。

$str5 = <<<'EOT'
This is a Nowdoc string.
It behaves just like single quoted strings.
Variables like $name are not evaluated.
EOT;

特殊情况处理

跨行字符串: 如果需要在单引号或双引号中跨行定义字符串,可以使用 \ 连接符来实现。

$str6 = "This is a very long string \that spans multiple lines.";

2、字符串转义

a:\': 单引号。用于在单引号字符串中表示单引号字符。

$str = 'It\'s raining today.';
echo $str; // 输出:It's raining today.

b、双引号。用于在双引号字符串中表示双引号字符。

$str = "He said, \"Hello!\"";
echo $str; // 输出:He said, "Hello!"

c、\\: 反斜杠。用于表示反斜杠字符本身。

$str = "C:\\Windows\\System32\\";
echo $str; // 输出:C:\Windows\System32\

d、\n: 换行符。用于在字符串中表示换行。

$str = "First line\nSecond line";
echo $str;
/*
输出:
First line
Second line
*/

e、\t: 制表符。用于在字符串中表示水平制表符(Tab)。

$str = "Name:\tJohn\tDoe";
echo $str; // 输出:Name:    John    Doe

二、字符串相关函数

基本字符串操作

strlen()

  • 返回字符串的长度(字节数)。
$str = "Hello, world!";
echo strlen($str); // 输出:13

substr()

  • 返回字符串的一部分。
$str = "Hello, world!";
echo substr($str, 0, 5); // 输出:Hello

str_replace()

  • 替换字符串中的部分内容。
$str = "Hello, world!";
echo str_replace("world", "PHP", $str); // 输出:Hello, PHP!

strtolower() 和 strtoupper()

  • 将字符串转换为小写或大写。
$str = "Hello, world!";
echo strtolower($str); // 输出:hello, world!
echo strtoupper($str); // 输出:HELLO, WORLD!

 strpos()

  • 查找字符串在另一字符串中第一次出现的位置(区分大小写)。如果没有找到字符串则返回 FALSE。
  • strrpos() - 查找字符串在另一字符串中最后一次出现的位置(区分大小写)

多字节字符串操作(使用 mbstring 扩展)

在php.ini文件中打开mbstring 扩展,之后重启重启Apache服务来应用这些更改

mb_strlen()

  • 返回字符串的长度(字符数)。
$str = "こんにちは"; // Japanese characters
echo mb_strlen($str); // 输出:5

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

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

相关文章

数据库——单表查询

一、建立数据库mydb8_worker mysql> use mydb8_worker; 二、建立表 1.创建表 mysql> create table t_worker(department_id int(11) not null comment 部门号,-> worder_id int(11) primary key not null comment 职工号,-> worker_date date not null comment…

取消selenium多余日志输出DevTools listening on ws://127.0.0.1:52704/devtools/browser/

用selenium做爬虫的时候&#xff0c;会有多余日志输出 DevTools listening on ws://127.0.0.1:52704/devtools/browser/网上搜&#xff0c;都是通过添加配置chrome_options.add_experimental_option(‘excludeSwitches’, [‘enable-logging’])实现的 但是我需要连接9222端口…

qt SQLite学习记录

1. 查看qt中数据库的驱动的类型的支持 QStringList drivers QSqlDatabase::drivers();//获取qt中所支持的数据库驱动类型foreach(QString driver,drivers){qDebug()<<driver;}2. Qt SQL 模块包含的主要类的功能介绍 Qt SQL 模块包含了一些主要的类&#xff0c;用于在 …

传输层协议——TCP

TCP协议 TCP全称为“传输控制协议”&#xff0c;要对数据的传输进行一个详细的控制。 特点 面向连接的可靠性字节流 TCP的协议段格式 源/目的端口&#xff1a;表示数据从哪个进程来&#xff0c;到哪个进程4位首部长度&#xff1a;表示该TCP头部有多少字节&#xff08;注意它…

Prometheus监控ZooKeeper

1. 简介 ZooKeeper是一个分布式协调服务,在分布式系统中扮演着重要角色。为了确保ZooKeeper集群的健康运行,有效的监控至关重要。本文将详细介绍如何使用Prometheus监控ZooKeeper,包括安装配置、关键指标、告警设置以及最佳实践。 2. 安装和配置 2.1 安装ZooKeeper Exporter…

【手写数据库内核组件】0601数据库执行引擎常用的火山模型,与其它模型比较,实现原理以及解释器和迭代器的实现

0601 火山模型 ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 0601 火山模型一、概述 二、火山模型介绍 三、实现机制 3.1 节点的定义 3.2 解释器实…

Windows 环境 Java 调用 batch 脚本实现 PG 数据库恢复功能

直接上代码 echo on rem set PG_ROOT_DIRD:\PostgreSQL\ rem 实例: recover_all_db.bat D:\PostgreSQL E:\ProjectCode\ums_vm_server-ums set PG_ROOT_DIR%1 set BASE_DIR%PG_ROOT_DIR%\pgsql REM SET PGHOST127.0.0.1 set PSQL"%BASE_DIR%\bin\psql.exe" set PG_D…

Protel DXP 面试题详解及参考答案(4万字长文)

解释Protel DXP的基本工作流程。 Protel DXP(现已更名为Altium Designer)是一款用于电子设计自动化(EDA)的软件,主要应用于印刷电路板(PCB)设计。其基本工作流程通常包括以下几个阶段: 项目创建与配置: 开始一个新的设计项目时,首先需要创建一个项目文件,在这个文件…

大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

SQL注入万字详解,基于sqli-labs(手注+sqlmap)

目录 一、什么是SQL 1.什么是SQL 2.SQL的作用 3.MySQL基础知识 4.SQL增、删、改语句 *5.SQL查询语句 二、什么是SQL注入 1.SQL注入原理&#xff1a; 2.SQL注入&#xff1a; 3.SQL注入危害&#xff1a; 4.SQL注入技术分类&#xff1a; 5.防御方法&#xff1a;使用参…

javaEE-01-tomcat

文章目录 javaWebTomcat启动 Tomcat 服务器测试服务器是否成功停止tomcat服务器修改服务器的端口号 Idea整合tomcat服务器 javaWeb 所有通过 Java 语言编写可以通过浏览器访问的程序的总称,是基于请求和响应来开发的。 请求: 客户端给服务器发送数据(Request)响应: 服务器给客…

萝卜快跑:自动驾驶的先锋与挑战

萝卜快跑&#xff1a;自动驾驶的先锋与挑战 近段时间&#xff0c;由萝卜快跑引发的自动驾驶事件如火如荼&#xff0c;成为科技领域的热门话题。萝卜快跑作为自动驾驶领域的重要参与者&#xff0c;其最新事件引发了广泛的关注和讨论。 萝卜快跑是百度推出的自动驾驶出行服务平台…

C语言 之 理解指针(5)

转移表 本章主要讲的是函数指针数组的用途&#xff1a;转移表 让我们来看看下面的代码&#xff1a; 计算器的一般实现&#xff1a; #include <stdio.h> int add(int a, int b) {return a b; //加法函数 } int sub(int a, int b) {return a - b; //减法函数 } int mul…

Pytorch使用教学2-Tensor的维度

在PyTorch使用的过程中&#xff0c;维度转换一定少不了。而PyTorch中有多种维度形变的方法&#xff0c;我们该在什么场景下使用什么方法呢&#xff1f; 本小节我们使用的张量如下&#xff1a; # 一维向量 t1 torch.tensor((1, 2)) # 二维向量 t2 torch.tensor([[1, 2, 3], …

common-intellisense:助力TinyVue 组件书写体验更丝滑

本文由体验技术团队Kagol原创~ 前两天&#xff0c;common-intellisense 开源项目的作者 Simon-He95 在 VueConf 2024 群里发了一个重磅消息&#xff1a; common-intellisense 支持 TinyVue 组件库啦&#xff01; common-intellisense 插件能够提供超级强大的智能提示功能&…

Ubuntu升级软件或系统

Ubuntu升级软件或系统 升级Ubuntu系统通常是一个相对简单的过程&#xff0c;但在进行操作之前&#xff0c;请务必备份重要数据以防万一。下面是升级Ubuntu系统的一般步骤&#xff1a; 使用软件更新工具升级系统 打开终端&#xff1a; 按下 Ctrl Alt T 组合键打开终端。 更…

Java设计模式—单例模式(Singleton Pattern)

目录 一、定义 二、应用场景 三、具体实现 示例一 示例二 四、懒汉与饿汉 饿汉模式 懒汉模式 五、总结 六、说明 一、定义 二、应用场景 ‌单例模式的应用场景主要包括以下几个方面&#xff1a; ‌日志系统&#xff1a;在应用程序中&#xff0c;通常只需要一个日…

【JS逆向课件:第十三课:异步爬虫】

回顾 并行和并发 表示程序/计算机具有处理多个任务的能力 并行表示可以同时处理多个任务&#xff08;几个多核CPU&#xff09;并发无法同时处理多个任务&#xff0c;但是可以基于时间片轮转法在多任务间快速切换的执行任务。 同步和异步 在基于并行或者并发处理任务的时候&am…

链式法则和自动求导

向量链式法则 说明&#xff1a; 1.第一个式子&#xff0c; y是标量&#xff0c;u是标量&#xff0c;x是n维向量 2.第二个式子&#xff0c;y是标量&#xff0c;u是k维向量&#xff0c;x是n维向量&#xff0c;所以y对u求导是k维的行向量&#xff0c;u对x求导是k行n列的矩阵&…

学术研讨 | 区块链治理与应用创新研讨会顺利召开

学术研讨 近日&#xff0c;国家区块链技术创新中心组织&#xff0c;长安链开源社区支持的“区块链治理与应用创新研讨会”顺利召开&#xff0c;会议围绕区块链治理全球发展现状、研究基础、发展趋势以及区块链行业应用创新展开研讨。北京大学陈钟教授做了“区块链治理与应用创…