Skip to content

Commit 56c8c12

Browse files
committed
Followup "Document get_error_handler(), get_exception_handler()"
php/doc-en@9991694
1 parent f8282f9 commit 56c8c12

File tree

2 files changed

+238
-0
lines changed

2 files changed

+238
-0
lines changed
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- $Revision$ -->
3+
<!-- EN-Revision: 99916949eb29e72ffa97be78170e2439db69dae9 Maintainer: mumumu Status: ready -->
4+
<refentry xml:id="function.get-error-handler" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
5+
<refnamediv>
6+
<refname>get_error_handler</refname>
7+
<refpurpose>ユーザー定義のエラーハンドラ関数を取得する</refpurpose>
8+
</refnamediv>
9+
10+
<refsect1 role="description">
11+
&reftitle.description;
12+
<methodsynopsis>
13+
<type class="union"><type>callable</type><type>null</type></type><methodname>get_error_handler</methodname>
14+
<void/>
15+
</methodsynopsis>
16+
<simpara>
17+
存在する場合に、現在のエラーハンドラ関数を返します。
18+
</simpara>
19+
</refsect1>
20+
21+
<refsect1 role="parameters">
22+
&reftitle.parameters;
23+
&no.function.parameters;
24+
</refsect1>
25+
26+
<refsect1 role="returnvalues">
27+
&reftitle.returnvalues;
28+
<simpara>
29+
(もしあれば)現在定義済みのエラーハンドラを返します。
30+
組み込みのエラーハンドラを使っている場合は、&null; を返します。
31+
</simpara>
32+
<simpara>
33+
返されたエラーハンドラは、
34+
<function>set_error_handler</function> に渡された callable そのものです。
35+
</simpara>
36+
</refsect1>
37+
38+
<refsect1 role="examples">
39+
&reftitle.examples;
40+
<example>
41+
<title><function>get_error_handler</function> の例</title>
42+
<programlisting role="php">
43+
<![CDATA[
44+
<?php
45+
46+
$handler = function (int $errno, string $errstr, ?string $errfile, ?int $errline) {
47+
echo "Error: " . $errstr . "\n";
48+
};
49+
50+
var_dump(get_error_handler()); // NULL
51+
52+
set_error_handler($handler);
53+
54+
var_dump(get_error_handler() === $handler); // bool(true)
55+
56+
?>
57+
]]>
58+
</programlisting>
59+
</example>
60+
</refsect1>
61+
62+
<refsect1 role="notes">
63+
&reftitle.notes;
64+
<tip>
65+
<simpara>
66+
PHP 8.5.0 より前のバージョンでは、
67+
この関数の機能は以下のような polyfill で提供できます:
68+
</simpara>
69+
<informalexample>
70+
<programlisting role="php">
71+
<![CDATA[
72+
<?php
73+
if (!function_exists('get_error_handler')) {
74+
function noop_error_handler() {
75+
}
76+
function get_error_handler(): ?callable {
77+
$handler = set_error_handler('noop_error_handler');
78+
restore_error_handler();
79+
return $handler;
80+
}
81+
}
82+
?>
83+
]]>
84+
</programlisting>
85+
</informalexample>
86+
</tip>
87+
</refsect1>
88+
89+
<refsect1 role="seealso">
90+
&reftitle.seealso;
91+
<simplelist>
92+
<member><function>error_reporting</function></member>
93+
<member><function>set_error_handler</function></member>
94+
<member><function>restore_error_handler</function></member>
95+
<member><function>trigger_error</function></member>
96+
<member><link linkend="errorfunc.constants">エラーレベル定数</link></member>
97+
</simplelist>
98+
</refsect1>
99+
</refentry>
100+
<!-- Keep this comment at the end of the file
101+
Local variables:
102+
mode: sgml
103+
sgml-omittag:t
104+
sgml-shorttag:t
105+
sgml-minimize-attributes:nil
106+
sgml-always-quote-attributes:t
107+
sgml-indent-step:1
108+
sgml-indent-data:t
109+
indent-tabs-mode:nil
110+
sgml-parent-document:nil
111+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
112+
sgml-exposed-tags:nil
113+
sgml-local-catalogs:nil
114+
sgml-local-ecat-files:nil
115+
End:
116+
vim600: syn=xml fen fdm=syntax fdl=2 si
117+
vim: et tw=78 syn=sgml
118+
vi: ts=1 sw=1
119+
-->
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- $Revision$ -->
3+
<!-- EN-Revision: 99916949eb29e72ffa97be78170e2439db69dae9 Maintainer: mumumu Status: ready -->
4+
<refentry xml:id="function.get-exception-handler" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
5+
<refnamediv>
6+
<refname>get_exception_handler</refname>
7+
<refpurpose>ユーザー定義の例外ハンドラ関数を取得する</refpurpose>
8+
</refnamediv>
9+
10+
<refsect1 role="description">
11+
&reftitle.description;
12+
<methodsynopsis>
13+
<type class="union"><type>callable</type><type>null</type></type><methodname>get_exception_handler</methodname>
14+
<void/>
15+
</methodsynopsis>
16+
<simpara>
17+
存在する場合に、現在のエラーハンドラ関数を返します。
18+
</simpara>
19+
</refsect1>
20+
21+
<refsect1 role="parameters">
22+
&reftitle.parameters;
23+
&no.function.parameters;
24+
</refsect1>
25+
26+
<refsect1 role="returnvalues">
27+
&reftitle.returnvalues;
28+
<simpara>
29+
現在定義済みの例外ハンドラを返します。
30+
エラーハンドラが定義されていない場合は、&null; を返します。
31+
</simpara>
32+
<simpara>
33+
返されたハンドラは、
34+
<function>set_exception_handler</function> に渡された callable そのものです。
35+
</simpara>
36+
</refsect1>
37+
38+
<refsect1 role="examples">
39+
&reftitle.examples;
40+
<example>
41+
<title><function>get_exception_handler</function> の例</title>
42+
<programlisting role="php">
43+
<![CDATA[
44+
<?php
45+
46+
$handler = function (Throwable $ex) {
47+
echo "Exception: " . $ex::class . ": " . $ex->getMessage() . "\n";
48+
};
49+
50+
var_dump(get_exception_handler()); // NULL
51+
52+
set_exception_handler($handler);
53+
54+
var_dump(get_exception_handler() === $handler); // bool(true)
55+
56+
?>
57+
]]>
58+
</programlisting>
59+
</example>
60+
</refsect1>
61+
62+
<refsect1 role="notes">
63+
&reftitle.notes;
64+
<tip>
65+
<simpara>
66+
PHP 8.5.0 より前のバージョンでは、
67+
この関数の機能は以下のような polyfill で提供できます:
68+
</simpara>
69+
<informalexample>
70+
<programlisting role="php">
71+
<![CDATA[
72+
<?php
73+
if (!function_exists('get_exception_handler')) {
74+
function noop_exception_handler() {
75+
}
76+
function get_exception_handler(): ?callable {
77+
$handler = set_exception_handler('noop_exception_handler');
78+
restore_exception_handler();
79+
return $handler;
80+
}
81+
}
82+
?>
83+
]]>
84+
</programlisting>
85+
</informalexample>
86+
</tip>
87+
</refsect1>
88+
89+
<refsect1 role="seealso">
90+
&reftitle.seealso;
91+
<simplelist>
92+
<member><function>set_exception_handler</function></member>
93+
<member><function>restore_exception_handler</function></member>
94+
<member><function>restore_error_handler</function></member>
95+
<member><function>error_reporting</function></member>
96+
<member><link linkend="language.exceptions">Exceptions</link></member>
97+
</simplelist>
98+
</refsect1>
99+
</refentry>
100+
<!-- Keep this comment at the end of the file
101+
Local variables:
102+
mode: sgml
103+
sgml-omittag:t
104+
sgml-shorttag:t
105+
sgml-minimize-attributes:nil
106+
sgml-always-quote-attributes:t
107+
sgml-indent-step:1
108+
sgml-indent-data:t
109+
indent-tabs-mode:nil
110+
sgml-parent-document:nil
111+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
112+
sgml-exposed-tags:nil
113+
sgml-local-catalogs:nil
114+
sgml-local-ecat-files:nil
115+
End:
116+
vim600: syn=xml fen fdm=syntax fdl=2 si
117+
vim: et tw=78 syn=sgml
118+
vi: ts=1 sw=1
119+
-->

0 commit comments

Comments
 (0)