반응형
메소드를 array_map 함수로 사용할 수 있습니까?
다음과 같이하고 싶습니다.
class Cls { function fun ($ php) { return '스페인의 비.'; } } $ ar = array (1,2,3); $ instance = 새로운 Cls (); print_r (array_map ( '$ instance-> fun', $ ar)); // ^ 작동하지 않습니다
그러나 array_map의 첫 번째 인수는 함수의 이름이어야합니다. $ instance-> fun 주위에 래퍼 함수를 작성하는 것을 피하고 싶지만 가능하지 않은 것 같습니다. 사실인가요?
예, 다음과 같이 메서드에 대한 콜백을 가질 수 있습니다.
array_map(array($instance, 'fun'), $ar)
자세한 내용 은 PHP 매뉴얼 의 콜백 유형 을 참조하십시오 .
당신은 또한 사용할 수 있습니다
array_map('Class::method', $array)
통사론.
실제로 콜백의 정의를 알아야합니다. 다음 코드를 참조하십시오.
<?php
// An example callback function
function my_callback_function() {
echo 'hello world!';
}
// An example callback method
class MyClass {
static function myCallbackMethod() {
echo 'Hello World!';
}
}
$myArray = [1, 2, 3, 4];
// Type 1: Simple callback
array_map('my_callback_function', $myArray);
// Type 2: Static class method call
array_map(array('MyClass', 'myCallbackMethod'), $myArray);
// Type 3: Object method call
$obj = new MyClass();
array_map(array($obj, 'myCallbackMethod'), $myArray);
// Type 4: Static class method call (As of PHP 5.2.3)
array_map('MyClass::myCallbackMethod', $myArray);
// Type 5: Relative static class method call (As of PHP 5.3.0)
class A {
public static function who() {
echo "A\n";
}
}
class B extends A {
public static function who() {
echo "B\n";
}
}
array_map(array('B', 'parent::who'), $myArray); // A
?>
출처 : http://php.net/manual/en/language.types.callable.php
참고URL : https://stackoverflow.com/questions/1077491/can-a-method-be-used-as-an-array-map-function
반응형
'IT TIP' 카테고리의 다른 글
메인 스레드의 Okhttp 응답 콜백 (0) | 2020.12.03 |
---|---|
모든 자식 요소 가져 오기 (0) | 2020.12.03 |
Android에서 일반 Java Array 또는 ArrayList를 Json Array로 변환 (0) | 2020.12.02 |
정규식을 사용하여 NSString에서 하위 문자열 찾기 / 바꾸기 (0) | 2020.12.02 |
새로운 C # 5.0 'async'및 'await'키워드가 다중 코어를 사용합니까? (0) | 2020.12.02 |