더 이상 사용되지 않는 Each() 함수를 사용하는 코드를 업데이트하는 방법
P粉883223328
2023-08-22 11:44:11
<p>PHP 7.2에서는 <code>each</code> 함수가 더 이상 사용되지 않습니다. 문서에는 다음 내용이 언급되어 있습니다. </p>
<인용문>
<p><strong>경고</strong> PHP 7.2.0부터 이 함수는 더 이상 사용되지 않습니다. 이 기능에 의존하는 것은 강력히 권장되지 않습니다. </p>
</인용문>
<p>코드를 사용하지 않으려면 어떻게 업데이트하나요? 다음은 몇 가지 예입니다. </p>
<올>
<pre class="brush:php;toolbar:false;">$ar = $o->me;
재설정($ar);
목록($typ, $val) = 각각($ar);</pre>
</li>
<pre class="brush:php;toolbar:false;">$out = array('me' => array(), 'mytype' => 2, '_php_class' => null);
$예상 = 각각($out);</pre>
</li>
<pre class="brush:php;toolbar:false;">for(reset($broken);$kv = 각각($broken);) {...}</pre>
</li>
<pre class="brush:php;toolbar:false;">list(, $this->result) = 각각($this->cache_data);</pre>
</li>
<pre class="brush:php;toolbar:false;">// 배열의 끝 또는 배열의 길이까지 반복 >
$i = 0;
재설정($배열);
while( (list($id, $item) = 각각($array)) || $i < 30 ) {
// 코드
$i++;
}</pre>
</li>
</ol>
<p>PHP 7.2에서 코드를 실행하면 다음 오류가 발생합니다: </p>
<인용문>
<p>더 이상 사용되지 않음:each() 함수는 더 이상 사용되지 않습니다. 이후 통화에서는 이 메시지가 무시됩니다</p>
</blockquote><p><br /></p>
2019+즉시 업그레이드
each()
실제로
으아아아each()
로 대체할 수 있는 경우가 많기 때문에 이 질문에 추천된 답변도 매우 다양합니다.또한:
으아아아수동으로 하나씩 교체할 수 있습니다. 하지만 더 좋은 방법은 없을까?
저는 이주 프로젝트를 돕고 있으며 이와 같은 사례가 150건이 넘습니다. 게을러서 코드를 위와 같은 방식으로 변환하는 Rector라는 도구를 만들었습니다 (더 많은 경우가 있지만 답변을 스팸으로 보내고 싶지 않습니다).
PHP_72
컬렉션의 일부입니다.코드 업그레이드를 위한 4단계
1. 설치
으아아아2.
을 만듭니다. 으아아아rector.php
구성 파일3.
추가 으아아아PHP_72
컬렉션4. 코드에서 실행하세요
으아아아이사에 도움이 되기를 바랍니다.
오류나 예외가 있다면 총장님이 놓친 부분입니다. 문제를 생성하여 문제를 해결하고 가능한 모든 경우에 작동하도록 할 수 있습니다.
처음 두 가지 예시 사례에서는
으아아아key()
和current()
를 사용하여 필요한 값을 할당할 수 있습니다.이러한 경우
next()
를 사용하여 나중에 커서를 앞으로 이동할 수 있지만 나머지 코드가 이에 의존하지 않는 경우에는 필요하지 않을 수 있습니다.세 번째 경우에는
으아아아foreach()
循环,并在循环内部分配$kv
만 사용하는 것이 좋습니다.네 번째 경우에는
으아아아list()
에서 키가 무시된 것으로 보이므로 현재 값을 할당할 수 있습니다.처음 두 경우와 마찬가지로 나머지 코드가
$this->cache_data
와 상호 작용하는 방식에 따라$this->cache_data
交互,可能需要使用next()
를 사용하여 커서를 앞으로 이동해야 할 수도 있습니다.다섯 번째 경우는
으아아아for()
루프로 대체할 수 있습니다.