PHP 개발 중에 어레이는 일반적으로 사용되는 데이터 구조입니다. 그러나 배열에 존재하지 않는 키에 액세스하려고 할 때 종종 "불법 문자열 오프셋 '이름'"오류가 발생하여 프로그램이 비정상적으로 중단되어 작업에 영향을 미칩니다.
이 오류는 일반적으로 다차원 배열 작업에서 발생합니다. PHP가 존재하지 않는 배열 키에 액세스하면 변수를 String으로 자동 변환하여 "불법 문자열 오프셋"오류가 발생합니다.
$arr = array('id'=>1, 'email'=>'[email protected]');
$name = $arr['name'];
ISSET ()는 지정된 키가 배열에 존재하는지 여부를 감지하고 부울 값을 반환 할 수 있습니다. 배열 요소를 호출하기 전에 먼저 오류를 피하기 위해 키가 존재하는지 여부를 결정하십시오.
$arr = array('id'=>1, 'email'=>'[email protected]');
if (isset($arr['name'])) {
$name = $arr['name'];
}
Array_key_exists ()는 isset ()과 유사하지만 널 값의 키를 올바르게 감지 할 수 있습니다. 키가 존재하는지 여부를 결정해야하지만 키 값이 비어있을 수있는 상황에 적합합니다.
$arr = array('id'=>1, 'email'=>'[email protected]');
if (array_key_exists('name', $arr)) {
$name = $arr['name'];
}
빈 () 변수가 비어 있는지 결정합니다. Ternary 연산자를 사용하여 주요 값이 존재하고 비어 있지 않은지 판단하기 위해 코드를 단순화 할 수 있습니다.
$arr = array('id'=>1, 'email'=>'[email protected]');
$name = isset($arr['name']) ? $arr['name'] : '';
if (!empty($name)) {
// 관련 작업을 수행하십시오
}
"불법 문자열 오프셋"오류를 피하기 위해 키는 배열 키에 액세스하기 전에 판단을하는 것입니다. isset (), array_key_exists () 및 empty () 함수의 합리적인 사용을 통해 PHP 코드의 견고성과 안정성을 효과적으로 향상시킬 수 있습니다.