我想检查第一个和最后一个字符是否相同。我想这样的代码:检查字符串的第一个和最后一个字符在PHP中是否相同
function myFunction(string $s): string {
return $s[0]!=$s[-1]?"No":"Yes";
}
它工作正常使用在线翻译(repl.it),这是使用PHP 7.0.8,但在我的机器用PHP 7我得到这个错误:
Uninitialized string offset: -1
我想检查第一个和最后一个字符是否相同。我想这样的代码:检查字符串的第一个和最后一个字符在PHP中是否相同
function myFunction(string $s): string {
return $s[0]!=$s[-1]?"No":"Yes";
}
它工作正常使用在线翻译(repl.it),这是使用PHP 7.0.8,但在我的机器用PHP 7我得到这个错误:
Uninitialized string offset: -1
在PHP 旧版本,你可以像下面: -
<?php
$string = "abcda";
function myFunction($string){
$string_array = str_split($string);
return ($string_array[0]!=end($string_array))? "No":"Yes";
}
echo myFunction($string);
输出: - https://eval.in/839485ORhttps://eval.in/839480
从PHP 7.1版开始可以使用负向指标如下: -
<?php
$string = "abcda";
function myFunction(string $s): string {
return $s[0] != substr($s, -1) ? "No":"Yes";
}
echo myFunction($string);
输出: - https://eval.in/839477
可以使用负指标从PHP 7.1:https://wiki.php.net/rfc/negative-string-offsets
只需使用另一种方法:
function myFunction(string $s): string {
return $s[0] != substr($s, -1) ? "No":"Yes";
}
自php7.1创建一个解决方法后,支持负索引。 –
谢谢,这是我猜到的。它支持7.0.8(正如我所说),所以它应该在此之前,而不是7.1 –
一个正则表达式像'^(。)。* \ 1 $'可以做到这一点,或substr($ string,0, 1)== substr($ string,-1,1);' – chris85