xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

xml_set_end_namespace_decl_handler — 名前空間終了ハンドラを設定する

説明

function xml_set_end_namespace_decl_handler(XMLParser $parser, callable|string|null $handler): true

名前空間宣言のスコープを抜けるときにコールされるハンドラを設定します。 これがコールされるのは、各名前空間宣言において、 名前空間が宣言された要素の終了タグのハンドラがコールされた後のことです。

警告

このイベントは libXML ではサポートされていません。 そのため、登録されたハンドラは呼ばれません。

パラメータ

parser
XMLパーサー
handler

null が渡されると、ハンドラはデフォルトの状態にリセットされます。

警告

空文字列を渡すことでもハンドラはリセットされますが、これは PHP 8.4.0 以降非推奨となっています。

handler が callable の場合、その callable がハンドラとして設定されます。

handler が文字列の場合、xml_set_object() で設定されたオブジェクトのメソッド名になります。

警告

PHP 8.4.0 以降、非推奨となっています。

警告

PHP 8.4.0 以降では、実際に呼び出されるときではなく、ハンドラを設定する際に callable であるかがチェックされます。 従って、コールバックとしてメソッド文字列を指定する場合、それより前に、 xml_set_object() を呼び出しておく必要があります。 しかし、この動作も PHP 8.4.0 以降非推奨となっているため、メソッドには適切な callable を使用することが推奨されます。

handler のシグネチャは、以下でなければいけません:

function handler(XMLParser $parser, string|false $prefix)
parser
ハンドラをコールするXMLパーサー
prefix
XML オブジェクト内の名前空間を参照する際に使う文字列。 prefix が存在しない場合は、false になります。

戻り値

常に true を返します。

変更履歴

バージョン 説明
8.4.0 非 callable な string を handler に渡すことは、現在非推奨となっています。 メソッドには適切な callable を使用するか、ハンドラをリセットする場合は null を使用してください。
8.4.0 handler が callable として有効であるかどうかは、 呼び出し時ではなく、ハンドラーを設定する際にチェックされるようになりました。
8.0.0 引数 parser は、 XMLParser インスタンスを期待するようになりました。 これより前のバージョンでは、有効な xml resource が期待されていました。

参考

+add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top