1
3

More than 3 years have passed since last update.

PHP基礎メモその1

Posted at

PHPの書き方

PHPはHTMLに埋め込んで使うことができる。<?php ?>の中にPHPの命令を書いていく。
<?php ?>の部分がHTMLに変換された上で表示される。

PHPのコード
<html>
  <head></head>
  <body>
    <h1>PHP</h1>
    <?php echo '<h2> 初級 </h2>'; ?>
  </body>
</html>
HTMLに変換されたコード
<html>
  <head></head>
  <body>
    <h1>PHP</h1>
    <h2> 初級 </h2>
  </body>
</html>

PHPの文法

PHPでは文末にセミコロン『;』を使って文を区切る。セミコロンを忘れるとエラーが起きるので注意する。

index.php
<?php
  // 末尾にセミコロンをつける!
  echo 'こんにちは';
  echo 'PHPを学ぼう';
?>

文字列を出力

『echo』は文字列などを出力するための命令である。文字列を出力する場合はシングルクォーテーション『'』かダブルクォーテーション『"』で囲む。

<?php echo "Hello, World!"; ?>
// 結果 Hello, World!

<?php echo 'Hello, PHP!'; ?>
// 結果 Hello, PHP!

計算

echo 7 + 3;
echo 2 - 1;
echo 3 * 6;
echo 4 / 2;
echo 5 % 2;

変数

頭に『$』記号をつけることにより変数を定義できる。『$変数名 = 値;』で様々な値を変数に入れることができる。

<?php
  $name = 'Bob';
  echo $name;
?>

結果
Bob

// 正方形の面積を計算
$length = 7;
$area = $length * $length;
echo $area;

結果
49

文字の連結

『.』記号を用いると文字を連結することができる。

$lesson = 'PHP';
echo $lesson.'入門';
// 結果: PHP入門

$level = '入門';
echo $lesson.$lrvel;
// 結果: PHP入門

『.=』を用いると変数の文字列の連結を省略して書くことができる。

$name = '山田';
$name .= '太郎';
// $name = $name.'太郎'と同じ意味

echo $name;

結果
山田太郎

変数展開

$name = 'takahashi';
echo "こんにちは、{$name}さん";
// 結果: こんにちは、takahashiさん

// シングルクォーテーションで囲んだ場合は変数展開されない
echo 'こんにちは、{$name}さん';
// 結果: こんにちは、{$name}さん

if文 else elseif文

if文を使うと条件に応じて処理を分岐できる。

$x = 20;
if ($x > 10) {
  echo '$xは10より大きい';
}

結果
$xは10より大きい

elseはifの条件がfalseであった場合、elseの処理が実行される。

$x = 20;
if ($x == 30) {
  // 処理は実行されない
  echo '$xは30です';
} else {
  // 処理は実行される
  echo '$xは30ではありません';
}

結果
$xは30です

elseifを用いることで、多岐分岐が可能になる。

$x = 20;
if ($x > 30) {
  // falseであるため実行されない
  echo '$xは30より大きい';
} elseif ($x >= 20) {
  // trueであるため実行される
  echo '$xは30以下20以上';
} else {
  // すでに当てはまる条件があったため実行されない
  echo '$xは20より小さい';
}

結果 
$xは30以上20以下

論理演算子

『&&』は『かつ』、『||』は『または』

$x = 20;
if ($x > 10 && $x < 30) {
  echo '$xは10より大きい、かつ30より小さい';
}
if ($x < 10 || $x > 30) {
  echo '$xは10より小さい、または30より大きい';
}

結果
$xは10より大きい、かつ30より小さい

条件の否定

『!』も論理演算子の1つであり、条件の否定ができる。
条件の否定は条件式のtrueとfalseが逆になる

$x = 20;
if (!($x == 30)) {
  echo '$xは30ではない';
}

結果
$xは30ではない

switch文

switch文はswitch(式)の(式)がcaseの値と一致したとき、そのブロックが実行される。caseのどれにも一致しなかった時、defaultのブロックが実行される。

switch ($coin) {
  case 0:
    echo '表';
    break;
  case 1:
    echo '裏';
    break;
  default:
    echo 'エラー';
    break;
}

caseブロックの最後にはbreak命令を指定する。break命令は現在のブロックから脱出するための命令である。break命令がないと、後ろに続くcaseブロックが続けて実行される。

配列

配列の基本構文は『$配列名 = array (値1,値2,・・・);』となっている。
配列のデータには先頭から0,1,2,・・・と順にインデックス番号が割り振られている。
配列のデータを取り出すにはインデックス番号を用いて$配列名[インデックス番号]とする。

$name = array('jhon', 'kate', 'bob');

echo $names[0];
// 結果: john

echo $names[1];
// 結果: kate

値の追加は、『$配列名[] = 値;』とすることで追加できる。
すでに存在するインデックス番号を指定すると、配列の値を上書きすることもできる。

$names = array('john', 'kate', 'bob');
// 配列の末尾に値を追加する
$names[] = 'Mary'; 
echo $names[3];
// 結果: Mary

// 値の上書き
$names[1] = 'jane'
echo $names[1]; 
// 結果: jane

連想配列

$配列名 = array('キー名' => '値1', ・・・); のように、 => を用いてキーと値をセットする。

$user = array(
  'name'   => 'emi',
  'age'    => 14,
  'gender' => 'male'
);

値の取り出すには、対応するキーを用いて『配列名[キー];』のようにする。

$user = array(
  'name' => 'dai',
  'age'  => 14
);

echo $user['name'];
// 結果: dai

