無題 (Array_Map)


和淺羽大的簡聊,又再一次得到發現..
關於 PHP 中 array_map 的怪問題,因為目前停工中的東西不是用 OOP 寫,
所以沒遇上這問題,可是淺羽大應該用 OOP , 所以出現了問題..

問題記錄一下,作為備忘:

1
2
3
4
5
6
7
8
// 呼叫函式,相當於 functionName();
'functionName'

// 呼叫類別靜態方法,相當於 className::methodName();
array ('className', 'methodName');

// 呼叫物件方法,相當於 $object->methodName();
array ($object, 'methodName');

一個會得到錯誤的例子 和 修正的例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
class Test {
var $a = array(1, 2, 3, 4, 5);

function cube($n) {
return($n * $n * $n);
}

function show() {
// 如果這,會得到錯誤
// $b = array_map("$this->cube", $this->a);
// 修正代碼如下
$b = array_map(array( $this, "cube" ), $this->a);
echo "<pre>";
print_r($b);
}
}

$o = new Test;
$o->show();
?>