2017-09-29 13 views
5

Với php 7.2, mỗi tệp sẽ không còn được dùng nữa, cách thay đổi các hướng dẫn này thành các hướng dẫn không được dùng nữa?Cách giải quyết chức năng không dùng nữa này cho mỗi 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); 

Thank yo u.

Trả lời

3

Đối với hai ví dụ đầu tiên của bạn trường hợp, bạn có thể sử dụng key một d current để chỉ định các giá trị bạn cần.

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

Trong những trường hợp, bạn có thể sử dụng next để thăng tiến con trỏ sau đó, nhưng nó có thể không cần thiết nếu phần còn lại của mã của bạn không phụ thuộc vào đó.

Đối với trường hợp thứ ba, tôi khuyên bạn chỉ nên sử dụng vòng lặp foreach thay thế và chỉ định $kv bên trong vòng lặp.

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

Đối với trường hợp cuối cùng, nó trông giống như chìa khóa được bỏ qua khi list, vì vậy bạn có thể gán giá trị hiện tại.

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

Giống như hai trường hợp đầu tiên, nó có thể là cần thiết để thúc đẩy con trỏ với next tùy thuộc vào cách phần còn lại của mã của bạn tương tác với $this->cache_data.

+0

Ok, tk bạn, tôi đã thêm một trường hợp cuối cùng hơn là số nhận dạng của tôi. – yokogeri

+0

@yokogeri Tôi đã giải quyết điều đó trong câu trả lời. –

1

bạn có thể tạo chức năng each() của riêng mình bằng cách sử dụng key(), current()next(). sau đó thay thế các cuộc gọi của bạn với chức năng đó, như thế này:

<?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

Nếu bạn muốn mô phỏng đầy đủ, tôi đoán bạn cần có các khóa "khóa" và "giá trị" ở đầu ra cũng như 0 và 1. –

+0

@ Don'tPanic, câu trả lời đã chỉnh sửa, tình huống này không cần nó nhưng có thể có những trường hợp ngoài kia có thể. cảm ơn cho đề nghị –

+0

Vâng, trường hợp đầu tiên chắc chắn không cần nó. Hai trường hợp thứ hai, chúng ta không thể biết chắc chắn các mảng '$ expected' và' $ kv' được sử dụng như thế nào, vì vậy chúng có thể. Không phải là tôi cũng giải quyết điều đó trong câu trả lời của tôi;) –

Các vấn đề liên quan