2011-10-08 6 views
1

$ _POST가 설정되어 있는지 확인하는 함수를 만들고 있습니다. 잘

다음 작품 :

if (isset($_POST['einfo'])) { 
    $einfo = $_POST['einfo']; 
} else { $einfo = NULL; } 

은 $ einfo 에코;

그리고 이것은 내가 만들려고하는 기능입니다 :

function ifset($check) { 
     if (isset($_POST['$check'])) { 
    $check = $_POST['$check']; 
    } else { $check = NULL; } 
     return $check; 
} 

$einfo = ifset('einfo'); 

echo $einfo; 

는하지만 난 더 출력을 얻을 수 없습니다.

+0

http://php.net/manual/en/language.variables.basics.php –

+0

이것이 어떻게 필요한지 상상할 수 없습니다. 그리고 ifset 함수를 호출하지 않는다. 함수가 실제로 무엇을 설명하는지 전혀 설명하지 않기 때문이다. – markus

+0

Tnx 많이 도와 줬어! – Seltjoek

답변

5

당신은 큰 따옴표로 사용해야합니다 :

function ifset($check) 
{ 
    if (isset($_POST["$check"])) 
    { 
    $check = $_POST["$check"]; 
    } 
    else 
    { 
    $check = NULL; 
    } 
    return $check; 
} 

을하지만 실제로는이를 생략 할 수 있습니다.

+0

+1 (너무). AurelioDeRosa가 잘못된 결과물을 보여주는 것이 옳은 반면, 대답은 함수 자체가 잘못되었음을 증명합니다. – GolezTrol

+4

큰 따옴표를 사용하지 마십시오. 이것은 단지 변수 일뿐입니다. –

+0

Tnx 많은 도움을 주신 빠른 답변입니다. – Seltjoek

1

결과가 NULL이면 에코를 수행 할 때 빈 문자열로 "형 변환"되어 아무 것도 볼 수 없습니다.

echo 대신 var_dump을 사용해보십시오.

그리고 PHP는 vars를 해석 할 때 큰 따옴표를 사용하지 않아야합니다.

+0

마찬가지로 '거짓'입니다. 이와 같이 디버그 값을 출력하려면,'var_dump'를 사용하십시오. – GolezTrol

+0

예, 틀린 것은 물론 동일을 할 것입니다;) –

0

NULL은 아무것도 표시하지 않으므로 비어 있음을 의미합니다. 무엇인가보고 싶다면 다음을 시도하십시오 :

function ifset($check) { 
if (isset($_POST["$check"])) { 
$check = $_POST["$check"]; 
} else { 
$check = "Empty"; 
} 
return $check; 
} 
+0

누가 +1을 추가 했습니까 ... – Olli

0

PHP 매뉴얼을 읽어야합니다!

$_POST['$check'] -> string '$check' is as you write 
$_POST["$check"] -> string "$check" is a string that contain the $check variable 
$_POST[$check] -> equivalent to previous 


$check = 'some test'; 
echo "$check"; // outputs -some test- 
echo $check; // outputs -some test- 
echo '$check'; // outputs $check 

희망이 도움이 더 적은 코드로 수행 할 수 있습니다

+0

네, 고맙습니다! 나는 그것을 지금 얻는다 :) – Seltjoek

+0

이것은 분명 정확하다. 그러나 "당신은 php 매뉴얼을 읽을 필요가있다."는 코멘트는 필요 없다. 거의 모든 질문에 대한 답변 일 수도 있고 때로는 당신이 찾고있는 것을 모를 수도 있습니다. –

0

:

function ifset($check) { 
    if (isset($_POST[$check])) { 
     return $_POST[$check]; 
    } 
    return NULL; 
} 

그리고 당신은 처리 및 사용할 수있는 5.3+ PHP를 사용하는 값 ​​내용에 따라 :

function ifset($check) { 
    return $_POST[$check] ?: NULL; // ternary operator 
} 
관련 문제