LoginSignup
26
43

More than 5 years have passed since last update.

PHPの書き方【初心者向け】

Last updated at Posted at 2017-11-08

筆者はPHP初心者です。なるべく間違いがないよう尽くしましたが、間違っていた場合はご指摘お願います。

文法

文字列はシングルもしくは、ダブルクォーテーションで囲む※「echo」は文字列を出力するための命令

example.php
<?php
echo 'こんにちは'; //出力結果:こんにちは
echo "こんばんは"; //出力結果:こんばんは

計算式と数値

数字をクォーテーションで囲むと、文字列として表示される。

example.php
<?php
echo '5 + 3'; //結果:5 + 3
echo 5 + 3; //結果:8
echo 5 - 3; //結果:2
echo 4 * 2; //結果:8
echo 4 / 2; //結果:2
echo 9 % 2; //結果:1
echo 5 + 3; //結果:8

変数

変数とはプログラミング言語における値を入れておく箱のこと。頭に「\$」をつけることで変数を定義する。「$変数名 = 値;」で様々な値を変数に入れることが出来る。「=」は右辺を左辺に代入するという意味。

example.php
<?php
$lenght = 3 * 3; //「$lenght」=変数名、「3 * 3」=値
echo $lenght; //結果:9
example.php
<?php
$lenght = 3 * 3;
$area = $lenght * $lenght;
echo $area; //結果:81

変数の更新

変数に、その後再び値を代入すると、後で代入した値によって変数の中身が上書きされる。

example.php
<?php
$num = 3;
$num = 8;
echo $num; //結果:8

変数に数字を足す

変数に数字を足したいときは、変数に数字を足した後、変数に再び代入する。

example.php
$num = 3;
$num = $num + 10;
echo $num; //結果:13

計算式の省略

計算式は、下記のような省略した書き方もできる。

example.php
省略前            省略後
$x = $x + 2;   $x += 2;
$x = $x - 2;   $x -= 2;
$x = $x * 2;   $x *= 2;
$x = $x / 2;   $x /= 2;
$x = $x % 2;   $x %= 2;

値が1の時だけ、さらに省略して書ける

example.php
省略前        省略後
$x += 1;     $x++;
$x -= 1;     $x--;

文字列の連結(ドット「.」)

ドット「.」記号を用いると文字列を連結することが出来る。何も付けないで実行すると、構文エラーになる。

example.php
<?php
$name = '田中';
echo $name . 'さん'; //結果:田中さん

「.=」を用いると変数と文字列の連結を省略して書くことが出来る。

example.php
<?php
$name = '田中';
$name .= 'さん';
echo $name; //結果:田中さん

変数展開

ダブルクォーテーションで文字列を囲んだ場合、中の変数を{}で囲むとその部分が変数に入っている値で置き換えられる。

ダブルクォーテーションで文字列を囲んだ場合

example.php
$name = '田中';
echo "おはよう、{$name}さん"; //結果:おはよう、田中さん

シングルクォーテーションで文字列を囲んだ場合は変数展開されず、変数が{}で囲まれていてもそのまま文字列としてみなされる。

シングルクォーテーションで文字列を囲んだ場合

example.php
$name = '田中';
echo 'おはよう、{$name}さん'; //結果:おはよう、{$name}さん

if文(条件の分岐)

if文を用いると「もし○○ならば○○を行う」という条件分岐が可能になる。条件が成り立つ場合のみ、{}の中の処理が実行される。

以下は「もし、xは5より大きければ処理が実行される」という意味。

example.php
$x = 10;
if($x > 5){
    echo '$xは5より大きい';
} //結果:$xは5より大きい

真偽値

「true(真)」「false(偽)」2つの値がある

example.php
a == b //aとbが等しければtrue
a !== b //aとbが等しくなければtrue
a < b   //aの方がbより小さいときtrue
a > b   //aの方がbより大きいときtrue
a <= b  //aの方がbより小さいまたは等しいときtrue
a >= b  //aの方がbより大きいまたは等しいときtrue

else

elseは「もし○○なら○○を行う、そうでなければxxを行う」という処理ができるようになる。elseは日本語で「別の方法で、他に」の意味を持つ。

example.php
<?php
$x = 2;
if($x > 5){
    echo '$xは5より大きい';
} else {
    echo '$xは5より小さい';
} //結果:$xは5より小さい

elseif

elseifは「もし○○なら○○を行う、そうでなければxxを行う。どちらでもなければ△△を行う」という処理ができるようになる。

example.php
<?php
$x = 5;
if($x > 5){
    echo '$xは5より大きい';
} elseif ($x < 5) {
    echo '$xは5より小さい';
} else {
    echo '$xは5と等しい';
} //結果:$xは5と等しい

論理演算子「&&」「||」

&&(かつ)は、左右の式がともにtrueの場合に処理が実行される。

example.php
<?php
$x = 2;
if($x < 5 && $x > 1){
    echo '$xは5より小さい、かつ1より大きい';
} //結果:$xは5より小さい、かつ1より大きい

