Deprecated: Function split()

Read More

split()はPHPのVer5.3.0以降、画面に警告文字が出るようになった。

こんな感じの。
Deprecated: Function split() is deprecated in {FileName} on line 2223




PHP Manualによるとこのsplit()は現在では非推奨な関数に指定されているとのこと。



まあ"消える関数"とまでは明言されてはいないけど、推奨しないって言われてるものはわざわざ使わない方が良い。
代替関数もちゃーんと用意されているわけだし。


代替関数はpreg_split()がより高速で良いとされ、さらに高速なのはexplode()とのこと。

つまり同じ(ような)挙動を求めるのならpreg_split()で、正規表現を使わないのであれば高速なexplode()を使えばよい。

preg_split()も、split()とまったく同じ挙動ではないので変更する場合はしっかり動作テストが必要。





しかしsplit()だって"非推奨"であってもまったく使えないわけではない。


中には修正が面倒なのでとりあえずそのままsplit()使いたーいって人もいる、かも、しれ、ない。



ってことで画面の警告を出さずにそのままsplit()を使う方法。


■画面警告を出さない
$ary = @split('[./-]', '2003/12/04');


まあ見て貰えばわかるように"@"(アットマーク)を関数前に付けているだけ。
これをエラー制御演算子という。



一応これをやるとエラー系の画面出力を出さないようにすることが出来る。
けど、も、


この"@"を付けるとエラーが出ない状態であっても処理速度が落ちる


もうかなり昔のことなのでベンチマークテストの結果は残ってないけど、
"@"が有りと無しでは結構な速度の違いが出たと記憶している。


つまり"@"はできるだけ使わない方がいいってこと。



あくまでも一時的な処置として行う場合のみ使うがよろし。