>백엔드 개발 >PHP 튜토리얼 >PHP의 더 이상 사용되지 않는 `each()` 함수를 대체하는 방법은 무엇입니까?

PHP의 더 이상 사용되지 않는 `each()` 함수를 대체하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-20 15:01:11806검색

How to Replace PHP's Deprecated `each()` Function?

더 이상 사용되지 않는 Each() 함수에서 코드 업그레이드

PHP 7.2에서는 Each() 함수가 더 이상 사용되지 않아 사용할 때 경고가 발생합니다. 이 문서에서는 코드를 현대화하고 Each() 사용을 피하는 방법을 살펴봅니다.

샘플 사례

다음은 이전에 Each()가 사용된 몇 가지 예입니다.

  1. reset()을 사용하여 값 할당 및 list():

    $ar = $o->me;
    reset($ar);
    list($typ, $val) = each($ar);
  2. 값을 직접 할당:

    $out = array('me' => array(), 'mytype' => 2, '_php_class' => null);
    $expected = each($out);
  3. 배열을 잘못 반복:

    for(reset($broken);$kv = each($broken);) {...}
  4. 키 무시 list() 할당:

    list(, $this->result) = each($this->cache_data);
  5. 길이 확인으로 잘못된 반복:

    reset($array);
    while( (list($id, $item) = each($array)) || $i < 30 ) {
     // code
     $i++;
    }

업데이트된 코드

1. 값 할당

key() 및 current()로 교체:

$ar = $o->me;
$typ = key($ar);
$val = current($ar);

2. 직접 할당

명시적인 배열 키와 값으로 바꾸기:

$out = array('me' => array(), 'mytype' => 2, '_php_class' => null);
$expected = [key($out), current($out)];

3. 올바른 반복

foreach()를 사용하고 루프 내에 키-값 쌍을 할당합니다:

foreach ($broken as $k => $v) {
     $kv = [$k, $v];
}

4. 키 무시

현재 값 직접 지정:

$this->result = current($this->cache_data);

5. 검사를 사용한 배열 반복

기존 for() 루프로 교체:

reset($array);
for ($i = 0; $i < 30; $i++) {
    $id = key($array);
    $item = current($array);
    // code
    next($array);
}

위 내용은 PHP의 더 이상 사용되지 않는 `each()` 함수를 대체하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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