>  기사  >  백엔드 개발  >  PHP의 정적 지역 변수

PHP의 정적 지역 변수

WBOY
WBOY원래의
2016-07-29 09:13:461602검색

정적 지역 변수가 이를 수행할 수 있습니다. 이 변수와 전역 변수는 동일한 메모리 영역에 저장되지만 정적 지역 변수를 선언하는 함수가 없으면 해당 변수에 접근할 수 없습니다. , 그러나 변수는 삭제되지 않고 해당 값은 유지됩니다. 함수가 다시 호출되면 다시 액세스할 수 있습니다. 주의할 점은 다음과 같습니다.
1. 정적 지역 변수를 선언할 때는 표현식이 될 수 없습니다.

<code><span>static</span><span>$index</span> = <span>1</span>;
<span>static</span><span>$index</span> = <span>5</span>;  <span>// 报错</span></code>

표현식을 사용하면 오류가 발생합니다. 2. 정적 변수 에 값을 할당할 때는 사용할 수 없습니다. 표현식

<code><span>static</span><span>$index</span> = <span>1</span> + <span>1</span>;  <span>// 报错</span></code>

3. 값을 할당하지 않고 지역 변수만 선언하면 기본적으로 0 또는 빈 문자열로 초기화됩니다. 해당 유형으로

예:
배열의 차원을 한 차원으로 줄입니다.

<code><span><span>class</span><span>Test</span>{</span><span>public</span><span><span>function</span><span>reduce_arr</span><span>(<span>$arr</span>)</span> {</span><span>static</span><span>$temp</span> = <span>array</span>(); <span>// 声明了一个静态局部变量</span><span>foreach</span> (<span>$arr</span><span>as</span><span>$key</span> => <span>$val</span>) {
            <span>if</span> (is_array(<span>$val</span>)) {
                <span>$this</span>->reduce_arr(<span>$val</span>);
            } <span>else</span> {
                <span>$temp</span>[<span>$key</span>] = <span>$val</span>;
            }
        }
        <span>return</span><span>$temp</span>;
    }
}
<span>$test</span> = <span>new</span> Test();
<span>$arr</span> = <span>array</span>(
    <span>'0'</span>=><span>array</span>(
        <span>'good_id'</span>=><span>1</span>
    ),
    <span>'1'</span>=><span>array</span>(
        <span>'good_num'</span>=><span>2</span>
    ),
    <span>'2'</span>=><span>array</span>(
        <span>'good_ids'</span>=><span>2</span>
    )
);
var_dump(<span>$test</span>->reduce_arr(<span>$arr</span>));  <span>// 此时得到的是一个一维数组</span></code>
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

위에서는 전역변수, 정적변수를 포함한 PHP의 정적 지역변수에 대해 소개하였습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.