2017-09-29 1 views
5

php 7.2에서는 각 비추천,이 지침을 비 사용되지 않는 것으로 변경하는 방법은 무엇입니까?이 비추천 함수를 해결하는 방법 각 PHP

1.

$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(, $this->result) = each($this->cache_data); 

감사 요 유.

답변

3

를 첫 번째 두 개의 예를 들어 예를 들어 key을 사용할 수 있습니다. d current을 사용하여 필요한 값을 할당하십시오. 이러한 경우에

  • $out = array('me' => array(), 'mytype' => 2, '_php_class' => null); 
    $expected = [key($out), current($out)]; 
    
  • $ar = $o->me; // reset isn't necessary, since you just created the array 
    $typ = key($ar); 
    $val = current($ar); 
    

    1. , 당신은 나중에 커서를 사전에 next를 사용할 수 있지만, 코드의 나머지가에 의존하지 않는 경우는 필요하지 않을 수도있다.

      세 번째 경우에는 대신 foreach 루프를 사용하고 루프 내에 $kv을 할당하는 것이 좋습니다. 키가 list에서 무시처럼 마지막의 경우를 들어

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

      , 그것은 보이는, 그래서 당신은 현재의 값을 할당 할 수 있습니다. 처음 두 경우처럼
      $this->result = current($this->cache_data); 
      

      , 코드의 나머지 $this->cache_data와 상호 작용하는 방식에 따라 next으로 커서가 이동해야 할 수도 있습니다.

    +0

    좋아, tk 당신, 나는 식별자보다 마지막 경우를 추가했습니다. – yokogeri

    +0

    @yokogeri 나는 대답에 대해 언급했다. –

    1

    key(), current()next()을 사용하여 자신의 each() 함수를 만들 수 있습니다. 다음과 같이 그 기능 통화를 대체 :

    <?php 
    function myEach(&$arr) { 
        $key = key($arr); 
        $result = ($key === null) ? false : [$key, current($arr), 'key' => $key, 'value' => current($arr)]; 
        next($arr); 
        return $result; 
    } 
    

    1.

    $ar = $o->me; 
    reset($ar); 
    list($typ, $val) = myEach($ar); 
    

    2.

    $out = array('me' => array(), 'mytype' => 2, '_php_class' => null); 
    $expected = myEach($out); 
    

    3.

    for(reset($broken);$kv = myEach($broken);) {...} 
    
    +0

    각각을 완전히 에뮬레이션하려면 0과 1은 물론 "키"및 "값"키가 필요합니다. –

    +0

    @ Don'tPanic, 편집 된 답변,이 상황은 그렇지 않았습니다. 그것을 필요로하지만 그럴 수도있는 경우가있을 수 있습니다. 제안을 주셔서 감사합니다 –

    +0

    글쎄, 첫 번째 사건은 분명히 그것을 필요로하지 않았다. 두 번째 두 경우는'$ expected'와'$ kv' 배열이 어떻게 사용되는지 확실히 알 수 없기 때문입니다. 아니 내 대답도 중 주소 :) –