Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

array_map을 사용하여 배열에 있는 객체의 PHP 호출 메소드?

<시간/>

PHP 버전 5.3에서 배열의 객체 메소드는 아래 코드를 사용하여 호출할 수 있습니다 -

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

이것은 모든 요소에 대해 하나의 함수를 호출하기 때문에 'for' 루프보다 느릴 것입니다 -

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

또는 PHP 5.3 이전 버전의 경우 아래 코드를 사용할 수 있습니다. -

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

모든 객체에 대해 getProperty 함수가 호출되고 특정 속성이 표시됩니다. 대안 -

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);

값의 utf8로 인코딩된 데이터가 표시됩니다.