08/12/10 16:15:22
なにやら混乱があるようだけど、 array() は関数ではないよ。echo などと同
様、言語構成要素の一つ。
array($x, $y,) のように、array()は最後の引数のあとにも , を置くことがで
きる。
URLリンク(jp.php.net)
これは、array()の評価のされ方が、関数と同じではないことを示している。一
般のユーザがPHPやCで関数を書いて、array()と同じ挙動をさせることはできな
い。このことから明らかに、array()はPHPの構文解析器そのものに組み込まれ
た言語構成要素。
また array()はコールバックとして他の関数に与えることもできない。
URLリンク(jp.php.net)
これもやはり、 array()が関数ではなく言語構成要素だから。LISPで言えば、
高階関数にスペシャルフォームを与えることはできないのと同じ。