<?php
$string = "hey";
foreach(range('a','z') as $i)
{
if($string == '$i')
{
echo $i;
}
}
?>
爲什麼這不起作用?請告訴我。Php字母循環
<?php
$string = "hey";
foreach(range('a','z') as $i)
{
if($string == '$i')
{
echo $i;
}
}
?>
爲什麼這不起作用?請告訴我。Php字母循環
它,但你看不到任何東西,因爲:
'hey' != '$i'
另外,如果您的$我是不是在單引號(使它的價值「$我」直譯)
'hey' != 'a';
'hey' != 'b';
'hey' != 'c';
...
'hey' != 'z';
代替測試==看看strspn()函數
你的代碼有兩個問題。
首先,單引號字符串('
)的行爲與雙引號字符串("
)不同。當使用單引號字符串時,轉義序列(除\'
和\\
之外)不會被解釋,並且不會消耗變量。這個問題可以這樣(去掉引號,或將其更改爲雙引號):
$string = 'hey';
foreach(range('a','z') as $i) {
if($string == $i) {
echo $i;
}
}
其次,你的條件將永遠不會計算到TRUE
爲'hey'
永遠不會等於字母表中的單個字母。爲了評估這封信是在單詞,你可以使用strpos()
:
$string = 'hey';
foreach(range('a','z') as $i) {
if(strpos($string, $i) !== FALSE) {
echo $i;
}
}
的!== FALSE
在這種情況下0
also evaluates to FALSE
重要。這意味着如果您將刪除!== FALSE
,則不會輸出您的第一個字符。
PHP Documentation:
strpos()
PHP Documentation: Converting to boolean
PHP Documentation: Comparison Operators
比我的回答更好 – meouw 2010-02-13 21:48:32
什麼是你真正想幹什麼? – meouw 2010-02-13 21:46:20
是的,有什麼不工作?你將字母表中的每個字母與「嘿」進行比較,所以沒有任何反應是正常的。 – Daan 2010-02-13 21:51:39