可変長引数リストって忘れがちやな。

2018.08.08

Logging


 

<?php
function hoge(...$hoge) {
     foreach($hoge as $key=>$val){
        sprintf("key = %02d val = %02d",$key,$val);
     }
}
hoge(1);
hoge(1,3,2);
//アンパック
function hoge2($i, $ii) {
    return $i + $ii;
}
$hoge3 = [3, 3];
echo hoge2(...$hoge3);

 
残業したくない自分ですが、仕事に追われています・・・。
なぜに8月に仕事がこんなに山積みなんだと・・・凹んでいます。
今日は可変長引数リストのことについて。
可変長引数リストって使わなかったら忘れがちやな事ですよね?
引数の変数が可変する、ですから可変長引数リスト!?
簡単ですね・・・。
javascriptにもあります。
ES6からPHPと同じ様になっているそうです。
ES6ってChrome42ぐらいからかな。たぶんIEとかでは使用できないのかも。
クックパッドの開発者ブログにやり方書いてます。
https://techlife.cookpad.com/entry/2015/02/02/094607
余談:
PHP5.6からPHP7へ移行している時代かもしれないですが
まだまだレガシーコードで動いているサイトもあると思います。
いや結構あると思います、改修したくても出来ない・・・。
そして新たなレガシーコードみたいなのを生んでいる自分もいます。
なぜ、レガシーコードみたいなのでコード書くのかという理由は
「平均的なコードだから」です。
高知県は特にレガシーコードみたいなのが多い気がします。
言語ってバージョンが上がれば
使われない関数とかセキュリティが甘い関数などは
推奨から非推奨移行して最後は使用不可に
なりますよね・・・あれってどうにかならないものなのか。
そしてライブラリ使っていたりすると破滅的なダメージになります。
そういう面ではJSのライブラリは持ちが良い気がします。
改修したくても・・・時間がない。
 

タグ

$hoge as, $hoge3, AM, Chrome42, echo hoge2, ES6, function hoge2, PHP5.6, PHP7, sprintf, アジャイルサムライ−達人開発者, アンパック, ライブラリ, レガシーコード, 可変長引数リスト,