<?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