Computer >> Máy Tính >  >> Lập trình >> PHP

PHP Gọi phương thức của các đối tượng trong mảng bằng cách sử dụng array_map?

Trong phiên bản PHP 5.3, các phương thức của các đối tượng trong mảng có thể được gọi bằng đoạn mã dưới đây -

$props = array_map(function($obj){ return $obj->getProp(); }, $objs);

Điều này sẽ chậm hơn vòng lặp ‘for’ vì nó gọi một hàm cho mọi phần tử -

function map($obj) {
   return $obj->getProperty();
}
$props = array_map('map', $objs);

Ngoài ra, đối với các phiên bản PHP trước 5.3, có thể sử dụng mã dưới đây -

function map($obj) {
   return $obj-> getProperty ();
}
$props = array_map('map', $objs);
}

Hàm getProperty sẽ được gọi trên tất cả các đối tượng và thuộc tính cụ thể được hiển thị. Thay thế -

function encode_data($val){
   if(is_array($val)){
      return $val = array_map('encode_data', $val);
   } else {
      return utf8_encode($val);
   } 
}
$value = array_map('encode_data', $value);
print_r($value);

Dữ liệu được mã hóa utf8 của giá trị sẽ được hiển thị.