说明
substr(string $string, int $offset, ?int $length = null): string
返回字符串 string 由 offset 和 length 参数指定的子字符串。
参数
string
输入字符串。
offset
如果 offset 是非负数,返回的字符串将从 string 的 offset 位置开始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。
如果 offset 是负数,返回的字符串将从 string 结尾处向前数第 offset 个字符开始。
如果 string 的长度小于 offset,将返回空字符串。
示例 #1 使用负数 offset
<?php $rest = substr("abcdef", -1); // 返回 "f" $rest = substr("abcdef", -2); // 返回 "ef" $rest = substr("abcdef", -3, 1); // 返回 "d" ?>
length
如果提供了正数的 length,返回的字符串将从 offset 处开始最多包括 length 个字符(取决于 string 的长度)。
如果提供了负数的 length,那么 string 末尾处的 length 个字符将会被省略(若 offset 是负数则从字符串尾部算起)。如果 offset 不在这段文本中,那么将返回空字符串。
如果提供了值为 0 的 length,那么将返回一个空字符串。
如果忽略 length 或为 null,返回的子字符串将从 offset 位置开始直到字符串结尾。
示例 #2 使用负数 length
<?php $rest = substr("abcdef", 0, -1); // 返回 "abcde" $rest = substr("abcdef", 2, -1); // 返回 "cde" $rest = substr("abcdef", 4, -4); // 返回 ""; 在 PHP 8.0.0 之前,返回 false $rest = substr("abcdef", -3, -1); // 返回 "de" ?>
返回值
返回提取的 string 部分或者空字符串。
更新日志
版本说明8.0.0现在 length 允许为 null。当 length 显式设置为 null 时,函数返回在字符串末尾结束的子字符串,而之前将返回空字符串。8.0.0函数将返回空字符串, 在此之前返回 false。
示例
示例 #3 substr() 基本用法
<?php echo substr('abcdef', 1); // bcdef echo substr("abcdef", 1, null); // bcdef; 在 PHP 8.0.0 之前,返回空字符串 echo substr('abcdef', 1, 3); // bcd echo substr('abcdef', 0, 4); // abcd echo substr('abcdef', 0, 8); // abcdef echo substr('abcdef', -1, 1); // f // 访问字符串中的单个字符 // 也可以使用中括号 $string = 'abcdef'; echo $string[0]; // a echo $string[3]; // d echo $string[strlen($string)-1]; // f ?>
示例 #4 substr() casting behaviour
<?php class apple { public function __toString() { return "green"; } } echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL; echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL; echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL; echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL; echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL; echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL; echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL; ?>
以上示例会输出:
1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) '' 6) '' 7) '1200'
免责声明:本站收集收录广告联盟资料仅为提供更多展示信息,本站无能力及责任对任何联盟进行真假以及是否骗子进行评估,所以交由用户进行点评。评论内容只代表网友观点,与广告联盟评测网立场无关!请网友注意辨别评论内容。因广告联盟行业鱼龙混杂,请各位站长朋友擦亮双眼,谨防受骗。
广告联系:QQ:1564952 注明:广告联盟评测网广告
Powered by:thinkphp8 蜀ICP备18021953号-4