내가이루프
if($string)
{
///something
}
하지만 같은 경우 루프 내에서이 평가하려는이
$string = "0>0.1";
같은 변수가있을 경우 내부 에코 내가이 일을하고 경우 오류가 메신저. 이동 방법
내가이루프
if($string)
{
///something
}
하지만 같은 경우 루프 내에서이 평가하려는이
$string = "0>0.1";
같은 변수가있을 경우 내부 에코 내가이 일을하고 경우 오류가 메신저. 이동 방법
평가 또는 문자열의 작동 방식을 이해하지 못합니다. 문자열에 무엇이든 넣으면 평가되지 않지만 그 순간의 값만 포함하면됩니다.
$string = "0>0.1"; // contains "0>0.1"
$bool = 0>0.1; // contains TRUE
IF 문에는 문자열이 아닌 부울이 필요합니다.
eval
을 사용하여 문자열의 내용을 평가할 수 있습니다. eval
은 악의이며 모든 PHP 코드가 포함되어있을 수 있습니다.
+1 예를 들어, $ string이 POST 또는 GET의 경우, 악의적 인 사용자가 POST에 PHP 코드를 입력 할 수 있습니다 또는'eval'이 실행 된 순간에 실행될 GET 변수를 포함 할 수 있습니다. –
당신은 당신의 복제본에 대해 끔찍한 충고를하고 있습니다. 여전히 "1>2b"
같이 유효하지 않은 문자열에 대해 true를 반환
$str = "0>0.1";
if (preg_replace('/^(\d+\.?\d*)([><])(\d+\.?\d*)$/e', "$1 $2 $3", $str))
{
하는 것으로 다음은 실제로 결과를 평가하는 안전 평가의 변종이다. 당신은 그것에 대한 매치와 별도의 표현식 평가가 필요합니다. (여기에 가짜 미니 파서를 작성하는 것은 어렵지 않지만 문제는 분명히 과장입니다.)
어떤 오류가 있습니까? 나는이 코드 스 니펫이 무엇을해야 하는지를 모른다. (비어 있지 않은 문자열은 항상 여기에서 'true'로 평가된다.) – KingCrunch
'if()'는 루프를 만들지 않습니다. – Spudley
안녕 얘들 아, @ Digak은 진짜 질문을하고있다, 그는 eval을 사용하고 싶다. –