様々な assert フラグを設定/取得する

# assert_options

(PHP 4, PHP 5, PHP 7, PHP 8)

assert_options — 様々な assert フラグを設定/取得する

警告

この関数は PHP 8.3.0 で 非推奨になります。この関数に頼らないことを強く推奨します。

### 説明

function assert_options(int `$option`, mixed `$value` = ?): mixed

種々の assert() 制御オプションを設定したり、 単に現在の設定を調べたりします。

> 注意: assert_options() を使うことはお勧めできません。 php.ini のディレクティブ zend.assertions と assert.exception を ini_set() や ini_get() で取得したり設定したりする方が望ましいです。

### パラメータ

`option`

  assert オプション
  オプション | INI 設定 | デフォルト値 | 説明
  --- | --- | --- | ---
  ASSERT_ACTIVE | assert.active | 1 | assert() による評価を有効にする
  ASSERT_EXCEPTION | assert.exception | 1 | assertion に失敗するたびに AssertionErrorをスローする
  ASSERT_WARNING | assert.warning | 1 | assertion に失敗するたびに PHP の警告を発生させる
  ASSERT_BAIL | assert.bail | 0 | assersion に失敗した場合に実行を終了する
  ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | assersion 式については error_reporting を無効にする。 PHP 8.0.0 以降では削除されています。
  ASSERT_CALLBACK | assert.callback | (`null`) | assertion に失敗した場合にコールされるコールバック

`value`

  オプションに指定する新しい値。

  `ASSERT_CALLBACK` 定数または assert.callback に設定するコールバック関数は、次のようなシグネチャを持つべきです:

  function assert_callback(
  string `$file`,
  int `$line`,
  ?string `$assertion`,
  string `$description` = ?
  ): void
  `file`
    assert() 関数がコールされたファイル名
  `line`
    assert() 関数がコールされた行番号
  `assertion`
    PHP 8.0.0 より前のバージョンでは、 この値は assert() に渡された assertion でした。 但し、これは assertion が文字列として渡された場合に限られていました。 (assertion が 論理型の条件だった場合は、このパラメータは空文字列でした)。 PHP 8.0.0 以降では、このパラメータは常に `null` になります。
  `description`
    assert() 関数に渡された説明

`value` に空文字列を渡すと、assertコールバックはリセットされます。

### 戻り値

そのオプションの元の値を返します。

### エラー / 例外

`option` が無効なオプションの場合、 ValueError がスローされます。

### 変更履歴

バージョン | 説明
--- | ---
8.3.0 | assert_options() は、推奨されなくなりました。
8.0.0 | `option` が無効なオプションの場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、`false` を返していました。

### 例

例1 assert_options() の例

    <?php
    // これは、assert に失敗した際の
    // 処理を行う関数です
    function assert_failure($file, $line, $assertion, $message)
    {
        echo "The assertion $assertion in $file on line $line has failed: $message";
    }

    // これがテスト関数です
    function test_assert($parameter)
    {
        assert(is_bool($parameter));
    }

    // assert オプションを設定します
    assert_options(ASSERT_ACTIVE,   true);
    assert_options(ASSERT_BAIL,     true);
    assert_options(ASSERT_WARNING,  false);
    assert_options(ASSERT_CALLBACK, 'assert_failure');

    // 失敗する assert です
    test_assert(1);

    // ASSERT_BAIL が true なので
    // 決してここには到達しません
    echo 'Never reached';
    ?>

### 参考

- assert() - アサーションの値を調べる

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open