📝

【PHP】初心者向けチートシート

2023/11/29に公開

はじめに

プログラミングを少し学習した方へ向けた、PHPの早見表です。
内容については今後も更新予定です。

演算子

種別 名前
代入演算子 = 代入(Assignment)
文字列演算子 $a . $b 文字列結合(String concatenation)
比較演算子 $a === $b 等しい(Identical)
比較演算子 $a !== $b 等しくない(Not identical)
比較演算子 $a < $b より少ない(Less than)
比較演算子 $a > $b より多い(Greater than)
比較演算子 $a <= $b より少ないか等しい(Less than or equal to)
比較演算子 $a >= $b より多いか等しい(Greater than or equal to)
論理演算子 !$a 否定(Not)
論理演算子 $a && $b 論理積(And)
論理演算子 $a || $b 論理和(Or)
加算子/減算子 $a++ 後置加算子(Post-increment)
算術演算子 -$a 負にする(Negation)
算術演算子 $a + $b 加算(Addition)
算術演算子 $a - $b 減算(Subtraction)
算術演算子 $a * $b 乗算(Multiplication)
算術演算子 $a / $b 除算(Division)
算術演算子 $a % $b 剰余(Modulo)
算術演算子 $a ** $b 累乗(Exponentiation)
三項演算子 $a ? '真' : '偽' 三項演算子(Ternary)
Null合体演算子 $a ?? 'default' Null 合体演算子(Null Coalescing)

データ型

基本型の一覧です。

型の種類 PHPデータ型 説明 値の例 変数初期化の例
整数型 int
(イント)
正の整数、負の整数、ゼロを表す。
integer(インテジャー)とも呼ばれる
42, -10, 0 $value = 0;
浮動小数点数型 float
(フロート)
小数を表す。
double(ダブル)とも呼ばれる
3.14, -0.5, 1.0E+10 $value = 0.0;
文字列型 string
(ストリング)
テキストデータを表す。 "Hello", 'World', "" $value = '';
論理型 bool
(ブール)
真 (true) または偽 (false) を表す。
boolean(ブーリアン)とも呼ばれる
true, false $value = false;
Null null
(ヌル)
NULL 値を表す。
PHPでは未定義の状態を示す型
null $value = null;
配列型 array
(アレイ)
複数の値をまとめて格納する。 [1, 2, 3], ['a', 'b', 'c'] $value = [];
参考

string(ストリング、文字列)

連結

<?php

// 定義
$str1 = 'language';
$str2 = 'world';
$str3 = 'string';

// $result1 〜 $result4 は全て同じ結果
$result1 = $str1 . '-' . $str2 . '-' . $str3; // language-world-string

$result2 = "{$str1}-{$str2}-{$str3}"; // language-world-string

$result3 = $str1; // language
$result3 .= '-'; // language-
$result3 .= $str2; // language-world
$result3 .= '-'; // language-world-
$result3 .= $str3; // language-world-string

$words = [$str1, $str2, $str3]; // ['language', 'world', 'string']
$result4 = implode('-', $words); // language-world-string

var_dump($result1, $result2, $result3, $result4);
出力
string(21) "language-world-string"
string(21) "language-world-string"
string(21) "language-world-string"
string(21) "language-world-string"
参考

エスケープシーケンス

記述 意味
\n 改行コード: LF (ラインフィード)
\r\n 改行コード: CRLF (キャリッジリターン / ラインフィード)
\t 水平タブ (メモ帳等で、キーボードのTabキー押下で出てくる空白文字)
\\ バックスラッシュ
\$ ドル記号
\" 二重引用符
<?php

$str11 = '1-1';
$str12 = '1-2';
$str21 = '2-1';
$str22 = '2-2';

// \n = 改行(LF).   \t = タブ   PHPは「"」で囲む必要がある。
$result = $str11 . "\t" . $str12 . "\n" . $str21 . "\t" . $str22;

echo "<pre>\n{$result}\n</pre>";
出力
<pre>
1-1	1-2
2-1	2-2
</pre>
参考

