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;
}
}