PHPで下のmy_str_splitを実行すると、secondの三項演算子でエラーとなります。
var_dump( my_str_split(1234,5) ); function my_str_split($str,$n){ $tmp = str_split($str, $n); return [ 'first' => intval($tmp[0]) ,'second' => $tmp[1] ? intval($tmp[1]) : 0 ]; }
しかし以下の書き方は平気でした。
var_dump( my_str_split(1234,5) ); function my_str_split($str,$n){ $tmp = str_split($str, $n); return [ 'first' => intval($tmp[0]) ,'second' => $tmp[1] ?? 0 ]; }
最初の「A?B:C」ができないのに、「A??B」ができるのはどうしてでしょうか?
あと、結果は数値で得たいのですが、みなさんならどう書きますか?
調べるとintvalよりintの方が早いらしいので以下がベストでしょうか?
var_dump( my_str_split(1234,5) ); function my_str_split($str,$n){ $tmp = str_split($str, $n); $first = $tmp[0]; $second = $tmp[1] ?? 0; return [ 'first' => (int)$first ,'second' => (int)$second ]; }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/30 12:18