当前位置: 首页 > news >正文

PHP语法基础篇(二):输出函数与字符串操作

"继上篇《PHP语法基础篇:变量与数据类型入》之后,本文将继续记录基础语法学习过程。本次重点探索两个核心内容:
  1. 输出方式实践:对比 echoprint 的使用差异
  2. 字符串操作初探:通过代码实验理解引号解析规则和基础处理方法作为学习笔记,文中所有结论均基于当前测试结果整理,欢迎共同探讨。"

一、输出方式

在PHP中,有两种基本的方式来获取输出:echo 和 printecho 和 print 在使用上是相似的。它们都用于将数据输出到屏幕。

它们之间的区别很小:echo 没有返回值,而 print 的返回值为 1,因此它可以在表达式中使用。echo 可以接受多个参数,而 print 只可接受一个参数。echo 比 print 略快一些。

echo 语句在使用中可以带括号使用,也可以不带括号使用:echo 或 echo()。同样的,print 语句可以带括号使用,也可以不带括号使用:print 或 print()

接下来我们通过一些示例来看一下 echo print 函数的使用。

// echo 示例
echo "Hello"; // 输出 Hello
// 等同于:
echo("Hello"); // 输出 Hello
echo "<h1>你好,世界!</h1>"; // 文本可以包含 HTML 标签
// echo 函数可以接受多个参数,多个参数之间以英文逗号分隔
echo "参数1 ", "参数2 ", "参数3"; // 输出 "参数1 参数2 参数3"
// echo 显示变量
$txt = "Bill";
echo "Hello $txt"; // 输出 "Hello Bill"
// 字符串由引号包围,但在 PHP 中,单引号和双引号之间存在差异。
// 使用双引号时,可以将变量直接插入到字符串中,如上所示。
// 使用单引号时,必须使用 . 运算符来插入变量,如下示:
echo 'Hello ' . $txt; // 输出 "Hello Bill"// print 示例,print 的使用方式与 echo 相同,不同的地方是 print 不能接受多参数
// 使用 print 改写 echo 的示例,除接受多参数
print "Hello"; // 输出 Hello
// 等同于:
print("Hello"); // 输出 Hello
print "<h1>你好,世界!</h1>"; // 文本可以包含 HTML 标签
// echo 显示变量
$txt = "Bill";
print "Hello $txt"; // 输出 "Hello Bill"
print 'Hello ' . $txt; // 输出 "Hello Bill"

二、字符串

字符串是编程中最常使用的一种数据类型,关于字符串的各种操作是我们需要掌握的,接下来我们一起来看一下 PHP 的字符串和常用的字符串函数。

在 PHP 中,字符串由双引号或单引号包围。这一点并没有什么不好理解的地方,毕竟像JavaScript中的字符串也是这样的,不同的是,PHP 字符串单引号和双引号之间有很大差别,效果并不一样。接下来我们一起来看一下单引号和双引号之间的区别。

双引号和单引号

双引号字符串会对特殊字符执行操作,而单引号不会。下面我们通过示例来说明这一点。

// 当字符串中存在变量时,它会返回变量的值
$txt = "Bill";
echo "Hello $txt"; // 输出 "Hello Bill",$txt 变量的值会输出到字符串中
// 单引号字符串不会执行此类操作,它会按原样返回字符串
echo 'Hello $txt'; // 输出 "Hello $txt",按照单引号中的字符串内容原样输出

注意PHP 中双引号和单引号之间存在很大的差异。双引号字符串会对特殊字符执行操作,而单引号不会。

字符串常用函数 

1、字符串长度 

strlen(字符串):返回字符串的长度。

echo strlen("Hello"); // 输出 5

2、单词计数

str_word_count(字符串):计算字符串中的单词数。

echo str_word_count("Hello world!"); // 输出 2

3、在字符串中搜索文本

strpos(字符串, 特定文本) :在字符串中搜索特定文本。如果找到匹配项,该函数将返回第一个匹配项的字符位置。如果没有找到匹配项,它将返回 FALSE。

echo strpos("Hello world!", "world"); // 输出 6

注意字符串中的第一个字符位置是 0(不是 1)。

 4、大写

strtoupper(字符串) :将字符串返回为大写。

$txt = "abcde";
echo strtoupper($txt); // 输出 "ABCDE"

5、小写

strtolower(字符串) :将字符串返回为小写。 

