2013-07-08 3 views
0

필자는 사용자가 로그인했는지 여부를 확인하는 데 사용하는 PHP 함수를 가지고 있습니다.이 코드는 매우 간단하며 코드 자체가 작동합니다. 전에는 많이 사용하지 않았지만 시작하고 싶습니다. 그래서 나는 is_logged() 함수를 가지고 있는데, 사용자가 로그인했다면 true를 리턴하고, 그렇지 않은 경우에는 false를 리턴한다. 그러나 함수를 사용할 때 상황에 관계없이 항상 true를 반환합니다. 함수 내에서 코드를 가져 와서 함수 밖에서 처리하면 작동하지만 함수에 다시 넣으면 사용자가 로그 아웃 한 경우에도 true를 반환합니다.PHP 함수가 인식되지 않습니까?

is_logged 기능 나는이 기능을 테스트하기 위해 노력하고있어 어떻게

function is_logged(){ 
    if(!empty($_SESSION["user"])){ 
      return true; 
    } else { 
     return false; 
    } 
} 

.

if(is_logged) { echo "<br />Logged In"; } else { echo "<br />Not Logged In"; } 

하지만 함수에서 내부 코드를 가지고있는 경우 기능은 작동 ... 난 왜 작동하지 않습니다에 매우 혼란 스러워요. 이 함수는 세션 변수를 읽을 수있는 지점에 나열됩니다.

+3

is_logged()를 사용하십시오. 이것은 함수 호출입니다 – karthikr

답변

4

변경

if(is_logged) 

TO

if(is_logged()) 

그리고 당신의 기능을 쉽게 단순화 할 수 있습니다 ...

function is_logged() { 
    return !empty($_SESSION["user"]); 
} 
+0

아마도 가장 현명한 순간 중 하나가 아니겠습니까? DOH! 글쎄요, 고마워요, 그리고 그것은 PHP를 코딩하는 동안 내 재미있는 어리석은 순간 중 하나에 내려갈 것입니다. : P –

+3

때때로 맥주가 필요합니다 .... – Baba

+0

불필요한 삼항 조건을 제거하기 위해 더 짧아 질 수 있습니다 :'return! empty ($ _ SESSION [ "user"]); '. 끝난! – nickb

1

최종에 더 읽기 만들어보십시오 :

if (is_logged) 
{ 
echo "<br />Logged In"; 
} 
else 
{ 
echo "<br />Not Logged In"; 
} 
(210)

같이 그것을 만드는 시도 :

if (is_logged() === true){ 
    // Function has returned true so act accordingly 

}else{ 
// If here. Function has returned false, so act accordingly 
} 

사용하는 이유 : is_logged()?

음, 이것은 함수 호출을 나타냅니다. is_logged을 사용하면 PHP가 정의 된 상수를 찾습니다.

2

() (대괄호)없이 is_logged() 기능을 호출하십시오. 또한 나는 다음과 최적화하는 것이 좋습니다 : if -statement에서 필요 만약 당신이 goint에 return 부울 결과,이

function is_logged(){ 
    return !empty($_SESSION["user"]); 
} 

if(is_logged()){ echo "<br />Logged In"; } else { echo "<br />Not Logged In"; } 

없습니다. 기능이 느려지 게됩니다.

+0

주목할 것없이 마이크로 세컨드로 기능을 느리게 할 것입니다 –

+0

@DarylGill 마이크로 초 여기, 마이크로 초 있습니다 ... 음, 총 1 초가있을 수 있습니다. 이 함수는 매우 자주':)'로 불린다. 또한 여기에'if'를 사용할 때 얻을 수있는 이점은 없습니다. 너? – BlitZ

+0

필자는 작풍에 익숙하지 않으며 프로그래머가 자신이'':''을 코딩하는 방법을 추측한다. OP가 처음으로 함수를 사용하는 경우에는 사용법을 파악하여 커맨드로 읽을 수 있도록해야한다. 코드 자체를 설명하기. 귀하의 예와 바바의 예가 가장 최적화되어있을 수 있습니다. 가독성은 noice의 열쇠입니다. –

관련 문제