gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

スタックが壊れる!?

んっと。


function foo($f, $s)
ってな関数がございます。んで、こいつを


foo();
ってcallすると当然のごとく怒られます。
では質問。


function foo()
に対して


foo("first", "second");
とcallするとどうなるか?
答え:
問題なく(ワーニング一つ出ず)プログラムが流れる。
…………で片付けばわざわざ書きません。
ケースbyケースです。状況次第です。…が。
「スタック領域ぶち壊したげな挙動を示しつつ限りなくお亡くなりに近い状態になる」
が正解です。


職場の環境では、引数0のmethodに引数一つ与えただけで、メモリ食いつぶしてスワップ食いつぶしてスワップのためにCPU食いつぶして、httpdプロセスが一つどえりゃぁ事になりました。
で、解決策ですが。
人間の目でチェック。以上。ほかに手段…現状では不明。PHPではどうもヘッジしてくれないっぽいです。


………困ったもんです;;
一応、PHPって「よく使われてる言語」だと思うのですが。…なんでこんなにドラフト感満載なんでしょ?
追記
コマンドライン経由ですが、-lオプションをつけるとlintモードになるようです。
素晴らしい機能です。早速確認です。


No syntax errors detected in hoge.php
………ええまぁ予想はしてましたが。ダメポです。