2022/06/17
個人的によく忘れるPHPの記述についての備忘録です。
INDEX
1.三項演算子について
三項演算子とは、一つの演算子処理で3つの式を使用するための比較処理です。
2.変数 命名規則
以下は個人的なルールです。
・「クラス名」「コントローラ名」「モデル名」→ パスカルケース
・「プロパティ名(メンバ変数)」→ キャメルケース
この辺りは好みだと思いますが、事前にルールを作っておくと統一感ができて綺麗なコードになると思います。
ちなみにCSSのクラス名はケバブケースがよく用いられます。
3.例外処理
例外(Exception)が発生する可能性のあるコードには、「例外発生とする条件」や「例外を投げるコード」 が入ります。
「例外発生とする条件」は if文
が主に使われます。
「例外を投げるコード」は throw new Exeption()
を使います。
※例外が発生することを、例外が投げられる(throwされる)といいます。
例外メッセージ
例外には例外メッセージを持たせることができます。
例外処理については以前にもエントリーしたことがあるので、詳しくは以下をご参照ください。
4.見出しコメントの書き方
PHPでファイル全体の説明やクラス・メソッドの説明をする際は、PHPDocという記法を使って記述します。
ファイルの説明
**
は必ず二つなので気をつけてください。終了の
*
はひとつで十分です。
クラス・メソッドの説明
ブロックごとの処理
5.データ型
PHPは、型の宣言が必要ないプログラムと呼ばれたりもします。
型とは、変数の中に代入する値の種類を表します。
データ型 | 内容 |
---|---|
string | 「りんご」「ばなな」などの文字列です。 |
int(integer) | 1や100などの整数型。 |
float | 浮動小数点です。(※大抵のプログラミング言語では、小数は浮動小数点として扱われる) |
bool | true か false のどちらかです。(論理型) |
array | 配列型 |
object | オブジェクト型 |
void | 返り値の型が void である場合、返り値に意味がないことを表します。 |
データ型判別関数
PHPにはデータ型を判別する関数が用意されてあります。
型がマッチすると論理値「TRUE」を返し、そうでない場合は「FALSE」を返します。
関数 | 内容 |
---|---|
is_string() | 文字列型かどうかを調べる |
is_int() | 整数型かどうかを調べる |
is_float() | 浮動小数点型かどうかを調べる |
is_object() | オブジェクト型かどうかを調べる |
is_array() | 配列型かどうかを調べる |
is_resource() | リソース型かどうか調べる |
is_null() | NULL型かどうか調べる |
6.アクセス修飾子
アクセス修飾子とはプロパティやメソッドに「どこからアクセスできるか?」を指定するものです。
指定には「public」「private」「protected」の3つのどれかを指定します。
7.エラー制御演算子
PHPでの @(アットマーク)はエラー制御演算子と言います。
関数や変数の前につけます。これを付けた関数や変数ではエラーを出力しないようにします。
8.エラー関係
エラーは大まかに3種類あります。
出力エラー | 内容 | 対処 |
---|---|---|
syntax error(シンタックス・パースエラー) | コンパイルが出来ない(実行前で止まる) | 文法の間違いなどでコンパイル出来ないなど |
fatal error(フェイタルエラー) | 実行が停止するもの | 定義していない関数を呼び出そうとした場合など |
warning(警告)、notice(注意) | 実行は継続されるが警告の出るもの | 初期化してない変数をいきなり使ったりなど |
E_PARSE > E_ERROR > E_WARNING > E_NOTICE > E_DEPRECATED
(※E_DEPRICATEDはコーディング規約に関しての問題や将来廃止になる(非推奨)機能が使われている場合に発生)
9.擬似変数
クラス内でメンバ変数が定義されている場合、疑似変数 $this
を使用することで、クラスの変数にアクセスすることができます。
サンプルでは SampleClass のプロパティ(Laravel)とメソッドのローカル変数(CakePHP)で、同じ変数名($val)を定義しています。
たとえクラスとメソッドで同じ変数が定義されていても、this
を使用すればクラスのプロパティを参照することができます。
10.配列の取り出し方
PHPの配列に関しては別ページでもまとめています。
$array
は配列$value
は $array
に入っている要素$key
は配列の番号
・break は繰り返しを中断する
・continue は繰り返しの途中でスキップする
11.比較演算子
比較演算子は左辺オペランドと右辺オペランドを比較します。
比較の結果が真なら 論理値 の「true」を返します。
そうでない場合は論理値の「false」を返します。
PHP で使用する比較演算子は次の通りです。
演算の対象となる値や変数や式のこと。
オペランドには数値や文字列の両方が使用できます。
また他のさまざまな型を比較できます。
演算子 | 解説 |
---|---|
$left == $right | $left と $right が等しい時に true |
$left != $right | $left と $right が等しく無い時に true |
$left > $right | $left が $right より大きい時に true |
$left < $right | $left が $right より小さい時に true |
$left >= $right | $left と $right が小さいか等しい時に true |
$left <= $right | $left と $right より小さいか等しい時に true |
$left === $right | $left と $right が等しく、かつ同じデータ型の場合に true |
12.論理算子
複数の比較演算子の結果を組み合わせて評価する場合に使用されます。
そのため、論理演算子の $left や $right には比較演算子の結果などが入ります。
そして左辺と右辺の比較演算子の結果を組み合わせた結果として真(true)か偽(false)の値を取ります。
演算子 | 解説 | 別名 |
---|---|---|
$left && $right(論理積) | $left と $right が共にtrue の場合に true | and |
$left || $right(論理和) | $left か $right のどちらかがtrue の場合に true | or |
!$right(論理否定) | $left が trueで無い場合に true | not |
13.条件に応じて処理を分ける(switch)
・単純な2分岐であれば、if文を使う
・多分岐(3分岐)以上であればswitch文を使う
14.PHP 設定に関する情報(phpinfo)
phpinfo()
関数を使うタイミングは
- PHP が作動していているかの確認したいとき
- PHP のバージョンを確認したいとき
- php.ini ファイルを探したいとき
- php.ini に設定されている内容を変更したとき
などがあり、主に PHP の設定情報を調べたり、確認したりという作業になります。
問題がなければ以下のように表示されます。
15.PHPに割り当てられているメモリ使用量を確認
現在、PHPに割り当てられているメモリ使用量を確認。
※SSHでサーバにアクセスして、Linuxコマンドで以下を実行します。
16.PHPの設定ファイルを変更したい(php.ini)
PHP の設定ファイルは php.ini を変更します。
php.ini は以下のコマンドで調べることができます。
実演
/etc/php.ini
にあるとは限らないので注意!
17.文字数制限し、超過分を『…』に置き換えるコード
記事タイトルや抜粋など、文字数は未確定だけど長くなりすぎると困るような文字列をさばく際に便利なコードです。
実行結果
18.日付計算
現在日時との差分を計算するコードです。
考え方としては、まずは比較対象となる日付を strtotime()関数 でUnixタイムスタンプに変換します。
それを time()関数 で現在時刻のUnixタイムスタンプから引きます。
コンピュータのシステム時刻の一種で、協定世界時(UTC)での1970年1月1日(午前0時0分0秒)からの経過時間を指します。
19.PDO の利用(データベース接続)
PHPでデータベースを操作する場合は、まずPDOオブジェクトを生成します。
この時はコンストラクタでデータベース情報を設定しておきます。
後は、そのPDOオブジェクトのメソッドでデータベースを操作するだけです。
下記の例では、$dbh という変数で PDO オブジェクトを管理しています。
20.isset, empty, is_null の違い
値 | if($var) | isset | empty | is_null |
---|---|---|---|---|
$var=1 | true | true | false | false |
$var=""; | false | true | true | false |
$var="0"; | false | true | true | false |
$var=0; | false | true | true | false |
$var=NULL; | false | false | true | true |
$var | false | false | true | true |
$var=array() | false | true | true | false |
$var=array(1) | true | true | false | false |
以上です。

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。