나는이 내 프로젝트 주위에 많은 장소 (장소 수천)에 다음 코드 : PHP : 값을 돌려줍니다는 isset 함수를 작성
$foo = isset($mixed) ? $mixed : null;
$mixed
아무것도 할 수있다
$foo = isset($array['element']) ? $array['element'] : null;
$foo = isset($nestedArray['element']['key']) ? $nestedArray['element']['key'] : null;
$foo = isset($object->prop) ? $object->prop : null;
$foo = isset($object->chain->of->props) ? $object->chain->of->props : null;
이 반복 된 논리를 (단순한) 함수로 작성하는 방법이 있습니까? 예를 들어 다음과 같이 시도했습니다.
function myIsset($mixed)
{
return isset($mixed) ? $mixed : null;
}
위의 기능은 작동하지만 실제로는 그렇지 않습니다. 예를 들어, $object->prop
이없고 myIsset($object->prop))
을 호출하면 함수가 호출되기 전에 치명적인 오류 : Undefined property: Object::$prop
가 발생합니다.
그런 기능을 어떻게 쓸 것인지에 대한 아이디어가 있습니까? 심지어 가능할까요?
일부 솔루션은 here 및 here으로 게시되었지만 이러한 솔루션은 배열 용으로 만 제공됩니다.
더 효율적으로 할 수 있다고 생각하지 않습니다. 대신 나는 당신이 그것을 사용하는 횟수를 줄이려고 노력할 것이다. * 수천 *은 너무 많이 보인다. 변수의 전체 블록이 설정되었거나 설정되지 않았으므로 하나를 검사하면 여러 가지를 설정할 수 있습니다. – jeroen
@jeroen 어디서나 이것을 자주 확인해야하는 경우 "코드 냄새"입니다. –