2017-07-30 67 views
2

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

+3

自php7.1創建一個解決方法後,支持負索引。 –

+1

謝謝,這是我猜到的。它支持7.0.8(正如我所說),所以它應該在此之前,而不是7.1 –

+1

一個正則表達式像'^(。)。* \ 1 $'可以做到這一點,或substr($ string,0, 1)== substr($ string,-1,1);' – chris85

回答

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

+0

我認爲'substr($ s,-1)'在7.1之前的版本中是可用的。 – chris85

+2

爲什麼不結束()? 'return($ string_array [0]!= end($ string_array))? 「否」:「是」;' – Andreas

+1

感謝,結束函數和$ s [0]!= $ s [-1]在php 7.1以上工作正常。 –

相關問題