目次
この記事の目的
別の言語を触っていて、PHPに戻ってくるとクラスやメソッド、変数などの定義の仕方を忘れているときがあるのでメモとして、見返すことのできるように残しておく
変数,定数
変数
PHPでは型宣言は必要ないので、リテラルの値によって変数の型が変化する
1 2 3 4
| <?php $data = "AAA";
echo $data;
|
定数
- 定数名は大文字で定義する
- 呼び出すときに変数のように
$
は必要ない1 2 3 4 5
| <?php define('TAX',0.08);
echo TAX;
|
配列
- PHPの配列は連想配列と同じ
- キーの部分を定義していない場合、0から数値の連番の値が入る
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
| <?php
$emptyArray = [];
$array = ['a','b','c'];
$array[] = 'd';
$dicArray = ['a'=>10,'b'=>20,'c'=>30];
$dicArray['d'] = 40;
print_r($dicArray);
|
構文
if文
1 2 3 4 5 6 7 8 9 10 11
| <?php
$data = "a";
if($data === "a"){ }else if($data === "b"){ }else{ }
|
for文
1 2 3 4
| <?php for($i =0;i<100;i++){ echo $i; }
|
foreach文
- C#とは違い、
配列 as 各要素
になる(C#とは順番が逆)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?php
$array = ['a','b','c'];
foreach($array as $data){ echo $data; }
foreach($array as $key=>$data){ echo $key; echo $data; }
|
switch文
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?php
$data = "a";
switch($data){ case "a": break; case "b": break; case "c": break; default: }
|
関数関係
関数
- 関数名は
小文字
- 基本は引数の型宣言や戻り地の型宣言をしたほうがいい
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?php
function test($data){ return $data * 2; }
function test2(int $data):int{ return $data * 2; }
$value = test2(1); echo $value;
|
クロージャー(無名関数)
- 関数を変数として扱う
1 2 3 4 5 6 7 8 9
| <?php
$func = function (int $data){ return $data * 2; }
$func(4);
|
クロージャーを関数の引数に渡す
callable型
を引数にすることで関数を関数に引き渡せる
1 2 3 4 5 6 7
| <?php function test(callable $endFunc):void{
$endFunc(); }
|
クラス関係
アクセス修飾子
クラスの定義
プロパティ(メンバ変数)
- ローワーキャメル記法で定義する
- PHP7.2以降から、データ型の指定ができる
- 同じクラス内で呼び出す場合
$this->プロパティ名
で呼び出す1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?php class Test { public $data1;
public int $data2;
public int $data3 = 1;
public function printFunc():void{ echo $this->data; } }
|
メソッドの定義
- アクセス修飾子がついている以外は、関数と同じ
- アッパーキャメル記法で定義する
1 2 3 4 5 6 7
| <?php class Test { public function printFunc(int $value):void{ echo $value; } }
|
オブジェクト定数の定義
- オブジェクト内固有の定数
- 同じクラス内で呼び出す場合、
self::
を付けて呼び出す1 2 3 4 5 6 7 8 9 10
| <?php class Test { public const TAX = 0.08;
public function printConst(int $value):void{ echo self::TAX; } }
|
インスタンス化
$インスタンス名 = new クラス名()
でインスタンス化する1 2 3 4 5 6 7
| <?php class Test { }
$instanceTest = new Test();
|
インスタンスの要素へのアクセス
- プロパティ :
インスタンス名->プロパティ名
- オブジェクト定数 :
インスタンス名::オブジェクト定数
- メソッド :
インスタンス名->メソッド名();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?php class Test { public const TAX = 0.08; public int $data = 1;
public function printFunc():void{ echo $this->data; } }
$instanceTest = new Test();
$instanceTest->data = 10;
echo $instanceTest::TAX;
$instanceTest->printFunc();
|
抽象クラス
- 定義 :
abstract class 抽象クラス名
- 抽象メソッドの定義にも
abstract
をつける
- 抽象メソッドは中身を持たない
- 継承 :
class クラス名 extends 抽象クラス名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?php
abstract class Parent { abstract public test():void;
public test1():void { } }
class Test extends Parent { }
|
インターフェース
- 定義 :
interface インターフェース名
- 実装 :
class クラス名 implements インターフェース名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?php
interface TestInterface { public function test():void; }
class Test implements TestInterface { public function test():void { } }
|