||(または)は左右の式のどちらか、もしくは両方がtrueの場合に処理が実行される。

example.php
<?php
$x = 2;
if($x > 5 || $x > 1){
    echo '$xは5より大きい、または1より大きい';
} //結果:$xは5より大きい、または1より大きい

switch文(複雑な条件分岐をシンプルに)

if文による分岐が多く複雑な場合に使われる。変数がcaseの値と一致したとき、そのブロックが実行される。caseのどれにも一致しなかった場合は、defaultのブロックが実行される。

example.php
<?php
$num = 5;
switch ($num) {
    case 8:
        echo "numは8";
        break;
    case 5:
        echo "numは5";
        break;
    case 2:
        echo "numは2";
        break;
    default:
        echo "numは12";
        break;
} //結果:numは5

配列

配列を用いると複数の値をまとめて扱うことができる。書き方は「$配列名[] = 値;」のようにする。また、下記の[0][1][2]はインデックス番号という。インデックス番号は0から始まる。

example.php
<?php
    $animal = array ('猫', '犬', '猿');
    echo $animal[0]; //猫
    echo $animal[1]; //犬
    echo $animal[2]; //猿

配列を使わない場合はこうなる

example.php
<?php
$animal1 = '猫';
$animal2 = '犬';
$animal3 = '猿';

echo $animal1; //猫
echo $animal2; //犬
echo $animal3; //猿

連想配列

連想配列は個々の要素は、インデックス番号ではなく「キー」という文字列などの値を指定することができる。下記の例をみると連想配列はインデックスが数値ではなく、文字列に変わることがわかる。今回の場合、キーは「鈴木」になる。

example.php
<?php
    $age = array(
        '田中' => 24,
        '鈴木' => 36,
        '山崎' => 29,
    );

    echo $age['鈴木'].'歳'; //結果:36歳

配列の場合はこうなる

example.php
<?php
    $age = array (24, 36, 29);
    echo $age[1].'歳'; //結果:36歳

多次元配列

二次元配列以上の配列のこと。

example.php
<?php
    $profiles = array(
        'tanaka' => array(
            'age' => 28,
            'hometown' => '北海道',
            'sex' => '男性'
        ),
        'suzuki' => array(
            'age' => 33,
            'hometown' => '東京',
            'sex' => '女性'
        )
);

echo '田中さん:'.$profiles['tanaka']['age'].'歳'; //田中さん:28歳
echo '田中さん:'.$profiles['tanaka']['sex']; //田中さん:男性
echo '鈴木さん:'.$profiles['suzuki']['hometown']; //鈴木さん:東京

for文(繰り返し処理)

下記はfor文を用いて、1から10までの数字を繰り返し処理で出力している。echoで1から10まで書くよりも楽に記述することができる。

example.php
<?php
for ($i = 1; $i <= 10; $i++) { 
    echo $i;
} //結果:12345678910

while文(繰り返し処理)

for文と同様、繰り返し処理の一つ。

example.php
<?php
$i = 1;
while ($i <= 10) {
    echo $i;
    $i++;
} //結果:12345678910

for文とwhile文の使い分け

繰り返す回数が決まっているときは「for文」、決まっていないときは「while文」を使う。例えば、「○回実行したら終わり」など処理を止めるタイミングが予め決まっている場合は「for文」。何かボタンを押したタイミングなど、「条件ごとに値を処理をしたい」場合は「while文」を使う。※更に詳しい内容は長くなるので割愛

break文

for文などの繰り返し文の中で、ループを強制的に中断する命令ができる。下記は値が7になった時点で処理が終了になる。

example.php
<?php
for ($i=1; $i <= 10; $i++) { 
    if ($i > 6) {
        break;
    }
    echo $i;
} //結果:123456

break文がない場合はこうなる

example.php
<?php
for ($i = 1; $i <= 10; $i++) { 
    echo $i;
} //結果:12345678910

continue文

continue文は現在の周だけをスキップし、ループそのものは継続して実行する。下記は2の倍数のとき、そのループは終了し、次のループを実行している。

example.php
<?php
for ($i=1; $i <= 10; $i++) { 
    if ($i % 2 == 0) {
        continue;
    }
    echo $i;
} //結果:13579

continue文がない場合はこうなる

example.php
<?php
for ($i = 1; $i <= 10; $i++) { 
    echo $i;
} //結果:12345678910

foreach文

配列や連想配列に対し、先頭から順に繰り返し処理を行う。asの後ろの変数に、ループの度にデータが先頭から順に代入されていく。

配列

example.php
<?php
$animal = array('猫','犬','猿');
foreach ($animal as $value) {
    echo $value;
} //結果:猫犬猿

連想配列

example.php
<?php
$animal = array(
    '猫' => 'cat',
    '犬' => 'dog',
    '猿' => 'monkey'
);

foreach ($animal as $japanese => $english) {
    echo $japanese.':'.$english;
} //結果:猫:cat犬:dog猿:monkey

