php 8.0 引入了 str_starts_with() 和 str_ends_with() 函数,用于直接判断字符串是否以特定前缀或后缀开头或结尾。这两个函数返回布尔值,比使用正则表达式或手动截取字符串更高效且语义更清晰。调用时只需传入目标字符串和待匹配的前缀/后缀字符串即可。

str_starts_with() 如何匹配前缀
str_starts_with() 函数接受两个参数:第一个是主字符串,第二个是要检查的前缀。如果主字符串的起始部分与提供的参数完全一致,则返回 true,否则返回 false。该函数区分大小写,且对空字符串的处理符合预期逻辑。

<?php
$subject = "Hello World";
$prefix = "Hello";
if (str_starts_with($subject, $prefix)) {
echo "String starts with prefix.";
} else {
echo "String does not start with prefix.";
}
// Output: String starts with prefix.
?>
str_ends_with() 如何匹配后缀
str_ends_with() 函数的用法与前者类似,但用于检查字符串的末尾。它同样接受主字符串和待匹配的后缀作为参数。当主字符串的结尾部分与提供的参数完全一致时,返回 true。这在验证文件扩展名或 URL 路径时非常有用。
立即学习“PHP免费学习笔记(深入)”;

<?php
$filename = "document.pdf";
$suffix = ".pdf";
if (str_ends_with($filename, $suffix)) {
echo "File is a PDF.";
} else {
echo "File is not a PDF.";
}
// Output: File is a PDF.
?>
处理空字符串时的具体行为
在使用这些函数时,一个常见的边界情况是输入包含空字符串。根据 PHP 的实现,如果主字符串为空,str_starts_with() 只有在提供的参数也为空时返回 true,否则返回 false。对于 str_ends_with(),如果主字符串为空,只要提供的后缀不为空,结果即为 false;若后缀也为空,则返回 true。这种设计确保了在数据清洗或验证场景中不会出现意外的类型转换错误。



















