PHP에서 IS_ITERABLE ()는 변수가 트래버스 가능한 데이터 유형인지 확인하는 기능입니다. Foreach 루프에서 변수를 사용할 수 있는지 여부를 결정하는 데 도움이 될 수 있습니다. 이 함수는 변수가 트래버 가능한 인터페이스를 구현하는 배열 또는 객체 인 경우 true를 반환합니다. 변수가 null 인 경우, is_iterable ()는 false를 반환하여, 특히 트래버스 가능한 물체를 전달할 것으로 예상되는 경우 잠재적 오류가 발생할 수 있습니다. 그렇다면 Null 을 통과시켜 오류를 피하는 방법은 무엇입니까?
다음 코드 예제를 고려하십시오.
$data = null;
if (is_iterable($data)) {
foreach ($data as $item) {
// 거래하십시오 $item
}
}
이 예에서 $ data는 null , is_iterable ($ data) 이 false를 반환하므로 Foreach 루프가 실행되지 않습니다. 그러나 이것은 당신이하고 싶은 행동이 아닐 수도 있습니다. $ Data가 NULL 인 경우 추가 처리로 후속 오류 나 예외를 피할 수 있습니다.
is_iterable ()를 사용할 때 널 값으로 인해 불필요한 오류를 피하기 위해 판단 전에 변수의 전처리를 수행 할 수 있습니다. 다음은이를 처리하는 몇 가지 일반적인 방법입니다.
트래버스가 가능한 물체인지 확인하기 전에 변수가 먼저 널을 확인할 수 있습니다. NULL 이면 Foreach를 직접 건너 뛰거나 대체 로직을 실행하십시오.
$data = null;
if (!is_null($data) && is_iterable($data)) {
foreach ($data as $item) {
// 거래하십시오 $item
}
} else {
// 만약에 $data 예 null,进行备用거래하십시오
echo "数据为空或不예可遍历对象。";
}
NULL 이 가능한 입력이고 빈 배열로 처리되기를 원한다면 빈 배열을 기본 값으로 사용할 수 있습니다. 이런 식으로 데이터 가 null 이라도 프로그램은 오류를보고하지 않으며 Foreach 루프는 빈 배열을 처리합니다.
$data = null;
// 만약에 $data 예 null,대신 빈 배열을 사용하십시오
$data = $data ?? [];
foreach ($data as $item) {
// 거래하십시오 $item
}
응용 프로그램에서 NULL 값으로 NULL을 종종 만나면 NULL 대신 논리에 빈 세트를 사용하는 것을 고려하십시오. 예를 들어, 빈 배열 또는 빈 개체를 사용하여 데이터가없는 상태를 나타냅니다.
$data = null;
// 빈 배열을 대안으로 사용하십시오
$data = is_null($data) ? [] : $data;
foreach ($data as $item) {
// 거래하십시오 $item
}
검사 기능을 캡슐화하여 변수가 비어 있는지에 대한 논리를 중앙에서 처리하여 코드에서보다 간결하게 재사용 할 수 있습니다.
function safe_iterable($var) {
return (is_iterable($var) && $var !== null) ? $var : [];
}
$data = null;
foreach (safe_iterable($data) as $item) {
// 거래하십시오 $item
}
IS_ITERABLE ()는 변수를 가로 질 수 있는지 판단 할 때 false를 반환합니다 . NULL 로 인한 후속 오류를 피하기 위해 IS_ITERABLE ()을 사용하기 전에 확인하거나 기본적으로 또는 빈 세트로 NULL을 처리 할 수 있습니다. 올바른 전략을 선택하는 것은 프로젝트의 요구와 비즈니스 논리에 따라 다릅니다.
또한, 들어오는 데이터를 처리 할 때, 특히 외부 데이터 소스가 불안정 할 때, 많은 잠재적 런타임 오류를 피하는 데 도움이 될 것입니다.