フィルタを適用するときにコールされる

# php_user_filter::filter

(PHP 5, PHP 7, PHP 8)

php_user_filter::filter — フィルタを適用するときにコールされる

### 説明

public function php_user_filter::filter(
resource `$in`,
resource `$out`,
int `&$consumed`,
bool `$closing`
): int

このメソッドがコールされるのは、アタッチしたストリームとの間で (fread() や fwrite() による) データの読み書きを行ったときです。

### パラメータ

`in`

  `in` は `バケット群` を指すリソースで、 この中には一つあるいは複数の `バケット` オブジェクトが含まれています。 このオブジェクトに、フィルタ対象のデータが含まれます。

`out`

  `out` はもう一つの `バケット群` を指すリソースで、 変更した内容をここに保存します。

`consumed`

  `consumed` は常に参照渡しとする必要があります。 フィルタで読み込んだり変更したりしたデータの長さをここで加算します。 大半の場合、各 `$bucket` 上で `$bucket->datalen` をコールするたびに `consumed` を増やすことになります。

`closing`

  ストリームが終了処理の最中である場合 (つまり、フィルタチェインの最後の処理を行っている場合) に、`closing` パラメータが `true` となります。

### 戻り値

filter() メソッドは、処理を終えたときに次のいずれかの値を返す必要があります。

戻り値 | 意味
--- | ---
`PSFS_PASS_ON` | フィルタの処理が成功し、データが `out` `バケット群` に保存されました。
`PSFS_FEED_ME` | フィルタの処理は成功しましたが、返すデータはありません。 ストリームあるいは一つ前のフィルタから、さらにデータが必要です。
`PSFS_ERR_FATAL` (デフォルト) | フィルタで対処不能なエラーが発生し、処理を続行できません。

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