1
다음 문자열을 구문 분석하려고하지만 인덱스 배열의 현재 정의되지 않은 오프셋을 제거하려고합니다. 정의되지 않은 오프셋 문제가있는 도움을 주시면 감사하겠습니다.PHP recursion - notice : undefined offset : 20 array
error_reporting(E_ALL);
ini_set('display_errors', '1');
function my_recursion($String, &$Inc) {
$l = strlen($String);
$has_quotes = 0; $array = array();
$x= 0;
for ($Inc; $Inc < $l; $Inc++) {
$my_char = $String[$Inc];
if ($my_char == '(' && !$has_quotes) {
$Inc++;
$array[$x] = my_recursion($String, $Inc);
$x++;
} else if ($my_char == '"') {
$has_quotes = !$has_quotes;
if (!$has_quotes)
$x++;
} else if ($has_quotes) {
$array[$x] .= $my_char;
}
}
print_r($array);
}
$String = '(("HELLO"("BAR")("FOO")()""))';
$Inc = 0;
(my_recursion($String, $Inc));
변수 이름을 작은 글자로 씁니다. array()를 정의하기 전에 배열을 사용하지 마십시오. 질문 할 때 귀하의 기능이 무엇을해야하는지 설명하십시오. 여기에서 오류를 재현 할 수 없습니다. –
@tokam : 팁을 주셔서 감사합니다. 추가해야하는 'notice'를 복제하십시오 : error_reporting (E_ALL); ini_set ('display_errors', '1'); ' – JoshDarrow
통지를 보았습니다. 우선 정의하지 않고 배열을 사용했기 때문입니다. –