2017-09-15 66 views
0

我有一块被莫名其妙我的PHP代码时,我测试:strpos找不到撇号?

$found = $found + (int)(strpos($entry,"'")); // apostrophe 

,当我用这个字符串变量$项测试:

'[email protected] 

功能应该会发现撇号并增加$found

除非我错了,这个撇号的位置是位置零?

想到这一点,让我知道这是为什么发生这种情况。因为这会解释我的问题,我将以不同的方式进行编码。

并且谢谢!

+1

是的,索引为零。 –

+1

是的,'false'表示没有找到,'0'表示找到第一个字符。使用'==='来说明不同之处。 – jh1711

+3

相关文档部分:http://php.net/manual/en/function.strpos.php#refsect1-function.strpos-returnvalues –

回答

0

是的,如果它是在乞讨那么它的指数是0,所以:

$found = $found + 0 

你可以尝试这样的:

$found = strpos($entry,"'") === false ?: $found + 1; 

或者:

if (strpos($entry,"'") !== false) { 
    $found += 1; 
} 
+0

如果目标是由1递增,'$发现+ = strpos($项,“'”)==虚假;!'是非常简单的,但我却是不知道这是什么,他们打算或不打算。 –

+0

我虽然如此。 BTW。这是测试熟悉php类型转换的一个很好的片段。 – guessimtoolate