PHP学習2日目 反復 条件分岐 連想配列 等

PHP学習2日目になります!

学んだことブログにメモっていきま〜す

 

反復 while, for

ネストがある場合

 

外側の処理1回目

内側の処理が終わるまで繰り返す

外側の処理2回目

内側の処理が終わるまで繰り返す

・・・・

外側の処理最後

内側の処理が終わるまで

<?php
for ($i = 1; $i <= 9; $i++) {
for ($j = 1; $j <= 9; $j++) { #内側のループが終わるまで($j <= 9)続ける. 終わったのち外側に戻る
echo $i * $j;
echo " ";
}
echo PHP_EOL;
}

 

breakでforの処理を抜ける

<?php
for ($i = 0; $i < 10; $i++) {
if ($i == 5) {
break;
}
echo $i . PHP_EOL;
}
echo "end" . PHP_EOL;

この場合$i=5は行われない。

 

continueはその場合の処理を飛ばして続ける

<?php
for ($i = 0; $i < 10; $i++) {
$x = $i % 2;
if ($x == 1) {
continue;
}
echo $i . PHP_EOL;
}
echo "end" . PHP_EOL;

$x == 1だった場合その処理をしない

 

$argv[1]

コマンドラインで入力した情報を返す

<?php
$id = $argv[1];
$password = $argv[2];
if ($id == "Andy" && $password == "secret"){
echo "OK" . PHP_EOL;
}
else{
echo "NG" . PHP_EOL;
}

ターミナル

 % php choice_tr3.php Andy secret 横に書く

    ファイル名 $argv[1] $argv[2]];]

OK (出力結果)

$argv[0]はファイル名

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

論理演算子

==と===の違い

==は自動でデータ型を揃えてくれる。

(文字列と数値でも両方同じ型として扱う。)

===はデータ型を揃えない。

その為違う型同士であれば、falseになる。

また(int)このように書くことで整数型へと変換する

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

連想配列

これはrubyのハッシュだよ。

連想配列の要素を削除するのはunset

配列ではarray_spliceを使っていたので注意。

 

for each 連想配列に入っているやつそれぞれ取り出す

キーとバリューを置いてあげて使う

<?php
$score = ["english" => 90, "math" => 88, "science" => 80];

// $total = $score["english"] + $score["math"] + $score["science"];
// echo $total . PHP_EOL;

$total = 0;
foreach ($score as $key => $value) { #scoreのところには連想配列。 その後ろにas。 
keyとvalueに関しては他の名前で置いてもいい。
$total += $value;
}
echo $total . PHP_EOL;

おまけ

例えばenglishの要素を取り出し時は$score["english"]とする

これは[0]として取り出せない。配列のfor文は連想配列には使えない。添字ではないので。

=>あったら気をつけて

 

PHPマニュアル

説明のところ

()に引数 :の後ろに戻り値の型

phpマニュアルでは引数のことをパラメーターとして説明してる

戻り値のことは返り値としている。