2013-08-25 2 views
-1

나는 문장을 이해할 수 없다. 왜 $ view가 설정되어 있는지 확인할 수없는 이유는 무엇입니까? 2 개의 질문 추가 - "$ _GET ("$ view ")!" "!" 거기에 의미가 있니? 뭐야! 변화? 게다가, 왜 동등 = ""입니까? $보기가 설정되어있는 경우

답변

1

난 당신이 코드를 엉망 생각 그래서, 여기에 수정하고 읽을 수있는 코드이다. 수많은 오류로 인해 실행되지 않습니다. if 문은 아마

if(isset($_GET[$view]) && $_GET[$view] != "") 

즉, $보기 키를 누른 다음 비어 있지 그 키를 확인 존재하는지 먼저 확인합니다. 존재하지 않는 키와 존재하지만 비어있는 키의 차이점과이 경우 두 키를 모두 확인하는 이유에 유의하십시오.

1

왜 난 그냥 확인하지 수있는 모든 도움을

<?php 
$myurl=htmlspecialchars($_SERVER["PHP_SELF"]); 
    $view=""; 
if(isset($_GET["$view"]) && $_GET("$view")! = "") { $view =$_GET["$view"];}; 
include(head.html); 

switch($view] { 

case "" : 
include(main.html); 
break; 

case "people" : 
include(people.html); 
    break; 
case:"contact": 
include(contact.html); 
break; 

default : 

    include(404.html); 
    break; 

}; 

include_once(foot.html; 
?> 

감사합니다? 분명히 그 코드의 저자가 원하지 않았기 때문에

빈 문자열이 유효합니다. 예를 들어, $view이라는 필드가 있고 사용자가 아무 것도 입력하지 않으면이 경우가됩니다.

사실, $view이 어쨌든 빈 문자열로 초기화되었으므로 그렇게 할 수 있습니다! 이 코드는 초보자가 복사하거나 붙여 넣거나 작성한 것일 수 있습니다.

무엇이 있습니까? 변화?

실제로는 !=입니다. 혼란스러운 방식으로 작성되었습니다. 이 둘은 동일합니다.

&& $_GET("$view")! = "") 
&& $_GET("$view") != "") 

또한 코드에 버그가 있습니다. $_GET("$view")이 유효하지 않으면 ()[]이어야합니다. 또한

if (isset($_GET["$view"]) && $_GET["$view"] != "") { 
    $view = $_GET["$view"]; 
} 

:

switch($view]   // ...what is this? 
include_once(foot.html; // and this? 
case:"contact":   // ummmm 
+0

배열은 []되지 사용하고 제거 할() ... –

+0

@userNOID 그래, 난 내 대답에 그 지적했다. 원본 코드의 오류입니다. – Doorknob

+0

그리고 switch 문도 다른 대괄호를 가지고 있습니다 ... –

0

먼저 []와()를 올바르게 사용하십시오. 그렇다면 운영자에 대해 배워야합니다. http://www.w3schools.com/php/php_operators.asp

이제 코드는 의미가 없습니다. 이 내용은 의미 switch("") 처럼

1
$view=""; 
if(isset($_GET["$view"]) && $_GET("$view")! = "") { $view =$_GET["$view"];}; 

당신은 실제로 위의 코드와 문이

을 무시 마찬가지로 당신의 switch($view);도 보이는 경우 isset($_GET["$view"]에 대한이 같은이 isset($_GET[""] 당신은 전체 보이는 빈 매개 변수로 $view="";을 설정하여 첫 번째 경우는 당신이 가지고있는 것에 상관없이 실행됩니다. $_GET

오류의 코드 부분을 확인하십시오 rs.필요로하는 경우 이후에 콜론

case:"contact": 
include(contact.html); 
break;