array(アレイ、配列)

構文
定義 [値1, 値2, ...] $names = ['佐藤', '鈴木', '高橋'];
要素取得 配列[添字] $name = $names[1];
要素追加 配列[] = 追加する要素 $names[] = '田中';
要素削除 unset(配列[添字]) unset($names[1]);
foreach
(フォーイーチ)
foreach (配列 as 添字変数 => 値変数) { 処理 } foreach ($names as $i => $name) { var_dump($name); }
定義
<?php
// [値1, 値2, ...]
$names = ['佐藤', '鈴木', '高橋'];
var_dump($names);
出力
array(3) {
  [0]=>
  string(6) "佐藤"
  [1]=>
  string(6) "鈴木"
  [2]=>
  string(6) "高橋"
}
要素取得
<?php
$names = ['佐藤', '鈴木', '高橋'];
// 配列[添字]
$name = $names[1]; // 「鈴木」を取得
var_dump($name); // string(6) "鈴木"
要素追加
<?php
$names = ['佐藤', '鈴木', '高橋'];
// 配列[] = 追加する要素
$names[] = '田中'; // 「田中」を追加
var_dump($names);
出力
array(4) {
  [0]=>
  string(6) "佐藤"
  [1]=>
  string(6) "鈴木"
  [2]=>
  string(6) "高橋"
  [3]=>
  string(6) "田中"
}
要素削除
<?php
$names = ['佐藤', '鈴木', '高橋'];
// unset(配列[添字])
unset($names[1]); // 「鈴木」を削除
var_dump($names);
出力
array(2) {
  [0]=>
  string(6) "佐藤"
  [2]=>
  string(6) "高橋"
}
foreach
<?php
$names = ['佐藤', '鈴木', '高橋'];
// foreach (配列 as 添字変数 => 値変数)
foreach ($names as $i => $name) {
    var_dump($i); // $i に添字が入る
    var_dump($name); // $name に要素が入る
}
出力
int(0)
string(6) "佐藤"
int(1)
string(6) "鈴木"
int(2)
string(6) "高橋"
参考

連想配列

構文
定義 [キー1 => 値1, キー2 => 値2, ...] $user = ['id' => 101, 'name' => '佐藤'];
要素取得 配列[キー] $name = $user['name'];
要素追加 配列[追加するキー] = 追加する要素 $user['email'] = 'foo@example.com';
要素削除 unset(配列[キー]) unset($user['name']);
foreach foreach (配列 as キー変数 => 値変数) { 処理 } foreach ($user as $key => $value) { var_dump($value); }
定義
<?php
// [キー1 => 値1, キー2 => 値2, ...]
$user = ['id' => 101, 'name' => '佐藤'];
var_dump($user);
出力
array(2) {
  ["id"]=>
  int(101)
  ["name"]=>
  string(6) "佐藤"
}
要素取得
<?php
$user = ['id' => 101, 'name' => '佐藤'];
// 配列[キー]
$name = $user['name']; // 「佐藤」を取得
var_dump($name); // string(6) "佐藤"
要素追加
<?php
$user = ['id' => 101, 'name' => '佐藤'];
// 配列[追加するキー] = 追加する要素
$user['email'] = 'foo@example.com'; // 「email」キーに「foo@example.com」を追加
var_dump($user);
出力
array(3) {
  ["id"]=>
  int(101)
  ["name"]=>
  string(6) "佐藤"
  ["email"]=>
  string(15) "foo@example.com"
}
要素削除
<?php
$user = ['id' => 101, 'name' => '佐藤'];
// unset(配列[キー])
unset($user['name']); // 「佐藤」を削除
var_dump($user);
出力
array(1) {
  ["id"]=>
  int(101)
}
foreach

使い方は配列のforeachと同様です。

<?php
$user = ['id' => 101, 'name' => '佐藤'];
// foreach (連想配列 as キーを入れる変数 => 値を入れる変数)
foreach ($user as $key => $value) {
    var_dump($key); // $key にキーが入る
    var_dump($value); // $value に要素が入る
}
出力
string(2) "id"
int(101)
string(4) "name"
string(6) "佐藤"
参考

