1
0
mirror of https://github.com/php/doc-ja.git synced 2026-03-23 22:52:11 +01:00
Files
archived-doc-ja/appendices/reserved.xml
2025-11-01 00:43:04 +09:00

625 lines
17 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 170b6cda37f29c39b9e08375344c5eb9523b2de3 Maintainer: hirokawa Status: ready -->
<!-- CREDITS: takagi,mumumu -->
<appendix xml:id="reserved" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>予約語の一覧</title>
<para>
以下に PHP で定義済みの ID の一覧を示します。ここに示す ID はいずれも、
別途明記されていない限りはスクリプトの中で ID として使用することはできません。これらの一覧には
キーワード、定義済みの変数、定数、クラス名が含まれています。これらの一覧は、
全てを網羅しているわけではありません。
</para>
<sect1 xml:id="reserved.keywords">
<title>キーワードのリスト</title>
<simpara>
これらのキーワードは、PHP では特別な意味があります。これらのいくつかは
関数やメソッドのようなものを表し、いくつかは定数のようなものを表す、
といったようになっていますが、実際にはそうではありません。実際には、
これらは言語を構成するものです。
以下のキーワードはいずれも定数、クラス名、
関数名として使用することはできません。
しかし、クラスやインターフェイス、そしてトレイトの内部では、
プロパティ、定数、メソッドの名前として使うことができます。
但し、<literal>class</literal> だけは例外で、これを定数名として使うことはできません。
</simpara>
<table>
<title>PHP のキーワード</title>
<tgroup cols="5">
<tbody>
<row>
<entry>
<function>__halt_compiler</function>
</entry>
<entry>
<link linkend="language.oop5.abstract">abstract</link>
</entry>
<entry>
<link linkend="language.operators.logical">and</link>
</entry>
<entry>
<function>array</function>
</entry>
<entry>
<link linkend="control-structures.foreach">as</link>
</entry>
</row>
<row>
<entry>
<link linkend="control-structures.break">break</link>
</entry>
<entry>
<link linkend="language.types.callable">callable</link>
</entry>
<entry>
<link linkend="control-structures.switch">case</link>
</entry>
<entry>
<link linkend="language.exceptions">catch</link>
</entry>
<entry>
<link linkend="language.oop5.basic.class">class</link>
</entry>
</row>
<row>
<entry>
<link linkend="language.oop5.cloning">clone</link>
</entry>
<entry>
<link linkend="language.oop5.constants">const</link>
</entry>
<entry>
<link linkend="control-structures.continue">continue</link>
</entry>
<entry>
<link linkend="control-structures.declare">declare</link>
</entry>
<entry>
<link linkend="control-structures.switch">default</link>
</entry>
</row>
<row>
<entry>
<function>die</function>
</entry>
<entry>
<link linkend="control-structures.do.while">do</link>
</entry>
<entry>
<function>echo</function>
</entry>
<entry>
<link linkend="control-structures.else">else</link>
</entry>
<entry>
<link linkend="control-structures.elseif">elseif</link>
</entry>
</row>
<row>
<entry>
<function>empty</function>
</entry>
<entry>
<link linkend="control-structures.declare">enddeclare</link>
</entry>
<entry>
<link linkend="control-structures.alternative-syntax">endfor</link>
</entry>
<entry>
<link linkend="control-structures.alternative-syntax">endforeach</link>
</entry>
<entry>
<link linkend="control-structures.alternative-syntax">endif</link>
</entry>
</row>
<row>
<entry>
<link linkend="control-structures.alternative-syntax">endswitch</link>
</entry>
<entry>
<link linkend="control-structures.alternative-syntax">endwhile</link>
</entry>
<entry>
<function>eval</function>
</entry>
<entry>
<function>exit</function>
</entry>
<entry>
<link linkend="language.oop5.basic.extends">extends</link>
</entry>
</row>
<row>
<entry>
<link linkend="language.oop5.final">final</link>
</entry>
<entry>
<link linkend="language.exceptions">finally</link>
</entry>
<entry>
<link linkend="functions.arrow">fn</link> (PHP 7.4 以降)
</entry>
<entry>
<link linkend="control-structures.for">for</link>
</entry>
<entry>
<link linkend="control-structures.foreach">foreach</link>
</entry>
</row>
<row>
<entry>
<link linkend="functions.user-defined">function</link>
</entry>
<entry>
<link linkend="language.variables.scope">global</link>
</entry>
<entry>
<link linkend="control-structures.goto">goto</link>
</entry>
<entry>
<link linkend="control-structures.if">if</link>
</entry>
<entry>
<link linkend="language.oop5.interfaces">implements</link>
</entry>
</row>
<row>
<entry>
<function>include</function>
</entry>
<entry>
<function>include_once</function>
</entry>
<entry>
<link linkend="language.operators.type">instanceof</link>
</entry>
<entry>
<link linkend="language.oop5.traits.conflict">insteadof</link>
</entry>
<entry>
<link linkend="language.oop5.interfaces">interface</link>
</entry>
</row>
<row>
<entry>
<function>isset</function>
</entry>
<entry>
<function>list</function>
</entry>
<entry>
&match; (PHP 8.0 以降)
</entry>
<entry>
<link linkend="language.namespaces">namespace</link>
</entry>
<entry>
<link linkend="language.oop5.basic.new">new</link>
</entry>
</row>
<row>
<entry>
<link linkend="language.operators.logical">or</link>
</entry>
<entry>
<function>print</function>
</entry>
<entry>
<link linkend="language.oop5.visibility">private</link>
</entry>
<entry>
<link linkend="language.oop5.visibility">protected</link>
</entry>
<entry>
<link linkend="language.oop5.visibility">public</link>
</entry>
</row>
<row>
<entry>
<link linkend="language.oop5.properties.readonly-properties">readonly</link> (PHP 8.1.0 以降) *
</entry>
<entry>
<function>require</function>
</entry>
<entry>
<function>require_once</function>
</entry>
<entry>
<function>return</function>
</entry>
<entry>
<link linkend="language.variables.scope">static</link>
</entry>
</row>
<row>
<entry>
<link linkend="control-structures.switch">switch</link>
</entry>
<entry>
<link linkend="language.exceptions">throw</link>
</entry>
<entry>
<link linkend="language.oop5.traits">trait</link>
</entry>
<entry>
<link linkend="language.exceptions">try</link>
</entry>
<entry>
<function>unset</function>
</entry>
</row>
<row>
<entry>
<link linkend="language.namespaces.importing">use</link>
</entry>
<entry>
<link linkend="language.oop5.properties">var</link>
</entry>
<entry>
<link linkend="control-structures.while">while</link>
</entry>
<entry>
<link linkend="language.operators.logical">xor</link>
</entry>
<entry>
<link linkend="language.generators">yield</link>
</entry>
</row>
<row>
<entry>
<link linkend="control-structures.yield.from">yield from</link>
</entry>
<entry></entry>
<entry></entry>
<entry></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
<simpara>
* <literal>readonly</literal> は、関数名として使用できます。
</simpara>
<table>
<title>コンパイル時の定数</title>
<tgroup cols="5">
<tbody>
<row>
<entry>
<link linkend="language.constants.magic">__CLASS__</link>
</entry>
<entry>
<link linkend="language.constants.magic">__DIR__</link>
</entry>
<entry>
<link linkend="language.constants.magic">__FILE__</link>
</entry>
<entry>
<link linkend="language.constants.magic">__FUNCTION__</link>
</entry>
<entry>
<link linkend="language.constants.magic">__LINE__</link>
</entry>
</row>
<row>
<entry>
<link linkend="language.constants.magic">__METHOD__</link>
</entry>
<entry>
<link linkend="language.constants.magic">__PROPERTY__</link>
</entry>
<entry>
<link linkend="language.namespaces.nsconstants">__NAMESPACE__</link>
</entry>
<entry>
<link linkend="language.constants.magic">__TRAIT__</link>
</entry>
<entry>
</entry>
<entry>
</entry>
<entry>
</entry>
<entry>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect1>
<sect1 xml:id="reserved.classes">
<title>定義済のクラス</title>
<para>
ここでは、標準で定義されているクラスをとりあげます。
さまざまな拡張モジュールで定義されるその他のクラスについては、
個々の拡張モジュールのリファレンスで述べられています。
</para>
<sect2 xml:id="reserved.classes.standard">
<title>標準で定義されているクラス</title>
<simpara>
以下のクラスは、PHP ビルドに含まれる標準関数セットで定義されています。
</simpara>
<variablelist>
<varlistentry>
<term><classname>Directory</classname></term>
<listitem>
<simpara>
<function>dir</function> 関数が作成します。
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>stdClass</classname></term>
<listitem>
<simpara>
<link linkend="language.types.object.casting">オブジェクトへの型変換</link>
や、いろいろな標準の関数によって作られる、汎用的な空のクラスです。
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>__PHP_Incomplete_Class</classname></term>
<listitem>
<simpara>
<function>unserialize</function> 関数が作成する可能性があります。
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>Exception</classname></term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>ErrorException</classname></term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>php_user_filter</classname></term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>Closure</classname></term>
<listitem>
<simpara>
定義済みの final クラス <classname>Closure</classname>
は、
<link
linkend="functions.anonymous">無名クラス</link> を表現するために使います。
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>Generator</classname></term>
<listitem>
<simpara>
定義済みの final クラス <classname>Generator</classname>
は、
<link
linkend="language.generators">ジェネレータ</link> を表現するために使います。
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>ArithmeticError</classname></term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>AssertionError</classname></term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>DivisionByZeroError</classname></term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>Error</classname></term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>Throwable</classname></term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>ParseError</classname></term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>TypeError</classname></term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="reserved.classes.special">
<title>特別なクラス</title>
<simpara>
次の識別子は特別な意味を持っているので、クラス名としては使えません。
</simpara>
<variablelist>
<varlistentry>
<term><classname>self</classname></term>
<listitem>
<simpara>
<link linkend="language.oop5.paamayim-nekudotayim">現在のクラス</link>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>static</classname></term>
<listitem>
<simpara>
<link linkend="language.oop5.late-static-bindings">実行時における現在のクラス</link>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>parent</classname></term>
<listitem>
<simpara>
<link linkend="language.oop5.paamayim-nekudotayim">親クラス</link>
</simpara>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
&appendices.reserved.constants;
<sect1 xml:id="reserved.other-reserved-words">
<title>その他の予約語の一覧</title>
<simpara>
これらの名前は、クラスやインターフェイスそしてトレイトの名前として使えません。
PHP 8.0 より前のバージョンでは、名前空間の中であっても使えませんでした。
</simpara>
<para>
<table>
<title>予約語</title>
<tgroup cols="4">
<tbody>
<row>
<entry>
parent
</entry>
<entry>
self
</entry>
<entry>
int
</entry>
<entry>
float
</entry>
</row>
<row>
<entry>
bool
</entry>
<entry>
string
</entry>
<entry>
true
</entry>
<entry>
false
</entry>
</row>
<row>
<entry>
null
</entry>
<entry>
void (PHP 7.1 以降)
</entry>
<entry>
iterable (PHP 7.1 以降)
</entry>
<entry>
object (PHP 7.2 以降)
</entry>
</row>
<row>
<entry>
mixed (PHP 8.0 以降)
</entry>
<entry>
never (PHP 8.1 以降)
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
これらの名前は、弱い予約語として確保されています。
クラスやインターフェイスそしてトレイトの名前として使えますが、
使わないことを強く推奨します。将来のバージョンの PHP で使われる可能性があるためです。
</para>
<para>
<table>
<title>弱い予約語</title>
<tgroup cols="4">
<tbody>
<row>
<entry>
enum
</entry>
<entry>
resource
</entry>
<entry>
numeric
</entry>
<entry>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</sect1>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->