2017-07-30 39 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以上工作正常。 –

相关问题