<?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';
(이 값의 제작은 '$ i'를 문자 그대로) 테스트 대신 == 모양이 strspn() 일
코드에 두 가지 문제점이 있습니다.
먼저 작은 따옴표 문자열 ('
)은 큰 따옴표 문자열 ("
)과 다르게 동작합니다. 작은 따옴표 문자열을 사용하는 경우 이스케이프 시퀀스 (\'
및 \\
제외)는 해석되지 않고 변수가 사용되지 않습니다. 이 같이 고정 할 수 있습니다 (따옴표를 제거하거나 큰 따옴표로 변경) 등 :
$string = 'hey';
foreach(range('a','z') as $i) {
if($string == $i) {
echo $i;
}
}
이 두 번째로, 당신의 상태가 'hey'
로 TRUE
로 평가하지 않습니다 알파벳 하나의 문자와 결코 같지 않습니다. 문자 단어에 있는지 평가하기 위해, 당신은 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
당신이 실제로 어떻게하려고? – meouw
예, 작동하지 않습니다. 너는 알파벳의 각 문자를 "헤이"와 비교하기 때문에 아무 일도 일어나지 않는다. – Daan