PHPの->がよくわからない
array_map($func, $array)じゃなくて$array->map($func)って書きたいよなあと思ってちょっとやってみたんだけど、チェーンすると
PHP Fatal error: Unsupported operand types in ...
ってなる。なんでだろう。
<?php class MyArray { private $array; public function __construct() { $this->array = func_get_args(); } public function map($func) { return new MyArray(array_map($func, $this->array)); } public function copy() { return new MyArray($this->array); } } $array = new MyArray(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); $double = function ($x) { return 2 * $x; }; var_dump($array->map($double)); var_dump($array->map($double)->copy()); //これはできる var_dump($array->copy()->map($double)); //これはできない
関数渡すとだめだったりすんのかなあ。わからん。