多次元配列

定義
<?php
$users = [
    ['id' => 101, 'name' => '佐藤'],
    ['id' => 102, 'name' => '鈴木'],
    ['id' => 103, 'name' => '高橋'],
];
var_dump($users);
出力
array(3) {
  [0]=>
  array(2) {
    ["id"]=>
    int(101)
    ["name"]=>
    string(6) "佐藤"
  }
  [1]=>
  array(2) {
    ["id"]=>
    int(102)
    ["name"]=>
    string(6) "鈴木"
  }
  [2]=>
  array(2) {
    ["id"]=>
    int(103)
    ["name"]=>
    string(6) "高橋"
  }
}
foreach
<?php
$users = [
    ['id' => 101, 'name' => '佐藤'],
    ['id' => 102, 'name' => '鈴木'],
    ['id' => 103, 'name' => '高橋'],
];

foreach ($users as $i => $user) {
    $id = $user['id'];
    $name = $user['name'];
    echo "[{$i}] id: {$id}  name: {$name}" . PHP_EOL;
}
出力
[0] id: 101  name: 佐藤
[1] id: 102  name: 鈴木
[2] id: 103  name: 高橋
参考

require_once(リクワイヤ ワンス)

<?php
require_once(__DIR__ . '/../app/Models/User.php');
参考

echo(エコー)

<?php
echo 'abc';
参考

var_dump(バーダンプ)

<?php
$variable = 'abc';
var_dump($variable);
参考

if(イフ)

<?php
$value1 = 3;
$value2 = 5;

if ($value1 === $value2) {
    echo '同じ';
} elseif ($value1 > $value2) {
    echo '$value1が大きい';
} else {
    echo '$value2が大きい';
}
参考

class(クラス)

クラス定義
<?php
class Point
{
}

コンストラクタ・プロパティ

クラス定義
<?php
class Point
{
    protected int $x; // プロパティ x
    protected int $y; // プロパティ y

    public function __construct(int $x, int $y)
    {
        $this->x = $x; // インスタンス生成時の第1引数をプロパティxに設定
        $this->y = $y; // インスタンス生成時の第2引数をプロパティyに設定
    }
}
使用例
$point = new Point(2, 3); // インスタンス生成
var_dump($point);
出力
object(Point)#1 (2) {
  ["x":protected]=>
  int(2)
  ["y":protected]=>
  int(3)
}

メソッド

クラス定義
<?php
class Point
{
    protected int $x;
    protected int $y;

    public function __construct(int $x, int $y)
    {
        $this->x = $x;
        $this->y = $y;
    }

    public function getX(): int
    {
        return $this->x;
    }
}
使用例
$point = new Point(2, 3);
$x = $point->getX(); // getX メソッド実行
var_dump($x); // int(2)

静的メソッド

クラス定義
<?php
class StringUtility
{
    public static function concat(string $str1, string $str2): string
    {
        return $str1 . $str2;
    }
}
使用例
$str = StringUtility::concat('Git', 'Hub'); // concat メソッド実行
var_dump($str); // string(6) "GitHub"

namespace(ネームスペース、名前空間)

定義
<?php
namespace App\Drawing;

class Point // \App\Drawing\Point クラス
{
}
使用例1
$point = new \App\Drawing\Point();
var_dump($point); // object(App\Drawing\Point)#1 (0) {}
使用例2
// use はクラスの外に記述すること
use App\Drawing\Point as P; // \App\Drawing\Point を P でも使えるようにする

$point = new P();
var_dump($point); // object(App\Drawing\Point)#1 (0) {}
使用例3
// use はクラスの外に記述すること
use App\Drawing\Point; // use App\Drawing\Point as Point; と同じ

$point = new Point();
var_dump($point); // object(App\Drawing\Point)#1 (0) {}

https://zenn.dev/seiya0/articles/tech-php-namespace

関連書籍

https://amzn.to/3O7Td5A

https://amzn.to/3WXfMhn

Discussion