2013-04-08 2 views
-1

오늘 is_empty()이라는 함수를 만들었습니다. 함수는 이미 존재하는 empty() 함수와 비슷합니다 - 스크립트에 필요한 몇 가지 검사를 추가합니다.custom empty() function

그러나 이제 스크립트를 실행하고 일부 값이 설정되지 않은 경우 : Notice: Undefined index 통지가 표시됩니다. 기본 empty() 함수는이 알림을 표시하며 값이 비어 있다고 가정합니다. 동일한 작업을 수행하도록 내 함수를 구성하는 방법이 있습니까? isset()is_empty()을 함께 사용하는 대신?

대단히 감사합니다!

편집 : 내 기능은 여기에 있습니다 :

function is_empty($value, $integer = FALSE){ 
    if($integer){ 
     return empty($value) && !is_numeric($value); 
    } 
    return empty($value); 
} 
+1

... 함수 코드가 없으면 수행 할 수있는 일이 많지 않습니다. – PlantTheIdea

+0

'empty()'는 함수가 아니며, 이와 비슷한 동작을 구현할 수 없습니다. – zerkms

+0

코드를 게시하십시오. 그리고 나는 당신이 기능하는 수표의 종류가 비어 있지 않은지 궁금합니다. – rinchik

답변

3

이 통지서는 당신이 당신의 함수 내에서 할 몇 가지 검사에서 오지 않습니다. 이 통지는 함수에 일부 인수를 전달함으로써, 즉 함수 본문이 실제로 실행되기 전에 발생합니다. 따라서 다른 방식으로 함수를 구현하여이를 변경할 수는 없습니다.

1

은 내가 이런 짓을 할 것이다 :

function is_empty($value, $integer = FALSE){ 
    if (!empty($value)){ 
    if($integer !== FALSE){ 
     $return = preg_replace("/[^0-9]+/", "", $value); 
     return empty($value) && !is_numeric($value); 
    } 
    return empty($value); 
    } 
    return FALSE; 
    } 
+0

'empty()'호출은 코드에서 의미가 없습니다. 당신은 그것들을 제거 할 수 있고 아무 것도 ** 변하지 않을 것입니다. 그래서 if (! empty ($ value)) {'->'if (! $ value) {'etc – zerkms

+0

@zerkms'empty'는 정의되지 않은 var notice를 억제 할 것입니다. – rinchik

+0

함수 인자로 넘겨지면 ** 항상 ** 정의되어 있습니다. – zerkms