PHP

PHP 7.0.xからPHP 7.1.xの進化-連想配列編-

PHP7.0.xからPHP7.1.xの進化点として

連想配列の扱い方が新しくなったようです。

 

ポイントとしては、foeach()のas のあとの変数の扱い方が変わったことですね。

取得した配列からデータのアクセスをする必要がなくなります。

 

とても可読性が上がると思うので是非使ってみてください。

$capitals = [
  ['Japan',         'Tokyo'], 
  ['UnitedKingdom', 'London'], 
  ['Netherlands',   'Amsterdam'], 
  ['France',        'Paris'], 
];

// php 7.1.xからの対応
foreach ($capitals as [$country, $capital]) {
  var_dump('国は' . $country . 'です。首都は' . $capital . 'です。');
}
/*
string(43) "国はJapanです。首都はTokyoです。"
string(52) "国はUnitedKingdomです。首都はLondonです。"
string(53) "国はNetherlandsです。首都はAmsterdamです。"
string(44) "国はFranceです。首都はParisです。"
*/

listで取得することもできます!

// php 7.1.xからの対応
foreach ($capitals as list($country, $capital)) {
  var_dump('国は' . $country . 'です。首都は' . $capital . 'です。');
}
/*
string(43) "国はJapanです。首都はTokyoです。"
string(52) "国はUnitedKingdomです。首都はLondonです。"
string(53) "国はNetherlandsです。首都はAmsterdamです。"
string(44) "国はFranceです。首都はParisです。"
*/

どちらかというと、前者のほうが見やすいかな??という印象です(*^^*)

 

言語もどんどん進化していますね!

何か参考になれば幸いです(*^^*)

PHP7ではてな(クエスチョン)2つってどういう意味?

PHP7から出てきた[はてな2つ]の意味

2015/12/03にリリースされたPHP7から出現したはてな2つなのですが、

nullのチェックができうようになりました。

例として、以下のような文を使うときに使えます。

// PHP7以前の場合
$test = isset($sample['a'])) ? $sample['a'] : 'no sample a';

PHP7になると以下のとおり。

// php7以降
$test = $sample['a'] ?? 'no sample a';

とても簡潔に書くことが出来ます。

if文の中でも使えますね。

$sample['a'] = 111;
if ($sample['a'] ?? '') {
    echo $sample['a'];
}
// 111が表示される

if ($sample['b'] ?? '') {
    echo 'test';
}
// なにも表示されない

$sample['a'] = 0;
if ($sample['a'] ?? '') {
    echo $sample['a'];
}
// なにも表示されない

こんな感じでシンプルに書くことができます。

ぜひ参考にしてみてください。