Php字母循环

Php字母循环,php,Php,为什么这不起作用?请告诉我。是的,但您没有看到任何东西,因为: <?php $string = 'hey'; foreach (range('a', 'z') as $i) { if ($string == '$i') { echo $i; } } ?> 如果你的$i不在单引号中(使它的值为“$i”字面意思) 代替测试==查看函数代码中有两个问题 首先,单引号字符串(“)的行为不同于双引号字符串(”)。当使用单引号字符串时,转义序列(除了\'和\\

为什么这不起作用?请告诉我。

是的,但您没有看到任何东西,因为:

<?php
$string = 'hey';

foreach (range('a', 'z') as $i) {
    if ($string == '$i') {
        echo $i;
    }
}
?>
如果你的$i不在单引号中(使它的值为“$i”字面意思)


代替测试==查看函数

代码中有两个问题

首先,单引号字符串(
)的行为不同于双引号字符串(
)。当使用单引号字符串时,转义序列(除了
\'
\\\
)不会被解释,变量也不会被扩展。这可以被修复(删除引号或将其更改为双引号):


其次,您的条件永远不会计算为
TRUE
,因为
'hey'
永远不会等于字母表中的一个字母。要计算字母是否在单词中,您可以使用:

在这种情况下,
!==FALSE
非常重要。这意味着,如果要删除
!==FALSE
,则不会输出第一个字符




你到底想做什么?是的,什么不起作用?你把字母表的每个字母都和“嘿”比较,所以什么都没发生是正常的。比我的答案好得多
'hey' != '$i'
'hey' != 'a';
'hey' != 'b';
'hey' != 'c';
...
'hey' != 'z';
$string = 'hey';

foreach(range('a','z') as $i) {
  if($string == $i) {
    echo $i;
  }
}
$string = 'hey';

foreach(range('a','z') as $i) {
  if(strpos($string, $i) !== FALSE) {
    echo $i;
  }
}