関数

処理をひとまとめに定義して、使い回す際に使う。次の「strlen」と「date」は関数の一部。

strlen関数(文字列の長さを取得する)

文字列の文字数を返す関数。読み方は、ストラレンと読むらしい。

example.php
<?php
echo strlen('dog'); //結果:3

date関数(日付と時刻を取得する)

下記は日本の現在の日付を時刻を出力している。「Y」は年。「m」は月。「d」は日。「H」は時。「i」は分を表す。半角や全角によって表示される桁数が違う場合がある。

example.php
<?php
date_default_timezone_set('Asia/Tokyo');

echo date("Y年m月d日H時i分");//結果(例): 2017年01月01日00時00分

自作関数(ユーザー定義関数)

関数を作るには「function 関数名(){ 処理 }」という書き方をする。

example.php
<?php
function animal() {
    echo 'cat';
}
animal(); //結果:cat

引数

関数を呼び出す際、関数に値を渡すと、関数内でその値を利用することができる。この値を引数と言う。

example.php
<?php
function animal($name) {
    echo 'この動物は' . $name . 'です。';
}
animal('猫'); //結果:この動物は猫です。 
animal('犬'); //結果:この動物は犬です。
animal('猿'); //結果:この動物は猿です。

上記の例を具体的にすると・・・関数を呼び出す際、関数(animal)に値(\$name)を渡すと、関数内でその値を利用することができる。この値($name)を引数と言う。

第一引数,第二引数

下記の例でいくと「\$first_name」が第一引数、「$second_name」が第二引数。

example.php
<?php
function animal($first_name,$second_name) {
    echo '私が昨日見た動物は' . $first_name . 'と' . $second_name . 'です。';
}
animal('クマ','ワニ'); //結果:私が昨日見た動物はクマとワニです。 
animal('ペンギン','パンダ'); //結果:私が昨日見た動物はペンギンとパンダです。

戻り値

関数から戻ってくる値のこと。関数helloの処理結果をreturnで返している。

example.php
function hello($name){
  return "こんにちは、${name}さん";
}
echo hello("田中"); //こんにちは、田中さん

return無しの場合はこうなる

example.php
function hello($name){
  echo "こんにちは、${name}さん";
}

hello("田中"); //こんにちは、田中さん

オブジェクト指向

オブジェクトは「もの」、指向は「中心に」という意味。つまり、ものを中心にした考え方ということ。 例えば、ショッピングサイトには「商品・ユーザー・購入履歴・カート」など、さまざまな物事が存在する。この物事について各クラスを作る。

▼例えば商品クラスには、商品に必要な性質や処理を持たせる。
・性質「名前」「価格」「品番」など
・処理「商品名を変更する」「値下げを適用する」など

これがものを中心にした考え方の簡単なイメージ。

用語まとめ

  • echo(文字列などを出力するための命令。関数ではない)
  • 変数(使い回しができる、データの入れ物。頭に「$」をつける)
  • 代入(右辺を左辺に置き換えること。「=」で表す)
  • 値(文字や式などが指す数値のこと)
  • if文(条件に応じて処理を分岐することができるもの)
  • 比較演算子(「<」や「>」のような2つの値を比較する記号のこと)
  • 真偽値(比較した結果の値。「true:真」または「false:偽」を返す)
  • else(「もし○なら○を行う、そうでなければxを行う」という処理。ifと組み合わせる)
  • elseif(「もし○なら○を行う、そうでなければxを行う。どちらでもなければ△を行う」という処理)
  • 論理演算子(複数の条件を1つにまとめる時に使う。「&&」と「||」の記号で表す)
  • switch文(if文による分岐が多く複雑な場合に使われる)
  • 配列(ひとつの箱に複数の値を入れることができるもの)
  • array(配列を意味している。PHPでの配列の定義方法で「アレイ」と読む)
  • 連想配列(配列と同じような用途で使われる。連想配列はインデックス番号ではなく、「キー」と呼ばれる文字列などの値を指定することが可能)
  • 多次元配列(二次元配列以上の配列のこと)
  • for文(繰り返しする処理を実行できる。基本、繰り返す回数が決まっているときに使う)
  • while文(繰り返しする処理を実行できる。基本、繰り返す回数が決まっていないときに使う)
  • break文(for,while,foreachなどのループを強制的に中断する命令)
  • continue文(forなどと一緒に使う。現在の周だけをスキップし、ループそのものは継続して実行する)
  • foreach文(forなどと一緒に使う。配列や連想配列に対し、先頭から順に繰り返し処理を行う。asの後ろの変数に、ループの度にデータが先頭から順に代入されていく)
  • 関数(処理をひとまとめに定義して、使い回す際に使う)
  • 自作関数、ユーザー定義関数(自分でつくった関数。関数名を決めることができる)
  • 引数(関数に渡す値のこと。関数を呼び出す際、関数に値を渡すと、関数内でその値を利用することができる)
  • 戻り値(関数から戻ってくる値のこと)
26
43
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
26
43