我想檢查第一個和最後一個字符是否相同。我想這樣的代碼:檢查字符串的第一個和最後一個字符在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