10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHPで最後に評価した値を返す論理関数を作ってみる

Last updated at Posted at 2014-07-12

前書き

@38kun さんの 「JavaScript の a || b || c と PHP の $a || $b || $c は動作が異なる」 より、これをもしPHPで実現するんだったらどう書くかなーと。ただ、可能であればこうするよりも 「PHPに演算子オーバーロードを実装する」 のようにC言語レベルで演算子自体を書き換えてしまったほうが便利かもしれません。これはあくまで簡単に実装したい人のための関数です。

実装例

命名はVisualBasicより。

function orelse() {
    foreach (func_get_args() as $value) {
        if ($value) {
            return $value;
        }
    }
    return null;
}
function andalso() {
    foreach (func_get_args() as $value) {
        if (!$value) {
            return $value;
        }
    }
    return isset($value) ? $value : null;
}

至って変わったところはないですねw

使い方

var_dump(orelse(0, 10, 20));
// 出力結果:int(10)
var_dump(orelse(false, '', null);
// 出力結果:null
var_dump(andalso('あ', '', 'う');
// 出力結果:string(0) ""
10
11
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?