$txt = "ABCDE";
echo strtolower($txt); // 输出 "abcde"

 6、替换字符串

str_replace(需要替换的字符, 被替换为的新字符, 字符串) :用于在字符串中将一些字符替换为其他字符。

// 将文本 "World" 替换为 "Bill":
$txt = "Hello World!";
echo str_replace("World", "Bill", $txt); // 输出 "Hello Bill!"

7、反转字符串

strrev(字符串) :用于反转字符串。

$txt = "12345";
echo strrev($txt); // 输出 "54321"

 8、删除空白

trim(string, [charlist]) :移除字符串两侧的空白字符或其他预定义字符。 

参数
描述
string
必需。需要移除两侧空白的字符串。
charlist
可选。规定从字符串中删除哪些字符。如果被省略,则移除以下所有字符:
  • "\0" - NULL
  • "\t" - 制表符
  • "\n" - 换行
  • "\x0B" - 垂直制表符
  • "\r" - 回车
  • " " - 空格
$txt = "   123456   ";
echo trim($txt); // 输出 "123456",移除两端的空白字符
$txt = "123456";
echo trim($txt, "156"); // 输出 "234",移除两端指定的字符"156"
相关函数
  • ltrim():移除字符串左侧的空白字符或其他预定义字符。
  • rtrim():移除字符串右侧的空白字符或其他预定义字符。
上述两个函数的使用方法与 trim() 函数相同。

9、将字符串转换为数组

explode(分隔符, 字符串) :使用指定的分隔符将字符串拆分为数组。 

$txt = "a,b,c,d,e";
$arr = explode(",", $txt); // 使用 "," 将字符串拆分为数组

 10、字符串连接

"." 运算符用于字符串连接。 

echo "Hello " . "World" . "!"; // 输出 "Hello World!"

11、切片

substr(字符串, 起始索引[, 字符数]) :从字符串指定起始索引返回指定字符数的字符串。第一个字符的索引为 0。 

$txt = "123456";
echo substr($txt, 2, 3); // 输出 "345"
11.1、切片到末尾

省略字符数参数,范围将一直延伸到字符串末尾。

$txt = "123456";
echo substr($txt, 2); // 输出 "3456"
11.2、从末尾切片

使用负索引从字符串末尾开始切片。最后一个字符的索引为 -1。

$txt = "123456";
echo substr($txt, -3, 2); // 输出 "45"
11.3、负长度

使用负长度来指定从字符串末尾开始省略多少个字符。

$txt = "123456789";
// 从索引 3 开始获取字符,并一直继续,直到到达倒数第 2 个字符(索引 -2)
echo substr($txt, 3, -2); // 输出 "4567"

相关文章:

  • uniapp-vue3-js-vite-pinia-eslint 快速开发模板
  • AKS升级路线最佳实践方案
  • 使用Amazon Elastic Beanstalk部署高考倒计时Flask应用:完整实践指南
  • 基于Python的热门微博数据可视化分析-Flask+Vue
  • 基于云计算的振动弦分析:谐波可视化与波动方程参数理解-AI云计算数值分析和代码验证
  • MyBatis原理
  • 【SAS求解多元回归方程】REG多元回归分析-多元二次回归
  • 【SAS逐步回归法】REG过程逐步回归求解最优方程
  • 42 C 语言随机数生成详解:rand/srand 使用技巧、随机数范围控制、真实场景应用
  • 达梦数据库(DM)用户名大小写处理规则
  • java 高并发设计
  • Node.js特训专栏-基础篇:2. JavaScript核心知识在Node.js中的应用
  • Python6.12打卡(day44)
  • JavaWeb(Servlet预习)
  • Python使用总结之Linux部署python3环境
  • 基于springboot视频及游戏管理系统+源码+文档+应用视频
  • linux安装Redis6.0.8
  • 进程间通信详解(三):Linux进程信号深度解析
  • Unity Assembly的灵活用法总结
  • 深度学习入门(4):resnet50
  • 购物网站开发的背景/搜索引擎优化不包括
  • 有一个做ppt的网站/域名交易
  • 云服务器网站崩溃的原因/竹子建站官网
  • 浙江建设工程造价信息网站/网络营销软件站
  • WordPress腾讯云短信插件/seo站内优化最主要的是什么
  • 梧州最权威的综合性新闻门户网站/软件推广怎么赚钱