📘

PHP 基礎

2023/04/16に公開

あくまでも一例。
細かい使い方については参考文献の部分を参照したり、ググったりしてみてください。

1行の終わり(区切り文字)

PHPは実行の区切り文字として「;(セミコロン)」が必要。

忘れるとエラーになるので注意

コメントアウト

PHPのコメントは主に3種類

#を使った方法

#が登場してからその行の右側がコメントアウト扱い

<?php
$hello = "aaa"; # ここがコメント
?>

//を使った方法

#と同じ。

<?php
$hello = "aaa"; // ここがコメント
?>

/* */を使った方法

複数行のコメントに使う

/* ここがコメント
ここがコメント
ここがコメント
ここがコメント */

文字の出力

<?php
echo('Hello World');

print('Hello World');
?>

改行させたい時

<br>タグを使う

<?php
echo("Hello World");
?>
<br>
<?php
print("Hello World");
?>

とか

<?php
echo("Hello World <br>");
print("Hello World");
?>

ってしてあげるとできる。

PHPはHTMLを生成するのに使用するので<br>を出力するとブラウザが改行と判断してくれる

変数の宣言と代入

変数は「$」+変数名で表される

変数名として利用できる文字列は先頭がアンダーバーかアルファベットで始まり、
その後にアンダーバー、数字、アルファベットが続くもの。

<?php
$name = "YAMADA"; 
$_pref_name = "TOKYO"; 
$year2008 = 2008; 
?>

PHPは基本的に変数に「型」を書かなくてもなんでも代入できる。

表示したい時

宣言、代入した後、echoprint関数を使うことで表示が可能

<?php
$name = "YAMADA"; 
echo ($name);
echo ("<br>");
print($name);
?>

<br>のタグもPHPから表示制御することで「改行する」「改行しない」の切り替えが可能になる。

分岐

if 文による分岐

多言語同様、elseifelseも使用可能

<?php
$type = '.jpg';

if ($type == '.jpg'){
    print ("画像ファイルです");
}elseif ($type == '.mp3'){
    print ("音声、音楽ファイルです");
}elseif ($type == '.mp4'){
    print ("動画ファイルです");
}else{
  print ("不明です");
}
?>

swich文による分岐

breakは記述しないと下の処理をそのまま実行されてしまう。defaultは記述しなくても問題ない。

<?php

$pref = '神奈川';

switch ($pref){
case '東京':
  // 処理
  break;
case '大阪':
  // 処理
  break;
case '京都':
  // 処理
  break;
case '神奈川':
  // 処理
  break;
default:
  // 処理
}
?>

繰り返し

for文の場合。

<?php
for ($num = 0; $num < 10; $num++){
  print "num=".$num;
}
?>

個人的には「$」忘れがちになる。

foreachを使用する場合

これは結構使う。
配列を添字なしでループさせる方法。
as区の左側に元々の配列、右側にループ内で使う配列の要素用の変数を定義するとループするごとに右側の変数に値が新しく代入される。

<?php
$preflist = array('東京', '大阪', '名古屋');

foreach ($preflist as $pref){
  print $pref;
}
?>

配列

参照、代入

添字を使えば要素へのアクセスが可能

<?php
$result[0] = 85;
$result[1] = 92;
$result[2] = 68;

print $result[0];
print $result[1];
print $result[2];
?>

for文でやる場合にはこう

<?php
$result[0] = 85;
$result[1] = 92;
$result[2] = 68;

for ($i = 0; $i < 3; $i++){
  print $result[$i];
}
?>

関数

functionとして事前に定義しておくことで使用できる。

<?php
function check($kamoku, $tensuu){
  print $kamoku.'の結果:';
  if ($tensuu > 75){
    print '合格です';
  }else{
    print '不合格です';
  }
}

$sugaku = 84;
$eigo = 62;
$kokugo = 78;

check('数学', $sugaku);
check('英語', $eigo);
check('国語', $kokugo);
?>

以前書いたコードを一部見やすくしたものがこんな感じ。

$aryWeek$aryDateを設定や月に合わせてずらしながら配列に格納してあげることで
HTMLはほとんど変えずに、カレンダーを表示することができる。


<?php 
    $aryWeek = ['月','火','水','木','金','土','日'];
    $aryDate = [[1,2,3,4,5,6,7],
                [8,9,10,11,12,13,14],
                [15,16,17,18,19,20,21],
                [22,23,24,25,26,27,28],
                [29,30,31]];
?>
<table>
    <!-- 曜日の表示 -->
    <tr>
    <?php foreach($aryWeek as $week){ ?>
        <th><?php echo $week ?></th>
    <?php } ?>
    </tr>
    <!-- 日数の表示 -->
    <?php foreach( $aryDate as $tr ){ ?>
    <tr>
        <?php foreach($tr as $td){ ?>
            <td><?php echo $td ?></td>
        <?php } ?>
    </tr>
    <?php } ?>
</table>

<!-- XXXX -->のコメント方法はHTMLのコメント

参考文献

https://www.javadrive.jp/php

Discussion