📝
【PHP】初心者向けチートシート
はじめに
プログラミングを少し学習した方へ向けた、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) {}
関連書籍
Discussion