2009-08-03
PHP で引数をそのまま返す関数を作っておくと便利
PHP では以下のように new してすぐメソッドを呼べない
<?php new DateTime()->getOffset();
なので、引数をそのまま返す関数を作ってやると
<?php function expr($a) { return $a; } expr(new DateTime())->getOffset(); // OK!
便利だなー
おまけ
<?php function expr($a) { return $a; } function idx($array, $i) { return $array[$i]; } echo idx(idx(expr(new DateTimeZone('Asia/Tokyo'))->getTransitions(), 0), 'abbr') . "\n";
おまけ2
無名関数をそのまま呼ぶときにも使える。
<?php function expr($a) { return $a; } expr(function() { echo "hello\n"; })->__invoke();
おまけ3
配列は、以下のようにして繋ぐことも
<?php class Ref { var $val; function __construct($a) { $this->val = $a; } } function ref($a) { return new Ref($a); } ref(array(1, 2, 3))->val[0];
トラックバック - http://d.hatena.ne.jp/amachang/20090803/1249292858
- foldrrの日記 - amachang さんの PHP で引数をそのまま返す関数を作...
- nullpo.printStackTrace(); - Java で引数をそのまま返す関数を作っ...
- 葉っぱ日記 - JSでthisをそのまま返す関数を作っておくと便利?
- muddy brown thang - 「パッチを当ててやってもいいんだぞ、お前が...
- [php][yacc]「パッチを当ててやってもいいんだぞ、お前が嫌なら」
- [php][hack] PHP に autoboxing 追加するパッチ
- JSでthisを返す拡張をしておくと便利? ※ただしFirefoxにかぎる
- とはえ領域 - PHPでプロトタイプベースのオブジェクト指向をやって...
- 不思議なサービスをつくる新人プログラマーの日記 - PHPでメソッド...
- 写経日記 - 本当は残酷な PHP で引数をそのまま返す関数を作ってお...
- PHP変態文法最速マスター
- iakioの日記 - PHPってfoo()[0]みたいなこと出来なくて不便だよねっ...
- input*output - 引数をそのまま返す関数を作ると便利らしい
リンク元
- 559 http://b.hatena.ne.jp/hotentry
- 421 http://reader.livedoor.com/reader/
- 335 http://d.hatena.ne.jp/
- 252 http://b.hatena.ne.jp/hotentry/it
- 172 http://www.google.co.jp/reader/view/
- 171 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja-JP-mac:official&hs=avu&q=IE7+IE6+IE8&btnG=検索&lr=lang_ja
- 146 http://www.nobodyplace.com/mutter/2009/03/20/140902.php
- 127 http://b.hatena.ne.jp/entry/d.hatena.ne.jp/amachang/20090803/1249292858
- 127 http://www.google.com/reader/view/
- 113 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4ADRA_jaJP336JP336&q=javascript if