『配列名[キー] = 値;』のようにすることで、連想配列にデータを追加することができる。

$user['level'] = 'beginner';

for文

for文は、 for (①初期化; ②ループの条件; ④変数の更新) { ③繰り返す処理; } のように書く。

for ($i = 1; $i <= 100; $i++) {
  echo $i.'<br>';
}

結果
1
2
3



100

while文

while文は

初期化
while (ループの条件 ) {
  繰り返す処理;
  変数の更新;
}

のように書く。

$i = 1;
while ($i <= 100) {
  echo $i;
  $i++;
}

break文

break文は現在のループを強制的に中断する命令である。

for ($i = 1; $i <= 10; $i++) {
  if ($i > 5) {
    // $iが6になった段階でfor文を終了
    break;
  }
  echo $i;
}

結果
12345

continue文

continue文は現在の週だけスキップし、ループそのものは継続して実行する。

for ($i = 1; $i <= 10; $i++) {
  if ($i % 3 == 0) {
    continue;
  }
  echo $i;
}

結果
123457810 (3の倍数)

foreach文

foreach文は配列または連想配列に対して、先頭のデータから順に繰り返し処理を行うための命令である。
『as』の後ろの変数に、ループの度にデータが先頭から順に代入される。

$towns = array('東京', '大阪', '京都');
foreach ($towns as $town) {
  echo $town.' ';
}

結果
東京 大阪 京都

foreach文では、配列内のデータが順次『キー変数』、『値変数』に代入され、それに対して処理が繰り返し適用される。

foreach (配列 as 値変数) {
  繰り返したい処理;
}
foreach (配列 as キー変数 => 値変数) {
  繰り返したい処理;
}

下記のコードでは果物の名前を『キー』として、その色を『値』として保持している連想配列である。
1週目のループでは$keyに'Apple'、$valueに'Red'が、2週目のループでは$keyに'Banana'、$valueに'Yellow'が入っている。

$colors = array(
  'Apple'  => 'Red',
  'Banana' => 'Yellow',
  'Grape'  => 'Purple'
  );
foreach ($colors as $key => $value) {
  echo $key.':'.$value.' ';
}

結果
Apple:Red Banana:Yellow Grape:Purple

関数

関数はあるまとまった処理を行い、値を返すものである。
関数には元から組み込まれているものが有り、それらは組み込み関数と呼ばれている。

strlen
strlenは組み込み関数の一つで、文字列の文字数を返す。
()の中に与える値を引数という。

echo strlen('takahashi');
// 結果 : 7
$user = 'ken'
echo strlen($user);
// 結果 : 3

count
配列の要素の数を返す関数

$towns = array('東京', '大阪', '京都');
echo count($towns);
// 結果 : 3

rand
ランダムな整数を返す関数

echo rand(1, 4);
// 1〜4のランダムな整数を返す
// 結果 : 2 

関数の作成

関数は『function 関数名(){処理}』という書き方をする。

function hello() {
  echo 'Hello, World!';
}

呼び出すには『関数名()』で呼び出す。

hello();

結果
Hello, World!

引数

引数を関数内で使うには、それを受け取るための『仮引数』を関数の定義時に指定しておく必要がある。
仮関数が複数ある場合はカンマ(,)を用いて指定する。

関数の定義

function printSum($num1, $num2) {
  echo $num1 + $num2;
}

関数の呼び出し

printSum(1, 3);

結果
4

戻り値

戻り値は『return』で指定する。

関数の定義

function getSum($num1, $num2) {
  return $num1 + $num2;
}

関数の呼び出し

$sum = getSum(1, 3);
echo $sum;

結果
4

formタグ(HTML)

フォームを作りたいときは、HTMLの<form>タグを用いる。
action属性にはデータを渡す先のURLを指定する。
method属性は値の送信方法で、『get』と『post』のどちらかを指定する。
getの場合は送信される値がurlに表示され、postの場合はurlに表示されない。

<form action="url" method="post">
// フォームの内容
</form>

テキストボックス

テキストボックスを作るにはHTMLの<input type="text">を使う。
name属性は入力された値を取得する時に使う名前である。

<form action="url" method="post">
  email
  <input type="text" name="email">
                     // 入力データに名前をつける
  内容
  <textarea name="content"></textarea>
  // textareaは閉じタグが必要

  // 送信ボタン
  <input type="submit" value="送信">
</form>

フォームのデータを受け取る

フォームで送信した値を受け取るには『$_POST』を使用する。
『$_POST』は連想配列になっている。[]の中に、<input>と<textarea>のname属性に指定した値を入れることで、それぞれの送信した値を受け取ることができる。

index.php
<form action="url" method="post">

  <input type="text" name="name">

  <input type="text" name="email">

  <input type="submit" value="送信">

</form>
sent.php
<?php echo $_POST['name']; ?>
<?php echo $_POST['email']; ?>

$_POSTの中身は連想配列になっている

$_POSTの中身
array(
  'name' => 'takahashi',
  'email' => 'ddd@d.com'
)

セレクトボックス

セレクトボックスは<select>タグの中に<option>タグを並べる。

index.php
<form action="sent.php" method="post">
  <select name="fruit"> 
    <option value="apple" >りんご</option>
    <option value="banana">ばなな</option>
    <option value="orange">みかん</option>
  </select>
</form>
sent.php
<?php echo $_POST['fruit']; ?>

繰り返し処理と変数展開

繰り返し処理と変数展開を用いて多数のoptionタグを作成する。

for ($i = 1; $i < 4; $i++) {
  echo "<option value='{$i}'>{$i}</option>";
}
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3