Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

PHP: Gọi phương thức object trong mảng dùng array_map


Trong PHP 5.3, phương thức object trong mảng có thể gọi bằng mã sau:

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

Điều này chậm hơn vòng lặp 'for' vì gọi một hàm cho mỗi phần tử:

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

Thay thế, cho PHP trước 5.3, dùng mã sau:

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

Hàm getProperty gọi trên tất cả object và thuộc tính cụ thể 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 utf8 encoded của value sẽ hiển thị.