PHPについての備忘録(三項演算子/置換/例外処理/変数の中身確認)

2019/07/24

個人的によく忘れるPHPの記述についての備忘録です。

 
INDEX

 

1.三項演算子について

三項演算子とは、一つの演算子処理で3つの式を使用するための比較処理です。


# 書式
(条件) ? (真式) : (偽式);

# 例
$last_name ? $name = $last_name." ".$first_name : $name = $first_name;

 

2.置換について

PHPでの置換処理は str_replace関数 を使用します。


# 書式
str_replace( 検索文字, 置換文字, 置換対象の文字列);

# 例
$str = 'Laravel学習張';
$new_str = str_replace('Laravel', 'Vue.js', $str);

print($new_str); // Vue.js学習張 と出力されます

ポイント

1.文字列だけでなく配列も可能
2.正規表現で検索したい場合は preg_replace

 

3.例外処理

例外が発生したとき、プログラムは異常終了してしまいます。

それを防ぐために、例外に応じた例外処理を行います。

例外処理については以前にもエントリーしたことがあります。


# 書式
try{

  実行する処理  // 正常に終了すればこの部分だけ実行

}catch( 例外のクラス変数 ){  // catch()では引数としてExceptionオブジェクトが与えられます

  実行する処理  

}

# ケース1
try{
  echo warizan(6,0);
}catch(Exception $e){
  // ExceptionオブジェクトのgetMessageメソッドを実行する
  // Exceptionオブジェクト生成時に設定したエラーメッセージを取得できる
  echo "エラー:" . $e->getMessage();
}

# ケース2
try {
    $user = User::findOrFail($id);
} catch (ModelNotFoundException $ex) {
    return redirect('/top/');
}

 

4.変数の中身確認

例えば以下のようなケース。。。

  • 変数に値が入っているかを確認したい
  • 変数の値がnullでないかを確認したい
  • そもそも変数が存在するかを確認したい

 

isset関数

isset関数 は変数に値が入っているかnullが入っているかによって true か false を返すものです。


// 実例
if(isset($var)){ 
  echo '$varがセットされています';
}else{
  echo '$varがセットされていません';
}

// 三項演算子
isset($var) ? echo 'セットされています' : echo 'セットされていません';

ポイント

isset関数はnullが入っているときにfalseを返します。
でも 0 でも true を返します。
null とは、「何もない」という意味です。空の値を変数に代入すると何もない状態は違います。


// 空を代入
$var1 = '';
var_dump(isset($var1)); // bool(true)

// 0を代入
$var2 = 0;
var_dump(isset($var2)); // bool(true)

 

empty関数

empty関数 は変数が空かどうかを検査する関数です。


// 実例
if(empty($var)){ 
  echo '$varがセットされていません';
}else{
  echo '$varがセットされています';
}

// 三項演算子
empty($var) ? echo 'セットされていません' : echo 'セットされています';

ポイント

変数が存在しない可能性、null以外の空文字列や空配列が入る可能性があり、そのあたりも「空」として判断したいのであればempty関数を使った方が意図した結果となります。
実際にシステム構築していると、論理演算子の否定「!」とempty関数の組み合わせを使うシーンの方が多いです。

 
また発見したら追記していきます。

 

独習PHP 第3版

作者の山田 祥寛さんはJavaやJavaScriptなどの本も出されている方です。どの本も説明が丁寧でとても分かりやすいと定評があります。独習シリーズはいろいろな言語で出版されており、何かしら読んだことがある人も多いと思います。PHP をきちんと理解していないと Laravel は理解できません。これから Laravel で開発をしていく人は、もしもの(行き詰った) 時のために一冊購入してみてはいかがでしょうか?

Amazonで詳細を見る

オススメ

 

本庄マサノリ

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

>> Twitter をフォローする

 

-周辺知識