2013-10-16 4 views
0

그래서 나는 변수와 내 생각 과정을 보여 작동하지 않는 기능을 가지고있다.PHP에 존재하지 않는 변수를 조건부로 출력하려면 어떻게합니까?

코드 :

$variable = "This is a string!"; 

    function is($var) 
    { 
     if(isset ($var)) 
     return true; 
     return false; 
    } 

    if(is ($variable)) 
     echo "This variable exists!"; 
    else 
     echo "This variable does not exist!"; 

출력 : $ 변수가 존재

This variable exists! 

때문에, 기능이 제대로 작동하지만 $ 변수가 설정 또는 정의되지 않은 문제가있다.

코드 :

function is($var) 
    { 
     if(isset ($var)) 
     return true; 
     return false; 
    } 

    if(is ($variable)) 
     echo "This variable exists!"; 
    else 
     echo "This variable does not exist!"; 

출력 : 변수가 아직 정의되지 않은

 Notice: Undefined variable: variable on line x 
     This variable does not exist! 

때문에,이 참조 될 때 PHP는 당신이 참조하는 시도이 변수가 정의되지 않은 말 통지를 반환합니다. 변수가 제대로 설정되지 않았을 때 함수가 항상 알림을 생성하기 때문에 문제가됩니다.

그래서 나는 기준이없는 문자열로 변수 이름을 전달했습니다.

코드 :

$variable = "This is a string"; 

    function is($string) 
    { 
     if(isset($$string)) // Variable Variables 
     return $$string; 
     return ""; 
    } 

    echo is("variable"); 

하지만이 여전히 작동하지 않았다. 내가 어떻게 정상적으로 출력 무언가가이 때마다 짧은 기능을 사용하여 입력하는 대신에 아이디어 중 이니 참조가 존재하거나 PHP를 사용하지 않을 경우

echo (isset($variable) ? $variable : ""); 

는 어떻게 확인할 수 있나요?

+0

if(is ($variable))를 변경 한 것을 찾을 수 있습니다 당신은 왜이 일을해야합니까? 이것은 나에게 오버 최적화 가능한 직관적 ... –

+0

@JamesG처럼 보인다. 이것은 변수가 존재하지 않을 때 전역 적으로 출력하고자하는 것을 기반으로 입력하기가 더 빠를뿐만 아니라,보다 깨끗하게보고, 쉽게 사용자 정의 및 변경할 수 있습니다. – Ben

+0

'echo @ $ variable;'그냥 할 수 있습니다. –

답변

2

테스트 할 변수/매개 변수 앞에 오류 제어 연산자 "@"를 붙입니다. 이 식의 오류를 억제 - 같은 변수 존재하지 않는 것처럼 : 당신은 당신이 이런 식으로 코드를 변경할 수 있습니다 오류

을 게재 피하기 위해 변수에 @을 추가 할 필요가

test(@$bar); 


function test($foo) 
{ 
    if(isset($foo)) 
     echo "A"; 
    else 
     echo "B"; 
} 
0

당신은 VAR와 함수를 호출하기 전에는 isset ($ 변수)를 확인해야합니다. 어쩌면 당신이 원하는만큼 편리하지 않을 수도 있지만 그것이 작동하는 방법입니다.

1

:

$variable = "This is a string!"; 
function is($var) 
{ 
    if(isset ($var)) 
    return true; 
    return false; 
} 

if(is (@$variable)) 
    echo "This variable exists!"; 
else 
    echo "This variable does not exist!"; 

당신은 내가이 if(is (@$variable))

+1

대단한 답변을 보내 주셔서 감사합니다! 누군가 너에게 대답했다. 그래서 나는 그들에게 그것을 주어야했다. 나는 아직도 그것을 매우 감사한다! – Ben

관련 문제