diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000..5ab5087b08 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +; This file is for unifying the coding style for different editors and IDEs. +; More information at https://editorconfig.org + +root = true + +[*.xml] +charset = utf-8 +indent_size = 1 +indent_style = space +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..dcc145fb11 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +*.xml linguist-detectable +*.ent linguist-language=XML linguist-detectable diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml new file mode 100644 index 0000000000..4780492649 --- /dev/null +++ b/.github/workflows/integrate.yaml @@ -0,0 +1,97 @@ +# https://docs.github.com/en/actions + +name: "Integrate" + +on: + pull_request: null + push: + branches: + - "master" + +jobs: + build: + name: "Build" + + runs-on: "ubuntu-24.04" + + strategy: + matrix: + language: + - "ja" + + steps: + - name: "Set up PHP" + uses: "shivammathur/setup-php@v2" + with: + php-version: "8.3" + extensions: "sqlite3" + coverage: "none" + + - name: "Checkout php/doc-${{ matrix.language }}" + uses: "actions/checkout@v4" + with: + path: "${{ matrix.language }}" + repository: "php/doc-${{ matrix.language }}" + + - name: "Checkout php/doc-en as fallback" + if: "matrix.language != 'en'" + uses: "actions/checkout@v4" + with: + path: "en" + repository: "php/doc-en" + + - name: "Checkout php/doc-base" + uses: "actions/checkout@v4" + with: + path: "doc-base" + repository: "php/doc-base" + + - name: "Checkout php/phd" + uses: "actions/checkout@v4" + with: + path: "phd" + repository: "php/phd" + + - name: "Build documentation for ${{ matrix.language }}" + run: "php doc-base/configure.php --disable-libxml-check --enable-xml-details --redirect-stderr-to-stdout --with-lang=${{ matrix.language }}" + + - name: "Render documentation for ${{ matrix.language }}" + run: "php phd/render.php --docbook doc-base/.manual.xml --package PHP --format xhtml" + + - name: "Save documentation for ${{ matrix.language }}" + uses: "actions/upload-artifact@v4" + with: + name: "manual-html" + path: "output/php-chunked-xhtml" + retention-days: 7 + + textlint: + name: "Textlint" + + needs: ["build"] + runs-on: "ubuntu-24.04" + + steps: + - name: "Checkout" + uses: "actions/checkout@v4" + + - name: "Install Node.js" + uses: "actions/setup-node@v4" + with: + node-version: "22" + cache: "npm" + cache-dependency-path: "build/package-lock.json" + + - name: "Download artifacts" + uses: "actions/download-artifact@v4" + with: + name: "manual-html" + path: "build/output" + + - name: "Install textlint" + run: "npm ci --no-audit" + working-directory: "build" + + - name: "Run textlint" + run: "npx textlint --color ./output" + working-directory: "build" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..c2658d7d1b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..1d2db947e3 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,66 @@ +# PHP マニュアルの改善方法 + +PHP マニュアルに興味を持って頂き、ありがとうございます。 +改善方法は複数あります。状況に応じて、以下に示す方法で御対応をお願い致します。 + +## Pull Request を送る場合 + +マニュアルの日本語訳に問題があり、Pull Request を送ることで修正可能な場合は、以下のやり方で修正箇所を特定して Pull Request を送って下さい。 + +- A) たとえば、以下のページで間違いを見つけたとします。 + * https://www.php.net/manual/ja/oop5.intro.php +- B) 間違っている docbook を github 上で検索して特定する + * 上記のページの一部分を github の検索窓に入力すると、docbook の候補が複数出てくるはずです。 + - 日本語で検索したほうが特定しやすいと思います。 + * 例: https://github.com/php/doc-ja/search?q=PHP+%E3%81%AB%E3%81%AF%E5%AE%8C%E5%85%A8%E3%81%AA%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%A2%E3%83%87%E3%83%AB%E3%81%8C%E6%90%AD%E8%BC%89%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99 +- C) 上記で特定した docbook を修正し、Pull Request を出す + * このリポジトリを fork し、修正する + * または、docbook のページの鉛筆のアイコンをクリックし、修正を提案する + - 例: https://github.com/php/doc-ja/blob/master/language/oop5.xml +- D) Pull Request の内容について + * Pull Request を日本語で送っても全く問題ありません。 + * また、コミットログに日本語を書いても全く問題ありません。 + - 過去のコミットログは英語になっています + * メンテナが英語版とコミットの粒度を合わせているから、という以上の理由はありません。 + +## issue で問題を報告する場合 + +マニュアルに 「何かしらの問題があるが、修正方法がわからない場合」 は、[issue に登録をお願いします](https://github.com/php/doc-ja/issues/new) + +- 但し、[既に報告された内容がないかどうか](https://github.com/php/doc-ja/issues?q=is%3Aissue+) を必ず確認して下さい。 +- 以下のような問題を登録することを想定しています + * 未訳のドキュメントがあり、日本語訳を追加して欲しいという要望 + * 日本語版に関する既知の問題 + - ドキュメント化されていない機能がある、など + * その他、日本語版で修正されていない問題があるものの、修正方法がわからないもの +- Pull Request と同じく、日本語で報告しても全く問題ありません。 + +## 未訳部分の翻訳を追加する場合 + +メンテナが inactive になったり、[master になっている英語版](https://github.com/php/doc-en) の更新ペースに追いつけなくなったり、需要を掴みきれていない等の理由で、日本語で読みたい部分が大量に未翻訳だったりするかもしれません。 + +それが一定の量にのぼる場合は、以下のやり方で未訳部分の翻訳を纏めて Pull Request するのが良いと思います。 + +- A) たとえば、FFI のマニュアルを翻訳したいとします + * https://www.php.net/manual/en/book.ffi.php +- B) 未翻訳部分の docbook を、英語版のリポジトリで検索して特定する + * 上記のページの一部分を github の検索窓に入力すると、大体どこらへんを翻訳したらよいかがわかるはずです + - 例: https://github.com/php/doc-en/search?q=ffi + * PECL 拡張モジュールの場合は、[/reference 以下](https://github.com/php/doc-en/tree/master/reference) のどこかになるはずです +- C) このリポジトリをforkし、以下のやり方で英語版から未訳ファイルを追加する + +``` +$ mkdir phpdoc-ja +$ cd phpdoc-ja +$ git clone https://github.com/php/doc-en.git en +$ git clone https://github.com/[you]/[your-forked-doc-ja].git ja +$ tree -d -L 1 +. +├── en +└── ja +$ cp -R en/reference/ffi ja/reference/ +``` + +- D) ja/reference/ffi/ 以下を翻訳して push し、このリポジトリに対して Pull Request を送る + * [英語版の Revision 情報を追加しなければいけないという作法](https://github.com/php/doc-ja/blob/master/README_Maintain_HOWTO.md#%E6%9C%AA%E8%A8%B3%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E6%97%A5%E6%9C%AC%E8%AA%9E%E7%89%88%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95) はありますが、Pull Request を送る段階では必須ではないと思います + - メンテナがおそらく、後から追加してくれるでしょう diff --git a/README.md b/README.md new file mode 100644 index 0000000000..470b241483 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# PHPマニュアル 日本語版 + +このリポジトリは、[PHPマニュアル 日本語版](https://www.php.net/manual/ja/) のソースとなる docbook を管理するリポジトリです。 + +## PHP マニュアルに間違いを見つけたら? + +PHP マニュアルに間違いや問題を見つけた場合、メンテナンスの担当者(メンテナ) へ報告すると、修正などの対応が行われます。 + +[メンテナへ報告する方法は複数あります](https://github.com/php/doc-ja/blob/master/README_About_ThisManual.md#php-%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB-%E3%81%AB%E9%96%93%E9%81%95%E3%81%84%E3%82%92%E8%A6%8B%E3%81%A4%E3%81%91%E3%81%9F%E3%82%89)が、github で報告する場合、Pull Request を送るか、issue で報告するかの対応をお願いします。 + +詳細は [CONTRIBUTING.md](https://github.com/php/doc-ja/blob/master/CONTRIBUTING.md#php-%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E3%81%AE%E6%94%B9%E5%96%84%E6%96%B9%E6%B3%95) を参照ください。 + +## PHP 5 以前のマニュアルについて + +現在のPHPマニュアルには、PHP 7 以降で維持されている言語仕様や拡張モジュール、Changelog がドキュメント化されています。つまり、PHP 5 以前のそれは含まれていません。 + +古い PHP の仕様を参照する必要がある方は、以下にアーカイブがありますので御利用下さい。 + +- [PHP 5 マニュアルアーカイブ 2020/09/26版](https://github.com/php/doc-ja/releases/tag/phpdoc-ja-php5-archive-20200926) + +## 翻訳を追加したい方向けの情報 + +PHP マニュアルの翻訳は、言語機能と、PHP に同梱されている拡張モジュール以外については基本メンテナンスしない方針です。 + +未翻訳部分の翻訳を追加したい場合は、[未訳部分の翻訳を追加する場合](https://github.com/php/doc-ja/blob/master/CONTRIBUTING.md#%E6%9C%AA%E8%A8%B3%E9%83%A8%E5%88%86%E3%81%AE%E7%BF%BB%E8%A8%B3%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88) を参照して下さい。 + +## メンテナに興味がある方向けの情報 + +PHP マニュアルのメンテナは、以下を行います。 + +* [英語版のコミット](https://github.com/php/doc-en/commits/master) を翻訳し、日本語版に反映させる +* このリポジトリの Pull Request や issue に対応する + +PHP マニュアルのメンテナンスに興味がある方は、[PHP マニュアル 日本語版について](https://github.com/php/doc-ja/blob/master/README_About_ThisManual.md) をお読み頂き、必要なアクションを取って下さい。 diff --git a/README_About_ThisManual.md b/README_About_ThisManual.md new file mode 100644 index 0000000000..d5f58d5fbd --- /dev/null +++ b/README_About_ThisManual.md @@ -0,0 +1,68 @@ +# PHP マニュアル 日本語版について + +ここでは、PHPを使うと必ず一度は目にするであろう [PHPマニュアル](https://www.php.net/manual/ja/) について記していきます。 +PHPマニュアルのメンテナンスの前提となる基本知識や、修正方法などについて記していきます。 + +## この文書の著者 + +[mumumu](https://twitter.com/mumumu) です。PHPマニュアル のメンテナの一人です。 + +## 基本知識 + +PHPマニュアル はPHP 7 系から現在 (このエントリが更新されている時の最新は 8.1.1) に至るまでの歴史が蓄積されており、非常に巨大なマニュアルです。これは [DocBook](http://www.docbook.org/) を使って書かれており、それを適宜各ロケールの翻訳者がボランティアで英語以外の各国語に置き換えていっています。それが php.net のインフラでビルドされ、1日に1回 (正確には毎日午後3時 JST) 世界中に公開されていくという具合です。 + +Docbook は、SGML 由来であることによって文書構造が複雑であることや、タグの構造が壊れてしまうと即ビルドが失敗してしまうなどの欠点によって、他のフォーマットに置き換えようという話がこれまで出なかったわけではありません。ですが、DocBook の多彩な表現力にとってかわることと、現在までの巨大な蓄積を効率的に置き換えられる代替案を誰かが示せない限り、移行していくことはないでしょう。 + +PHPマニュアルは 長らく [Subversion](http://subversion.apache.org/) で管理されてきましたが、4年以上に渡る議論や作業の末、2020年末に [git](https://git-scm.com/) へ移行しました。その成果として、[github 経由](https://github.com/php/doc-ja) でもバグ報告が可能になっています。 + +## PHP マニュアル に間違いを見つけたら? + +既に述べたとおり、PHP マニュアル はボランティアベースで作られているため、常に完全な翻訳を維持できているわけではありません。現在でもたくさんの未訳部分が残っていますし、人間がやるモノである以上、常に間違いが存在し得ます。 + +間違いを見つけた場合には、どこに問い合わせればよいでしょう? 複数の選択肢がありますが、私のおすすめの順に以下に選択肢を示します。 + +### 1. github + +修正内容はコードで語りたい、という方は、github がお勧めです。2020年12月末から、PHPマニュアル は git で管理されるようになり、github 経由でもバグ報告を行うことが可能になりました。 + +報告のやり方は、 [github の CONTRIBUTING.md](https://github.com/php/doc-ja/blob/master/CONTRIBUTING.md) を参照して下さい。 +リポジトリそのものは、下記にあります。 + +https://github.com/php/doc-ja + +### 2. PHPユーザーズ Slack + +[日本語でPHPの雑談をするための Slackチーム](https://phpusers-ja.slack.com/) が存在します。そこに #phpmanual というチャンネルがあり、PHPマニュアル のメンテナも join しており、直接話すことが可能になっています。 + +メンテナが時々つぶやいたりもしていますし、間違いの指摘や、これを翻訳して欲しい!などの要望も日本語で可能です。 + +参加方法は [Slackの更新招待リンク](https://join.slack.com/t/phpusers-ja/shared_invite/zt-1sve5o635-KLGDr5KRUrUYHbiq_sMR_A) から join するか、[日本語で PHP の話をする Slack のグループを作ったよ](https://www.msng.info/archives/2016/02/phpusers-ja-on-slack.php) を参照して下さい。 + +### 3. 日本PHPユーザー会 の ML + +[日本 PHP ユーザー会](http://www.php.gr.jp) では [php-doc ML](http://ml.php.gr.jp/mailman/listinfo/php-doc) というメーリングリストをホストしており、ここを通じて PHPマニュアルに関する問い合わせや間違いの指摘などを受け付けています。ここで頂く多くの情報が、PHP マニュアル 日本語版の質の向上に大きく寄与していることは言うまでもありませんし、初期の頃からの多くの方々の協力によって現在のマニュアルは存在し、かつ維持されています。 + +但し、現在は過疎っているのであまりお勧めできません... + +## PHP マニュアル の様々なフォーマット + +PHPマニュアル は XHTML や Windows の標準的なヘルプ形式である [chm](http://ja.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help) に対応したフォーマットが公開されていますが、Docbook からこれらの形式をビルドするための [PhD](https://github.com/php/phd) というツールが整備されています。 + +PhD を使えばHTML形式のビルドは行えるようになっていますが、chm 形式については、それをビルドするのに Windows マシンの助けが必要です。PHP マニュアル のビルド方法については、以下に纏めておいたので参考にしてください。 + +[PHPマニュアル のビルド方法](https://github.com/php/doc-ja/blob/master/README_Building_HOWTO.md) + +## PHPマニュアル のコミット権限を得るには? + +PHPマニュアルをいろいろ見ていくと、継続して改善すべきだというモチベーションが強まってくるかもしれません。Slack や PHP-doc ML で指摘しまくっていてそれにも飽き足らないという人は、コミット権限を得て自分で直すことも考えてもよいかもしれません。以下は、そういうモチベーションが高い人向けです。 + +PHPマニュアルのコミット権限を得るには、[php.net のページで英語で申請をする](http://www.php.net/git-php.php) 必要があります。これを php.net の中の人が見てコミット権限を与えるかを決めているわけですが、彼らは何回か patch を提出した実績か、もしくは既存のコミッタの推薦があることを求めて来ます。patch については日本語版の PHP マニュアル の patch でも問題ないはずです。 + +基本的には [PHPユーザーズ Slack](https://phpusers-ja.slack.com/) や [php-doc ML](http://ml.php.gr.jp/mailman/listinfo/php-doc) に話を通してから申請し、既存の PHP マニュアル 日本語版のコミッタからの推薦を得た方が早く話が進むと思います (自分も php-doc ML 経由で [高木さん](http://d.hatena.ne.jp/takagimasahiro) の推薦を貰いました) 。 + +尚、申請ページでは、最初から最後までちゃんと文章を読んでから申請フォームを埋めないと **必ず失敗するようになっています** ので気を付けてください。 + +PHPマニュアルのコミット権限を得たら、DocBook を直接編集し、リポジトリにコミットすることが出来ます。 +具体的な方法は、以下を参照して下さい。 + +[メンテナ向け: PHPマニュアル のメンテナンス方法](https://github.com/php/doc-ja/blob/master/README_Maintain_HOWTO.md) diff --git a/README_Building_HOWTO.md b/README_Building_HOWTO.md new file mode 100644 index 0000000000..2d76c2df2e --- /dev/null +++ b/README_Building_HOWTO.md @@ -0,0 +1,94 @@ +# PHPマニュアル のビルド方法 + +PHPのマニュアルは、DocBook と呼ばれるフォーマットで記述されており、[PhD という PHPマニュアル のためのツール](https://wiki.php.net/doc/phd) によってその DocBook から HTML や CHM、PDF などの複数の形式にビルドできる。 + +この記事では、実際の PHPマニュアル をリポジトリから取ってきてビルドする方法を紹介する。PhD は PDF や manpage形式、epub 等多様な形式がビルドできるが、ここでは HTML および chm のみについて触れる。 + +## a) ビルドするときに使うPHPについて + +まず、PHP をインストールしなければはじまらない。 +PHP 5.3 以降であれば、HTML 版も chm も問題なくビルドできるはずだ。 + +PHP をインストールするときも、PhD のために DOM, libXML2, XMLReader, SQLite3 は有効にしていなければならない。ただ、これらは デフォルトで有効になっているので、無効にしないよう注意しよう。 + +かつ、7.4.0 以降は非推奨になっている PEAR コマンドをインストールする必要がある。それには、PHP を `--with-pear` オプションを付けてコンパイルするか、[PEAR マニュアル](https://pear.php.net/manual/en/installation.getting.php) にもある通り、以下のように go-pear.phar を用いる必要がある。 + +``` +$ wget http://pear.php.net/go-pear.phar +$ php go-pear.phar +``` + +## b) PhD をインストール(git 経由) + +git と PEAR を予めインストールしておいて、PhD と `PhD_PHP` をpearコマンド経由でインストール(\*1)する。 +`PhD_PHP` は chm をビルドするのに必要だ。 + +git と PHP をインストールしておいて、以下のコマンドでインストールすると良い。 +但し、途中で指定する XML の api, release タグの記述が PEAR コマンドに合わないため、[patch が必要](https://gist.github.com/mumumu/b2b77b15e702bc24a5233acc98ac913a) な点に注意すること。 + +``` +$ git clone https://github.com/php/phd.git +$ cd phd +$ wget https://gist.githubusercontent.com/mumumu/b2b77b15e702bc24a5233acc98ac913a/raw/b6de89e378296d6f0bfa4e21d564ebf85a539ff5/phd_package_xml.patch +$ patch -p1 < phd_package_xml.patch +$ pear config-set preferred_state devel +$ pear install package.xml package_generic.xml package_php.xml +``` + +(\*1) PhD は composer にも対応しているが、依存ライブラリとして何かをすることはないので、PEAR 経由でのインストールが現状は良い... のだが、既に述べた通り、PEAR が PHP 7.4 からデフォルトで入らなくなってしまったので悩ましい + +## b-1) PhD をインストール(PEAR チャンネル経由: 非推奨) + +念の為述べておくが、PEAR チャンネル経由でも PhD はインストール可能だ。だが、PhD はもう3年近くリリースが行われておらず、PHP 8.0.0 以降に取り込まれた union 型などの新しいシグネチャをマニュアルで表現することが不可能になっている。 + +そのため、PEAR チャンネル経由の PhD のインストールは推奨しないし、ここでも説明しない。 + +## c) マニュアルのソースをリポジトリから取得 + +次にマニュアルのソースをリポジトリから取ってくる。作業用のディレクトリを作って、リポジトリを git からチェックアウトする。 + +``` +$ mkdir phpdoc-ja +$ cd phpdoc-ja +$ git clone https://github.com/php/doc-base.git doc-base +$ git clone https://github.com/php/doc-en.git en +$ git clone https://github.com/php/doc-ja.git ja +``` + +## d) HTML版の PHPマニュアルをビルドする + +--enable-xml-details は、XMLに万が一文法エラーがあったときに細かい情報を出力するためのモノだ。また、phd は結構メモリを使うので、`memory_limit` の値を大きめにしておいた方がよいかもしれない。 + +``` +$ php doc-base/configure.php --with-lang=ja --enable-xml-details +$ phd -f xhtml -L ja -P PHP -d doc-base/.manual.xml +``` + +成功すれば、 output ディレクトリ以下にマニュアルが生成される。 + +## e) chm 版の PHPマニュアルをビルドする + +以下のコマンドで何も考えなくても chm 版をビルドできる。--enable-chm は、chm特有のコンテンツを生成物に含めるために必要だ。 また、--with-lang や -L オプションで言語の指定も忘れずに。 + +まあ、--enable-chm がなくても、chm特有のヘルプコンテンツが入らないだけで、皆が見たいメインのコンテンツは欠落しないので、問題はないのだけれども。 + +``` +$ php doc-base/configure.php --enable-chm --with-lang=ja +$ phd -f chm -P PHP -L ja -d doc-base/.manual.xml +``` + +成功すると、output/php-chm 以下に chm のコンテンツが生成される。 + +``` +$ ls output/php-chm/ +php_manual_ja.hhc php_manual_ja.hhk php_manual_ja.hhp res +``` + +chm 形式のファイルは LZX 形式で圧縮されており、Linux や Mac では chm 形式は生成できないので、以下、Windows 上で chm ファイルをコンパイルする必要がある。 + +ここからは Windows での作業だ(\*1) 。まず、[HTML Help Workshop](http://msdn.microsoft.com/en-us/library/ms669985.aspx) をインストールし、 `output/php-chm/php_manual_ja.hhp` を File -> Open で開く。 + +その後、File -> Compile を 選択し、 `php_manual_ja.hhp` をダイアログで選択し、OK を押すと `php_manual_ja.hhp` がある フォルダに `php_manual_ja.chm` が生成されるはずだ(\*2)。 + +(\*1) Windows 10 および、Windows Server 2016 で確認している +(\*2) 実は、この手順で chm を生成すると、chm の検索が機能しない。きちんと機能させるためには、DBCSFix.exe というアジア系言語のためのバッチを適用し、適切なロケールで HTML Help Compiler を起動して生成する必要がある。これらをWindowsのビルド環境で手当するのは少し大変なので、そこまで手当した生成物が欲しい場合は、[php.net から取得](http://www.php.net/download-docs.php) したほうが良い。詳細を知りたい場合は、[バッチプログラムのソースコード](http://svn.php.net/viewvc/phpdoc/doc-base/trunk/scripts/build-chms.php?revision=333535&view=markup) を読んでみよう diff --git a/README_Glossary.md b/README_Glossary.md new file mode 100644 index 0000000000..b06061efa2 --- /dev/null +++ b/README_Glossary.md @@ -0,0 +1,62 @@ +# PHPマニュアル 日本語版 用語集 + +ここには、PHP マニュアル 日本語版で「統一した」訳語を当てている単語を記録しています。 +以下の単語の訳がブレていたら、issue または Pull Request で報告してください。 + +- visibility + * 「アクセス権」で統一 + * protected/private/public を付けた、メソッドやプロパティが可視な範囲のこと + * 但し、「非対称可視性プロパティ」(Asymmetric Property Visibility)は 例外 +- extension + * 拡張モジュール ( [#24](https://github.com/php/doc-ja/issues/24) ) +- internal function / builtin function + * 内部関数 / ビルトイン関数 + - 実際には同じ意味だが、英語版でも別々に使われている +- coercive mode + * 自動変換モード + - strict モードと対になるモード + - strict モードの対比の文脈で、coercive を「強制する」と訳さない +- language construct + * 言語構造 +- unserialize + * アンシリアライズ ( [#21](https://github.com/php/doc-ja/issues/21) ) + - 「デシリアライズ」や「アンマーシャリング」にはしない +- nullable + * nullable のままにする。訳さない。 + - null を受け入れる何か、という意味だが、PHP マニュアル日本語版では「訳さない」で統一。 +- serialize + * シリアライズ / シリアル化 + - 「マーシャリング」にはしないこと +- メソッドや変数に付ける static + * static メソッド / static 変数 とする ( [#45](https://github.com/php/doc-ja/issues/45 ), [#46](https://github.com/php/doc-ja/issues/46) ) + - 静的変数や静的メソッドなどとはしない +- numeric string + * 数値形式の文字列 +- preload + * opcache の文脈の場合、「事前ロード」で統一 +- userland + * 関数の文脈では、「PHP でユーザーが使える」関数 + - ユーザーに公開されている関数、ということ +- Standard + * 移行ガイドの文脈での Standard は「標準ライブラリ」で統一する + - php-src で言うところの ext/standard に入っている関数全てを指す + - Standard PHP Librady (SPL) は別にあるが、「標準ライブラリ」でいいことにする +- throw Exception + * 例外をスローする + - 例外を「投げる」とはしない + - Throwable を throw するという文脈ではすべてこれに統一する +- parameters / arguments + * パラメータ / 引数 + - 以下の2つは明示的に区別されるべきである + * 「関数やメソッドを呼び出す時に渡す arguments(引数)」 + * 「関数やメソッドに渡すべき値の仕様としての parameters(パラメータ)」は区別されるべき + +```php +// $parameters はパラメータ +function test($parameters = array()) {} +// [1234] は引数 +test([1234]); +``` + +- server + * 「サーバー」と伸ばす。「サーバ」としない ( [#69](https://github.com/php/doc-ja/issues/69) ) diff --git a/README_Maintain_HOWTO.md b/README_Maintain_HOWTO.md new file mode 100644 index 0000000000..3afbd267d8 --- /dev/null +++ b/README_Maintain_HOWTO.md @@ -0,0 +1,144 @@ +# メンテナ向け: PHPマニュアル のメンテナンス方法 + +PHPマニュアルのコミット権限を得たら、DocBook を直接編集し、リポジトリにコミットすることが出来ます。 +ここでは、その具体的な方法を示します。 + +PHPマニュアルのコミット権限を得たい方は、[こちらをまず読んで下さい](https://github.com/php/doc-ja/blob/master/README_About_ThisManual.md)。 + +## まずはビルドから + +まずは PHPマニュアル をビルドする環境を整えなければ始まりません。 +それを整える方法は [PHPマニュアル のビルド方法](https://github.com/php/doc-ja/blob/master/README_Building_HOWTO.md) を参照して下さい。 + +## 購読すべきメーリングリストやリポジトリ + +PHPマニュアルのメンテナであれば、以下は最低限購読すべきです。 +これらは、PHPマニュアル の更新のタイミングや、ドキュメントに関する議論の動向をウォッチするために必要です。 + +- php.net 本家のMLのうち、ドキュメントに関するもの + * Documentation discussion (<phpdoc at lists.php.net>) + - phpdoc-subscribe at lists.php.net にメールを出せば購読できます + * Documentation changes and commits (<doc-cvs at lists.php.net>) + - doc-cvs-subscribe at lists.php.net にメールを出せば購読できます + * GitHub 経由のコミットや、それにまつわるコメントなどもこのMLに forward されるので、英語版マニュアルの GitHub は watch する必要は現状ありません + * Documentation bugs (<doc-bugs at lists.php.net>) + - doc-bugs-subscribe at lists.php.net にメールを出せば購読できます + +- GitHub の 日本語版マニュアルの Watch + * メンテナであれば、https://github.com/php/doc-ja の `All Activity` を Watch するのが望ましいです。 + - そうすることで、日本語版マニュアルに関する活動をすべてウォッチできます。 + +- phpdoc ja ML + * [http://ml.php.gr.jp/mailman/listinfo/php-doc](http://ml.php.gr.jp/mailman/listinfo/php-doc) + - 日本語のメーリングリストです + - バグ報告を受け付けていますが、過疎っています... + +## PHPマニュアルの構造 + +PHPマニュアルは、以下のような構造になっています。 + +``` +$ mkdir phpdoc-ja +$ cd phpdoc-ja +$ git clone https://github.com/php/doc-base.git doc-base +$ git clone https://github.com/php/doc-en.git en +$ git clone https://github.com/php/doc-ja.git ja +$ tree -d -L 1 +. +├── doc-base +├── en +└── ja +``` + +- doc-base + * ドキュメントの共通ファイルやスニペットが入ったもの +- en + * 英語版PHPマニュアル + - 各国語版に存在しない未翻訳のファイルは、ここから補います。 +- ja + * 日本語版PHPマニュアル + - 私達はここを触ります + +## 翻訳すべきファイルを俯瞰する方法 + +revcheck.html というファイルを生成し、お好きなブラウザで開いて確認します。 + +``` +php doc-base/scripts/revcheck.php ja > revcheck.html +``` + +- `revcheck.html#files` に表示されているファイルが、基本的に更新すべきファイルです。 + * `language-snippets.ent` という、共通のスニペットを格納したファイルだけは例外です。 + - 未訳部分のスニペットも多数含まれているので、リビジョン番号が合っていれば(後述)更新は不要です +- `revcheck.html#untranslated` に表示されているファイルが、未翻訳のファイルです。 + +## PHPマニュアルを更新するタイミング + +PHPマニュアルは、PHPの開発者が必要に応じて、またはドキュメントのバグ修正という形で更新していきます。 +更新されるたびに、[ML (Documentation changes and commits)](https://news-web.php.net/php.doc.cvs/) にメールが届きます。それを見て、必要な xml ファイルを更新し、コミットしていきます。 + +## PHPマニュアルを更新する方法 + +- A) `revcheck.html` で更新すべきファイルを確認します。 +- B) 更新するファイルを任意のエディタで開きます +- C) diff を見ながら、ファイルを更新します + * `revcheck.html` から、更新すべきファイルの diff のリンクが辿れます。 +- D) 日本語版の 以下の `EN-Revision` の部分に記されているハッシュを、英語版のものと合わせます + * ここと日本語版のリビジョン番号を比較して、`revcheck.html` は更新すべきファイルを判断しているので、必ず行って下さい + - ルールはシンプルです + * 日本語版のリビジョンのハッシュが古ければ、更新対象です。 + * 日本語版のリビジョンより英語版のハッシュが古い、または等しければ、更新不要です。 + +``` + + + +``` + +- E) 更新が終わったら、以下のコマンドで、ビルドエラーが出ないかを確認します + +``` +$ php doc-base/configure.php --with-lang=ja --enable-xml-details +``` + +- F) (オプション) 必要に応じて、マニュアル全体を生成してみて、表示を確認すると良いでしょう + * 以下のコマンドで、output ディレクトリ以下にマニュアルが生成されます。 + +``` +$ phd -f xhtml -L ja -P PHP -d doc-base/.manual.xml +``` + +- G) ビルドに問題がなければ、リポジトリにコミットします。 + +``` +$ git add path/to/xxxx.xml +$ git commit +``` + +## 未訳のファイルを日本語版に追加する方法 + +`revcheck.html#untranslated` に表示されているファイルが、未翻訳のファイルです。 + +英語版のマニュアルから、日本語版にファイルをコピーします。 + +``` +$ cp en/path/to/xxxx.xml ja/path/to/xxxx.xml +``` + +後は、更新する場合とほぼ同じですが、日本語版の xxxx.xml の XML 宣言の後ろに Revision と EN-Revision コメントを付け足して下さい。 + +``` + + + +``` + +最後にビルドエラーが出ないかを確認し、コミットします。 +push は必要に応じて任意のブランチに行って下さい。 + +``` +$ php doc-base/configure.php --with-lang=ja --enable-xml-details +$ git addpath/to/xxxx.xml +$ git commit +$ git push origin master +``` diff --git a/appendices/about.xml b/appendices/about.xml index 3a6c8a3e87..60bb421312 100644 --- a/appendices/about.xml +++ b/appendices/about.xml @@ -1,6 +1,6 @@ - + @@ -23,9 +23,8 @@ オンラインマニュアルは PHP.net Web サイト - や、いくつかのミラーサイトで読むことができます。このタイプの - フォーマットのマニュアルを快適に読むためには、一番近い場所にある - ミラーサイトを選択すると良いでしょう。オンライン版の PHP + で読むことができます。 + オンライン版の PHP マニュアルには、現在二種類の CSS スタイルシートが提供されています。それぞれ、 ウェブでの閲覧に適したものと、プリンタでの印刷に適したものです。 @@ -81,7 +80,7 @@ 間単にアクセスすることが出来ます。Linux デスクトップ用の CHM ビューワも 利用可能です。 xCHM または - GnoCHM を参照してください。 + GnoCHM を参照ください。 @@ -137,7 +136,7 @@ - 関数の定義には返り値が + 関数の定義には戻り値が どんな型であるかが示されています。最初の例として、 strlenの定義を考えてみましょう。 @@ -146,7 +145,7 @@ - (PHP 4, PHP 5) + (PHP 4, PHP 5, PHP 7) - strlen()は PHP 4 と PHP 5 のすべてのバージョンで使用できる + strlen()は PHP 4 と PHP 5、そして PHP 7 のすべてのバージョンで使用できる @@ -190,7 +189,7 @@ int strlen ( string $string ) strlen() 関数の最初の(この場合は唯一の)引数が stringという名前であり - それは文字列である + それは文字列(string)である @@ -198,7 +197,7 @@ int strlen ( string $string ) int - 関数が戻す値の型。ここでは整数 + 関数が戻す値の型。ここでは整数型 (文字列の長さが数字で数えられている) @@ -223,7 +222,7 @@ int strlen ( string $string ) @@ -242,27 +241,27 @@ int strlen ( string $string ) 配列でもかまいません。 haystack (対象を探す配列)は二番目の引数です。 三番目のオプションの引数は strict - と名づけられています。全てのオプション引数は - [ ブラケット ]の中に表現されます。 + と名づけられています。全てのオプション引数はデフォルト値を持ちます。 + デフォルト値が不明な場合、? と表示されます。 strict パラメータはデフォルトでは boolean の &false; であるとマニュアルに述べられています。機能の詳細については 各関数のマニュアルをご覧ください。 さらに、& (アンパサンド) 記号を関数のパラメータの前につけると、 - そのパラメータを参照渡しにすることができます。 + そのパラメータをリファレンス渡しにすることができます。 この例では、三番目のオプションのパラメータ &$matches - が参照渡しとなります。 + がリファレンス渡しとなります。 より複雑なバージョンとの関係を有する関数もあります。以下が @@ -270,7 +269,7 @@ int strlen ( string $string ) - (PHP 4 >= 4.3.0, PHP 5) + (PHP 4 >= 4.3.0, PHP 5, PHP 7) @@ -286,7 +285,7 @@ int strlen ( string $string ) だけでなく将来のバージョンの PHP に関するものもあります。 バージョン間での変更内容は「注意」や「更新履歴」 あるいはマニュアルの本文の中で説明しています。 - このドキュメントでは、PHP 5.0.0 以降のバージョンを扱っています。 + このドキュメントでは、PHP 7.0.0 以降のバージョンを扱っています。 最新の (まだリリースされていない) 開発版に関するドキュメントには @@ -300,7 +299,7 @@ int strlen ( string $string ) マニュアルでは、PHP のバージョンをメジャー、マイナー、ポイントの三つで表します。 - たとえば PHP 5.3.1 を例にとると、5 + たとえば PHP 7.3.1 を例にとると、7 がメジャーリリースで 3 がマイナーリリース、 そして 1 がポイントリリースとなります。 通常 PHP では、新機能の追加はメジャーリリースやマイナーリリースでしか行いません。 @@ -348,18 +347,19 @@ int strlen ( string $string ) ドキュメントの改善を手助けするには - ドキュメントを改善していくには 3 つの方法があります。 + ドキュメントを改善していくには 複数のやり方があります。 もし(どの言語でかかれたものでも)マニュアルに間違いが見つかったら - &url.php.bugs; にある - bug system を使ってその問題を報告してください。バグの種別は - "Documentation Problem" にしてください。マニュアルのフォーマットを - 含め、ドキュメントに関する問題はすべてここから送信してください。 + &url.php.git; にある、各言語の issue tracker を使って問題を報告して下さい。 + たとえば、日本語版のマニュアルについては、 + &url.php.git;doc-ja/issues になります。 + マニュアルのフォーマットを含め、 + ドキュメントに関する問題はすべてここから送信してください。 - bug system に助けを要求することでシステムを無駄に使用しないでください。 + issue tracker に助けを要求することでシステムを無駄に使用しないでください。 かわりに、たくさんのサポートオプション の中のひとつを利用してください。 @@ -368,9 +368,12 @@ int strlen ( string $string ) 各ページに注釈をつけることで、原文に実例、警告等の更なる説明を 追加することが出来ます。とはいえ、この注釈システムを使って バグレポートを送信しないでください。ユーザーノートの詳細については、 - About user notesの + ユーザーノートについての 項を読んでください。 + + PHP マニュアルのリポジトリのミラー 経由で Pull Request を送信することもできます。 + PHP マニュアルは多くの言語に翻訳されています。英語とその他の外国語が わかる方なら、翻訳チームを手伝うことで PHP マニュアルの改善に協力できます。 @@ -410,10 +413,8 @@ int strlen ( string $string ) PHP マニュアルは多くの言語とフォーマットで作成されています。詳しい 情報は &url.php.docs; を参照ください。 - このドキュメントの XML ソースコードは、SVN から - のダウンロードしたり &url.php.svn; - で閲覧したりできます。ドキュメントは phpdoc - モジュールに格納されています。 + このドキュメントの XML ソースコードは、 + &url.php.git.mirror;doc-ja からダウンロードしたり、閲覧したりできます。 @@ -427,7 +428,7 @@ int strlen ( string $string ) はその英語版を自動的に挿入します。 - 翻訳に携わる人は &url.php.svn; から + 翻訳に携わる人は &url.php.git.mirror;doc-ja から アクセスできる XML ソースコードを母国語に 翻訳することから始めます。生成されたバージョン(HTML やプレーンテキストなど)を扱うことはありません。 diff --git a/appendices/aliases.xml b/appendices/aliases.xml index ed37425360..1b5f0eff9f 100644 --- a/appendices/aliases.xml +++ b/appendices/aliases.xml @@ -1,6 +1,7 @@ - + + 関数エイリアスのリスト @@ -28,7 +29,7 @@ エイリアス - 元の関数 + 正規化された関数名 使用されている拡張モジュール @@ -38,56 +39,6 @@ gettext Gettext - - add - swfmovie_add - Ming (flash) - - - add - swfsprite_add - Ming (flash) - - - addaction - swfbutton_addAction - Ming (flash) - - - addcolor - swfdisplayitem_addColor - Ming (flash) - - - addentry - swfgradient_addEntry - Ming (flash) - - - addfill - swfshape_addfill - Ming (flash) - - - addshape - swfbutton_addShape - Ming (flash) - - - addstring - swftext_addString - Ming (flash) - - - addstring - swftextfield_addString - Ming (flash) - - - align - swftextfield_align - Ming (flash) - chop rtrim @@ -128,121 +79,11 @@ floatval Base syntax - - drawarc - swfshape_drawarc - Ming (flash) - - - drawcircle - swfshape_drawcircle - Ming (flash) - - - drawcubic - swfshape_drawcubic - Ming (flash) - - - drawcubicto - swfshape_drawcubicto - Ming (flash) - - - drawcurve - swfshape_drawcurve - Ming (flash) - - - drawcurveto - swfshape_drawcurveto - Ming (flash) - - - drawglyph - swfshape_drawglyph - Ming (flash) - - - drawline - swfshape_drawline - Ming (flash) - - - drawlineto - swfshape_drawlineto - Ming (flash) - - - fbsql - fbsql_db_query - FrontBase - fputs fwrite Base syntax - - getascent - swffont_getAscent - Ming (flash) - - - getascent - swftext_getAscent - Ming (flash) - - - getdescent - swffont_getDescent - Ming (flash) - - - getdescent - swftext_getDescent - Ming (flash) - - - getheight - swfbitmap_getHeight - Ming (flash) - - - getleading - swffont_getLeading - Ming (flash) - - - getleading - swftext_getLeading - Ming (flash) - - - getshape1 - swfmorph_getShape1 - Ming (flash) - - - getshape2 - swfmorph_getShape2 - Ming (flash) - - - getwidth - swfbitmap_getWidth - Ming (flash) - - - getwidth - swffont_getWidth - Ming (flash) - - - getwidth - swftext_getWidth - Ming (flash) - gzputs gzwrite @@ -378,26 +219,11 @@ array_key_exists Base syntax - - labelframe - swfmovie_labelFrame - Ming (flash) - - - labelframe - swfsprite_labelFrame - Ming (flash) - ldap_close ldap_unbind LDAP - - magic_quotes_runtime - set_magic_quotes_runtime - Base syntax - mbstrcut mb_strcut @@ -423,331 +249,6 @@ mb_substr Multi-bytes Strings - - ming_setcubicthreshold - ming_setCubicThreshold - Ming (flash) - - - ming_setscale - ming_setScale - Ming (flash) - - - move - swfdisplayitem_move - Ming (flash) - - - movepen - swfshape_movepen - Ming (flash) - - - movepento - swfshape_movepento - Ming (flash) - - - moveto - swfdisplayitem_moveTo - Ming (flash) - - - moveto - swffill_moveTo - Ming (flash) - - - moveto - swftext_moveTo - Ming (flash) - - - msql - msql_db_query - mSQL - - - msql_createdb - msql_create_db - mSQL - - - msql_dbname - msql_result - mSQL - - - msql_dropdb - msql_drop_db - mSQL - - - msql_fieldflags - msql_field_flags - mSQL - - - msql_fieldlen - msql_field_len - mSQL - - - msql_fieldname - msql_field_name - mSQL - - - msql_fieldtable - msql_field_table - mSQL - - - msql_fieldtype - msql_field_type - mSQL - - - msql_freeresult - msql_free_result - mSQL - - - msql_listdbs - msql_list_dbs - mSQL - - - msql_listfields - msql_list_fields - mSQL - - - msql_listtables - msql_list_tables - mSQL - - - msql_numfields - msql_num_fields - mSQL - - - msql_numrows - msql_num_rows - mSQL - - - msql_regcase - sql_regcase - mSQL - - - msql_selectdb - msql_select_db - mSQL - - - msql_tablename - msql_result - mSQL - - - mssql_affected_rows - sybase_affected_rows - Sybase - - - mssql_affected_rows - sybase_affected_rows - Sybase - - - mssql_close - sybase_close - Sybase - - - mssql_close - sybase_close - Sybase - - - mssql_connect - sybase_connect - Sybase - - - mssql_connect - sybase_connect - Sybase - - - mssql_data_seek - sybase_data_seek - Sybase - - - mssql_data_seek - sybase_data_seek - Sybase - - - mssql_fetch_array - sybase_fetch_array - Sybase - - - mssql_fetch_array - sybase_fetch_array - Sybase - - - mssql_fetch_field - sybase_fetch_field - Sybase - - - mssql_fetch_field - sybase_fetch_field - Sybase - - - mssql_fetch_object - sybase_fetch_object - Sybase - - - mssql_fetch_object - sybase_fetch_object - Sybase - - - mssql_fetch_row - sybase_fetch_row - Sybase - - - mssql_fetch_row - sybase_fetch_row - Sybase - - - mssql_field_seek - sybase_field_seek - Sybase - - - mssql_field_seek - sybase_field_seek - Sybase - - - mssql_free_result - sybase_free_result - Sybase - - - mssql_free_result - sybase_free_result - Sybase - - - mssql_get_last_message - sybase_get_last_message - Sybase - - - mssql_get_last_message - sybase_get_last_message - Sybase - - - mssql_min_client_severity - sybase_min_client_severity - Sybase - - - mssql_min_error_severity - sybase_min_error_severity - Sybase - - - mssql_min_message_severity - sybase_min_message_severity - Sybase - - - mssql_min_server_severity - sybase_min_server_severity - Sybase - - - mssql_num_fields - sybase_num_fields - Sybase - - - mssql_num_fields - sybase_num_fields - Sybase - - - mssql_num_rows - sybase_num_rows - Sybase - - - mssql_num_rows - sybase_num_rows - Sybase - - - mssql_pconnect - sybase_pconnect - Sybase - - - mssql_pconnect - sybase_pconnect - Sybase - - - mssql_query - sybase_query - Sybase - - - mssql_query - sybase_query - Sybase - - - mssql_result - sybase_result - Sybase - - - mssql_result - sybase_result - Sybase - - - mssql_select_db - sybase_select_db - Sybase - - - mssql_select_db - sybase_select_db - Sybase - - - multcolor - swfdisplayitem_multColor - Ming (flash) - mysql mysql_db_query @@ -838,19 +339,9 @@ mysql_result MySQL - - nextframe - swfmovie_nextFrame - Ming (flash) - - - nextframe - swfsprite_nextFrame - Ming (flash) - ociassignelem - OCI-Collection::assignElem + OCICollection::assignElem OCI8 @@ -865,32 +356,32 @@ ocicloselob - OCI-Lob::close + OCILob::close OCI8 ocicollappend - OCI-Collection::append + OCICollection::append OCI8 ocicollassign - OCI-Collection::assign + OCICollection::assign OCI8 ocicollmax - OCI-Collection::max + OCICollection::max OCI8 ocicollsize - OCI-Collection::size + OCICollection::size OCI8 ocicolltrim - OCI-Collection::trim + OCICollection::trim OCI8 @@ -965,7 +456,7 @@ ocifreecollection - OCI-Collection::free + OCICollection::free OCI8 @@ -985,7 +476,7 @@ ocigetelem - OCI-Collection::getElem + OCICollection::getElem OCI8 @@ -995,7 +486,7 @@ ociloadlob - OCI-Lob::load + OCILob::load OCI8 @@ -1055,12 +546,12 @@ ocisavelob - OCI-Lob::save + OCILob::save OCI8 ocisavelobfile - OCI-Lob::import + OCILob::import OCI8 @@ -1080,12 +571,12 @@ ociwritelobtofile - OCI-Lob::export + OCILob::export OCI8 ociwritetemporarylob - OCI-Lob::writeTemporary + OCILob::writeTemporary OCI8 @@ -1098,16 +589,6 @@ odbc_field_len ODBC - - output - swfmovie_output - Ming (flash) - - - pdf_add_outline - pdf_add_bookmark - PDF - pg_clientencoding pg_client_encoding @@ -1128,211 +609,6 @@ recode_string Recode - - remove - swfmovie_remove - Ming (flash) - - - remove - swfsprite_remove - Ming (flash) - - - rotate - swfdisplayitem_rotate - Ming (flash) - - - rotateto - swfdisplayitem_rotateTo - Ming (flash) - - - rotateto - swffill_rotateTo - Ming (flash) - - - save - swfmovie_save - Ming (flash) - - - savetofile - swfmovie_saveToFile - Ming (flash) - - - scale - swfdisplayitem_scale - Ming (flash) - - - scaleto - swfdisplayitem_scaleTo - Ming (flash) - - - scaleto - swffill_scaleTo - Ming (flash) - - - setaction - swfbutton_setAction - Ming (flash) - - - setbackground - swfmovie_setBackground - Ming (flash) - - - setbounds - swftextfield_setBounds - Ming (flash) - - - setcolor - swftext_setColor - Ming (flash) - - - setcolor - swftextfield_setColor - Ming (flash) - - - setdepth - swfdisplayitem_setDepth - Ming (flash) - - - setdimension - swfmovie_setDimension - Ming (flash) - - - setdown - swfbutton_setDown - Ming (flash) - - - setfont - swftext_setFont - Ming (flash) - - - setfont - swftextfield_setFont - Ming (flash) - - - setframes - swfmovie_setFrames - Ming (flash) - - - setframes - swfsprite_setFrames - Ming (flash) - - - setheight - swftext_setHeight - Ming (flash) - - - setheight - swftextfield_setHeight - Ming (flash) - - - sethit - swfbutton_setHit - Ming (flash) - - - setindentation - swftextfield_setIndentation - Ming (flash) - - - setleftfill - swfshape_setleftfill - Ming (flash) - - - setleftmargin - swftextfield_setLeftMargin - Ming (flash) - - - setline - swfshape_setline - Ming (flash) - - - setlinespacing - swftextfield_setLineSpacing - Ming (flash) - - - setmargins - swftextfield_setMargins - Ming (flash) - - - setmatrix - swfdisplayitem_setMatrix - Ming (flash) - - - setname - swfdisplayitem_setName - Ming (flash) - - - setname - swftextfield_setName - Ming (flash) - - - setover - swfbutton_setOver - Ming (flash) - - - setrate - swfmovie_setRate - Ming (flash) - - - setratio - swfdisplayitem_setRatio - Ming (flash) - - - setrightfill - swfshape_setrightfill - Ming (flash) - - - setrightmargin - swftextfield_setRightMargin - Ming (flash) - - - setspacing - swftext_setSpacing - Ming (flash) - - - setup - swfbutton_setUp - Ming (flash) - show_source highlight_file @@ -1343,36 +619,6 @@ count Base syntax - - skewx - swfdisplayitem_skewX - Ming (flash) - - - skewxto - swfdisplayitem_skewXTo - Ming (flash) - - - skewxto - swffill_skewXTo - Ming (flash) - - - skewy - swfdisplayitem_skewY - Ming (flash) - - - skewyto - swfdisplayitem_skewYTo - Ming (flash) - - - skewyto - swffill_skewYTo - Ming (flash) - snmpwalkoid snmprealwalk @@ -1383,76 +629,6 @@ strstr Base syntax - - streammp3 - swfmovie_streamMp3 - Ming (flash) - - - swfaction - swfaction_init - Ming (flash) - - - swfbitmap - swfbitmap_init - Ming (flash) - - - swfbutton - swfbutton_init - Ming (flash) - - - swffill - swffill_init - Ming (flash) - - - swffont - swffont_init - Ming (flash) - - - swfgradient - swfgradient_init - Ming (flash) - - - swfmorph - swfmorph_init - Ming (flash) - - - swfmovie - swfmovie_init - Ming (flash) - - - swfshape - swfshape_init - Ming (flash) - - - swfsprite - swfsprite_init - Ming (flash) - - - swftext - swftext_init - Ming (flash) - - - swftextfield - swftextfield_init - Ming (flash) - - - xptr_new_context - xpath_new_context - - diff --git a/appendices/comparisons.xml b/appendices/comparisons.xml index 98692745ec..2330de0450 100644 --- a/appendices/comparisons.xml +++ b/appendices/comparisons.xml @@ -1,6 +1,6 @@ - + PHP 型の比較表 @@ -15,10 +15,10 @@ この表を活用する前に、型とその意味について理解しておく必要があります。 - 例えば、"42"文字列ですが - 42整数です。 - &false;はbooleanですが"false"は - 文字列です。 + 例えば、"42"string ですが + 42int です。 + &false; は bool ですが "false" は + string です。 @@ -30,9 +30,9 @@ $xが定義されていない状態で単に - if ($x)としてしまうとE_NOTICE - レベルのエラーが発行てしまいます。代わりに、emptyや - issetを使うかあるいは変数を初期化するように + if ($x)とするとE_NOTICE + レベルのエラーが発生します。代わりに、emptyや + issetを使うか、あるいは変数を初期化するように してください。 @@ -58,7 +58,7 @@ empty is_null isset - boolean : if($x) + bool : if($x) @@ -95,7 +95,7 @@ &false; - $x = array(); + $x = []; array &true; &false; @@ -103,7 +103,7 @@ &false; - $x = array('a', 'b'); + $x = ['a', 'b']; array &false; &false; @@ -112,7 +112,7 @@ $x = false; - boolean + bool &true; &false; &true; @@ -120,7 +120,7 @@ $x = true; - boolean + bool &false; &false; &true; @@ -128,7 +128,7 @@ $x = 1; - integer + int &false; &false; &true; @@ -136,7 +136,7 @@ $x = 42; - integer + int &false; &false; &true; @@ -144,7 +144,7 @@ $x = 0; - integer + int &true; &false; &true; @@ -152,7 +152,7 @@ $x = -1; - integer + int &false; &false; &true; @@ -227,7 +227,7 @@ "0" "-1" &null; - array() + [] "php" "" @@ -290,8 +290,8 @@ &false; &true; &false; - &true; - &true; + &false;* + &false;* -1 @@ -369,7 +369,7 @@ &true; - array() + [] &false; &true; &false; @@ -388,7 +388,7 @@ &true; &false; &false; - &true; + &false;* &false; &false; &false; @@ -403,7 +403,7 @@ &false; &true; &false; - &true; + &false;* &false; &false; &false; @@ -416,6 +416,7 @@ + * PHP 8.0.0 より前のバージョンでは、&true; でした。 @@ -434,7 +435,7 @@ "0" "-1" &null; - array() + [] "php" "" @@ -576,7 +577,7 @@ &false; - array() + [] &false; &false; &false; diff --git a/appendices/configure/misc.xml b/appendices/configure/misc.xml index 29495cd88a..9561c7d5e0 100644 --- a/appendices/configure/misc.xml +++ b/appendices/configure/misc.xml @@ -1,6 +1,6 @@ - + 一般的なオプション @@ -22,6 +22,9 @@ インストールされるファイルのレイアウトを設定します。Type には PHP(デフォルト)または GNU のどちらかが指定できます。 + manページを PREFIX 直下にインストールした場合(デフォルト)、 + manpath ユーティリティの検索パスで見つかった順に、 + GNU スタイルのレイアウトが選択されるので注意しましょう。 @@ -170,28 +173,6 @@ - - - - - - - メモリ制限(memory limit)のサポートつきでコンパイルします - (PHP 5.2.1 以降では使用できず、常に有効となります)。 - - - - - - - - - - URL を指定した fopen で、HTTP や FTP を経由してファイルを開く機能を無効にします - (PHP 5.2.5 以降では使用できません)。 - - - diff --git a/appendices/configure/php.xml b/appendices/configure/php.xml index ad5f1826d9..2e3384df33 100644 --- a/appendices/configure/php.xml +++ b/appendices/configure/php.xml @@ -1,6 +1,6 @@ - + PHP オプション @@ -25,40 +25,6 @@ - - - - - - - セーフモードをデフォルトで有効にします。 - - &warn.deprecated.feature-5-3-0.removed-5-4-0; - - - - - - - - - セーフモード時には、このディレクトリにある実行ファイルのみ実行を許可します。 - デフォルト値は /usr/local/php/bin です。 - - &warn.deprecated.feature-5-3-0.removed-5-4-0; - - - - - - - - - magic quotes をデフォルトで有効にします。 - - &warn.deprecated.feature-5-3-0.removed-5-4-0; - - @@ -69,32 +35,30 @@ - + - + - 言語パーサおよびスキャナ内でのマルチバイトコードの実行を有効にします。 - このオプションをつけて PHP をコンパイルすると、 - declare - 言語構造で - encoding - ディレクティブを使えるようになります。 + Unix システムにおいて、PHP をビルドするためのライブラリがあるディレクトリを指定します。 + 64 ビットシステムでは、この引数を + --with-libdir=lib64 + のようにして lib64 ディレクトリを指定しなければなりません。 - &warn.deprecated.feature-5-3-0.removed-5-4-0; - + - + - Unix システムにおいて、PHP をビルドするためのライブラリがあるディレクトリを指定します。 - 64 ビットシステムでは、この引数を - --with-libdir=lib64 - のようにして lib64 ディレクトリを指定しなければなりません。 + Zend Thread Safety を有効にします。 + PHP 8.0.0 より前のバージョン、かつ Windows 以外のシステムでは、 + このオプションは + + と呼ばれていました。 diff --git a/appendices/configure/servers.xml b/appendices/configure/servers.xml index 9ea4604b86..2f703e9f31 100644 --- a/appendices/configure/servers.xml +++ b/appendices/configure/servers.xml @@ -1,6 +1,7 @@ - + + SAPI オプション @@ -8,16 +9,6 @@ Application Programming Interface)が含まれています。 - - - - - - - インストールされている AOLserver のパスを指定します。 - - - @@ -65,19 +56,6 @@ - - - - - - - PHP を、Caudium で使用する Pike モジュールとしてビルドします。 - DIR は Caudium サーバーのディレクトリで、デフォルトは - /usr/local/caudium/server です。 - - - - @@ -99,7 +77,7 @@ - phpdbg インタラクティブデバッガ SAPI モジュールのサポートを有効にします。これは PHP 5.6.x 以降で使えます。 + phpdbg インタラクティブデバッガ SAPI モジュールのサポートを有効にします。 @@ -117,68 +95,6 @@ - - - - - - - PHP を、Zeus の ISAPI モジュールとしてビルドします。 - - - - - - - - - - インストール済みの Netscape/iPlanet/SunONE Webserver へのパスを指定します。 - - - - - - - - - - このオプションについての情報はありません。 - - - - - - - - - - PHP を Pi3Web のモジュールとしてビルドします。 - - - - - - - - - - PHP を Pike モジュールとしてビルドします。DIR は Roxen の - ディレクトリで、通常は /usr/local/roxen/server - です。 - - - - - - - - - - Zend Thread Safety を使用した Roxen モジュールをビルドします。 - - - @@ -191,38 +107,6 @@ - - - - - - - PHP を thttpd モジュールとしてビルドします。 - - - - - - - - - - - PHP を TUX モジュールとしてビルドします(Linux 限定)。 - - - - - - - - - - - PHP を WebJames モジュールとしてビルドします(RISC OS 限定)。 - - - @@ -233,102 +117,11 @@ PHP の CGI バージョンをビルドしないようにします。 - PHP 5.3.0 以降、この引数は FastCGI を有効にするようになりました。それより前のバージョンでは - --enable-fastcgi を使って有効にしなければなりませんでした。 - - - - - - - - - - - サーバー内でのリダイレクトの際のセキュリティチェックを有効にします。 - Apache で CGI バージョンを稼動させる場合、このオプションを - 使用すべきです。 - - - PHP 5.3.0 以降、この引数はデフォルトで有効になったため、もう存在しません。 - これを無効にするには、ini ディレクティブ - cgi.force_redirect - に 0 を設定しなければなりません。 - - - - - - - - - - - 有効にすると、PHP の CGI バイナリを web ディレクトリツリーの外に - 配置できるようになります。これで &htaccess; によるセキュリティを - 回避できなくなります。 - - - PHP 5.3.0 以降、この引数はデフォルトで無効になったため、もう存在しません。 - これを有効にするには、ini ディレクティブ - cgi.discard_path - に 1 を設定しなければなりません。 - - - - - - - - - - - - - 有効にすると、CGI モジュールが FastCGI のサポートつきでビルドされます。 - - - PHP 5.3.0 以降、この引数は存在しません。かわりに - --enable-cgi を使って有効化するようになりました。 + この引数は FastCGI も有効にします。 - - - - - - - 無効にすると、/info.php/test?a=b のようなパスは - 動作しません。詳細な情報は - Apache マニュアル - を参照ください。 - - - PHP 5.3.0 以降、この引数はデフォルトで有効でもはや存在しません。 - この機能を無効にするには、cgi.fix_pathinfo ini ディレクティブを - 0 に設定する必要があります。 - - - diff --git a/appendices/debugger.xml b/appendices/debugger.xml index d3410f897c..339aef1f8c 100644 --- a/appendices/debugger.xml +++ b/appendices/debugger.xml @@ -1,6 +1,6 @@ - + PHP のデバッグ @@ -8,16 +8,12 @@ PHP のデバッグについて - PHP 5.6 には、phpdbg 対話型デバッガー - が同梱されます。 - 5.6 より前のバージョンには、内部のデバッガ機能はありませんが、 - 外部のデバッガモジュールを使用することができます。 - Zend IDE - にはデバッガが付属していますし、 - DBG(&url.dbg;)、 - Advanced PHP Debugger(APD) および - Xdebug - といったフリーの外部デバッガモジュールもあります。 + PHP には、コマンドラインの対話型デバッガ + phpdbg が同梱されています。 + + + ほとんどのIDE は Xdebug をサポートしています。 + これはフリーのデバッグツールで、PHP アプリケーションをステップ実行することでデバッグできます。 diff --git a/appendices/examples.xml b/appendices/examples.xml new file mode 100644 index 0000000000..fdd05e1629 --- /dev/null +++ b/appendices/examples.xml @@ -0,0 +1,40 @@ + + + + + マニュアルのサンプルコードについて + + PHP のドキュメント中にあるたくさんのサンプルコードは、 + コードの明瞭さや簡潔さを優先したため、 + エラーや例外処理を省略している点に注意すべきです。 + + + これは、本番コードでエラー処理を省略すべきだという意味ではありません。 + エラー処理を省略すると、TypeError + がスローされたり、&false; のような失敗を表す値が空文字列に強制変換されたり、 + 仮定が破られることで追跡困難なバグが発生する可能性があるためです。 + 拡張モジュールによっては、 + それが提供する様々なメソッドや関数の完全な使い方を示すために、 + エラー処理を含む完全な例を提供している場合もあります。 + + + diff --git a/appendices/filters.xml b/appendices/filters.xml index d99ec7cbc1..2cfdceb557 100644 --- a/appendices/filters.xml +++ b/appendices/filters.xml @@ -1,6 +1,6 @@ - + @@ -42,7 +42,7 @@ これらのフィルタは、まさしくその名が示すとおりの働きをし、PHP 組み込み の文字列処理関数と同じように動作します。これらのフィルタについての - より詳しい情報は、対応する関数のマニュアルを参照してください。 + より詳しい情報は、対応する関数のマニュアルを参照ください。
@@ -117,9 +117,7 @@ fwrite($fp, "This is a test.\n"); ひとつは、strip_tags 関数の第2パラメータと同じ 形式でタグを並べた文字列、もうひとつはタグ名の配列です。 - - &warn.deprecated.feature-7-3-0; - + &warn.deprecated.feature-7-3-0; string.strip_tags @@ -129,13 +127,13 @@ $fp = fopen('php://output', 'w'); stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, ""); fwrite($fp, "bolded text enlarged to a

level 1 heading

\n"); fclose($fp); -/* 出力: bolded text enlarged to a level 1 heading */ +/* 出力: bolded text enlarged to a level 1 heading */ $fp = fopen('php://output', 'w'); stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u')); fwrite($fp, "bolded text enlarged to a

level 1 heading

\n"); fclose($fp); -/* 出力: bolded text enlarged to a level 1 heading */ +/* 出力: bolded text enlarged to a level 1 heading */ ?> ]]>
@@ -150,7 +148,7 @@ fclose($fp); string.* フィルタと同様、convert.* フィルタもその名前と同じような 動作をします。 これらのフィルタについてのより詳しい情報は、対応する関数のマニュアルを - 参照してください。 + 参照ください。
@@ -309,7 +307,7 @@ fclose($fp); 引き上げる) を指定するとメモリをふんだんに利用してより小さく圧縮されます。 一方、小さな値 (9 -- つまり 512 バイトまで絞り込む) を指定すると、圧縮の 効率は落ちますがメモリの消費量を抑えられます。値を指定しなかった際の - window の初期値は、現在 15 です。 + window の初期値は、現在 15 です。 memory は、作業用の一時メモリをどの程度割り当てるかを 指定します。1 (最小限) から 9 (最大限) の間で指定できます。この値は @@ -324,12 +322,8 @@ fclose($fp); - zlib.* 圧縮フィルタが有効になるのは、PHP バージョン 5.1.0 - で zlib サポートが有効な場合です。 - また、PECL から - zlib_filter - パッケージをインストールすることで、バージョン 5.0.x - でも利用可能になります。 + zlib サポートが有効な場合、 + zlib.* 圧縮フィルタが利用可能になります。 @@ -430,12 +424,8 @@ echo "圧縮後のファイルの大きさは " . filesize('test.deflated') . " - bzip2.* 圧縮フィルタが有効になるのは、PHP バージョン 5.1.0 - で bz2 サポートが有効な場合です。 - また、PECL から - bz2_filter - パッケージをインストールすることで、バージョン 5.0.x - でも利用可能になります。 + bz2 サポートが有効な場合、 + bzip2.* 圧縮フィルタが利用可能になります。 @@ -479,9 +469,7 @@ echo "圧縮後のファイルの大きさは " . filesize('LICENSE.compressed')
mcrypt.* と mdecrypt.* - - &warn.deprecated.feature-7-1-0; - + &warn.deprecated.feature-7-1-0; mcrypt.*mdecrypt.* @@ -542,7 +530,7 @@ echo "圧縮後のファイルの大きさは " . filesize('LICENSE.compressed') - Browfish を用いた 暗号化/復号化 + Blowfish を用いた 暗号化/復号化 'cbc','iv'=>$iv, 'key'=>$key) +$opts = array('mode'=>'cbc','iv'=>$iv, 'key'=>$key); stream_filter_append($fp, 'mdecrypt.blowfish', STREAM_FILTER_READ, $opts); $data = rtrim(stream_get_contents($fp));//trims off null padding fclose($fp); @@ -569,7 +557,7 @@ echo $data; - PHP 5.5+ で、ファイルを AES-128 CBC と SHA256 HMAC で暗号化する + ファイルを AES-128 CBC と SHA256 HMAC で暗号化する - + PHP の歴史と関連するプロジェクト @@ -193,6 +193,65 @@ PHP は今や世界中の何千万から何億ものドメインに導入されていると言っても過言ではありません。 + + + PHP 6 + + PHP 6 で計画されていたのは、PHP エンジンと言語内で Unicode を強く + サポートすることでした。この取り組みは後に破棄されましたが、 + PHP 6 をターゲットとしていた機能は PHP 5.3 + (名前空間) + と PHP 5.4 (トレイト + と配列の "短縮" 記法) で取り込まれました。 + + + + + PHP 7 + + PHP 7.0 は 2015年にリリースされ、 + PHP コアのメジャーバージョン Zend Engine 3.0 + を目玉としていました。 + このバージョンは大きなパフォーマンスの向上 + (PHP 5.6 と比較して最大2倍) とメモリ使用量の効率化、 + 一貫した64ビットのサポート、例外の機能追加、 + 安全な乱数生成器、 + NULL合体演算子 (??), 無名クラス やその他の機能が含まれていました。 + + + PHP 7 シリーズの後のリリースには、 + リストの短縮記法 (7.1) + や オブジェクトのパラメータや戻り値への型宣言(7.2)、 + 柔軟な heredoc + と nowdoc (7.3)、 + FFI (7.4) などのような、 + 多くの言語機能が追加されました。 + + + + + PHP 8 + + 2020年に最初にリリースされた PHP 8.0 は、 + PHP 言語のさらなるメジャーアップデートです。 + このバージョンには + 名前付き引数, + union型 + , アトリビュート, + コンストラクタのプロモーション, + match + 式、nullsafe + 演算子 (?->), JIT コンパイラが含まれています。 + そして、型システムやエラーハンドリングが改善され、一貫性の向上が図られていました。 + + + PHP 8 シリーズの後のリリースには、 + enum型 (8.1), + ファイバー (8.1), + 読み取り専用クラス (8.2), + Disjunctive Normal Form (DNF) Types (8.2), クラス定数への型宣言 (8.3) が含まれています。 + + @@ -234,7 +293,7 @@ PEARに関する詳細については、 PEARのマニュアルを - 参照してください。 + 参照ください。 @@ -308,6 +367,7 @@ + diff --git a/appendices/ini.core.xml b/appendices/ini.core.xml index 550ebd440b..2f2dc06970 100644 --- a/appendices/ini.core.xml +++ b/appendices/ini.core.xml @@ -1,6 +1,6 @@ - +
@@ -37,46 +37,27 @@ short_open_tag "1" - PHP_INI_PERDIR + INI_PERDIR - asp_tags - "0" - PHP_INI_PERDIR - PHP 7.0.0 で削除 - - precision "14" - PHP_INI_ALL + INI_ALL serialize_precision "-1" - PHP_INI_ALL + INI_ALL -  PHP 5.3.6 より前は、デフォルト値は 100 でした。  PHP 7.1.0 より前は、デフォルト値は 17 でした。 - - y2k_compliance - "1" - PHP_INI_ALL - PHP 5.4.0 で削除。 - - - allow_call_time_pass_reference - "1" - PHP_INI_SYSTEM|PHP_INI_PERDIR - PHP 5.4.0 で削除。 - disable_functions "" - PHP_INI_SYSTEM のみ + INI_SYSTEM のみ @@ -88,8 +69,8 @@ exit_on_timeout "" - PHP_INI_ALL - PHP 5.3.0 以降で利用可能。 + INI_ALL + expose_php @@ -100,56 +81,50 @@ hard_timeout "2" - PHP_INI_SYSTEM + INI_SYSTEM PHP 7.1.0 以降で利用可能。 zend.exception_ignore_args "0" - PHP_INI_ALL + INI_ALL PHP 7.4.0 以降で利用可能。 zend.multibyte "0" - PHP_INI_ALL - PHP 5.4.0 以降で利用可能。 + INI_ALL + zend.script_encoding NULL - PHP_INI_ALL - PHP 5.4.0 以降で利用可能。 + INI_ALL + zend.detect-unicode NULL - PHP_INI_ALL - Available since PHP 5.4.0 + INI_ALL + zend.signal_check "0" - PHP_INI_SYSTEM - PHP 5.4.0 以降で利用可能。 + INI_SYSTEM + zend.assertions "1" - PHP_INI_ALL (制限あり) - PHP 7.0.0 以降で利用可能。 - - - zend.ze1_compatibility_mode - "0" - PHP_INI_ALL - PHP 5.3.0 で削除。 + INI_ALL (制限あり) + - detect_unicode - "1" - PHP_INI_ALL - PHP 5.1.0 以降で利用可能。PHP 5.4.0 で名前を zend.detect-unicode に変更。 + zend.exception_string_param_max_len + "15" + INI_ALL + PHP 8.0.0 以降で利用可能。 @@ -163,7 +138,7 @@ short_open_tag - boolean + bool @@ -178,60 +153,16 @@ - PHP 5.4.0 より前のバージョンでは、 - このディレクティブは、<? echoと同じ形式の - ショートカット<?=も影響を受けます。 - このショートカットを使用するには、 - short_open_tagをonとする - 必要があります。 - PHP 5.4.0 以降では、<?= は常に有効となります。 + これは、<?= 記法に影響を与えません。常に有効となります。 - - - asp_tags - boolean - - - - ASP 形式のタグ <% %> を通常のタグ <?php ?> - に加えて使用可能にします。 - このスイッチにより、出力の短縮形 <%= $value %> も - 使用できるようになります。 - 詳細な情報は、 - HTML からのエスケープを参照ください。 - - - - <literal>asp_tags</literal> の変更履歴 - - - - &Version; - &Description; - - - - - 7.0.0 - - PHP から削除されました。 - - - - -
-
-
-
- precision - integer + int @@ -244,7 +175,7 @@ serialize_precision - integer + int @@ -254,107 +185,15 @@ - - - y2k_compliance - boolean - - - - 2000年問題対応を強制します (2000年問題非対応のブラウザにおいて、 - 問題が発生する可能性があります)。 - - - - - - - - allow_call_time_pass_reference - boolean - - - - 関数のコール時に引数が参照で渡された場合に、警告するかどうかを設定します。 - 推奨される方法は、関数宣言時に参照渡しとするべき引数を指定することです。 - 将来のバージョンでの動作を保障するために、 - このオプションを off とし、 - スクリプトがこの状態で正しく動作することを確認することが推奨されます - (この機能を使用する度に警告が発生します)。 - - - 関数コール時に参照で引数を渡すことは、コードの明解さを損なうために - 廃止されています。関数は、引数が参照渡しであると宣言されて - いない場合でも、文書化されていない方法で、その引数を修正できます。 - 副作用を回避するためには、どの引数を参照渡しとするかを関数宣言でのみ - 指定すると良いでしょう。 - - - 参照に関する説明も参照ください。 - - - - <literal>allow_call_time_pass_reference</literal> の変更履歴 - - - - &Version; - &Description; - - - - - 5.4.0 - - PHP から削除されました。 - - - - 5.3.0 - - E_DEPRECATED レベルのエラーが発生するようになりました。 - - - - 5.0.0 - - 非推奨となり、E_COMPILE_WARNING レベルのエラーが発生するようになりました。 - - - - -
-
-
-
- expose_php - boolean + bool PHP がサーバーにインストールされていることを全世界に晒し、PHP のバージョンも - HTTP ヘッダに含めます (X-Powered-By: PHP/5.3.7 など)。PHP 5.5.0 より前のバージョンでは - PHP のロゴの guid も公開されるので、PHP を有効にしたサイトの URL にそれを追加すると - guids are also exposed, thus appending them to the URL of a PHP enabled site - (例: &url.php;?=PHPE9568F34-D428-11d2-A769-00AA001ACF42) - ロゴが表示されるようになります。この設定は phpinfo - の出力にも影響し、無効にすると PHP のロゴやクレジット情報が表示されなくなっていました。 - - - - PHP 5.5.0 からは、これらの guid や php_logo_guid 関数が削除され、 - guid の代わりに URI を使うようになりました。したがって、URL の後に guid - を追加して PHP のロゴにアクセスするという方法は、使えなくなります。 - 同様に、expose_php をオフにしても、 - phpinfo における PHP ロゴの表示には影響しなくなります。 - - - - php_logo_guid および phpcredits - も参照ください。 + HTTP ヘッダに含めます (X-Powered-By: PHP/5.3.7 など)。 @@ -365,36 +204,45 @@ string - + このディレクティブを使うと、特定の関数を無効にすることができます。 関数名の一覧をカンマ区切りで指定します。 - - - このディレクティブで無効にできるのは - 内部の関数だけです。 - ユーザーが定義した関数 + PHP 8.0.0 以降では、関数を無効にすると定義を削除しますが、 + ユーザーランドで再定義できます。 + PHP 8.0.0 より前のバージョンでは、 + 関数を無効にすると、その関数は呼び出せませんでした。 +
+ + このディレクティブを使って無効にできるのは、 + 内部関数 だけです。 + ユーザー定義関数 は影響を受けません。 - - + + このディレクティブは &php.ini; で設定しなければなりません。 - たとえばこれを &httpd.conf; で設定することはできません。 - + &httpd.conf; では設定できません。 +
- + disable_classes string - + このディレクティブを使うと、特定のクラスを無効にすることができます。 クラス名の一覧をカンマ区切りで指定します。 - + クラスを無効にすると、クラスのインスタンス化ができなくなります。 + + + このディレクティブを使って無効にできるのは、内部クラスのみです。 + ユーザーが定義したクラスは影響を受けません。 + このディレクティブは &php.ini; で設定しなければなりません。 - たとえばこれを &httpd.conf; で設定することはできません。 + &httpd.conf; では設定できません。 @@ -402,7 +250,7 @@ zend.assertions - integer + int @@ -422,43 +270,44 @@ - - - - zend.ze1_compatibility_mode - boolean - + + + + zend.exception_string_param_max_len + int + - - Zend Engine 1 (PHP 4) との互換モードを有効にします。 - この設定は、オブジェクトのコピー、キャスト (プロパティを - 保持しないオブジェクトが &false; あるいは 0 のいずれになるか)、 - そして - 比較 - に影響を与えます。このモードの場合、オブジェクトを渡す際の - デフォルトの方法は、参照渡しではなく値渡しとなります。 - - - PHP 4 から PHP 5 への移行というタイトルの - セクションも参照してください。 - - - - この機能は 非推奨 で、 - PHP 5.3.0 以降では 削除 されました。 - - - + + 文字列化されたスタックトレース中の、関数の引数の長さの最大値。 + "0""1000000" の間でなければいけません。 + hard_timeout - integer + int + max_execution_time + で設定されたタイムアウトに達すると、 + PHPランタイムはリソースをgracefulに開放します。 + リソースを開放する処理が何らかの原因で止まってしまった場合、 + hard_timeout のカウントがここで設定した秒数行われます。 + hard_timeout のタイムアウトに達すると、 + PHP はgracefulにリソースを開放せずに終了します。 + この値を 0 に設定すると、この機能は無効になります。 + + + PHP が hard timeout で停止すると、 + 以下のようなメッセージが残るでしょう。 + + + @@ -466,7 +315,7 @@ zend.exception_ignore_args - boolean + bool @@ -478,7 +327,7 @@ zend.multibyte - boolean + bool @@ -508,7 +357,7 @@ zend.multibyte と zend.script_encoding を両方とも指定する必要があります。 - リテラル文字列は、zend.script_enconding から + リテラル文字列は、zend.script_encoding から mbstring.internal_encoding に変換されます。 mb_convert_encoding が呼ばれたときと同じです。 @@ -518,7 +367,7 @@ zend.detect_unicode - boolean + bool @@ -534,7 +383,7 @@ zend.signal_check - boolean + bool @@ -546,7 +395,7 @@ exit_on_timeout - boolean + bool @@ -580,8 +429,8 @@ memory_limit "128M" - PHP_INI_ALL - PHP 5.2.0 より前は "8M"、PHP 5.2.0 では "16M" + INI_ALL + @@ -595,7 +444,7 @@ memory_limit - integer + int @@ -604,14 +453,6 @@ もし、使用可能メモリに制限を設けたくない場合は、 ここに -1 を指定してください。 - - PHP 5.2.1 より前のバージョンでは、このディレクティブを使うためには、 - コンパイル時に configure で - を指定しなければなりません。 - このコンパイルフラグは、関数 memory_get_usage および - memory_get_peak_usage - を 5.2.1 より前のバージョンで使う際にも必要となります。 - &ini.shorthandbytes; @@ -643,17 +484,17 @@ realpath_cache_size "4M" - PHP_INI_SYSTEM + INI_SYSTEM - PHP 5.1.0 以降で使用可能。PHP 7.0.16 および 7.1.2 より前のバージョンでは、 + PHP 7.0.16 および 7.1.2 より前のバージョンでは、 デフォルト値は "16K" でした。 realpath_cache_ttl "120" - PHP_INI_SYSTEM - PHP 5.1.0 以降で使用可能。 + INI_SYSTEM + @@ -671,7 +512,7 @@ realpath_cache_size - integer + int @@ -694,7 +535,7 @@ realpath_cache_ttl - integer + int @@ -727,92 +568,92 @@ arg_separator.output "&" - PHP_INI_ALL + INI_ALL arg_separator.input "&" - PHP_INI_SYSTEM|PHP_INI_PERDIR + INI_SYSTEM|INI_PERDIR variables_order "EGPCS" - PHP_INI_PERDIR - PHP <= 5.0.5 では PHP_INI_ALL。 + INI_PERDIR + request_order "" - PHP_INI_PERDIR - PHP 5.3.0 以降で利用可能 + INI_PERDIR + auto_globals_jit "1" - PHP_INI_PERDIR - PHP 5.0.0 以降で利用可能 - - - register_globals - "0" - PHP_INI_PERDIR - PHP 5.4.0 で削除。 + INI_PERDIR + register_argc_argv "1" - PHP_INI_PERDIR + INI_PERDIR - - register_long_arrays - "1" - PHP_INI_PERDIR - PHP 5.3.0 で非推奨。PHP 5.4.0 で削除。 - enable_post_data_reading "1" - PHP_INI_PERDIR - PHP 5.4.0 以降で利用可能。 + INI_PERDIR + post_max_size "8M" - PHP_INI_PERDIR + INI_PERDIR auto_prepend_file "" - PHP_INI_PERDIR + INI_PERDIR auto_append_file "" - PHP_INI_PERDIR + INI_PERDIR default_mimetype "text/html" - PHP_INI_ALL + INI_ALL default_charset "UTF-8" - PHP_INI_ALL - PHP >= 5.6.0 で、デフォルトが "UTF-8" になりました。PHP < 5.6.0 でのデフォルトは空でした。 + INI_ALL + - always_populate_raw_post_data - "0" - PHP_INI_PERDIR - PHP 7.0.0 で削除。 + input_encoding + "" + INI_ALL + + + + output_encoding + "" + INI_ALL + + + + internal_encoding + "" + INI_ALL + @@ -872,24 +713,6 @@ $_COOKIE は作成しません。"" に設定すると、一切 &link.superglobals; を設定しません。 - - 非推奨のディレクティブ - register_globals - が on になっていると、 - variables_order の設定は、 - ENV、 - GETPOST、 - COOKIE および SERVER - の各変数がグローバルスコープに取り込まれる順番も左右します。 - つまり、たとえば variables_order が - "EGPCS" で register_globals が有効になっていたとすると、 - $_GET['action'] と - $_POST['action'] が両方設定された場合の - $action の値は - $_POST['action'] の内容になります。 - これは、この例におけるディレクティブの設定で P - が G より後になっているからです。 - CGI および FastCGI SAPI の両方で、 @@ -936,7 +759,7 @@ auto_globals_jit - boolean + bool @@ -945,15 +768,6 @@ これらの変数がスクリプトの中で使用されない場合、 このディレクティブを使用することで性能が向上します。 - - このディレクティブを有効にするには、PHP ディレクティブ - register_globals, - register_long_arrays, - および register_argc_argv - を無効にしておく必要があります。PHP 5.1.3 以降では、 - register_argc_argv - を無効にする必要はありません。 - SERVER、REQUEST および ENV 変数の利用チェックはコンパイル時に行われます。 @@ -965,48 +779,10 @@ - - - register_globals - boolean - - - - EGPCS(Environment, GET, POST, Cookie, Server)変数を - グローバル変数として登録するかどうかを指定します。 - - - PHP 4.2.0 以降、 - このディレクティブのデフォルトは、offです。 - - - 関連する情報については、セキュリティの章の - register_globalsの使用 - を参照してください。 - - - register_globalsは、 - (ini_setで)実行時に設定することができないことに - 注意してください。しかし、前記のようにホストが許可している場合には、 - &htaccess; を使用することができます。 - &htaccess; エントリの例を以下に示します。 - php_flag register_globals off - - - - register_globals は、 - variables_order - ディレクティブの影響を受けます。 - - - &warn.deprecated.feature-5-3-0.removed-5-4-0; - - - register_argc_argv - boolean + bool @@ -1020,33 +796,10 @@ - - - register_long_arrays - boolean - - - - PHP が、$HTTP_*_VARS のような古い長い - 定義済みの変数 - を登録するかどうかを指定します。 - On (デフォルト) とした場合、$HTTP_GET_VARS のような - 定義済みの長い PHP 変数が定義されます。 - これらの変数を使用していない場合には、性能面からこのオプションを - off とすることが推奨されています。 - かわりに $_GET のようなスーパーグローバル変数を使用してください。 - - - このディレクティブは PHP 5.0.0 で利用可能となりました。 - - &warn.deprecated.feature-5-3-0.removed-5-4-0; - - - enable_post_data_reading - boolean + bool @@ -1063,7 +816,7 @@ post_max_size - integer + int @@ -1085,7 +838,7 @@ POSTデータの大きさが、post_max_sizeより大きい場合、 $_POST$_FILES - superglobals + スーパーグローバル は空になります。この事象は、いくつかの方法で検出することができます。 例えば、$_GET 変数をデータを <form action="edit.php?processed=1">のように @@ -1203,7 +956,7 @@ - PHP 5.6.0 以降は "UTF-8" がデフォルトになり、 + "UTF-8" がデフォルトの値です。 htmlentitieshtml_entity_decode そして htmlspecialchars で @@ -1237,7 +990,6 @@ - PHP 5.6.0 以降で利用可能です。 この設定は、mbstring や iconv などのマルチバイトモジュールが使うものです。デフォルトは空文字列です。 @@ -1250,7 +1002,6 @@ - PHP 5.6.0 以降で利用可能です。 この設定は、mbstring や iconv などのマルチバイトモジュールが使うものです。デフォルトは空文字列です。 @@ -1263,7 +1014,6 @@ - PHP 5.6.0 以降で利用可能です。 この設定は、mbstring や iconv などのマルチバイトモジュールが使うものです。デフォルトは空文字列です。 空文字列を指定した場合は、 default_charset を利用します。 @@ -1271,44 +1021,8 @@ - - - always_populate_raw_post_data - mixed - - - &warn.deprecated.feature-5-6-0.removed-7-0-0; - - &true; に設定すると、PHP は常に - $HTTP_RAW_POST_DATA にアクセス可能とします。 - この変数には生の POST データが格納されています。 - 指定しなかった場合は、 - データの MIME 型が判別できない場合のみこの変数にアクセス可能となります。 - - - 生の POST データにアクセスする方法としては - php://input のほうが推奨されます。 - $HTTP_RAW_POST_DATA は、PHP 5.6.0 以降で非推奨となります。 - always_populate_raw_post_data - を -1 にすると、将来のバージョンでの PHP の挙動を事前に体験できます。 - つまり、$HTTP_RAW_POST_DATA がはじめから定義されていない状態のことです。 - - - 設定がどうであろうと、enctype="multipart/form-data" - の場合は $HTTP_RAW_POST_DATA は使えません。 - - - - - - magic_quotes_gpc, - magic-quotes-runtime, - および - magic_quotes_sybase - も参照ください。 -
@@ -1329,43 +1043,43 @@ include_path ".;/path/to/php/pear" - PHP_INI_ALL + INI_ALL open_basedir NULL - PHP_INI_ALL - PHP < 5.3.0 では PHP_INI_SYSTEM + INI_ALL + doc_root NULL - PHP_INI_SYSTEM + INI_SYSTEM user_dir NULL - PHP_INI_SYSTEM + INI_SYSTEM user_ini.cache_ttl "300" - PHP_INI_SYSTEM - PHP 5.3.0 以降で利用可能。 + INI_SYSTEM + user_ini.filename ".user.ini" - PHP_INI_SYSTEM - PHP 5.3.0 以降で利用可能。 + INI_SYSTEM + extension_dir "/path/to/php" - PHP_INI_SYSTEM + INI_SYSTEM @@ -1379,78 +1093,60 @@ NULL &php.ini; のみ - - - zend_extension_debug - NULL - &php.ini; のみ - PHP 5.3.0 より前のバージョンで利用可能 - - - zend_extension_debug_ts - NULL - &php.ini; のみ - PHP 5.3.0 より前のバージョンで利用可能 - - - zend_extension_ts - NULL - &php.ini; のみ - PHP 5.3.0 より前のバージョンで利用可能 cgi.check_shebang_line "1" - PHP_INI_SYSTEM - PHP 5.2.0 以降で利用可能。 + INI_SYSTEM + cgi.discard_path "0" - PHP_INI_SYSTEM - PHP 5.3.0 以降で利用可能。 + INI_SYSTEM + cgi.fix_pathinfo "1" - PHP_INI_SYSTEM - PHP 5.2.1 までは PHP_INI_ALL でした。 + INI_SYSTEM + cgi.force_redirect "1" - PHP_INI_SYSTEM - PHP 5.2.1 までは PHP_INI_ALL でした。 + INI_SYSTEM + cgi.nph "0" - PHP_INI_SYSTEM - PHP 5.3.0 以降で利用可能。 + INI_SYSTEM + cgi.redirect_status_env NULL - PHP_INI_SYSTEM - PHP 5.2.1 までは PHP_INI_ALL でした。 + INI_SYSTEM + cgi.rfc2616_headers "0" - PHP_INI_ALL + INI_ALL fastcgi.impersonate "0" - PHP_INI_SYSTEM - PHP 5.2.1 までは PHP_INI_ALL でした。 + INI_SYSTEM + fastcgi.logging "1" - PHP_INI_SYSTEM - PHP 5.2.1 までは PHP_INI_ALL でした。 + INI_SYSTEM + @@ -1544,8 +1240,7 @@ include_path = ".:${USER}/pear/php" PHP からアクセスできるファイルを、指定したディレクトリツリーに限定します。 - ファイル自身も含みます。このディレクティブは、セーフモードのオン/オフ - には影響を受けません。 + ファイル自身も含みます。 スクリプトから @@ -1562,7 +1257,7 @@ include_path = ".:${USER}/pear/php" は、ファイルシステム関数以外の挙動にも影響を及ぼします。 たとえば MySQL の設定で mysqlnd ドライバーを使うようにしている場合に、 LOAD DATA INFILE の影響を受けます。 - PHP の拡張機能の多くが、open_basedir をこのように利用しています。 + PHP の拡張モジュールの多くが、open_basedir をこのように利用しています。 特別な値 . は、 @@ -1585,34 +1280,41 @@ include_path = ".:${USER}/pear/php" パスを自動的に継承します。 - で指定する制約は、PHP 5.2.6 および 5.3.4 - 以降はディレクトリ名となります。それより前のバージョンでは、この制約はプレフィックスという扱いでした。 - つまり、"open_basedir - = /dir/incl" とした場合に、仮に "/dir/include" や - "/dir/incls" が存在すればそこにもアクセスできていたということです。 - 指定したディレクトリへのアクセスのみに制限したい場合は、最後にスラッシュをつけて - open_basedir = /dir/incl/ のようにします。 + で指定する制約は、 + ディレクトリ名となります。プレフィックスではありません。 デフォルトでは、すべてのファイルを開くことができます。 - - PHP 5.3.0 以降では、open_basedir の設定を実行時に厳しくできるようになりました。 - open_basedir が &php.ini; で /www/ + + open_basedir の設定を実行時に厳しくすることができます。 + これは、open_basedir が &php.ini; で /www/ と設定されているときに、スクリプト内で ini_set を使って設定を厳しくして /www/tmp/ のようにできるということです。 複数のディレクトリを指定するときには、定数 PATH_SEPARATOR を使えば OS に依存しない記述ができます。 - + + + PHP 8.3.0 以降では、ini_set + を使って実行時に の値を設定する場合、 + 親ディレクトリ (..) を含むパスを受け入れなくなりました。 + open_basedir を使用すると、realpath_cache_size は - 0 へ設定され、結果として realpath キャッシュは disable にされます。 + 0 に設定され、結果として realpath キャッシュは disable にされます。 + + + open_basedir は、追加のセキュリティ機構でしかありません。 + つまり、広範囲に適用できるものでは決してないため、 + セキュリティを高める必要がある際にそれだけに依存してはいけません。 + + @@ -1624,8 +1326,7 @@ include_path = ".:${USER}/pear/php" サーバーにおけるPHPの"ルートディレクトリ"です。この値は空で無 - い場合のみ使用されます。PHPが &safemode; で設定されている場合には、 - このディレクトリの外側にあるファイルは使用されません。 + い場合のみ使用されます。 PHPがFORCE_REDIRECTを指定してコンパイルされていない場合、 (IIS以外の)WebサーバーのもとでCGIとしてPHPを実行する際には、 doc_rootを指定するべきです。 @@ -1638,7 +1339,7 @@ include_path = ".:${USER}/pear/php" user_ini.cache_ttl - integer + int @@ -1680,6 +1381,7 @@ include_path = ".:${USER}/pear/php" 動的にロード可能な拡張モジュールを置くディレクトリを 指定します。 + 絶対パスを指定することを推奨します。 enable_dl と dl も参照ください。 @@ -1705,58 +1407,15 @@ include_path = ".:${USER}/pear/php" - PHP の起動時に読み込む動的読み込み可能な Zend 拡張モジュール (たとえば - APD) の名前。 - - - - - - - zend_extension_debug - string - - - - zend_extension - の亜種で、デバッグ情報つきでコンパイルされた拡張モジュール用のもの。 - PHP 5.3.0 より前のバージョンで利用可能。 - - - - - - - zend_extension_debug_ts - string - - - - zend_extension - の亜種で、デバッグ情報つきかつスレッドセーフでコンパイルされた拡張モジュール用のもの。 - PHP 5.3.0 より前のバージョンで利用可能。 + PHP の起動時に読み込む動的読み込み可能な Zend 拡張モジュール (たとえば XDebug) の名前。 - - - zend_extension_ts - string - - - - zend_extension - の亜種で、スレッドセーフでコンパイルされた拡張モジュール用のもの。 - PHP 5.3.0 より前のバージョンで利用可能。 - - - - cgi.check_shebang_line - boolean + bool @@ -1772,7 +1431,7 @@ include_path = ".:${USER}/pear/php" cgi.discard_path - boolean + bool @@ -1785,7 +1444,7 @@ include_path = ".:${USER}/pear/php" cgi.fix_pathinfo - boolean + bool @@ -1793,7 +1452,7 @@ include_path = ".:${USER}/pear/php" サポートをCGIで提供します。 PHPの以前の動作は、 SCRIPT_FILENAMEPATH_TRANSLATEDを設定するというもので、 PATH_INFOの定義を理解していませんんでした。 - PATH_INFOに関する詳細については、CGIの仕様を参照してください。 + PATH_INFOに関する詳細については、CGIの仕様を参照ください。 このオプションを1にすることにより、 PHP CGIはこのパスを仕様にあうように修正します。 ゼロとすると、 PHPは以前と同様に動作します。これは、デフォルトでオンになっています。 @@ -1806,7 +1465,7 @@ include_path = ".:${USER}/pear/php" cgi.force_redirect - boolean + bool @@ -1829,7 +1488,7 @@ include_path = ".:${USER}/pear/php" cgi.nph - boolean + bool @@ -1863,14 +1522,14 @@ include_path = ".:${USER}/pear/php" cgi.rfc2616_headers - int + bool PHP に、HTTP レスポンスを返す際に、どの形式のヘッダーを使うか - 指示します。0 にセットした場合は、Apache やその他の web サーバーで - サポートされている RFC 3875 Status: ヘッダーを送信します。このオプションの値を - 1 にセットした場合は、PHP は RFC 2616 + 指示します。このオプションを無効にすると、0 にセットした場合は、Apache やその他の web サーバーで + サポートされている RFC 3875 Status: ヘッダーを送信します。このオプションを有効にすると、 + PHP は RFC 2616 の仕様に適合した形式のヘッダーを送信します。 @@ -1880,7 +1539,7 @@ include_path = ".:${USER}/pear/php" header("Status: 404 Not Found"); にしなければいけないということです。 - よくわからないときは、この値は 0 のままにしておきましょう。 + よくわからないときは、この値は無効のままにしておきましょう。 @@ -1888,7 +1547,7 @@ include_path = ".:${USER}/pear/php" fastcgi.impersonate - string + bool @@ -1898,8 +1557,8 @@ include_path = ".:${USER}/pear/php" これにより、IIS がリクエストを処理するセキュリティコンテキストを 定義できるようになります。Apacheのもとで実行される mod_fastcgi は現在 (2002/03/17) この機能をサポートしていません。 - IIS のもとで実行するには、1 に設定してください。 - デフォルトは 0 です。 + IIS のもとで実行するには、有効にしておいてください。 + デフォルトは無効になっています。 @@ -1907,7 +1566,7 @@ include_path = ".:${USER}/pear/php" fastcgi.logging - boolean + bool @@ -1939,38 +1598,38 @@ include_path = ".:${USER}/pear/php" file_uploads "1" - PHP_INI_SYSTEM + INI_SYSTEM upload_tmp_dir NULL - PHP_INI_SYSTEM + INI_SYSTEM max_input_nesting_level 64 - PHP_INI_PERDIR - PHP 5.3.9 以降で利用可能。 + INI_PERDIR + max_input_vars 1000 - PHP_INI_PERDIR - PHP 5.3.9 以降で利用可能。 + INI_PERDIR + upload_max_filesize "2M" - PHP_INI_PERDIR + INI_PERDIR max_file_uploads 20 - PHP_INI_SYSTEM - PHP 5.2.12 以降で利用可能。 + INI_PERDIR + @@ -1984,7 +1643,7 @@ include_path = ".:${USER}/pear/php" file_uploads - boolean + bool @@ -2022,12 +1681,16 @@ include_path = ".:${USER}/pear/php" upload_max_filesize - integer + int アップロードされるファイルの最大サイズ。 + + post_max_size には、 + この値より大きな値を指定しなければいけません。 + &ini.shorthandbytes; @@ -2037,13 +1700,13 @@ include_path = ".:${USER}/pear/php" max_file_uploads - integer + int 同時にアップロードできるファイルの最大数。 - PHP 5.3.4 以降、何もファイルを指定せずに送信されたアップロードフィールドは - ファイル数に数えられなくなりました。 + 何もファイルを指定せずに送信されたアップロードフィールドは + ファイル数に数えられません。 @@ -2069,8 +1732,8 @@ include_path = ".:${USER}/pear/php" sql.safe_mode "0" - PHP_INI_SYSTEM - PHP 7.2.0 で削除されました + INI_SYSTEM + PHP 7.2.0 以降は削除されています。 @@ -2084,7 +1747,7 @@ include_path = ".:${USER}/pear/php" sql.safe_mode - boolean + bool @@ -2121,8 +1784,8 @@ include_path = ".:${USER}/pear/php" windows.show_crt_warning "0" - PHP_INI_ALL - PHP 5.4.0 以降で利用可能。 + INI_ALL + @@ -2136,12 +1799,11 @@ include_path = ".:${USER}/pear/php" windows.show_crt_warning - boolean + bool このディレクティブを有効にすると、Windows CRT の警告を表示します。 - PHP 5.4.0 より前のバージョンでは、これが常に表示されていました。 diff --git a/appendices/ini.list.xml b/appendices/ini.list.xml index 0f6a69b567..7eafc851c1 100644 --- a/appendices/ini.list.xml +++ b/appendices/ini.list.xml @@ -1,6 +1,6 @@ - +
@@ -10,7 +10,7 @@ 含まれます。 - "変更の可否" は、そのディレクティブをいつどこで定義できるかを表すモードです。その意味については + "&Changeable;" カラムは、そのディレクティブをいつどこで定義できるかを表すモードです。その意味については どこで設定を行うのか を参照ください。 @@ -26,3273 +26,799 @@ - - allow_call_time_pass_reference - "1" - PHP_INI_PERDIR - PHP 5.4.0 で削除。 - - - allow_url_fopen - "1" - PHP_INI_SYSTEM - - - - allow_url_include - "0" - PHP_INI_SYSTEM - PHP 5.2.0 以降で使用可能。PHP 7.4.0 以降は非推奨 - - - always_populate_raw_post_data - "0" - PHP_INI_PERDIR - - - - apc.cache_by_default - "1" - PHP_INI_ALL - APC <= 3.0.12 で PHP_INI_SYSTEM。APC 3.0.0 以降で利用可能。 - - - apc.enabled - "1" - PHP_INI_SYSTEM - APC 2 で PHP_INI_SYSTEM、APC <= 3.0.12 で PHP_INI_ALL。 - - - apc.enable_cli - "0" - PHP_INI_SYSTEM - APC 3.0.7 以降で利用可能。 - - - apc.file_update_protection - "2" - PHP_INI_SYSTEM - APC 3.0.6 以降で利用可能。 - - - apc.filters - NULL - PHP_INI_SYSTEM - - - - apc.gc_ttl - "3600" - PHP_INI_SYSTEM - - - - apc.include_once_override - "0" - PHP_INI_SYSTEM - APC 3.0.12 以降で利用可能。 - - - apc.localcache - "0" - PHP_INI_SYSTEM - APC 3.0.14 以降で利用可能。 - - - apc.localcache.size - "512" - PHP_INI_SYSTEM - APC 3.0.14 以降で利用可能。 - - - apc.max_file_size - "1M" - PHP_INI_SYSTEM - APC 3.0.7 以降で利用可能。 - - - apc.mmap_file_mask - NULL - PHP_INI_SYSTEM - - - - apc.num_files_hint - "1000" - PHP_INI_SYSTEM - - - - apc.optimization - "0" - PHP_INI_ALL - APC 2 で PHP_INI_SYSTEM、APC 3.0.13 で削除。 - - - apc.report_autofilter - "0" - PHP_INI_SYSTEM - APC 3.0.11 以降で利用可能。 - - - apc.rfc1867 - "0" - PHP_INI_SYSTEM - APC 3.0.13 以降で利用可能。 - - - apc.rfc1867_freq - "0" - PHP_INI_SYSTEM - - - - apc.rfc1867_name - "APC_UPLOAD_PROGRESS" - PHP_INI_SYSTEM - - - - apc.rfc1867_prefix - "upload_" - PHP_INI_SYSTEM - - - - apc.shm_segments - "1" - PHP_INI_SYSTEM - - - - apc.shm_size - "30" - PHP_INI_SYSTEM - - - - apc.slam_defense - "0" - PHP_INI_SYSTEM - APC 3.0.0 以降で利用可能。 - - - apc.stat - "1" - PHP_INI_SYSTEM - APC 3.0.10 以降で利用可能。 - - - apc.stat_ctime - "0" - PHP_INI_SYSTEM - APC 3.0.13 以降で利用可能。 - - - apc.ttl - "0" - PHP_INI_SYSTEM - APC 3.0.0 以降で利用可能。 - - - apc.user_entries_hint - "4096" - PHP_INI_SYSTEM - APC 3.0.0 以降で利用可能。 - - - apc.user_ttl - "0" - PHP_INI_SYSTEM - APC 3.0.0 以降で利用可能。 - - - apc.write_lock - "1" - PHP_INI_SYSTEM - APC 3.0.11 以降で利用可能。 - - - apd.bitmask - "0" - PHP_INI_ALL - apd 0.9 で削除。 - - - apd.dumpdir - NULL - PHP_INI_ALL - - - - apd.statement_tracing - "0" - PHP_INI_ALL - apd 0.9 以降で利用可能。 - - - arg_separator.input - "&" - PHP_INI_PERDIR - - - - arg_separator.output - "&" - PHP_INI_ALL - - - - asp_tags - "0" - PHP_INI_PERDIR - PHP 7.0.0 で削除。 - - - assert.active - "1" - PHP_INI_ALL - - - - assert.bail - "0" - PHP_INI_ALL - - - - assert.callback - NULL - PHP_INI_ALL - - - - assert.exception - "0" - PHP_INI_ALL - PHP 7.0.0 以降で利用可能。 - - - assert.quiet_eval - "0" - PHP_INI_ALL - - - - assert.warning - "1" - PHP_INI_ALL - - - - auto_append_file - NULL - PHP_INI_PERDIR - - - - auto_detect_line_endings - "0" - PHP_INI_ALL - - - - auto_globals_jit - "1" - PHP_INI_PERDIR - - - - auto_prepend_file - NULL - PHP_INI_PERDIR - - - - axis2.client_home - "~/work/axisc/c/deply" - PHP_INI_ALL - - - - axis2.enable_exception - "1" - PHP_INI_ALL - - - - axis2.enable_trace - "1" - PHP_INI_ALL - - - - axis2.log_path - "/tmp" - PHP_INI_ALL - - - - bcmath.scale - "0" - PHP_INI_ALL - - - - bcompiler.enabled - "1" - PHP_INI_ALL - bcompiler 0.8 以降で利用可能。 - - - blenc.key_file - "/usr/local/etc/blenckeys" - PHP_INI_ALL - - - - browscap - NULL - PHP_INI_SYSTEM - - - - cgi.check_shebang_line - "1" - PHP_INI_SYSTEM - PHP 5.2.1 以降で利用可能。 - - - cgi.discard_path - "0" - PHP_INI_SYSTEM - PHP 5.3.0 以降で利用可能。 - - - cgi.fix_pathinfo - "1" - PHP_INI_SYSTEM - PHP <= 5.2.0 で PHP_INI_ALL - - - cgi.force_redirect - "1" - PHP_INI_SYSTEM - PHP <= 5.2.0 で PHP_INI_ALL - - - cgi.nph - "0" - PHP_INI_ALL - - - - cgi.redirect_status_env - NULL - PHP_INI_SYSTEM - PHP <= 5.2.0 で PHP_INI_ALL - - - cgi.rfc2616_headers - "0" - PHP_INI_ALL - - - - child_terminate - "0" - PHP_INI_ALL - - - - cli.pager - "" - PHP_INI_ALL - PHP 5.4.0 以降で利用可能 - - - cli.prompt - "\\b \\> " - PHP_INI_ALL - PHP 5.4.0 以降で利用可能 - - - cli_server.color - "0" - PHP_INI_ALL - PHP 5.4.0 以降で利用可能 - - - coin_acceptor.autoreset - "On" - PHP_INI_ALL - coin_acceptor 0.2 で削除。 - - - coin_acceptor.auto_initialize - "Off" - PHP_INI_ALL - coin_acceptor 0.2 以降で利用可能。 - - - coin_acceptor.auto_reset - "On" - PHP_INI_ALL - coin_acceptor 0.2 以降で利用可能。 - - - coin_acceptor.command_function - "Off" - PHP_INI_ALL - coin_acceptor 0.3 以降で利用可能。 - - - coin_acceptor.delay - "53132" - PHP_INI_ALL - coin_acceptor 0.2 以降で利用可能。 - - - coin_acceptor.delay_coins - "53132" - PHP_INI_ALL - coin_acceptor 0.2 以降で利用可能。 - - - coin_acceptor.delay_prom - "55748" - PHP_INI_ALL - coin_acceptor 0.2 以降で利用可能。 - - - coin_acceptor.device - "/dev/ttyS1" - PHP_INI_ALL - coin_acceptor 0.2 で削除。 - - - coin_acceptor.lock_on_close - "Off" - PHP_INI_ALL - coin_acceptor 0.2 以降で利用可能。 - - - coin_acceptor.start_unlocked - "On" - PHP_INI_ALL - coin_acceptor 0.2 以降で利用可能。 - - - com.allow_dcom - "0" - PHP_INI_SYSTEM - - - - com.autoregister_casesensitive - "1" - PHP_INI_ALL - - - - com.autoregister_typelib - "0" - PHP_INI_ALL - - - - com.autoregister_verbose - "0" - PHP_INI_ALL - - - - com.code_page - "" - PHP_INI_ALL - - - - com.typelib_file - "" - PHP_INI_SYSTEM - - - - curl.cainfo - NULL - PHP_INI_SYSTEM - PHP 5.3.7 以降で利用可能 - - - daffodildb.default_host - "localhost" - PHP_INI_ALL - - - - daffodildb.default_password - "daffodil" - PHP_INI_ALL - - - - daffodildb.default_socket - NULL - PHP_INI_ALL - - - - daffodildb.default_user - "DAFFODIL" - PHP_INI_ALL - - - - daffodildb.port - "3456" - PHP_INI_ALL - - - - date.default_latitude - "31.7667" - PHP_INI_ALL - - - - date.default_longitude - "35.2333" - PHP_INI_ALL - - - - date.sunrise_zenith - "90.583333" - PHP_INI_ALL - - - - date.sunset_zenith - "90.583333" - PHP_INI_ALL - - - - date.timezone - "" - PHP_INI_ALL - PHP 5.1.0 以降で利用可能。 - - - dba.default_handler - "" - PHP_INI_ALL - - - - dbx.colnames_case - "unchanged" - PHP_INI_SYSTEM - PHP 5.1.0 で削除。 - - - default_charset - "UTF-8" - PHP_INI_ALL - PHP 5.6.0 以降でデフォルトが "UTF-8" になりました。それより前のバージョンでは、デフォルトは空文字列でした。 - - - default_mimetype - "text/html" - PHP_INI_ALL - - - - default_socket_timeout - "60" - PHP_INI_ALL - - - - define_syslog_variables - "0" - PHP_INI_ALL - PHP 5.4.0 で削除。 - - - detect_unicode - "1" - PHP_INI_ALL - PHP 5.1.0 以降で利用可能。PHP 5.4.0 では名前を zend.detect_unicode に変更。 - - - disable_classes - "" - &php.ini; のみ - - - - disable_functions - "" - &php.ini; のみ - - - - display_errors - "1" - PHP_INI_ALL - - - - display_startup_errors - "0" - PHP_INI_ALL - - - - docref_ext - "" - PHP_INI_ALL - - - - docref_root - "" - PHP_INI_ALL - - - - doc_root - NULL - PHP_INI_SYSTEM - - - - enable_dl - "1" - PHP_INI_SYSTEM - &removed.php.future; - - - enable_post_data_reading - On - PHP_INI_PERDIR - PHP 5.4.0 以降で利用可能 - - - engine - "1" - PHP_INI_ALL - - - - error_append_string - NULL - PHP_INI_ALL - - - - error_log - NULL - PHP_INI_ALL - - - - error_prepend_string - NULL - PHP_INI_ALL - - - - error_reporting - NULL - PHP_INI_ALL - - - - exif.decode_jis_intel - "JIS" - PHP_INI_ALL - - - - exif.decode_jis_motorola - "JIS" - PHP_INI_ALL - - - - exif.decode_unicode_intel - "UCS-2LE" - PHP_INI_ALL - - - - exif.decode_unicode_motorola - "UCS-2BE" - PHP_INI_ALL - - - - exif.encode_jis - "" - PHP_INI_ALL - - - - exif.encode_unicode - "ISO-8859-15" - PHP_INI_ALL - - - - exit_on_timeout - "" - PHP_INI_ALL - PHP 5.3.0 以降で利用可能。 - - - expect.logfile - "" - PHP_INI_ALL - - - - expect.loguser - "1" - PHP_INI_ALL - - - - expect.timeout - "10" - PHP_INI_ALL - - - - expose_php - "1" - &php.ini; のみ - - - - extension - NULL - &php.ini; のみ - - - - extension_dir - "/path/to/php" - PHP_INI_SYSTEM - - - - fastcgi.impersonate - "0" - PHP_INI_SYSTEM - PHP <= 5.2.0 で PHP_INI_ALL - - - fastcgi.logging - "1" - PHP_INI_SYSTEM - PHP <= 5.2.0 で PHP_INI_ALL - - - fbsql.allow_persistent - "1" - PHP_INI_SYSTEM - - - - fbsql.autocommit - "1" - PHP_INI_SYSTEM - - - - fbsql.batchSize - "1000" - PHP_INI_SYSTEM - PHP 5.1.0 で削除。 - - - fbsql.batchsize - "1000" - PHP_INI_ALL - PHP 5.1.0 以降で利用可能。 - - - fbsql.default_database - "" - PHP_INI_SYSTEM - - - - fbsql.default_database_password - "" - PHP_INI_SYSTEM - - - - fbsql.default_host - NULL - PHP_INI_SYSTEM - - - - fbsql.default_password - "" - PHP_INI_SYSTEM - - - - fbsql.default_user - "_SYSTEM" - PHP_INI_SYSTEM - - - - fbsql.generate_warnings - "0" - PHP_INI_SYSTEM - - - - fbsql.max_connections - "128" - PHP_INI_SYSTEM - - - - fbsql.max_links - "128" - PHP_INI_SYSTEM - - - - fbsql.max_persistent - "-1" - PHP_INI_SYSTEM - - - - fbsql.max_results - "128" - PHP_INI_SYSTEM - - - - fbsql.show_timestamp_decimals - "0" - PHP_INI_SYSTEM - PHP 5.1.5 以降で利用可能。 - - - file_uploads - "1" - PHP_INI_SYSTEM - - - - filter.default - "unsafe_raw" - PHP_INI_PERDIR - filter <= 0.9.4 では PHP_INI_ALL。PHP 5.2.0 以降で利用可能。 - - - filter.default_flags - NULL - PHP_INI_PERDIR - filter <= 0.9.4 では PHP_INI_ALL。PHP 5.2.0 以降で利用可能。 - - - from - "" - PHP_INI_ALL - - - - gd.jpeg_ignore_warning - "1" - PHP_INI_ALL - PHP 5.1.3 以降で利用可能。 - - - geoip.custom_directory - NULL - PHP_INI_ALL - geoip 1.0.1 以降で利用可能。 - - - geoip.database_standard - "GeoIP.dat" - PHP_INI_ALL - geoip 1.0.1 で削除。 - - - hard_timeout - "2" - PHP_INI_SYSTEM - PHP 7.1.0 以降で利用可能。 - - - hidef.ini_path - (char*)default_ini_path - PHP_INI_SYSTEM - - - - highlight.bg - "#FFFFFF" - PHP_INI_ALL - PHP 5.4.0 で削除。 - - - highlight.comment - "#FF8000" - PHP_INI_ALL - - - - highlight.default - "#0000BB" - PHP_INI_ALL - - - - highlight.html - "#000000" - PHP_INI_ALL - - - - highlight.keyword - "#007700" - PHP_INI_ALL - - - - highlight.string - "#DD0000" - PHP_INI_ALL - - - - html_errors - "1" - PHP_INI_ALL - - - - htscanner.config_file - ".htaccess" - PHP_INI_SYSTEM - - - - htscanner.default_docroot - "/" - PHP_INI_SYSTEM - - - - htscanner.default_ttl - "300" - PHP_INI_SYSTEM - htscanner 0.6.0 以降で利用可能。 - - - htscanner.stop_on_error - "0" - PHP_INI_SYSTEM - htscanner 0.7.0 以降で利用可能。 - - - http.allowed_methods - "" - PHP_INI_ALL - pecl_http 0.4.0 以降で利用可能。pecl_http 1.0.0 で削除。 - - - http.allowed_methods_log - "" - PHP_INI_ALL - pecl_http 0.12.0 以降で利用可能。pecl_http 1.0.0 で削除。 - - - http.cache_log - "" - PHP_INI_ALL - pecl_http 0.8.0 以降で利用可能。pecl_http 1.0.0 で削除。 - - - http.composite_log - "" - PHP_INI_ALL - pecl_http 0.12.0 以降で利用可能。pecl_http 1.0.0 で削除。 - - - http.etag.mode - "MD5" - PHP_INI_ALL - pecl_http 1.0.0 以降で利用可能。 - - - http.etag_mode - "MD5" - PHP_INI_ALL - pecl_http 0.12.0 以降で利用可能。pecl_http 1.0.0 で削除。 - - - http.force_exit - "1" - PHP_INI_ALL - pecl_http 0.18.0 以降で利用可能。 - - - http.log.allowed_methods - "" - PHP_INI_ALL - pecl_http 1.0.0 以降で利用可能。 - - - http.log.cache - "" - PHP_INI_ALL - pecl_http 1.0.0 以降で利用可能。 - - - http.log.composite - "" - PHP_INI_ALL - pecl_http 1.0.0 以降で利用可能。 - - - http.log.not_found - "" - PHP_INI_ALL - pecl_http 1.0.0 以降で利用可能。 - - - http.log.redirect - "" - PHP_INI_ALL - pecl_http 1.0.0 以降で利用可能。 - - - http.ob_deflate_auto - "0" - PHP_INI_PERDIR - pecl_http 0.21.0 以降で利用可能。pecl_http 1.0.0 で削除。 - - - http.ob_deflate_flags - "0" - PHP_INI_ALL - pecl_http 0.21.0 以降で利用可能。pecl_http 1.0.0 で削除。 - - - http.ob_inflate_auto - "0" - PHP_INI_PERDIR - pecl_http 0.21.0 以降で利用可能。pecl_http 1.0.0 で削除。 - - - http.ob_inflate_flags - "0" - PHP_INI_ALL - pecl_http 0.21.0 以降で利用可能。pecl_http 1.0.0 で削除。 - - - http.only_exceptions - "0" - PHP_INI_ALL - pecl_http 0.11.0 以降で利用可能。 - - - http.persistent.handles.ident - "GLOBAL" - PHP_INI_ALL - pecl_http 1.5.0 以降で利用可能。 - - - http.persistent.handles.limit - "-1" - PHP_INI_SYSTEM - pecl_http 1.5.0 以降で利用可能。 - - - http.redirect_log - "" - PHP_INI_ALL - pecl_http 0.12.0 以降で利用可能。pecl_http 1.0.0 で削除。 - - - http.request.datashare.connect - "0" - PHP_INI_SYSTEM - pecl_http 1.3.0 以降で利用可能。 - - - http.request.datashare.cookie - "0" - PHP_INI_SYSTEM - pecl_http 1.3.0 以降で利用可能。 - - - http.request.datashare.dns - "1" - PHP_INI_SYSTEM - pecl_http 1.3.0 以降で利用可能。 - - - http.request.datashare.ssl - "0" - PHP_INI_SYSTEM - pecl_http 1.3.0 以降で利用可能。 - - - http.request.methods.allowed - "" - PHP_INI_ALL - pecl_http 1.0.0 以降で利用可能。 - - - http.request.methods.custom - "" - PHP_INI_PERDIR - pecl_http 1.0.0 以降で利用可能。 - - - http.send.deflate.start_auto - "0" - PHP_INI_PERDIR - pecl_http 1.0.0 以降で利用可能。 - - - http.send.deflate.start_flags - "0" - PHP_INI_ALL - pecl_http 1.0.0 以降で利用可能。 - - - http.send.inflate.start_auto - "0" - PHP_INI_PERDIR - pecl_http 1.0.0 以降で利用可能。 - - - http.send.inflate.start_flags - "0" - PHP_INI_ALL - pecl_http 1.0.0 以降で利用可能。 - - - http.send.not_found_404 - "1" - PHP_INI_ALL - pecl_http 1.0.0 以降で利用可能。 - - - ibase.allow_persistent - "1" - PHP_INI_SYSTEM - - - - ibase.dateformat - "%Y-%m-%d" - PHP_INI_ALL - - - - ibase.default_charset - NULL - PHP_INI_ALL - - - - ibase.default_db - NULL - PHP_INI_SYSTEM - - - - ibase.default_password - NULL - PHP_INI_ALL - - - - ibase.default_user - NULL - PHP_INI_ALL - - - - ibase.max_links - "-1" - PHP_INI_SYSTEM - - - - ibase.max_persistent - "-1" - PHP_INI_SYSTEM - - - - ibase.timeformat - "%H:%M:%S" - PHP_INI_ALL - - - - ibase.timestampformat - "%Y-%m-%d %H:%M:%S" - PHP_INI_ALL - - - - - iconv.input_encoding - "ISO-8859-1" - PHP_INI_ALL - - - - iconv.internal_encoding - "ISO-8859-1" - PHP_INI_ALL - - - - iconv.output_encoding - "ISO-8859-1" - PHP_INI_ALL - - - - ifx.allow_persistent - "1" - PHP_INI_SYSTEM - PHP 5.2.1 で削除。 - - - ifx.blobinfile - "1" - PHP_INI_ALL - PHP 5.2.1 で削除。 - - - ifx.byteasvarchar - "0" - PHP_INI_ALL - PHP 5.2.1 で削除。 - - - ifx.charasvarchar - "0" - PHP_INI_ALL - PHP 5.2.1 で削除。 - - - ifx.default_host - NULL - PHP_INI_SYSTEM - PHP 5.2.1 で削除。 - - - ifx.default_password - NULL - PHP_INI_SYSTEM - PHP 5.2.1 で削除。 - - - ifx.default_user - NULL - PHP_INI_SYSTEM - PHP 5.2.1 で削除。 - - - ifx.max_links - "-1" - PHP_INI_SYSTEM - PHP 5.2.1 で削除。 - - - ifx.max_persistent - "-1" - PHP_INI_SYSTEM - PHP 5.2.1 で削除。 - - - ifx.nullformat - "0" - PHP_INI_ALL - PHP 5.2.1 で削除。 - - - ifx.textasvarchar - "0" - PHP_INI_ALL - PHP 5.2.1 で削除。 - - - ignore_repeated_errors - "0" - PHP_INI_ALL - - - - ignore_repeated_source - "0" - PHP_INI_ALL - - - - ignore_user_abort - "0" - PHP_INI_ALL - - - - imlib2.font_cache_max_size - "524288" - PHP_INI_ALL - - - - imlib2.font_path - "/usr/share/php/fonts/" - PHP_INI_ALL - - - - implicit_flush - "0" - PHP_INI_ALL - - - - include_path - ".;/path/to/php/pear" - PHP_INI_ALL - - - - intl.default_locale - "" - PHP_INI_ALL - PHP 5.3.0 以降で利用可能。 - - - intl.error_level - "0" - PHP_INI_ALL - PHP 5.3.0 以降で利用可能。 - - - intl.use_exceptions - "0" - PHP_INI_ALL - PHP 5.5.0 以降で利用可能。 - - - - last_modified - "0" - PHP_INI_ALL - - - - ldap.max_links - "-1" - PHP_INI_SYSTEM - - - - log_errors - "0" - PHP_INI_ALL - - - - log_errors_max_len - "1024" - PHP_INI_ALL - - - - magic_quotes_gpc - "1" - PHP_INI_PERDIR - PHP 5.3.0 で非推奨。PHP 5.4.0 で削除。 - - - magic_quotes_runtime - "0" - PHP_INI_ALL - PHP 5.4.0 で削除。 - - - magic_quotes_sybase - "0" - PHP_INI_ALL - PHP 5.4.0 で削除。 - - - mail.add_x_header - "0" - PHP_INI_PERDIR - PHP 5.3.0 以降で利用可能。 - - - mail.force_extra_parameters - NULL - &php.ini; のみ - - - - mail.log - "" - PHP_INI_PERDIR - PHP 5.3.0 以降で利用可能 (PHP_INI_SYSTEM|PHP_INI_PERDIR)。 - - - maxdb.default_db - NULL - PHP_INI_ALL - - - - maxdb.default_host - NULL - PHP_INI_ALL - - - - maxdb.default_pw - NULL - PHP_INI_ALL - - - - maxdb.default_user - NULL - PHP_INI_ALL - - - - maxdb.long_readlen - "200" - PHP_INI_ALL - - - - max_execution_time - "30" - PHP_INI_ALL - - - - max_input_nesting_level - "64" - PHP_INI_PERDIR - PHP 5.2.3 で削除。 - - - max_input_vars - 1000 - PHP_INI_PERDIR - PHP 5.3.9 以降で利用可能。 - - - max_input_time - "-1" - PHP_INI_PERDIR - - - - mbstring.detect_order - NULL - PHP_INI_ALL - - - - mbstring.encoding_translation - "0" - PHP_INI_PERDIR - - - - mbstring.func_overload - "0" - PHP_INI_SYSTEM - PHP <= 5.2.6 でPHP_INI_SYSTEM | PHP_INI_PERDIR。 - - - mbstring.http_input - "pass" - PHP_INI_ALL - - - - mbstring.http_output - "pass" - PHP_INI_ALL - - - - mbstring.internal_encoding - NULL - PHP_INI_ALL - - - - mbstring.language - "neutral" - PHP_INI_ALL - PHP 5.2.6以前では PHP_INI_PERDIR。 - - - mbstring.script_encoding - NULL - PHP_INI_ALL - PHP 5.4.0 で削除。代わりに zend.script_encoding を使うこと。 - - - mbstring.http_output_conv_mimetypes - "^(text/|application/xhtml\+xml)" - PHP_INI_ALL - PHP 5.3.0 以降で利用可能。 - - - mbstring.strict_detection - "0" - PHP_INI_ALL - PHP 5.1.2 以降で利用可能。 - - - mbstring.substitute_character - NULL - PHP_INI_ALL - - - - mcrypt.algorithms_dir - NULL - PHP_INI_ALL - - - - mcrypt.modes_dir - NULL - PHP_INI_ALL - - - - memcache.allow_failover - "1" - PHP_INI_ALL - memcache 2.0.2 以降で利用可能。 - - - memcache.chunk_size - "8192" - PHP_INI_ALL - memcache 2.0.2 以降で利用可能。 - - - memcache.default_port - "11211" - PHP_INI_ALL - memcache 2.0.2 以降で利用可能。 - - - memcache.hash_function - "crc32" - PHP_INI_ALL - memcache 2.2.0 以降で利用可能。 - - - memcache.hash_strategy - "standard" - PHP_INI_ALL - memcache 2.2.0 以降で利用可能。 - - - memcache.max_failover_attempts - "20" - PHP_INI_ALL - memcache 2.1.0 以降で利用可能。 - - - memory_limit - "128M" - PHP_INI_ALL - - - - mime_magic.debug - "0" - PHP_INI_SYSTEM - - - - mime_magic.magicfile - "/path/to/php/magic.mime" - PHP_INI_SYSTEM - - - - - msql.allow_persistent - "1" - PHP_INI_ALL - - - - msql.max_links - "-1" - PHP_INI_ALL - - - - msql.max_persistent - "-1" - PHP_INI_ALL - - - - mssql.allow_persistent - "1" - PHP_INI_SYSTEM - - - - mssql.batchsize - "0" - PHP_INI_ALL - - - - mssql.charset - "" - PHP_INI_ALL - PHP 5.1.2 以降で利用可能。 - - - mssql.compatability_mode - "0" - PHP_INI_ALL - - - - mssql.connect_timeout - "5" - PHP_INI_ALL - - - - mssql.datetimeconvert - "1" - PHP_INI_ALL - - - - mssql.max_links - "-1" - PHP_INI_SYSTEM - - - - mssql.max_persistent - "-1" - PHP_INI_SYSTEM - - - - mssql.max_procs - "-1" - PHP_INI_ALL - - - - mssql.min_error_severity - "10" - PHP_INI_ALL - - - - mssql.min_message_severity - "10" - PHP_INI_ALL - - - - mssql.secure_connection - "0" - PHP_INI_SYSTEM - - - - mssql.textlimit - "-1" - PHP_INI_ALL - - - - mssql.textsize - "-1" - PHP_INI_ALL - - - - mssql.timeout - "60" - PHP_INI_ALL - - - - - - mysqlnd.collect_memory_statistics - "0" - PHP_INI_SYSTEM - PHP 5.3.0 以降で利用可能。 - - - mysqlnd.collect_statistics - "1" - PHP_INI_ALL - PHP 5.3.0 以降で利用可能。 - - - mysqlnd.debug - "" - PHP_INI_SYSTEM - PHP 5.3.0 以降で利用可能。 - - - mysqlnd.log_mask - "0" - PHP_INI_ALL - PHP 5.4.0 以降で利用可能。 - - - mysqlnd.mempool_default_size - "16000" - PHP_INI_ALL - PHP 5.4.0 以降で利用可能。 - - - mysqlnd.net_cmd_buffer_size - "4096" - PHP_INI_ALL - PHP 5.4.0 以降で利用可能。 - - - mysqlnd.net_read_buffer_size - "32768" - PHP_INI_ALL - PHP 5.3.0 以降で利用可能。 - - - mysqlnd.net_read_timeout - "31536000" - PHP_INI_SYSTEM - PHP 5.4.0 以降で利用可能。 - - - mysqlnd.sha256_server_public_key - "" - PHP_INI_PERDIR - PHP 5.5.0 以降で利用可能。 - - - mysqlnd.trace_alloc - "" - PHP_INI_SYSTEM - PHP 5.5.0 以降で利用可能。 - - - - - - - - nsapi.read_timeout - "60" - PHP_INI_ALL - - - - oci8.connection_class - "" - PHP_INI_ALL - PHP 5.3 (PECL OCI8 1.3) 以降で利用可能。 - - - oci8.default_prefetch - "10" - PHP_INI_SYSTEM - PHP 5.1.2 以降で利用可能。 - - - oci8.events - Off - PHP_INI_SYSTEM - PHP 5.3 (PECL OCI8 1.3) 以降で利用可能。 - - - oci8.max_persistent - "-1" - PHP_INI_SYSTEM - PHP 5.1.2 以降で利用可能。 - - - oci8.old_oci_close_semantics - "0" - PHP_INI_SYSTEM - PHP 5.1.2 以降で利用可能。 - - - oci8.persistent_timeout - "-1" - PHP_INI_SYSTEM - PHP 5.1.2 以降で利用可能。 - - - oci8.ping_interval - "60" - PHP_INI_SYSTEM - PHP 5.1.2 以降で利用可能。 - - - oci8.privileged_connect - "0" - PHP_INI_SYSTEM - PHP 5.1.2 以降で利用可能。 - - - oci8.statement_cache_size - "20" - PHP_INI_SYSTEM - PHP 5.1.2 以降で利用可能。 - - - odbc.allow_persistent - "1" - PHP_INI_SYSTEM - - - - odbc.check_persistent - "1" - PHP_INI_SYSTEM - - - - odbc.defaultbinmode - "1" - PHP_INI_ALL - - - - odbc.defaultlrl - "4096" - PHP_INI_ALL - - - - odbc.default_db - NULL - PHP_INI_ALL - - - - odbc.default_cursortype - "3" - PHP_INI_ALL - PHP 5.3.0 以降で利用可能。 - - - odbc.default_pw - NULL - PHP_INI_ALL - - - - odbc.default_user - NULL - PHP_INI_ALL - - - - odbc.max_links - "-1" - PHP_INI_SYSTEM - - - - odbc.max_persistent - "-1" - PHP_INI_SYSTEM - - - - odbtp.datetime_format - "object" - PHP_INI_ALL - - - - odbtp.detach_default_queries - "0" - PHP_INI_ALL - - - - odbtp.guid_format - "string" - PHP_INI_ALL - odbtp 1.1.3 以降で利用可能。 - - - odbtp.interface_file - "/usr/local/share/odbtp.conf" - PHP_INI_ALL - - - - odbtp.truncation_errors - "1" - PHP_INI_ALL - - - - - opendirectory.default_separator - "/" - PHP_INI_ALL - opendirectory 0.2.2 で削除。 - - - opendirectory.max_refs - "-1" - PHP_INI_ALL - - - - opendirectory.separator - "/" - PHP_INI_ALL - opendirectory 0.2.2 以降で利用可能。 - - - open_basedir - NULL - PHP_INI_ALL - PHP < 5.2.3 では PHP_INI_SYSTEM。 - - - oracle.allow_persistent - "-1" - PHP_INI_ALL - PHP 5.1.0 で削除。 - - - oracle.max_links - "-1" - PHP_INI_ALL - PHP 5.1.0 で削除。 - - - oracle.max_persistent - "-1" - PHP_INI_ALL - PHP 5.1.0 で削除。 - - - output_buffering - "0" - PHP_INI_PERDIR - - - - output_handler - NULL - PHP_INI_PERDIR - - - - pam.servicename - "php" - PHP_INI_ALL - - - - pcre.backtrack_limit - "1000000" - PHP_INI_ALL - PHP 5.2.0 以降で利用可能。 - - - pcre.recursion_limit - "100000" - PHP_INI_ALL - PHP 5.2.0 以降で利用可能。 - - - pcre.jit - "1" - PHP_INI_ALL - PHP 7.0.0 以降で利用可能。 - - - pdo.dsn.* - - &php.ini; のみ - PHP 5.1.0 以降で利用可能。 - - - pdo_odbc.connection_pooling - "strict" - PHP_INI_ALL - PHP 5.1.0 以降で利用可能。 - - - pdo_odbc.db2_instance_name - NULL - PHP_INI_SYSTEM - PHP 5.1.1 以降で利用可能。PHP 5.4.0 で削除。 - - - pfpro.defaulthost - "test-payflow.verisign.com" - PHP_INI_ALL - PHP 5.1.0 で削除。 - - - pfpro.defaultport - "443" - PHP_INI_ALL - PHP 5.1.0 で削除。 - - - pfpro.defaulttimeout - "30" - PHP_INI_ALL - PHP 5.1.0 で削除。 - - - pfpro.proxyaddress - "" - PHP_INI_ALL - PHP 5.1.0 で削除。 - - - pfpro.proxylogon - "" - PHP_INI_ALL - PHP 5.1.0 で削除。 - - - pfpro.proxypassword - "" - PHP_INI_ALL - PHP 5.1.0 で削除。 - - - pfpro.proxyport - "" - PHP_INI_ALL - PHP 5.1.0 で削除。 - - - pgsql.allow_persistent - "1" - PHP_INI_SYSTEM - - - - pgsql.auto_reset_persistent - "0" - PHP_INI_SYSTEM - - - - pgsql.ignore_notice - "0" - PHP_INI_ALL - - - - pgsql.log_notice - "0" - PHP_INI_ALL - - - - pgsql.max_links - "-1" - PHP_INI_SYSTEM - - - - pgsql.max_persistent - "-1" - PHP_INI_SYSTEM - - - - phar.cache_list - "" - PHP_INI_SYSTEM - PHP 5.4.0 以降で利用可能。 - - - phar.extract_list - "" - PHP_INI_ALL - phar 1.1.0 以降で利用可能。 - - - phar.readonly - "1" - PHP_INI_ALL - - - - phar.require_hash - "1" - PHP_INI_ALL - - - - post_max_size - "8M" - PHP_INI_PERDIR - - - - precision - "14" - PHP_INI_ALL - - - - python.append_path - "" - PHP_INI_ALL - - - - python.prepend_path - "." - PHP_INI_ALL - - - - realpath_cache_size - "16K" - PHP_INI_SYSTEM - PHP 5.1.0 以降で利用可能。 - - - realpath_cache_ttl - "120" - PHP_INI_SYSTEM - PHP 5.1.0 以降で利用可能。 - - - register_argc_argv - "1" - PHP_INI_PERDIR - - - - register_globals - "0" - PHP_INI_PERDIR - PHP 5.3.0 で非推奨。PHP 5.4.0 で削除。 - - - register_long_arrays - "1" - PHP_INI_PERDIR - PHP 5.3.0 で非推奨。PHP 5.4.0 で削除。 - - - report_memleaks - "1" - PHP_INI_ALL - - - - report_zend_debug - "1" - PHP_INI_ALL - - - - request_order - "" - PHP_INI_PERDIR - PHP 5.3.0 以降で利用可能。 - - - runkit.internal_override - "0" - PHP_INI_SYSTEM - - - - runkit.superglobal - "" - PHP_INI_PERDIR - - - - safe_mode - "0" - PHP_INI_SYSTEM - PHP 5.4.0 で削除。 - - - safe_mode_allowed_env_vars - "PHP_" - PHP_INI_SYSTEM - PHP 5.4.0 で削除。 - - - safe_mode_exec_dir - "" - PHP_INI_SYSTEM - PHP 5.4.0 で削除。 - - - safe_mode_gid - "0" - PHP_INI_SYSTEM - PHP 5.4.0 で削除。 - - - safe_mode_include_dir - NULL - PHP_INI_SYSTEM - PHP 5.4.0 で削除。 - - - safe_mode_protected_env_vars - "LD_LIBRARY_PATH" - PHP_INI_SYSTEM - PHP 5.4.0 で削除。 - - - sendmail_from - NULL - PHP_INI_ALL - - - - sendmail_path - "/usr/sbin/sendmail -t -i" - PHP_INI_SYSTEM - - - - serialize_precision - "-1" - PHP_INI_ALL - - PHP 7.1.0 までは、デフォルト値は 17 でした。 - - - - session.auto_start - "0" - PHP_INI_PERDIR - PHP <= 5.4.19 および PHP <= 5.5.1 では PHP_INI_ALL。 - - - session.bug_compat_42 - "1" - PHP_INI_ALL - PHP 5.4.0 で削除。 - - - session.bug_compat_warn - "1" - PHP_INI_ALL - PHP 5.4.0 で削除。 - - - session.cache_expire - "180" - PHP_INI_ALL - - - session.cache_limiter - "nocache" - PHP_INI_ALL + allow_url_fopen + "1" + INI_SYSTEM - session.cookie_domain - "" - PHP_INI_ALL - - - - session.cookie_httponly - "" - PHP_INI_ALL - PHP 5.2.0 以降で利用可能。 + allow_url_include + "0" + INI_SYSTEM + PHP 7.4.0 以降は非推奨 - session.cookie_lifetime - "0" - PHP_INI_ALL + arg_separator.input + "&" + INI_PERDIR - session.cookie_path - "/" - PHP_INI_ALL + arg_separator.output + "&" + INI_ALL - session.cookie_secure - "" - PHP_INI_ALL + assert.active + "1" + INI_ALL - session.entropy_file - "" - PHP_INI_ALL - PHP 7.1.0 で削除。 - - - session.entropy_length - "0" - PHP_INI_ALL - PHP 7.1.0 で削除。 - - - session.gc_divisor - "100" - PHP_INI_ALL + assert.bail + "0" + INI_ALL - session.gc_maxlifetime - "1440" - PHP_INI_ALL + assert.callback + &null; + INI_ALL - session.gc_probability - "1" - PHP_INI_ALL + assert.exception + "0" + INI_ALL - session.sid_bits_per_character - "4" - PHP_INI_ALL - PHP 7.1.0 以降で利用可能。 - - - session.sid_length - "32" - PHP_INI_ALL - PHP 7.1.0 以降で利用可能。 - - - session.hash_bits_per_character - "5" - PHP_INI_ALL - PHP 7.1.0 で削除。 - - - session.hash_function - "0" - PHP_INI_ALL - PHP 7.1.0 で削除。 - - - session.lazy_write - "1" - PHP_INI_ALL - PHP 7.0.0 以降で利用可能。 + assert.quiet_eval + "0" + INI_ALL + PHP 8.0.0 以降では削除されました - session.name - "PHPSESSID" - PHP_INI_ALL + assert.warning + "1" + INI_ALL - session.referer_check - "" - PHP_INI_ALL + auto_append_file + &null; + INI_PERDIR - session.save_handler - "files" - PHP_INI_ALL + auto_detect_line_endings + "0" + INI_ALL - session.save_path - "" - PHP_INI_ALL + auto_globals_jit + "1" + INI_PERDIR - session.serialize_handler - "php" - PHP_INI_ALL + auto_prepend_file + &null; + INI_PERDIR + - session.upload_progress.cleanup - "1" - PHP_INI_PERDIR - PHP 5.4.0 以降で利用可能。 - - - session.upload_progress.enabled - "1" - PHP_INI_PERDIR - PHP 5.4.0 以降で利用可能。 - - - session.upload_progress.freq - "1%" - PHP_INI_PERDIR - PHP 5.4.0 以降で利用可能。 - - - session.upload_progress.min_freq - "1" - PHP_INI_PERDIR - PHP 5.4.0 以降で利用可能。 - - - session.upload_progress.name - "PHP_SESSION_UPLOAD_PROGRESS" - PHP_INI_PERDIR - PHP 5.4.0 以降で利用可能。 - - - session.upload_progress.prefix - "upload_progress_" - PHP_INI_PERDIR - PHP 5.4.0 以降で利用可能。 - - - session.use_strict_mode - "0" - PHP_INI_ALL - PHP 5.5.2 以降で利用可能。 + browscap + &null; + INI_SYSTEM + - session.use_cookies - "1" - PHP_INI_ALL + cgi.check_shebang_line + "1" + INI_SYSTEM - session.use_only_cookies - "1" - PHP_INI_ALL + cgi.discard_path + "0" + INI_SYSTEM - session.use_trans_sid - "0" - PHP_INI_ALL + cgi.fix_pathinfo + "1" + INI_SYSTEM - session_pgsql.create_table - "1" - PHP_INI_SYSTEM + cgi.force_redirect + "1" + INI_SYSTEM - session_pgsql.db - "host=localhost dbname=php_session user=nobody" - PHP_INI_SYSTEM + cgi.nph + "0" + INI_ALL - session_pgsql.disable - "0" - PHP_INI_SYSTEM + cgi.redirect_status_env + &null; + INI_SYSTEM - session_pgsql.failover_mode - "0" - PHP_INI_SYSTEM + cgi.rfc2616_headers + "0" + INI_ALL - session_pgsql.gc_interval - "3600" - PHP_INI_SYSTEM + child_terminate + "0" + INI_ALL + + + + + + - session_pgsql.keep_expired - "0" - PHP_INI_SYSTEM - + default_charset + "UTF-8" + INI_ALL - session_pgsql.sem_file_name - "/tmp/php_session_pgsql" - PHP_INI_SYSTEM + input_encoding + "" + INI_ALL - session_pgsql.serializable - "0" - PHP_INI_SYSTEM + output_encoding + "" + INI_ALL - session_pgsql.short_circuit - "0" - PHP_INI_SYSTEM + internal_encoding + "" + INI_ALL - session_pgsql.use_app_vars - "0" - PHP_INI_SYSTEM + default_mimetype + "text/html" + INI_ALL - session_pgsql.vacuum_interval - "21600" - PHP_INI_SYSTEM + default_socket_timeout + "60" + INI_ALL - short_open_tag - "1" - PHP_INI_PERDIR + disable_classes + "" + &php.ini; のみ - SMTP - "localhost" - PHP_INI_ALL + disable_functions + "" + &php.ini; のみ - smtp_port - "25" - PHP_INI_ALL + display_errors + "1" + INI_ALL - soap.wsdl_cache - "1" - PHP_INI_ALL - PHP 5.1.5 以降で利用可能。 + display_startup_errors + "1" + INI_ALL + + PHP 8.0.0 より前のバージョンでは、デフォルト値は "0" でした。 + - soap.wsdl_cache_dir - "/tmp" - PHP_INI_ALL + docref_ext + "" + INI_ALL - soap.wsdl_cache_enabled - "1" - PHP_INI_ALL + docref_root + "" + INI_ALL - soap.wsdl_cache_limit - "5" - PHP_INI_ALL - PHP 5.1.5 以降で利用可能。 - - - soap.wsdl_cache_ttl - "86400" - PHP_INI_ALL + doc_root + &null; + INI_SYSTEM - sql.safe_mode - "0" - PHP_INI_SYSTEM - + enable_dl + "1" + INI_SYSTEM + &removed.php.future; - sqlite.assoc_case - "0" - PHP_INI_ALL + enable_post_data_reading + "On" + INI_PERDIR - - sybase.allow_persistent - "1" - PHP_INI_ALL + engine + "1" + INI_ALL - sybase.interface_file - "" - PHP_INI_ALL + error_append_string + &null; + INI_ALL - sybase.max_links - "-1" - PHP_INI_ALL + error_log + &null; + INI_ALL - sybase.max_persistent - "-1" - PHP_INI_ALL - + error_log_mode + 0o644 + INI_ALL + PHP 8.2.0 以降で利用可能 - sybase.min_error_severity - "10" - PHP_INI_ALL + error_prepend_string + &null; + INI_ALL - sybase.min_message_severity - "10" - PHP_INI_ALL + error_reporting + &null; + INI_ALL + - sybct.deadlock_retry_count - "0" - PHP_INI_ALL + exit_on_timeout + "" + INI_ALL + - sybct.login_timeout - "-1" - PHP_INI_ALL + expose_php + "1" + &php.ini; のみ - sybct.packet_size - "0" - PHP_INI_ALL + extension + &null; + &php.ini; のみ - sybct.timeout - "0" - PHP_INI_ALL + extension_dir + "/path/to/php" + INI_SYSTEM - syslog.facility - "LOG_USER" - PHP_INI_SYSTEM - PHP 7.3.0 以降で利用可能。 - - - syslog.filter - "no-ctrl" - PHP_INI_ALL - PHP 7.3.0 以降で利用可能。 - - - syslog.ident - "php" - PHP_INI_SYSTEM - PHP 7.3.0 以降で利用可能。 - - - sys_temp_dir - "" - PHP_INI_SYSTEM - PHP 5.5.0 以降で利用可能。 + fastcgi.impersonate + "0" + INI_SYSTEM + - sysvshm.init_mem - "10000" - PHP_INI_ALL + fastcgi.logging + "1" + INI_SYSTEM - tidy.clean_output - "0" - PHP_INI_USER - PHP 5 では PHP_INI_PERDIR。 + file_uploads + "1" + INI_SYSTEM + + - tidy.default_config - "" - PHP_INI_SYSTEM + from + "" + INI_ALL + + - track_errors - "0" - PHP_INI_ALL - PHP 7.2.0 で非推奨。 + hard_timeout + "2" + INI_SYSTEM + PHP 7.1.0 以降で利用可能。 - unserialize_callback_func - NULL - PHP_INI_ALL + highlight.comment + "#FF8000" + INI_ALL - uploadprogress.file.filename_template - "/tmp/upt_%s.txt" - PHP_INI_ALL + highlight.default + "#0000BB" + INI_ALL - upload_max_filesize - "2M" - PHP_INI_PERDIR + highlight.html + "#000000" + INI_ALL - max_file_uploads - 20 - PHP_INI_SYSTEM - PHP 5.2.12 以降で利用可能。 - - - upload_tmp_dir - NULL - PHP_INI_SYSTEM + highlight.keyword + "#007700" + INI_ALL - url_rewriter.tags - "a=href,area=href,frame=src,form=,fieldset=" - PHP_INI_ALL + highlight.string + "#DD0000" + INI_ALL - user_agent - NULL - PHP_INI_ALL + html_errors + "1" + INI_ALL + + + - user_dir - NULL - PHP_INI_SYSTEM + ignore_repeated_errors + "0" + INI_ALL - user_ini.cache_ttl - "300" - PHP_INI_SYSTEM - PHP 5.3.0 以降で利用可能。 - - - user_ini.filename - ".user.ini" - PHP_INI_SYSTEM - PHP 5.3.0 以降で利用可能。 - - - valkyrie.auto_validate - "0" - PHP_INI_ALL + ignore_repeated_source + "0" + INI_ALL - - valkyrie.config_path - NULL - PHP_INI_ALL + ignore_user_abort + "0" + INI_ALL - variables_order - "EGPCS" - PHP_INI_PERDIR + implicit_flush + "0" + INI_ALL - vld.active - "0" - PHP_INI_SYSTEM + include_path + ".:/path/to/php/pear" + INI_ALL + - vld.execute - "1" - PHP_INI_SYSTEM - vld 0.8.0 以降で利用可能。 - - - vld.skip_append - "0" - PHP_INI_SYSTEM - vld 0.8.0 以降で利用可能。 - - - vld.skip_prepend - "0" - PHP_INI_SYSTEM - vld 0.8.0 以降で利用可能。 - - - windows.show_crt_warning - "0" - PHP_INI_ALL - PHP 5.4.0 以降で利用可能。 - - - xbithack - "0" - PHP_INI_ALL + last_modified + "0" + INI_ALL + - xdebug.auto_profile - "0" - PHP_INI_ALL - Xdebug 2.0.0 で削除。 + log_errors + "0" + INI_ALL + - xdebug.auto_profile_mode - "0" - PHP_INI_ALL - Xdebug 2.0.0 で削除。 + log_errors_max_len + "1024" + INI_ALL + - xdebug.auto_trace - "0" - PHP_INI_ALL + mail.add_x_header + "0" + INI_PERDIR - xdebug.collect_includes - "1" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 + mail.force_extra_parameters + &null; + INI_SYSTEM + - xdebug.collect_params - "0" - PHP_INI_ALL + mail.log + "" + INI_PERDIR - xdebug.collect_return - "0" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 + max_execution_time + "30" + INI_ALL + - xdebug.collect_vars - "0" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 + max_input_nesting_level + "64" + INI_PERDIR + - xdebug.default_enable - "1" - PHP_INI_ALL - Xdebug 1 では PHP_INI_SYSTEM。 + max_input_vars + 1000 + INI_PERDIR + - xdebug.dump.COOKIE - NULL - PHP_INI_ALL + max_input_time + "-1" + INI_PERDIR + + + - xdebug.dump.ENV - NULL - PHP_INI_ALL + memory_limit + "128M" + INI_ALL + + + + + + - xdebug.dump.FILES - NULL - PHP_INI_ALL + open_basedir + &null; + INI_ALL - xdebug.dump.GET - NULL - PHP_INI_ALL + output_buffering + "0" + INI_PERDIR - xdebug.dump.POST - NULL - PHP_INI_ALL + output_handler + &null; + INI_PERDIR + + + + + - xdebug.dump.REQUEST - NULL - PHP_INI_ALL + post_max_size + "8M" + INI_PERDIR - xdebug.dump.SERVER - NULL - PHP_INI_ALL + precision + "14" + INI_ALL - xdebug.dump.SESSION - NULL - PHP_INI_ALL + realpath_cache_size + "16K" + INI_SYSTEM - xdebug.dump_globals - "1" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 + realpath_cache_ttl + "120" + INI_SYSTEM + - xdebug.dump_once - "1" - PHP_INI_ALL + register_argc_argv + "1" + INI_PERDIR - xdebug.dump_undefined - "0" - PHP_INI_ALL + report_memleaks + "1" + INI_ALL - xdebug.extended_info - "1" - PHP_INI_SYSTEM - Xdebug 2.0.0 以降で利用可能。 + report_zend_debug + "1" + INI_ALL + - xdebug.idekey - "" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 + request_order + "" + INI_PERDIR + + - xdebug.manual_url - "http://www.php.net" - PHP_INI_ALL + sendmail_from + &null; + INI_ALL - xdebug.max_nesting_level - "100" - PHP_INI_ALL + sendmail_path + "/usr/sbin/sendmail -t -i" + INI_SYSTEM - xdebug.output_dir - "/tmp" - PHP_INI_PERDIR - Xdebug <= 1.2.0 では PHP_INI_SYSTEM。Xdebug 2.0.0 で削除。 + serialize_precision + "-1" + INI_ALL + + PHP 7.1.0 より前のバージョンでは、デフォルト値は 17 でした。 + + - xdebug.profiler_aggregate - "0" - PHP_INI_PERDIR - Xdebug 2.0.0 以降で利用可能。 + short_open_tag + "1" + INI_PERDIR + - xdebug.profiler_append - "0" - PHP_INI_PERDIR - Xdebug 2.0.0 以降で利用可能。 + SMTP + "localhost" + INI_ALL + - xdebug.profiler_enable - "0" - PHP_INI_PERDIR - Xdebug 2.0.0 以降で利用可能。 + smtp_port + "25" + INI_ALL + + - xdebug.profiler_enable_trigger - "0" - PHP_INI_PERDIR - Xdebug 2.0.0 以降で利用可能。 + sql.safe_mode + "0" + INI_SYSTEM + PHP 7.2.0 で削除 + - xdebug.profiler_output_dir - "/tmp" - PHP_INI_PERDIR - Xdebug 2.0.0 以降で利用可能。 + syslog.facility + "LOG_USER" + INI_SYSTEM + PHP 7.3.0 以降で利用可能 - xdebug.profiler_output_name - "cachegrind.out.%p" - PHP_INI_PERDIR - Xdebug 2.0.0 以降で利用可能。 + syslog.filter + "no-ctrl" + INI_ALL + PHP 7.3.0 以降で利用可能 - xdebug.remote_autostart - "0" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 + syslog.ident + "php" + INI_SYSTEM + PHP 7.3.0 以降で利用可能 - xdebug.remote_enable - "0" - PHP_INI_PERDIR + sys_temp_dir + "" + INI_SYSTEM + + - xdebug.remote_handler - "dbgp" - PHP_INI_ALL - + track_errors + "0" + INI_ALL + PHP 7.2.0 以降は非推奨になり、PHP 8.0.0 で 削除されました。 + - xdebug.remote_host - "localhost" - PHP_INI_ALL + uploadprogress.file.filename_template + "/tmp/upt_%s.txt" + INI_ALL - xdebug.remote_log - "" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 - - - xdebug.remote_mode - "req" - PHP_INI_ALL + upload_max_filesize + "2M" + INI_PERDIR - xdebug.remote_port - "9000" - PHP_INI_ALL + max_file_uploads + 20 + INI_SYSTEM - xdebug.show_exception_trace - "0" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 - - - xdebug.show_local_vars - "0" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 - - - xdebug.show_mem_delta - "0" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 - - - xdebug.trace_format - "0" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 - - - xdebug.trace_options - "0" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 - - - xdebug.trace_output_dir - "/tmp" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 + upload_tmp_dir + &null; + INI_SYSTEM + - xdebug.trace_output_name - "trace.%c" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 + url_rewriter.hosts + "" + INI_ALL + PHP 7.1.0 以降で利用可能 - xdebug.var_display_max_children - "128" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 + url_rewriter.tags + "form=" + INI_ALL + PHP 7.1.0 より前のバージョンでは、デフォルト値は "a=href,area=href,frame=src,form=,fieldset=" でした。 - xdebug.var_display_max_data - "512" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 + user_agent + &null; + INI_ALL + - xdebug.var_display_max_depth - "3" - PHP_INI_ALL - Xdebug 2.0.0 以降で利用可能。 + user_dir + &null; + INI_SYSTEM + - xmlrpc_errors - "0" - PHP_INI_SYSTEM + user_ini.cache_ttl + "300" + INI_SYSTEM - xmlrpc_error_number - "0" - PHP_INI_ALL + user_ini.filename + ".user.ini" + INI_SYSTEM + - xmms.path - "/usr/bin/xmms" - PHP_INI_ALL + variables_order + "EGPCS" + INI_PERDIR - xmms.session - "0" - PHP_INI_ALL + windows.show_crt_warning + "0" + INI_ALL - xsl.security_prefs - "44" - PHP_INI_ALL - PHP 5.5.0 以降で利用可能。 + xbithack + "0" + INI_ALL + - y2k_compliance - "1" - PHP_INI_ALL - PHP 5.4.0 で削除。 + xmlrpc_errors + "0" + INI_SYSTEM + - yami.response.timeout - "5" - PHP_INI_ALL - yami 1.0.1 以降で利用可能。 + xmlrpc_error_number + "0" + INI_ALL + yaz.keepalive - "120" - PHP_INI_ALL + "120" + INI_ALL yaz.log_mask - NULL - PHP_INI_ALL + &null; + INI_ALL yaz 1.0.3 以降で利用可能。 zend.assertions - "1" - PHP_INI_ALL - PHP 7.0.0 以降で利用可能。 + "1" + INI_ALL + zend.detect_unicode - "1" - PHP_INI_ALL - PHP 5.4.0 以降で利用可能。 + "1" + INI_ALL + zend.enable_gc - "1" - PHP_INI_ALL - PHP 5.3.0 以降で利用可能。 - - - zend.multibyte - "0" - PHP_INI_PERDIR - PHP 5.4.0 以降で利用可能。 - - - zend.script_encoding - NULL - PHP_INI_ALL - PHP 5.4.0 以降で利用可能。 - - - zend.signal_check - "0" - PHP_INI_SYSTEM - PHP 5.4.0 以降で利用可能。 - - - zend.ze1_compatibility_mode - "0" - PHP_INI_ALL - PHP 5.3.0 で削除。 + "1" + INI_ALL + - zend_extension - NULL - &php.ini; のみ - + zend.max_allowed_stack_size + "0" + INI_SYSTEM + PHP 8.3.0 以降で利用可能。 - zend_extension_debug - NULL - &php.ini; のみ + fiber.stack_size + INI_ALL + PHP 8.1.0 以降で利用可能。 - zend_extension_debug_ts - NULL - &php.ini; のみ + zend.multibyte + "0" + INI_PERDIR - zend_extension_ts - NULL - &php.ini; のみ - + zend.reserved_stack_size + "0" + INI_SYSTEM + PHP 8.3.0 以降で利用可能。 - zlib.output_compression - "0" - PHP_INI_ALL + zend.script_encoding + &null; + INI_ALL - zlib.output_compression_level - "-1" - PHP_INI_ALL + zend.signal_check + "0" + INI_SYSTEM - zlib.output_handler - "" - PHP_INI_ALL + zend_extension + &null; + &php.ini; のみ + diff --git a/appendices/ini.sections.xml b/appendices/ini.sections.xml index 0cc5c4edc3..2e73c7bb94 100644 --- a/appendices/ini.sections.xml +++ b/appendices/ini.sections.xml @@ -1,6 +1,6 @@ - +
@@ -33,13 +33,13 @@ [HOST=] - PHP_INI_SYSTEM - PHP 5.3.0 で追加。 + INI_SYSTEM + [PATH=] - PHP_INI_SYSTEM - PHP 5.3.0 で追加。 + INI_SYSTEM + diff --git a/appendices/license.xml b/appendices/license.xml index 6c4dc24e53..91b614edc4 100644 --- a/appendices/license.xml +++ b/appendices/license.xml @@ -1,6 +1,6 @@ - + diff --git a/appendices/migration5.xml b/appendices/migration5.xml deleted file mode 100644 index c58be16142..0000000000 --- a/appendices/migration5.xml +++ /dev/null @@ -1,844 +0,0 @@ - - - - - - PHP 4 から PHP 5.0.x への移行 - - &manual.migration.seealso; - 5.1.x、 - 5.2.x、 - 5.3.x、 - 5.4.x、 - 5.5.x および - 5.6.x。 - - -
- PHP 5.0.x における変更点 - - PHP 5 および PHP 5 に組み込まれた Zend Engine 2 は、 - PHP の性能と機能を著しく向上させました。 - 同時に既存のコードへの影響を最小限とするよう配慮されているため、 - PHP 4 から 5 への移行は非常に簡単なはずです。 - 多くの既存の PHP 4 用のコードは、変更せずに動作するはずです。 - しかし、若干の差異に - ついても知っておく必要があります。 - また、実運用環境のバージョンを変更する前にあなたのコードを十分にテストする - 必要があります。 - -
- -
- 下位互換性のない変更点 - - 多くの既存の PHP 4 のコードは変更無しで動作するはずですが、 - 以下の下位互換性がない変更点について注意する必要があります。 - - - - - 新たな予約キーワードがいくつか - あります。 - - - - - strrposstrripos は、 - needle として文字列全体を使用するようになりました。 - - - - - 文字列オフセットの不正な使用は、E_WARNING ではなく - E_ERROR を発生します。不正な使用の例は、次のようなものです。 - $str = 'abc'; unset($str[0]); - - - - - array_merge は、配列のみを指定できるよう - 変更されました。配列以外の変数を指定した場合は、各パラメータ毎に - E_WARNING が発生します。あなたのコードで - 突然 E_WARNING が発生し始める可能性が - あるため注意してください。 - - - - - サーバー変数 PATH_TRANSLATED は、Apache2 SAPI では暗黙のうちに設定されません。 - この動作は、Apache により設定されていない場合に SCRIPT_FILENAME と同じ値に - 設定する PHP 4 と異なります。 - この変更は、CGI/1.1 の規約に従うためのものです。 - 詳細については、 - bug #23610 を参照してください。 - また、マニュアルの - $_SERVER['PATH_TRANSLATED'] についての記述も参照してください。 - この問題は、PHP のバージョン >= 4.3.2 でも影響を及ぼします。 - - - - - 定数 T_ML_CONSTANT は、 - Tokenizerエクステンションで - 定義されなくなりました。error_reporting にE_ALL - を指定した場合、PHPは通知(notice)を生成します。 - T_ML_CONSTANTは、全く使用されていませんが、 - PHP 4 では定義されていました。PHP 4とPHP 5の両方において、 - // と /* */ は、共に T_COMMENT 定数と - 解釈されます。 - しかし、PHP5からPHPにより解釈されるようになった - PHPDoc形式のコメント /** */ は、T_DOC_COMMENT - と認識されます。 - - - - - variables_order に - "S"が含まれる場合に、$_SERVER が - argc および argv と共に設定されます。 - $_SERVERを作成しないような特別な設定を行った場合、 - 当然、argc および argv は - 設定されません。 - この変更は、CLI 版において - variables_order の - 設定によらず常に argc および - argv を作成するために行われました。 - これにより、CLI 版では、常にグローバル変数 $argc および - $argv が設定されるようになりました。 - - - - - プロパティを持たないオブジェクトはもはや"空"とはみなされません。 - - - - - クラスを使用する前に宣言する必要がある場合もあります。 - これは、PHP 5 の新機能 (たとえば interfaces など) - を使用する場合にのみ生じます。 - その他の場合の動作は従来と同じです。 - - - - - get_class, get_parent_class - および get_class_methods は、 - ケース依存(大文字小文字を区別)で - 宣言時に使用されたクラス/メソッドの名前を返すようになっています - これにより、以前の動作(クラス名は小文字で返される)に依存している古いスクリプト - では問題を発生する可能性があります。 - 解決策としては、全てのスクリプトでこれらの関数を検索し、 - strtolowerを使用するというものが考えられます。 - - - このケース依存性に関する変更は、 - - 自動的に定義される定数 __CLASS__, - __METHOD__, および - __FUNCTION__にも適用されます。 - これらの値は、宣言時と同様に(ケース依存で)返されます。 - - - - - ip2long は、 - 無効なIPアドレスが関数の引数として渡された場合、 - -1ではなく、&false; を返すようになりました。 - - - - - 読み込まれるファイルの中で関数が宣言されている場合、それが - return の前もしくは後のどちらにあるかにかかわらず、 - メインファイルの中でその関数を使用可能です。 - このファイルが二度読み込まれると、関数が既に宣言済みであるため、 - PHP 5 は致命的なエラーを発生します。一方、PHP 4 ではエラーを発生しません。 - ファイルが読み込み済であるかどうかを調べて - 読みこまれたファ入ルの内容を条件分岐でかえすのではなく、 - include_once を使用することを推奨します。 - - - - - Windows上で、 - include_oncerequire_once - は、まず、読みこまれるファイルのパスを正規化します。 - これにより、A.php と a.php を読みこむ場合でもファイルは一度だけ読みこまれます。 - - - - - 関数に配列を値渡ししたときに、 - 関数の中で配列の内部ポインタが移動してもそれをリセットしなくなりました。 - PHP 4 では、関数に配列を渡したときに、関数内での配列の内部ポインタがリセットされていました。 - 一方 PHP 5 では、配列を関数に渡すと、 - 関数内での配列の内部ポインタの位置は配列が関数に渡されたときのままとなります。 - - - - - - - <function>strrpos</function> と <function>strripos</function> は、 - needleとして文字列全体を使用する - - -]]> - - - - - - プロパティを持たないオブジェクトはもはや"空"とはみなされない - - - -]]> - - - - - 以下の例はPHP 4では有効でしたが、PHP 5では致命的なエラーを - 発生します。 - - - - クラスは使用前に宣言する必要がある - -barfu(); - -class fubar { - function barfu() { - echo 'fubar'; - } -} -?> -]]> - - - -
- -
- CLI と CGI - - PHP 5 では、CLI および CGI のファイル名にいくつかの変更があります。 - PHP 5 では、CGI版は php-cgi.exe に変更されました。 - (以前は php.exe) CLI版はメインディレクトリに - 置かれるようになりました。(以前は、cli/php.exe)) - - - PHP 5では、新しいモード php-win.exe が追加されました。 - これは、CLI版と同じですが、php-win は出力を行わず、コンソールを提供しない - ところが異なります。("DOS窓"は現れません。) - この動作は、php-gtk に似ています。 - - - PHP 5では、CLI版は常にグローバル変数$argv と $argcを設定します。 - -
- -
- 設定ファイルの移行 - - SAPIモジュールの名前がphp4xxxからphp5xxxに変更されたため、 - 設定ファイルを変更する必要があります。 - また、CLIおよびCGIのファイル名も変更されています。詳細については、 - 対応するセクションを - 参照してください。 - - - Apache の設定の移行は非常に簡単です。必要な変更については、 - 以下の例を参照してください。 - - - - - - - - サーバー上でCGIモードでPHPを実行している場合、 - CGI版の名前がphp.exeからphp-cgi.exeに変更されたことに注意する必要があります。 - Apacheでは、以下のようにする必要があります。 - - - - - - - - 他のWebサーバーの場合、CGIまたはSAPIモジュールのファイル名を変更する - 必要があります。 - -
- -
- 新しい関数 - - PHP 5 では、新しい関数がいくつかあります。 - 以下にそれらのリストを示します。 - - 配列: - - - array_combine - - 配列1つをキー、他の配列をその値として指定し、配列を作成する - - - array_diff_uassoc - - ユーザーが定義したコールバック関数により添字のチェックを行ない、 - 配列の差異を計算する。 - - - array_udiff - - データ比較用のコールバック関数を用いて配列の比較を行う - - - array_udiff_assoc - - 添字の確認を行いつつ配列の比較を行う。データは、コールバック関数により - 比較される。 - - - array_udiff_uassoc - - 添字の確認を行いつつ配列の比較を行う。データは、コールバック関数により - 比較される。添字確認もコールバック関数により行われる。 - - - array_walk_recursive - - 配列の各メンバにユーザー関数を再帰的に適用する。 - - - - array_uintersect_assoc - - 添字の確認も含め、配列の共通項を計算する。 - データの比較にはコールバック関数を使用する。 - - - - - array_uintersect_uassoc - - 添字の確認も含め、配列の共通項を計算する。 - データおよび添字の比較には、それぞれ個別のコールバック関数を使用する。 - - - - - array_uintersect - - 添字の確認も含め、配列の共通項を計算する。 - データの比較にはコールバック関数を使用する。 - - - - - InterBase: - - - ibase_affected_rows - - 直近のクエリにより作用された行の数を返す - - - ibase_backup - - サービスマネージャのバックアップタスクを起動し、 - ただちに戻る - - - ibase_commit_ret - - トランザクションを閉じることなくコミットする - - - ibase_db_info - - データベースに関する統計情報を得る - - - ibase_drop_db - - データベースを破棄する - - - ibase_errcode - エラーコードを返す - - - ibase_free_event_handler - - 登録されているイベントハンドラをキャンセルする - - - ibase_gen_id - - ジェネレータIDをインクリメントし、新しい値を返す - - - ibase_maintain_db - - データベースサーバー上で管理用コマンドを実行する - - - ibase_name_result - - 結果セットに名前を付ける - - - ibase_num_params - - プリペアドクエリのパラメータの数を返す - - - ibase_param_info - - プリペアドクエリのパラメータに関する情報を返す - - - ibase_restore - - サービスマネージャのリストアタスクを起動し、 - ただちに戻る - - - ibase_rollback_ret - - トランザクションをロールバックし、 - トランザクションコンテキストに留まる - - - ibase_server_info - - データベースサーバーについての統計情報を得る - - - ibase_service_attach - サービスマネージャに - 接続する - - - ibase_service_detach - サービスマネージャとの接続を切る - - - ibase_set_event_handler - - イベントがポストされた時にコールされる - コールバック関数を登録する - - - ibase_wait_event - - データベースによりポストされるイベントを待つ - - - - iconv: - - - iconv_mime_decode - MIMEヘッダフィールドをデコードする - - - iconv_mime_decode_headers - 複数のMIMEヘッダフィールドを一度にデコードする - - - iconv_mime_encode - MIMEヘッダフィールドを構築する - - - iconv_strlen - 文字列の文字数を返す - - - iconv_strpos - - 対象文字列の中で指定した文字列が最初に表れる場所をみつける - - - iconv_strrpos - - 対象文字列の中で指定した文字列が最後に表れる場所をみつける - - - iconv_substr - - 文字列の一部を切り出す - - - - ストリーム: - - - stream_copy_to_stream - 一つのストリームから - 別のストリームにデータをコピーする - - - stream_get_line - - ストリームリソースから指定したデリミタまで行を取得する - - - stream_socket_accept - - stream_socket_serverにより作成されたソケット上の - 接続を受け入れる - - - stream_socket_client - インターネットまたは - Unixドメインソケット接続を受け入れる - - - stream_socket_get_name - - ローカルまたはリモートソケットの名前を取得する - - - stream_socket_recvfrom - - 接続の有無によらずソケットからデータを受信する - - - stream_socket_sendto - - 接続の有無によらずソケットにメッセージを送信する - - - stream_socket_server - - インターネットまたはUnixドメインソケットを作成する - - - - 日付・時刻関連: - - - - idate - ローカルの時刻/日付を整数値としてフォーマットする - - - - - date_sunset - 指定した日付および場所での日没時刻 - - - - - date_sunrise - 指定した日付および場所での日の出時刻 - - - - - time_nanosleep - 指定した秒/ナノ秒の待機 - - - - - 文字列: - - - - str_split - 文字列を配列に変換する - - - - - strpbrk - 文字列の中で一連の文字のどれかを探す - - - - - substr_compare - - オフセット、最大文字長を指定して二つの文字列を比較を行う。 - バイナリ対応で、オプションで大文字/小文字を無視できる。 - - - - - その他: - - - convert_uudecode - UUエンコードされた文字列を - デコードする - - - convert_uuencode - 文字列をUUエンコードする - - - - curl_copy_handle - cURL ハンドルを、 - その設定も含めてコピーする - - - - dba_key_split - - 文字列表現されたキーを配列表現に分割する - - - dbase_get_header_info - - dBaseデータベースのヘッダ情報を取得する - - - dbx_fetch_row - - DBX_RESULT_UNBUFFERED - フラグがセットされたクエリ結果からレコードを取得する - - - - fbsql_set_password - - 指定したユーザーのパスワードを変更する - - - - file_put_contents - - 文字列をファイルに書き込む - - - ftp_alloc - - アップロードされるファイル用の領域を確保する - - - get_declared_interfaces - - 宣言済みの全インターフェイスを配列として返す - - - get_headers - - HTTPリクエストへのレスポンスとしてサーバーに送信されたヘッダを - 全て取得する - - - headers_list - - 送信された(または送信準備ができた)レスポンスヘッダのリストを返す - - - http_build_query - URLエンコードされた - クエリ文字列を生成する - - - image_type_to_extension - - getimagesize, - exif_read_data, - exif_thumbnail, - exif_imagetypeにより返されるイメージ型の - ファイル拡張子を得る - - - imagefilter - - カスタム引数を用いてイメージにフィルタを適用する - - - imap_getacl - - 指定したメールボックスのACLを取得する - - - ldap_sasl_bind - SASLによりLDAPディレクトリにバインドする - - - pcntl_getpriority - プロセスの優先度を取得する - - - - mb_list_encodings - - サポートされる全てのエンコーディングの配列を返す - - - - - pcntl_getpriority - - 任意のプロセスの優先度を取得する - - - - pcntl_wait - - waitpid() システムコールにより定義され、フォークされた子プロセスを - 待つか、またはステータスを返す - - - pg_version - - クライアント、プロトコル、サーバーのバージョン(取得可能な場合)を配列として返す - - - php_check_syntax - 指定したファイルの構文を確認する - - - php_strip_whitespace - コメントと - 空白を除いたソースを返す - - - proc_nice - - カレントプロセスの優先度を変更する - - - pspell_config_data_dir - 言語データファイルの - 位置を変更する - - - pspell_config_dict_dir - 主単語リストの位置を - 変更する - - - setrawcookie - 値を URL エンコードせずにクッキーを送信する - - - - scandir - 指定したパス内のファイルとディレクトリを一覧表示する - - - - snmp_read_mib - - MIB ファイルを読み込み、アクティブなMIBツリーとしてパースする - - - sqlite_fetch_column_types - - 指定したテーブルのカラム型を配列として返す - - - - - Tidy 拡張モジュールの API も、 - 完全に変わりました。 - - -
- - -
- 新しいディレクティブ - - &php.ini; にも変更が行われており、PHP 5でディレクティブが - 追加されています。以下のそのリストを示します。 - - - - mail.force_extra_parameters - - 指定されたパラメータをextraパラメータとしてsendmailバイナリに強制的に追加 - します。これらのパラメータは、セーフモードの場合でも - mail の5番目のパラメータの値を置換します。 - - - register_long_arrays - - は、古い $HTTP_*_VARS をPHPが登録するかどうかを設定します。 - - - session.hash_function - - は、ハッシュ関数を選択します。(MD5またはSHA-1) - - - session.hash_bits_per_character - - は、バイナリハッシュデータを可読な形式に変換する際に各文字に保存するビット数 - (4 から 6 まで)を指定します。 - - - zend.ze1_compatibility_mode - Zend Engine 1 (PHP 4)互換モードを有効にします。 - - -
- -
- データベース - - PHP 5では、データベースに関していくつかの変更があります。(MySQL および SQLite). - - - PHP 5では、ライセンス上の問題やメンテナンスの問題により、MySQLクライアントライブラリはバンドルされていません。 - MySQL をサポートしていること自体は変わりませんが、PHP 5 以降では MySQL サポートが - デフォルトでは 有効ではなくなりました。 - これはつまり、PHP の configure - の際に - オプションを含めなくなったということです。有効にするには、PHP をコンパイルする際に - オプションを明示的に指定する必要があります。 - Windows ユーザーは、&php.ini; を編集して php_mysql.dll - を有効にしなければいけません。この DLL は PHP 4 には存在しませんでした。 - Windows 版の PHP バイナリに組み込まれていたのです。 - - - 新しい拡張モジュールとして、MySQL 4.1以降で動作するよう設計された - MySQLi (Improved - MySQL) もあります。 - - - PHP 5以降、SQLite 拡張モジュールが - PHPに組み込まれています。 - SQLiteは、組み込み可能なSQLデータベースエンジンで、 - (MySQLまたはPostgreSQLのような) - 大きなデータベースサーバーへの接続に使用されるクライアントライブラリでは - ありません。SQLiteは組み込み可能なSQLデータベースエンジンで、 - クライアントライブラリではなく、ディスク上のデータベースファイルから - 直接読み書きします。 - -
- -
- 新しいオブジェクトモデル - - PHP 5 では、新しいオブジェクトモデルが採用されています。 - PHP におけるオブジェクトの処理は完全に書き直され、性能と機能が向上しています。 - 以前のバージョンでは、(integer や string といった) - 通常の型と同じようにオブジェクトを扱っていました。 - この方式の欠点は、変数にオブジェクトを代入したり - メソッドのパラメータとしてオブジェクトを渡した場合に - オブジェクト全体がコピーされてしまうということでした。 - 新しい方式では、オブジェクトを指すハンドルを用いてオブジェクトを管理します。 - 値そのものを管理するのではなくなります (ハンドルというのは、 - 要はそのオブジェクトの ID のことです)。 - - - Many PHP programmers aren't even aware of the copying quirks of the old - object model and, therefore, the majority of PHP applications will work - out of the box, or with very few modifications. - - - 新しいオブジェクトモデルについては 言語リファレンス を参照ください。 - - - PHP 5 では、クラス名と同じ名前の関数がそのクラス内で定義されている場合にのみ - それがコンストラクタとしてコールされます。 - PHP 4 では、同じクラスだけでなく親クラスで定義されている場合にもコールされていました。 - - - PHP 4 との互換性については、 - - zend.ze1_compatibility_mode ディレクティブも参照ください。 - -
- -
- エラー報告 - - PHP 5 以降、エラー報告定数 E_STRICT が追加されました。値は 2048 です。 - 有効にすると、非推奨であったり将来の互換性が保証されていなかったりするコードを書いたときにメッセージが表示されます。 - - - - E_ALL には E_STRICT は含まれないので、デフォルトでは有効にはなりません。 - これらのメッセージを表示させるには、エラー報告レベルに - E_STRICT を含めるよう設定しなければなりません。 - - -
- -
- - - diff --git a/appendices/migration51.xml b/appendices/migration51.xml deleted file mode 100644 index da1839afab..0000000000 --- a/appendices/migration51.xml +++ /dev/null @@ -1,900 +0,0 @@ - - - - - PHP 5.0.x から PHP 5.1.x への移行 - - &manual.migration.seealso; - 5.0.x、 - 5.2.x、 - 5.3.x、 - 5.4.x、 - 5.5.x および - 5.6.x。 - - -
- PHP 5.1.x における変更点 - - PHP 5.1.x では以下のような点が変更されています。 - - - - - 日付処理用のコードを完全に書き直し、タイムゾーンのサポートを改善しました。 - - - - - PHP 5.0.x と比較してパフォーマンスが大幅に向上しました。 - - - - - PDO 拡張モジュールがデフォルトで組み込まれるようになりました。 - - - - - さまざまな拡張モジュールや組み込みの機能で、30 を超える新しい関数が追加されました。 - - - - - 400 を超えるバグを修正しました。 - - - -
- -
- 参照に関する処理の変更 - - - - 概要 - - - - - PHP 4.3.x - では動作するものの、現在は動作しないコード - - - - - PHP 4.3.x - では動作するものの、現在はエラーとなるコード - - - - - PHP 4.3.x - では動作しなかったが、現在は動作するコード - - - - - 本来は - PHP 5.0.x で正常に動作すべきだったコード - - - - - 現れて、 - そしていなくなった警告 - - - - -
- 概要 - - PHP スクリプトの開発者としての観点から見ると、 - 既存のコードに与える影響がもっとも大きいのは、 - PHP 4.4.0 以降での参照に関する扱いの変更です。 - - - PHP 4.3 を含むそれ以前のバージョンでは、本来は値を返すべき場所、 - たとえば定数・一時的な値 (例: 式の結果)・値を返す関数の結果 - などで参照を使用することが可能でした。以下がその例です。 - - - - -]]> - - - - このコードは PHP 4.3 以下では通常通り動作しますが、一般的に結果は未定義となります。 - Zend エンジンはこれらの値を参照として正しく扱えません。このバグにより、 - 再現不可能な問題が数多く発生していました。特に大規模なコードになるほどこの問題は深刻でした。 - - - PHP 4.4.0、PHP 5.0.4 以降のリリースでは Zend エンジンが修正され、 - 参照を使用すべきでない場面で参照の操作が行われた場合はそれを「知る」 - ことができるようになりました。今ではそのような場合には実際の値が使用されるようになり、 - 警告を発生するようになりました。この警告の形式は、 - PHP 4.4.0 以降では E_NOTICE、 - PHP 5.0.4 以降では E_STRICT となります。 - - - これまでメモリ破壊を起こす可能性のあったコードは、もはやその心配はなくなりました。 - しかし、既存のコードの中にはこれまでと挙動が変わってしまうものもあります。 - -
- -
- PHP 4.3.x では動作するものの、現在は動作しないコード - - - -<]]> - - - 参照に関する修正が行われる前の PHP で上のスクリプトを実行すると、このような結果になります。 - - - - &string(1) "a" - [1]=> - &string(1) "b" - [2]=> - &string(1) "c" -} -]]> - - - 修正後は、同じコードの結果が次のようになります。 - - - - &string(1) "c" - [1]=> - &string(1) "c" - [2]=> - &string(1) "c" -} -]]> - - - - 理由は、今回の変更によって func() - の結果が値として代入されるようになったことです。 - $y の値は代入しなおされ、そして、$z - では $y への参照が残り続けます。 - この修正が行われる前は、func() の結果が参照として代入され、 - 先頭の $y は毎回代入されてしまっていました。 - 一時的な変数を参照で渡そうとすることが、メモリ破壊の原因となっていました。 - - - 修正前のバージョンの PHP と修正後のバージョンの PHP とで、 - このようなコードの挙動を同じにすることは可能です。 - func() の定義を変更して参照を返すようにするか、あるいは - func() が返す結果を参照として代入する処理を取り除けばよいのです。 - - - - -]]> - - - - PHP 4.3 では $x は 'もとの値' となりますが、 - この変更以降のバージョンでは - '関数の返す値' となります。関数は参照を返さず、 - 値が直接代入されることを覚えておきましょう。もう一度いいます。 - このような挙動の違いをなくすには、func() が参照を返すようにするか、 - 関数の返す値を直接参照として代入することをやめるかのどちらかを行います。 - -
- -
- PHP 4.3.x では動作するものの、現在はエラーとなるコード - - -getThis(); - } -} - -$bar = new Foo(); -$bar->destroyThis(); -var_dump($bar); -?> -]]> - - - - PHP 5.0.3 では、$bar はオブジェクトを返さずに - NULL と評価されます。 - なぜなら、getThis() が値を返しているにもかかわらず、 - それを参照として代入しているからです。 - 現在ではこれは期待通りに動作しますが、実際のところこれは不正なコードです。 - PHP 4.4 では E_NOTICE、 - PHP 5.0.4 以降では E_STRICT をスローします。 - -
- -
- PHP 4.3.x では動作しなかったが、現在は動作するコード - - - -]]> - - - PHP 4.3 では var_dump を 3 度目にコールした際に - NULL を返し、 - 初期化されていない値への参照を返すことでメモリの破壊を引き起こしてしまいます。 - このコードは PHP 5.0.4 以降では動作しますが、 - それより前のバージョンの PHP ではエラーとなります。 - - - - - array('alfa' => 'ok')); -$arr =& $arr['a1']; -echo '-'.$arr['alfa']."-\n"; -?> -]]> - - - PHP 5.0.5 より前のバージョンでは、 - このようにして配列の要素に参照を代入することができませんでした。 - 現在はできるようになっています。 - - -
- -
- 本来は PHP 5.0.x で<literal>正常に動作すべきだった</literal>コード - - 参照関連の修正が行われるより前の PHP 5.0 ではいくつかのバグが報告されていましたが、 - それらは今では正常に「動作します」。しかし、いずれの場合についても PHP 5.1.x - ではエラーがスローされます。なぜなら、まず第一にそのコードが不正なものだからです。 - 現在では self:: - を使用して値を参照で返すことができるようになりましたが、 - E_STRICT レベルの警告をスローします。 - また、オーバーロードされたオブジェクトに参照を代入しようとすると、 - たとえ代入自体は正常に動作していても E_ERROR - に遭遇することになるでしょう。 - -
- -
- 現れて、そしていなくなった警告 - - 参照を返す関数をネストしてコールすることは、PHP 4.3.x および PHP 5.1.x - のどちらでも有効です。しかし、それらの間のバージョンの PHP では、 - E_NOTICE あるいは E_STRICT - が間違って発生してしまいます。 - - - - -]]> - - -
-
-
- [] の読み込み - - -test_ref($ar[]); - var_dump($ar); - $this->test($ar[]); - } -} - -$o = new XmlTest(); -$o->run(); -?> -]]> - - - - これは常に E_ERROR - レベルの致命的なエラーを発生します。なぜなら、PHP では [] - を読み込みに使用できないからです。PHP 4.4.2 および PHP 5.0.5 以降で、 - これは不正なコードとなりました。 - -
- -
- 関数のパラメータとしての整数値 - - PHP 5.0 の登場に伴い、パラメータのパース用の新しい API が公開されました。 - 多くの PHP 関数でこの API が使用されています。PHP 5.0.x から 5.1.x - までの間のすべてのバージョンではこの API での整数の処理が非常に厳しいものとなっており、 - パラメータとして整数を受け付けている PHP 関数に不正な値を渡せないようになっていました。 - このチェックは現在ではより緩やかなものとなっており、" 123" や "123 " - といった不正な値でも受け付けるように変更されています。これは PHP 5.0.x - でも同様です。しかし、コードの安全性の確保や入力内容の検証を促進するため、 - そのような文字列が整数として渡された際には PHP 関数は - E_NOTICE を発行します。 - -
- -
- クラスとオブジェクトの変更点 - - - - instanceof、 - is_a()is_subclass_of() および - catch - - - - - 抽象 private メソッド - - - - - インターフェイスのアクセス修飾子 - - - - - 継承規則の変更 - - - - - クラス定数 - - - - -
- <literal>instanceof</literal>、<literal>is_a()</literal>、 - <literal>is_subclass_of()</literal> および <literal>catch</literal> - - PHP 5.0 で is_a() は非推奨となり、instanceof - 演算子に置き換えられました。 - instanceof の初期の実装にはいくつかの問題があり、クラスを探すために - __autoload() に頼っていました。もしクラスが存在しなかった場合、 - __autoload() に失敗するために instanceof - は致命的な E_ERROR をスローしていました。 - 同じ理由で、catch 演算子や is_subclass_of() - 関数でも同様の現象が発生していました。 - - - PHP 5.1 では、これらの関数や演算子は __autoload() をコールしません。 - また、PHP 5.0.x ではこの問題の回避策として class_exists() が使用可能です。 - 大きな問題ではありませんが、この回避策はもはや必要ありません。 - -
- -
- 抽象 private メソッド - - PHP 5.0.0 から PHP 5.0.4 まででは抽象 private メソッドがサポートされていましたが、 - これは禁止されました。なぜなら private - と abstract とは決して両立することのない概念だからです。 - -
- -
- インターフェイスのアクセス修飾子 - - PHP 5.0 では、インターフェイス内での関数定義はクラス内での関数定義と同じように扱われました。 - 2004 年 10 月以降はそうではなくなり、インターフェイス内での関数定義では - public 以外のアクセス修飾子を指定できなくなりました。 - そして 2005 年 4 月、PHP 5.0b1 のリリース前に、static - 修飾子も許可されるようになりました。しかし、protected 修飾子や - private 修飾子を指定しようとすると - E_ERROR をスローします。 - abstract も同様です。 - この変更が既存のコードに影響を及ぼすことはないはずです。 - 結局のところ、インターフェイス内でこれら (protected, private, abstract) - を指定してもそれは意味のないものだからです。 - -
- -
- 継承規則の変更 - - PHP 5.0 では、基底クラスの同名の関数定義と一致しない関数を - 派生クラスの中で定義することが可能でした。たとえば以下のようなものです。 - - - - PHP 5.1.x では、このコードは E_STRICT エラーを発生させます。 - - - -]]> - - -
- -
- クラス定数 - - PHP 5.0.x では、以下のコードは正しいものでした。 - - - - PHP 5.1.x では、クラス定数を再定義すると、致命的なエラー - E_ERROR がスローされます。 - - - -]]> - - -
-
- -
- 拡張モジュール - - - - PHP コアから削除された拡張モジュール - - - - - PHP 5.1.x の新しい拡張モジュールのクラス定数 - - - - -
- PHP コアから削除された拡張モジュール - - PHP 5.1.x をダウンロードして最初に気づくことのひとつは、 - いくつかの古い拡張モジュールがなくなっていることでしょう。 - これらの拡張モジュールのうち、現在も使用可能で活発にメンテナンスが続けられているものについては - PHP Extension Community Library (PECL) &url.pecl; - で入手可能です。 - - - 削除された拡張モジュール - - - - 拡張モジュール - 代替モジュール/開発状況 - - - - - ext/cpdf - pecl/pdflib - - - ext/dbx - pecl/dbx - - - ext/dio - pecl/dio - - - ext/fam - メンテナンスが滞っています - - - ext/ingres_ii - pecl/ingres - - - ext/ircg - メンテナンスが滞っています - - - ext/mcve - pecl/mcve - - - ext/mnogosearch - メンテナンスが滞っています - - - ext/oracle - - ext/oci8 あるいは - ext/pdo_oci - - - - ext/ovrimos - メンテナンスが滞っています - - - ext/pfpro - メンテナンスが滞っています - - - ext/w32api - pecl/ffi - - - ext/yp - メンテナンスが滞っています - - - ext/activescript - - pecl/activescript - - - - -
- - PECL モジュールのうち、メンテナンスが滞っているもの - (いつの間にかサポートされなくなっていたり、現在メンテナがいなかったり、 - PECL パッケージとしてリリースされていなかったりするもの) は、 - &url.php.svn;pecl - の SVN から取得可能です。しかし、これらのモジュールはサポートされておらず、 - インストールして使用するのは大変かもしれません。 - -
- -
- PHP 5.1.x の新しい拡張モジュールのクラス定数 - - Zend Engine 2.1 の API では、拡張モジュールの開発者が - クラス定数を定義することが可能となりました。PHP 5.1.x - 用に書かれた新しい拡張モジュールである - SPL や - PDO、 - XMLReader そして - date などはこの形式の定数を使用しており、 - C 言語風の PDO::CLASS_CONSTANT ではなく - PDO_CLASS_CONSTANT のようになっています。 - これは、PHP のグローバル名前空間の汚染を最小限に抑えるためです。 - -
-
- -
- 日付/時刻のサポート - - PHP 5.1.x では日付/時刻のサポートが完全に書き直され、 - タイムゾーンを「知る」ためにシステムの設定を使用しないようになりました。 - そのかわりに、以下の順番でタイムゾーンを取得します。 - - - - - date_default_timezone_set 関数を使用して設定したタイムゾーン - (もし設定されていれば) - - - - - 環境変数 TZ の値 (もし空でなければ) - - - - - "magical" な推測 (もし OS がそれをサポートしていれば) - - - - - これらのいずれの項目も存在しない場合は、UTC - - - - - - 正確性を保証する (そして警告 E_STRICT - を出さないようにする) ためには、php.ini - の中に以下の形式でタイムゾーンを定義する必要があります。 - - - date.timezone = Europe/London - - - - サポートされるタイムゾーンをこの形式で並べた一覧表が、PHP マニュアルの - 付録 - にあります。 - - - また、strtotime 関数は、失敗時に -1 ではなく - &false; を返すようになったことにも注意しましょう。 - -
- -
- データベースサポートの変更 - - - - PDO の概要 - - - - - MySQL サポートの変更 - - - - - SQLite サポートの変更 - - - - -
- PDO の概要 - - PHP Data Objects (PDO) は PHP 5.0 の時に - PECL 拡張モジュールとして公開され、その後 PHP 5.1.x で - PHP のコア配布物に組み込まれるようになりました。 - PDO 拡張モジュールはデータベースへのアクセスのための一貫したインターフェイスを提供し、 - データベース固有の PDO ドライバとともに使用します。 - 各ドライバはデータベース固有の関数を保持していることもありますが、 - クエリの発行やデータの取得といった基本的な機能については PDO 関数がカバーしています。 - この関数は、 - PDO::__construct - で指定したドライバを使用します。 - - - PDO 拡張モジュールやドライバは、 - 共有モジュールとしてのビルドを想定していることに注意しましょう。 - これにより、PECL からドライバをアップグレードする際に - PHP そのものを再ビルドする必要がなくなります。 - - - PHP 5.1.x のリリース時点では、PDO は広範囲に及ぶテストを済ませており - ほとんどの環境でうまく動作するはずです。しかし、PDO やそのドライバは比較的歴史が浅く、 - データベース固有の機能のいくつかを実装できていないということを理解しておくことが大切です。 - 新しいプロジェクトで PDO を使用する際には、事前に動作検証を十分に行うようにしましょう。 - - - 既存のコードは、一般的にはこれまで存在したデータベース拡張モジュールに依存しています。 - これらについてもメンテナンスが続けられます。 - -
- -
- MySQL サポートの変更 - - PHP 4 では、MySQL 3 のサポートが組み込まれていました。 - PHP 5.0 のリリース時には「mysql」および「mysqli」という 2 つの - MySQL 拡張モジュールがありました。これらは、それぞれ MySQL < 4.1 および - MySQL 4.1 以降をサポートするように設計されていました。 - PHP でサポートされるあらゆるデータベースの API への高速なインターフェイスを提供する - PDO が公開されたことに伴い、PDO を使用して書かれた PHP コードでは、 - PDO_MYSQL ドライバによって現行のいずれのバージョン (MySQL 3、4 あるいは 5) - でもサポートすることが可能となりました。これは、コンパイル時に使用した MySQL - ライブラリのバージョンに依存します。 - 後方互換性を確保するためにこれまでの MySQL 拡張モジュールも残されていますが、 - デフォルトでは有効になりません。 - -
- -
- SQLite サポートの変更 - - PHP 5.0.x では、組み込みの sqlite 拡張モジュールで SQLite 2 がサポートされていました。 - PHP 4.3 および PHP 4.4 でも、PECL 拡張モジュールとして同じものが使用可能でした。 - PDO が公開されたことで、sqlite 拡張モジュールは 'sqlite2' という名前の - PDO ドライバとして機能するようになりました。このため、PHP 5.1.x での - sqlite 拡張モジュールは PDO 拡張モジュールに依存しています。 - - - PHP 5.1.x では、sqlite への接続用にいろいろなインターフェイスを公開しています。 - - - sqlite 拡張モジュールでは "classic" な 手続き型/オブジェクト指向 API を提供しており、 - これは以前のバージョンの PHP と同じように使用できます。 - またこれとは別に PDO 'sqlite2' ドライバを提供しており、こちらは PDO API を使用して - SQLite 2 データベースにアクセスします。 - - - さらに、PDO_SQLITE は 'sqlite' バージョン 3 ドライバを提供します。 - SQLite バージョン 3 は SQLite バージョン 2 に比べて非常に優れていますが、 - 2 つのバージョンの間でファイルフォーマットに互換性がありません。 - - - 以前のバージョンの PHP で動作している SQLite ベースのプロジェクトがあるのなら、 - ext/sqlite を使用し続ければ何の問題もありません。しかし、PDO および sqlite - を明示的に有効にする必要があります。新しいプロジェクトの場合は、PDO および - 'sqlite' (バージョン 3) ドライバを使用すべきです。 - これは SQLite 2 に比べて高速で、ロック処理が改善されており、 - プリペアドステートメントやバイナリ列をネイティブにサポートしています。 - - - SQLite 拡張モジュールを使用するには、PDO を有効にする必要があります。 - もし PDO を共有モジュールとしてビルドしたのなら、 - SQLite 拡張モジュールも同様に共有モジュールとする必要があります。 - これは、PDO ドライバを提供している他のすべての拡張モジュールについても同様です。 - -
-
- -
- <constant>E_STRICT</constant> のチェック - - - ひとつのスクリプトについてのみチェックしたいのであれば、 - PHP コマンドラインの文法チェック機能を使用して - E_STRICT エラーを抜き出すことができます。 - - - php -d error_reporting=4095 -l script_to_check.php - - - 大量のファイルをチェックするのなら、以下のシェルスクリプトで同様のことが可能です。 - - - /dev/null; then - if test -f $FILE; then - check_file "$FILE" - fi - fi - done -done -]]> - - -
- -
- - diff --git a/appendices/migration52.xml b/appendices/migration52.xml deleted file mode 100644 index 979dd7b086..0000000000 --- a/appendices/migration52.xml +++ /dev/null @@ -1,2036 +0,0 @@ - - - - - PHP 5.1.x から PHP 5.2.x への移行 - - &manual.migration.seealso; - 5.0.x、 - 5.1.x、 - 5.3.x、 - 5.4.x、 - 5.5.x および - 5.6.x。 - - -
- PHP 5.2.x における変更点 - - PHP 5.2.x で改良された点のほとんどは、既存のコードには影響を及ぼしません。 - ただ、互換性を失う変更 や - 新しいエラーメッセージ - もあるので、実運用環境の PHP のバージョンをあげる際には事前にテストするようにしましょう。 - - - もし PHP 5.0.x からアップグレードするのなら、このマニュアルの - PHP 5.1.x への移行時の注意 - も読んでおく必要があります。 - - - 同様に、もし PHP 4 からアップグレードするのなら、このマニュアルの - PHP 4 から PHP 5 への移行 - も読んでおく必要があります。 - -
- -
- 下位互換性のない変更点 - - 既存の PHP 5 のコードのほとんどは変更なしで動作するはずですが、 - 以下の下位互換性のない変更点については注意しましょう。 - - - - - getrusage に互換性のない引数を渡した場合に、 - PHP 5.2.1 以降では &null; を返すようになりました。 - - - - - ZipArchive::setCommentName - は、PHP 5.2.1 以降は成功した場合に &true; を返すようになりました。 - - - - - ZipArchive::setCommentIndex - は、PHP 5.2.1 以降は成功した場合に &true; を返すようになりました。 - - - - - SplFileObject::getFilename - は、PHP 5.2.1 以降ではファイルへの相対パスではなくファイル名のみを返すようになりました。 - - - - - Win32 における環境変数 PHPRC の優先順位が変わりました。 - - - 環境変数 PHPRC は、Windows レジストリに保存されているパスより優先されるようになりました。 - - - - - CLI SAPI は、カレントディレクトリにある - &php.ini; や php-cli.ini - を見に行かないようになりました。 - - - 明示されていませんでしたが、PHP 5.1.x では - CLI バイナリが現在の作業ディレクトリにある PHP 設定ファイルを参照するようになっていました。 - これは、予期せぬ設定ファイルを読み込んでしまうという問題を起こす可能性がありました。 - この機能は PHP 5.2.0 で削除されました。PHP は、カレントディレクトリの - &php.ini; や php-cli.ini を参照しません。 - マニュアルの コマンドライン - の部分も参照ください。 - - - - - ゼロで割った余りを求めようとすると警告が発生するようになりました。 - - - 以前のバージョンの PHP では、integer % 0 は何も警告を発せず、 - 予期せぬ結果である &false; を返していました。 - PHP 5.2.0 以降では、このような操作をしようとすると E_WARNING - が発生するようになりました。これは、ゼロで除算を行った際の挙動と同じです。 - - - - -]]> - - - - - - __toString() が、適切な場面で常にコールされるようになりました。 - - - マジックメソッド __toString() - は、文字列コンテキストでコールされるようになりました。 - つまり、オブジェクトを文字列として使用する際には常にコールされるということです。 - - - オブジェクトを文字列として扱った場合に自動的にオブジェクト ID - が返されるという機能は、PHP 5.2.0 で廃止されました。 - オブジェクト ID は常に一意となるわけではないので、この機能には問題があったわけです。 - この変更により、オブジェクト ID - が返されることを前提としたアプリケーションは動作がおかしくなってしまいます。 - オブジェクトの値を文字列として使用すると、(捕捉可能な) 致命的なエラーとなります。 - - - - -]]> - - - - たとえ __toString() を実装したとしても、 - オブジェクトを配列のインデックスやキーとして使用することはできません。 - 将来的には組み込みの機能でハッシュをサポートする予定ですが、 - 現時点の PHP 5.2.x の段階では、自分でハッシュ処理を実装するか - SPL の関数 spl_object_hash を使用してください。 - - - __toString() メソッド内からは例外をスローすることはできません。 - - - - -]]> - - - - - - abstract static なクラス関数が削除されました。 - - - ちょっとした手違いで、PHP 5.0.x および 5.1.x では abstract static - な関数をクラス内で定義できてしまっていました。PHP 5.2.x では、 - これはインターフェイス内でのみ定義できるようになりました。 - - - - -]]> - - - - - - Oracle 拡張モジュール - を Windows で使用するには、最低でも Oracle のバージョン 10 - が必要となりました。 - - - - - RFC2397 (data: ストリーム) に対応しました。 - - - 'data' URL スキームに対応したことにより、 - Windows 環境での挙動が変わる可能性があります。 - NTFS ファイルシステムを使用しており、 - アプリケーションでメタストリームを使用していた場合、 - もし 'data:' という名前のファイルをパス情報なしでアクセスしようとすると正しく動作しません。 - これを避けるには、アクセス時に 'file:' プロトコルを使用します。 - - - RFC 2397 も参照ください。 - - - - -]]> - - - - - - glob() パターンの退化 - - - バージョン 5.2.4 でのセキュリティ修正の副作用で、 - "/foo/*/bar/*" 形式のパターンがうまく動作しなくなってしまっていました。 - バージョン 5.2.5 以降では、glob()openbase_dir - 制約に違反した場合に警告を発生させず &false; を返すようになります。 - - - -
- -
- 新しいエラーメッセージ - - 以下に示す新しいエラーメッセージは、まだこのマニュアルのどこにも説明されていないものです。 - - - - PHP コア - - -]]> - - - - - - PHP コアにおける <link linkend="language.oop5">オブジェクト指向のコード</link> - -bar; - } -} - -$foo = new foo; -$bar =& $foo->prop; -/* Notice: Indirect modification of overloaded property - foo::$prop has no effect in filename on line n */ - - -class foo implements iterator { - public function current() { - } - public function next() { - } - public function key() { - } - public function valid() { - } - public function rewind() { - } -} - -$foo = new foo(); -foreach($foo as &$ref) {} -/* Fatal error: An iterator cannot be used with foreach - by reference in filename on line n */ - - -class foo { - private function __construct() { - } -} -class bar extends foo { - public function __construct() { - parent::__construct(); - /* Fatal error: Cannot call private - foo::__construct() in filename on line n */ - } -} -new bar; - - -stream_filter_register("", "class"); -/* Warning: stream_filter_register(): Filter name - cannot be empty in filename on line n */ - - -stream_filter_register("filter", ""); -/* Warning: stream_filter_register(): Class name - cannot be empty in filename on line n */ -]]> - - - - - - <link linkend="ref.bzip2">bzip2</link> 拡張モジュール - - -]]> - - - - - - <link linkend="ref.datetime">datetime</link> 拡張モジュール - - -]]> - - - - - - <link linkend="ref.dbase">dBase</link> 拡張モジュール - - -]]> - - - - - - <link linkend="ref.mcrypt">mcrypt</link> 拡張モジュール - - -]]> - - - - - - <link linkend="ref.oci8">oci8</link> 拡張モジュール - - -]]> - - - - - - <link linkend="ref.spl">SPL</link> 拡張モジュール - -fgetcsv("foo"); -/* Warning: SplFileObject::fgetcsv(): delimiter must - be a character in filename on line n */ - -$obj->fgetcsv(",", "foo"); -/* Warning: SplFileObject::fgetcsv(): enclosure must - be a character in filename on line n */ -?> -]]> - - - - - - <link linkend="ref.sem">Semaphore</link> (sysvmsg) 拡張モジュール - - -]]> - - - - - - 5.2.1 以降の <link linkend="ref.zip">Zip</link> の例 - -open('archive.zip'); -$obj->setCommentName('', 'comment'); -/* Notice: ZipArchive::setCommentName(): Empty string - as entry name in filename on line n */ - -/* PHP 5.2.1 以降 */ -$obj->getCommentName(''); -/* Notice: ZipArchive::getCommentName(): Empty string - as entry name in filename on line n */ -?> -]]> - - - -
- -
- PHP での <link linkend="ref.datetime">datetime</link> サポートの変更点 - - - PHP 5.1.0 から、date 拡張モジュールが - PHP コアに組み込まれるようになりました。 - これは、PHP の日付時刻サポートを新たに実装しなおしたものです。 - システムのタイムゾーン設定を自動的に取得しようとはしますが、 - 手動で設定しておいたほうがよいでしょう。以下の三通りのうち、 - いずれかの方法で設定します。 - - - - - &php.ini; で、 - date.timezone - ディレクティブを設定する - - - - - システムの環境変数 TZ を設定する - - - - - スクリプト中で、関数 - date_default_timezone_set - を使用する - - - - - サポートしている タイムゾーン - の一覧は、PHP マニュアルに記載されています。 - - - PHP 5.2.x では、日付やタイムゾーンをオブジェクトとして扱えるようになりました。 - それぞれ DateTime および DateTimeZone という名前になります。 - このオブジェクトのメソッドは、既存の手続き型の日付関数群に対応しています。 - -
- -
- 新しいパラメータ - - PHP 5.2.x で、新しいパラメータやオプションのパラメータが追加された関数があります。 - - - PHP コア: - - - - htmlentities - - PHP 5.2.3 で double_encode が追加されました。 - - - - - htmlspecialchars - - PHP 5.2.3 で double_encode が追加されました。 - - - - - base64_decode - - strict が追加されました。 - - - - - setcookie - - httponly が追加されました。 - - - - - setrawcookie - - httponly が追加されました。 - - - - - session_set_cookie_params - - httponly が追加されました。 - - - - - memory_get_usage - - real_usage が追加されました。 - - - - - get_loaded_extensions - - PHP 5.2.4 で zend_extensions が追加されました。 - - - - - curl: - - - - curl_multi_info_read - - msgs_in_queue が追加されました。 - - - - - datetime - - - - date - - PHP 5.2.2 で、書式文字 "u" (ミリ秒) が追加されました。 - - - - - imap: - - - - imap_open - - n_retries が追加されました。 - - - - - imap_reopen - - n_retries が追加されました。 - - - - - mbstring: - - - - mb_strrpos - - offset が追加されました。 - - - - offset パラメータが、かつて - encoding パラメータのあった場所に入りました。 - 下位互換性のために encoding - を三番目のパラメータとして指定することもできます。 - しかし、この下位互換性モードの使用はお勧めしません。 - これは将来は廃止される予定だからです。 - - - - - - ming: - - - - SWFMovie::streamMP3 - - skip が PHP 5.2.1 で追加されました。 - - - - - openssl: - - - - openssl_verify - - signature_algo が追加されました。 - - - - - pgsql: - - - - pg_escape_bytea - - connection が追加されました。 - - - - - pg_escape_string - - connection が追加されました。 - - - - - simplexml: - - - - SimpleXMLElement::__construct - - is_prefix が追加されました。 - - - - - SimpleXMLElement::attributes - - is_prefix が追加されました。 - - - - - SimpleXMLElement::children - - is_prefix が追加されました。 - - - - - simplexml_load_file - - is_prefix が追加されました。 - - - - - simplexml_load_string - - is_prefix が追加されました。 - - - - - spl: - - - - array iterator_to_array(Traversable it [, bool use_keys = true]) - - use_keys が PHP 5.2.1 で追加されました。 - - - - - xmlreader: - - - - XMLReader::open - - encoding および - options が追加されました。 - - - - - XMLReader::XML - - encoding および - options が追加されました。 - - - - - XMLWriter: - - - - xmlwriter_write_element - - PHP 5.2.3 で content はオプションとなりました。 - - - - - xmlwriter_write_element_ns - - PHP 5.2.3 で content はオプションとなりました。 - - - -
- -
- 新しい関数 - - PHP 5.2.x で新しく追加された関数は次のとおりです。 - - - PHP コア: - - - - array_fill_keys - - 最初のパラメータで指定した要素をキーとして、値を初期化した配列を作成します。 - - - - - error_get_last - - 直近に発生したエラーを連想配列として取得します。 - エラーが発生していない場合は &null; を返します。 - - - - - image_type_to_extension - - getimagesize, exif_read_data, - exif_thumbnail, exif_imagetype - が返した画像形式に対応する拡張子を取得します。 - - - - - memory_get_peak_usage - - PHP のメモリ割り当ての最大値を返します。 - - - - - sys_get_temp_dir - - 一時ファイル用のディレクトリのパスを返します (PHP 5.2.1 で追加されました)。 - - - - - timezone_abbreviations_list - - 夏時間の情報や時差、タイムゾーン名を含む連想配列を返します。 - - - - - timezone_identifiers_list - - すべてのタイムゾーン ID を配列で返します。 - - - - - timezone_name_from_abbr - - タイムゾーンの略称を指定して、正式名を返します。 - - - - - stream_socket_shutdown - - ストリームに関連付けられたソケット上の全二重通信 - (のすべてあるいは一部) をシャットダウンします。PHP 5.2.1 以降で使用できます。 - - - - - Image: - - - - imagegrabscreen - - 画面全体のスクリーンショットを取得します。PHP 5.2.2 以降で使用可能です。 - - - - - imagegrabwindow - - ウィンドウをキャプチャします。PHP 5.2.2 以降で使用可能です。 - - - - - libXML: - - - - libxml_disable_entity_loader - - 外部エンティティの読み込み機能を無効にします。PHP 5.2.11 以降で使用可能です。 - - - - - mbstring: - - - - - mb_stripos - - 大文字小文字を区別せず、ある文字列が別の文字列中に最初に現れる位置を探します。 - - - - - mb_stristr - - 大文字小文字を区別せず、ある文字列が別の文字列中に最初に現れる場所を探します。 - - - - - mb_strrchr - - ある文字が文字列中に最後に現れる場所を探します。 - - - - - mb_strrichr - - 大文字小文字を区別せず、ある文字が文字列中に最後に現れる場所を探します。 - - - - - mb_strripos - - 大文字小文字を区別せず、ある文字が文字列中に最後に現れる位置を探します。 - - - - - mb_strstr - - ある文字列が別の文字列中に最初に現れる場所を探します。 - - - - - ming (PHP 5.2.1 以降): - - - - void ming_setSWFCompression(int num) - - 出力の圧縮を設定します。 - - - - - void swfmovie::namedanchor(string name) - - アンカーを作成します。 - - - - - void swfmovie::protect([string password]) - - プロテクトします。 - - - - - openssl: - - - - openssl_csr_get_public_key - - CERT から公開鍵を取り出し、使用できるようにします。 - - - - - openssl_csr_get_subject - - CERT の subject を返します。 - - - - - openssl_pkey_get_details - - 鍵の詳細 (bits、pkey、type) を配列で返します。 - - - - - spl: - - - - spl_object_hash - - 指定したオブジェクトのハッシュ ID を返します。 - - - - - int iterator_apply(Traversable it, mixed function [, mixed params]) - - イテレータのすべての要素に対して関数をコールします。 - - - - - pcre: - - - - preg_last_error - - 直近に実行した正規表現のエラーコードを返します。 - - - - - pgsql: - - - - pg_field_table - - フィールドが属するテーブルの名前、あるいは oid_only が &true; - の場合にテーブルの oid を返します。 - - - - - posix: - - - - posix_initgroups - - 名前で指定したユーザーのグループアクセスリストを計算します。 - - - - - gmp: - - - - gmp_nextprime - - 指定した数より大きい次の素数を探します。 - - - - - xmlwriter: - - - - xmlwriter_full_end_element - - 現在の要素を終了します。エラー時に &false; を返します。 - - - - - xmlwriter_write_raw - - テキストを書き込みます。エラー時に &false; を返します。 - - - - - xmlwriter_start_dtd_entity - - DTD エンティティを開始します。エラー時に &false; を返します。 - - - - - xmlwriter_end_dtd_entity - - 現在の DTD エンティティを終了します。エラー時に &false; を返します。 - - - - - xmlwriter_write_dtd_entity - - 完全な DTD エンティティタグを書き込みます。エラー時に &false; を返します。 - - - -
- -
- 新しいメソッド - - 5.2.x で新しく追加されたメソッドは次のとおりです。 - - - dom: - - - - DOMDocument::registerNodeClass - - 基底ノード型を作成するために使用する拡張クラスを登録します。 - - - - - DOMElement::setIDAttribute - - ID 型の属性を名前で宣言します。 - - - - - DOMElement::setIDAttributeNode - - ID 型の属性をノードで宣言します。 - - - - - DOMElement::setIDAttributeNS - - ID 型の属性をローカル名および名前空間 URI で宣言します。 - - - - - DOMNode::C14N([bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) - - ノードを文字列に正規化します。 - - - - - DOMNode::C14NFile(string uri [, bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) - - ノードをファイルに正規化します。 - - - - - DOMNode::getNodePath() - - ノードの xpath を取得します。 - - - - - soap: - - - - SoapServer::setObject(object obj) - - SOAP リクエストを処理するオブジェクトを設定します。 - - - - - spl: - - - - int ArrayObject::asort(void) - - エントリを値で並べ替えます。 - - - - - int ArrayObject::ksort(void) - - エントリをキーで並べ替えます。 - - - - - int ArrayObject::natcasesort(void) - - エントリをキーで並べ替えます。大文字小文字を区別しない - "自然順" アルゴリズムを使用します。 - - - - - int ArrayObject::natsort(void) - - エントリを値で並べ替えます。"自然順" アルゴリズムを使用します。 - - - - - int ArrayObject::uasort(callback cmp_function) - - エントリを、ユーザー定義関数を使用して値で並べ替えます。 - - - - - int ArrayObject::uksort(callback cmp_function) - - エントリを、ユーザー定義関数を使用してキーで並べ替えます。 - - - - - ArrayIterator AppendIterator::getArrayIterator() - - 内部の ArrayIterator にアクセスします。 - - - - - int AppendIterator::getIteratorIndex() - - イテレータのインデックスを取得します。 - - - - - bool CachingIterator::getCache() - - キャッシュを返します。 - - - - - int CachingIterator::getFlags() - - 内部フラグを返します。 - - - - - bool CachingIterator::offsetExists(mixed index) - - 指定したインデックスが存在する場合に &true; を返します。 - - - - - string CachingIterator::offsetGet(mixed index) - - 内部キャッシュを使用している場合にそれを返します。 - - - - - void CachingIterator::offsetSet(mixed index, mixed newval) - - キャッシュ内の指定したインデックスを設定します。 - - - - - void CachingIterator::offsetUnset(mixed index) - - キャッシュ内の指定したインデックスを削除します。 - - - - - void CachingIterator::setFlags() - - 内部フラグを設定します。 - - - - - array("delimiter" =>, "enclosure" =>) SplFileObject::getCsvControl(void) - - fgetcsv で使用する区切り文字および囲み文字を取得します。 - - - - - void SplFileObject::setCsvControl([string delimiter = ',' [, string enclosure = '"']]) - - fgetcsv で使用する区切り文字および囲み文字を設定します。 - - - - - Tidy - - - - tidyNode tidyNode::getParent() - - 現在のノードの親ノードを返します (PHP 5.2.2 で追加されました)。 - - - - - XMLReader - - - - boolean XMLReader::setSchema - - W3C XSD スキーマを使用して、処理するドキュメントを検証します。 - 最初の XMLReader::read を行う前にのみ実行可能です。 - - - - - zip: - - - - ZipArchive::addEmptyDir() - - 空のディレクトリをアーカイブ内に作成します。 - - - -
- -
- 削除された拡張モジュール - - これらの拡張モジュールは PECL に移されました。PHP の配布ファイルには含まれません。 - これらの拡張モジュールの PECL 版は、必要に応じてユーザーが各自で作成します。 - - - - - filePro - - - - - Hyperwave API - - - -
- -
- 新しい拡張モジュール - - これらの拡張モジュールは、PHP 5.2.0 以降で (デフォルトで) - 新しく追加されました。 - - - - - Filter - - データの検証とフィルタリングを行います。ユーザーの入力のように、 - 安全でないデータを扱うときに使用することを考慮した設計になっています。 - この拡張モジュールはデフォルトで有効になります。 - デフォルトのモードである RAW は、入力データに一切手を加えません。 - - - - - JSON - - JavaScript Object Notation (JSON) データ交換フォーマットを実装します。 - この拡張モジュールはデフォルトで有効になります。 - - - - - Zip - - ZIP 圧縮されたアーカイブおよびその中のファイルを - 透過的に読み書きすることができます。 - - - -
- -
- 新しいクラス - - 以下のクラスが PHP 5.2.0 で追加されました。 - - - - - DateTime - - - - - DateTimeZone - - - - - - RegexIterator - extends FilterIterator; - implements Iterator, Traversable, - OuterIterator - - - 定数 - - - - - RegexIterator::ALL_MATCHES - - - - - RegexIterator::GET_MATCH - - - - - RegexIterator::MATCH - - - - - RegexIterator::REPLACE - - - - - RegexIterator::SPLIT - - - - - RegexIterator::USE_KEY - - - - - プロパティ - - - - - public replacement - - - - - メソッド - - - - - RegexIterator::__construct(Iterator it, string regex [, int mode [, int flags [, int preg_flags]]]) - - 別のイテレータおよび正規表現をもとにして RegexIterator を作成します。 - - - - - bool RegexIterator::accept() - - (string)current() を正規表現とマッチさせます。 - - - - - bool RegexIterator::getFlags() - - 現在の操作フラグを返します。 - - - - - bool RegexIterator::getMode() - - 現在の操作モードを返します。 - - - - - bool RegexIterator::getPregFlags() - - 現在の PREG フラグ (使用中の場合。それ以外は &null;) を返します。 - - - - - bool RegexIterator::setFlags(int new_flags) - - 操作フラグを設定します。 - - - - - bool RegexIterator::setMode(int new_mode) - - 操作モードを設定します。 - - - - - bool RegexIterator::setPregFlags(int new_flags) - - PREG フラグを設定します。 - - - - - - - - RecursiveRegexIterator - - - 定数 - - - - - RecursiveRegexIterator::ALL_MATCHES - - - - - RecursiveRegexIterator::GET_MATCH - - - - - RecursiveRegexIterator::MATCH - - - - - RecursiveRegexIterator::REPLACE - - - - - RecursiveRegexIterator::SPLIT - - - - - RecursiveRegexIterator::USE_KEY - - - - - メソッド - - - - - RecursiveRegexIterator::__construct(RecursiveIterator it, string regex [, int mode [, int flags [, int preg_flags]]]) - - 別の再帰イテレータおよび正規表現をもとにして - RecursiveRegexIterator を作成します。 - - - - - RecursiveRegexIterator RecursiveRegexIterator::getChildren() - - RecursiveRegexIterator に含まれる内部イテレータの子を返します。 - - - - - bool RecursiveRegexIterator::hasChildren() - - 内部イテレータの現在の要素が子を持つかどうかを調べます。 - - - - - -
- -
- 新しいグローバル定数 - - PHP コア: - - - - M_EULER - - - - - M_LNPI - - - - - M_SQRT3 - - - - - M_SQRTPI - - - - - PATHINFO_FILENAME - - - - - PREG_BACKTRACK_LIMIT_ERROR - - - - - PREG_BAD_UTF8_ERROR - - - - - PREG_INTERNAL_ERROR - - - - - PREG_NO_ERROR - - - - - PREG_RECURSION_LIMIT_ERROR - - - - - UPLOAD_ERR_EXTENSION - - - - - STREAM_SHUT_RD - - - - - STREAM_SHUT_WR - - - - - STREAM_SHUT_RDWR - - - - - curl: - - - - CURLE_FILESIZE_EXCEEDED - - - - - CURLE_FTP_SSL_FAILED - - - - - CURLE_LDAP_INVALID_URL - - - - - CURLFTPAUTH_DEFAULT - - - - - CURLFTPAUTH_SSL - - - - - CURLFTPAUTH_TLS - - - - - CURLFTPSSL_ALL - - - - - CURLFTPSSL_CONTROL - - - - - CURLFTPSSL_NONE - - - - - CURLFTPSSL_TRY - - - - - CURLOPT_FTP_SSL - - - - - CURLOPT_FTPSSLAUTH - - - - - CURLOPT_TCP_NODELAY - - - PHP 5.2.1 で追加されました。 - - - - - CURLOPT_TIMEOUT_MS - - - PHP 5.2.3 で追加されました。 - - - - - CURLOPT_CONNECTTIMEOUT_MS - - - PHP 5.2.3 で追加されました。 - - - - - GMP: - - - - GMP_VERSION - - - PHP 5.2.2 で追加されました。 - - - - - ming: - - - - SWFTEXTFIELD_USEFONT - - - - - SWFTEXTFIELD_AUTOSIZE - - - - - SWF_SOUND_NOT_COMPRESSED - - - - - SWF_SOUND_ADPCM_COMPRESSED - - - - - SWF_SOUND_MP3_COMPRESSED - - - - - SWF_SOUND_NOT_COMPRESSED_LE - - - - - SWF_SOUND_NELLY_COMPRESSED - - - - - SWF_SOUND_5KHZ - - - - - SWF_SOUND_11KHZ - - - - - SWF_SOUND_22KHZ - - - - - SWF_SOUND_44KHZ - - - - - SWF_SOUND_8BITS - - - - - SWF_SOUND_16BITS - - - - - SWF_SOUND_MONO - - - - - SWF_SOUND_STEREO - - - - - openssl: - - - - OPENSSL_VERSION_NUMBER - - - - - OPENSSL_VERSION_TEXT - - - - - snmp: - - - - SNMP_OID_OUTPUT_FULL - - - - - SNMP_OID_OUTPUT_NUMERIC - - - - - Semaphore: - - - - MSG_EAGAIN - - - - - MSG_ENOMSG - - - -
- -
- 新しいクラス定数 - - pdo: - - - - PDO::ATTR_DEFAULT_FETCH_MODE - - - - - PDO::FETCH_PROPS_LATE - - - - - PDO::FETCH_KEY_PAIR - - - 2 つのカラムからなる結果セットを連想配列に格納します (PHP 5.2.3 で追加されました)。 - - - - - spl: - - - - CachingIterator::FULL_CACHE - - - - - CachingIterator::TOSTRING_USE_INNER - - - - - SplFileObject::READ_AHEAD - - - - - SplFileObject::READ_CSV - - - - - SplFileObject::SKIP_EMPTY - - - -
- -
- 新しい INI 設定項目 - - PHP 5.2.0 で、&php.ini; に新しい項目が追加されました。 - - - - - allow_url_include - - - この便利なオプションを使用すると、 - リモートファイルに対する通常のファイル操作と - リモートファイルのインクルードを別々に制御することができるようになります。 - 前者はよくある要求ですが、 - 後者については何も考えずに使用するとセキュリティリスクとなる可能性があります。 - PHP 5.2.0 以降では、リモートファイルの操作はできるけれども - リモートファイルをローカルスクリプトにインクルードすることはできない - という設定が可能となりました。実際のところ、これがデフォルトの設定となっています。 - - - - - pcre.backtrack_limit - - - PCRE におけるバックトラックの制限値。 - - - - - pcre.recursion_limit - - - PCRE の再帰処理の制限値。この値をあまり大きくしすぎると、 - プロセススタックを食いつぶして (OS のスタックサイズの制限に到達してしまって) - PHP がクラッシュすることがあるので注意しましょう。 - - - - - session.cookie_httponly - - - クッキーを、HTTP プロトコルでのみアクセスできるようにします。 - つまり、JavaScript のようなスクリプト言語からはアクセスできなくなるということです。 - この設定を使用すると、XSS 攻撃によって ID を盗まれる可能性が少なくなります - (とはいえ、ブラウザによってはこれをサポートしていないものもあります)。 - - - - - PHP 5.2.2 で新しく追加された項目です。 - - - - - max_input_nesting_level - - - 外部から受け取る入力変数 - のネストの深さを制限します。デフォルトは 64 です。 - - - -
- -
- エラー処理 - - これまで E_ERROR となっていた内容のうちのいくつかについて、 - ユーザー定義のエラーハンドラで処理できるようになりました。これは - E_RECOVERABLE_ERROR - で表され、ハンドラを作成しなかった場合は、 - E_ERROR と同様に振る舞います。 - この型のエラーは、ログには - Catchable fatal error と記録されます。 - - - この変更によって、 - error_reporting の定数 - E_ALL の値は 6143 となりました。 - 以前は、この値は 2047 でした。PHP の定数は PHP の外部では使用できないので、 - 外部でこの整数値を指定していることもあるでしょう。その場合は値を変更する必要があります。 - たとえば error_reporting の設定を - httpd.conf あるいは - .htaccess で行っている場合は、値を適切に変更する必要があります。 - また、PHP スクリプト内で定数ではなく値自体を指定している場合も同様です。 - - - この変更の副作用として、 - track_errors が On - の場合にエラーメッセージが重複してしまうことがあるようになりました。 - これを防ぐため、エラーハンドラで - $php_errormsg - を設定した際には &false; を返さなければならないようになりました。 - これにより、さまざまなレベルのメッセージをより精密に制御できるようになります。 - -
- -
- その他の機能向上 - - - - メモリ管理を改善しデフォルトのメモリ制限を増加しました。 - - - 新しいメモリマネージャは、以前のものに比べて - より少ないメモリでより高速に動作するようになりました。 - システムから取得したメモリをラージブロックに割り当て、 - 自分でヒープを管理します。 - これまでのバージョンでは、emalloc() がコールされるたびに - &php.ini; の memory_limit をチェックしていました。 - 現在は、システムから実際にメモリを取得する際にのみチェックしています。 - つまり、memory_limit はこれまでに比べて大幅に精度が上がったということです。 - これまでのメモリマネージャは、 - malloc ライブラリが使用するメモリのオーバーヘッドを考慮していませんでした。 - - - このように計算精度を向上させたおかげで、 - これまでより効率的にメモリを使用できるようになりました。 - これに対応するため、デフォルトの memory_limit 設定も変更され、 - 8 メガバイトから 16 メガバイトとなりました。 - - - - - インターフェイスのコンストラクタで、 - 実装クラスのコンストラクタのシグネチャを強制できるようになりました。 - - - PHP 5.2.0 以降で、インターフェイスにコンストラクタを定義できるようになりました。 - しかし、インターフェイスでコンストラクタを宣言した場合は、 - そのインターフェイスを実装するクラスは - インターフェイスのコンストラクタと同じシグネチャのコンストラクタを持つ必要があります。 - ここでいう「シグネチャ」とは、パラメータや返り値の定義のことです。 - また、型ヒントや 参照渡し/値渡し の区別なども含まれます。 - - - -
-
- - diff --git a/appendices/migration53.xml b/appendices/migration53.xml deleted file mode 100644 index 71cfa50c84..0000000000 --- a/appendices/migration53.xml +++ /dev/null @@ -1,2456 +0,0 @@ - - - - - PHP 5.2.x から PHP 5.3.x への移行 - - &manual.migration.seealso; - 5.0.x、 - 5.1.x、 - 5.2.x、 - 5.4.x、 - 5.5.x および - 5.6.x。 - - -
- PHP 5.3.x における変更点 - - PHP 5.3.x で改良された点のほどんどは、既存のコードに影響を及ぼしません。ただ、 - 互換性がない変更 や 考慮すべき - 新機能 があります。よって、 - 実運用環境の PHP をこのバージョンにあげる前に、あらゆるコードをテストすべきです。 - - - システムを PHP 5.3.x より古いバージョンにアップグレードした場合、 - 関連するドキュメントは以下で見ることができます。 - - - - - 5.2.x への移行. - - - - - PHP 5.1.x への移行. - - - - - PHP 4 から PHP 5 への移行. - - - -
- -
- 下位互換性のない変更点 - - 既存の PHP5 のコードのほとんどは変更なしで動作するはずですが、 - 以下の下位互換性のない変更点については注意しましょう。 - - - - - 引数を解釈する内部API が、PHP 5.3.x に同梱されている全ての拡張機能に - 適用されるようになりました。つまり、互換性のないパラメーターが渡された場合、 - この引数を解釈するAPIは &null; を関数に返させます。これにはいくつか例外が - あります。たとえば get_class 関数はエラーが起きた場合に - 以前と同様 &false; を返します。 - - - - - clearstatcache 関数は、デフォルトで絶対パスキャッシュの値をクリアしなくなりました。 - - - - - realpath 関数はプラットフォーム依存でなくなり、全てのプラットフォーム上で - 同じ動作をするようになりました。その結果、 - __FILE__ . "/../x" のような無効な相対パスは一切動作しなくなりました。 - - - - - call_user_func 関数 とその仲間は、呼び出し先が親クラスであっても $this - の値を伝播させるようになりました。 - - - - - 配列処理関数 natsort, natcasesort, - usort, uasort, uksort, - array_flip そして array_unique は、 - 引数としてオブジェクトを受け入れなくなりました。オブジェクトを使ってプロパティにアクセス - する必要がある場合、オブジェクトを配列型にキャストする必要があります。 - - - - - 引数を参照渡しする関数に値を渡した場合の振る舞いが変更されました。 - 以前は値渡しとして引数を受け取っていましたが、今は fatal error - が発生するようになりました。 - 参照渡しを期待している関数に定数やリテラルを渡していたコードは、 - いったんその値を変数に代入してから関数に渡すよう書き換える必要があります。 - - - - - 新しい mysqlnd ライブラリは、MySQL 4.1 用の41バイトの新しいパスワードフォーマットを使用します。 - 古い16バイトのパスワードを使うと、mysql_connect - 系の関数は次のようなエラーメッセージを生成します。"mysqlnd cannot connect to MySQL 4.1+ - using old authentication" - - - - - 新しい mysqlnd ライブラリは、mysql の設定ファイル - (my.cnf/my.ini) を読み込まなくなりました (以前の libmysqlclient は読み込んでいました)。 - もし設定ファイルの内容に依存するコードを書いているのなら、 - mysqli_options 関数で明示的に読み込む必要があります。 - つまり、PDO 固有の定数 PDO::MYSQL_ATTR_READ_DEFAULT_FILE - および PDO::MYSQL_ATTR_READ_DEFAULT_GROUP は、 - PDO の MySQL サポートが mysqlnd でコンパイルしない限り定義されないことになります。 - - - - - SplFileInfoクラス と他のディレクトリ関連クラスは、 - 末尾の / を除去するようになりました。 - - - - - __toString() マジックメソッドは引数をとらなくなりました。 - - - - - 以下のマジックメソッド - __get(), - __set(), - __isset(), - __unset() および - __call() - は常に public にすべきです。また、static でないメソッドとしても定義できます。 - メソッドのシグナチャは強制されます。 - - - - - マジックメソッド __call() - は、private や protected のメソッドに対するアクセスでも呼び出されるようになりました。 - - - - - func_get_argfunc_get_args および - func_num_args は、関数内で - includerequire - を使って読み込んだファイルのいちばん外側のスコープからは呼び出せないようになりました。 - - - - - MHASH 拡張モジュール用の抽象化レイヤーができ、Hash - 拡張モジュールをラップできるようになりました。 - しかし、すべてのアルゴリズムをサポートしているわけではありません。 - 主なところでは s2k ハッシュアルゴリズムには非対応です。 - つまり、s2k ハッシュは PHP 5.3.0 以降では使えないということです。 - - - - - 次に示すキーワードは予約語となり、関数名やクラス名などの識別子の名前として使えなくなりました。 - - - - - goto - - - - - namespace - - - -
- -
- 新機能 - - PHP 5.3.0 には多くの新機能が含まれています。 - - - - - 名前空間 のサポートが追加されました。 - - - - - 遅延静的束縛 - のサポートが追加されました。 - - - - - ジャンプラベル (制限付きgoto) のサポートが追加されました。 - - - - - ネイティブクロージャ - (ラムダ/無名関数) のサポートが追加されました。 - - - - - マジックメソッドが二つ追加されています。 - __callStatic() と - __invoke() です。 - - - - - Nowdoc - 構文がサポートされました。これは - ヒアドキュメント - のように動作しますが、シングルクォートで囲まれた文字列として扱われます。 - - - - - ヒアドキュメント - 構文は、静的な クラスプロパティ/定数 を初期化できるようになりました。 - - - - - ヒアドキュメント - 構文は、ダブルクォートを使って宣言できるようになりました。これは - Nowdoc - 構文を補完するものです。 - - - - - 定数 はクラスの外でも - const キーワードを使って宣言できるようになりました。 - - - - - 三項演算子 - の短縮形式として ?: が使えます。 - - - - - HTTPストリームラッパー は、200 から 399 までのステータスコードを成功したものとみなすようになりました。 - - - - - 静的なメソッドに動的にアクセスできるようになりました。 - - - - -]]> - - &example.outputs; - - - - - - - - 例外 をネストできるようになりました。 - - - - -]]> - - - - - - 循環参照用のガベージコレクタが追加され、デフォルトで有効になりました。 - - - - - mail 関数が送信メールのログを記録できるようになりました - (注意: この関数を使って送信されたメールのみが対象です)。 - - - -
- -
- Windows版に対する変更 - - Windows版に加えられた変更は以下の通りです。 - - - - - Windows XP SP3 以降のみをサポートするようになりました。 - つまり、Windows 98, ME, 2000, NT4 はサポートされなくなりました。 - - - - - Windows用のバイナリは i586 以降をターゲットとしてビルドされています。 - i386 と i486 はサポートされません。 - - - - - Windows版PHP で 64ビット版のサポートが実験的に追加されています。 - - - - - Visual Studio 2008 を用いて、Visual C++ 9(VC9) コンパイラがサポートされるようになりました。 - PHP のスナップショットとリリースは VC9 でも利用できます。 - VC6 を使った古いバイナリは今もサポートされており、VC9 版とともにリリースされます。 - - - - - PDO_OCI では、php_pdo_oci8.dll - ライブラリ (Oracle 8 クライアントライブラリ用) がビルドされなくなりました。 - 代替として、Oracle 10 と Oracle 11 向けのクライアントライブラリとして - php_pdo_oci.dll (名前から '8' が消えているのに注意) を使ってください。 - これら以外のバージョンのデータベースへの接続もサポートされています。 - - - - - OCI8 拡張モジュールでは、 - php_oci8.dll に加えて - 新しいライブラリ php_oci8_11g.dll が使えるようになりました。 - これらは同時に有効にできません。Oracle 10.2 クライアントライブラリ向けには php_oci8.dll - を使ってください。 - Oracle 11 以降のクライアントライブラリ向けには php_oci8_11g.dll を使ってください。 - これら以外のバージョンのデータベースへの接続もサポートされています。 - - - - - Windows でのサポートが追加された関数は以下の通りです。 - - - - - checkdnsrr - - - - - dns_get_record - - - - - fnmatch - - - - - getmxrr - - - - - getopt - - - - - imagecolorclosesthwb - - - - - inet_ntop - - - - - inet_pton - - - - - link - - - - - linkinfo - - - - - mcrypt_create_iv - - - - - readlink - - - - - socket_create_pair - - この関数は以前 Windows でも利用できましたが、バグがあったため - PHP 4.3.0 で使えなくなっていました。 - - - - - stream_socket_pair - - - - - symlink - - - - - time_nanosleep - - - - - time_sleep_until - - - - - その他の変更: - - - - - stat, touch, - filemtime, filesize 関数と、 - それに関連する関数の移植性が改善されました (利用できるデータに対して100%移植可能です)。 - - - - - link 関数を使って Windows でハードリンクを作れるようになりました。 - シンボリックリンクは symlink 関数で作ることができます。 - ハードリンクは Windows 2000 以降で、 - シンボリックリンクは Windows Vista 以降で利用できます。 - - - - - Windows版のPHP は PHP_WINDOWS_* - という名前で始まる一連の定数を提供します。これらの一覧と使い方は - こちら から見ることができます。 - - - - - - ISAPI モジュールはサポートされなくなりました。代替として改善され、より優れた - FastCGI SAPI モジュールを使ってください。 - - - - - Windows 版PHP のダウンロード、リリース候補、様々なビルド - (スレッドセーフ版とそうでないもの、VC6/VC9版、x86版/x64版) - を用意した専用サイトが利用できます。 - URL は &url.php.windows; です。 - - -
- -
- SAPI モジュールに対する変更 - - - - litespeed と呼ばれる新しいSAPIモジュールが利用できます。 - - - - - CGI SAPI における FastCGI のサポートは常に有効になり、無効にできなくなっています。 - 詳細は sapi/cgi/CHANGES を参照してください。 - - - - - スクリプトの実行時間を測るための新しい CGI SAPI オプションとして - -T が利用できます。 - - - - - CGI/FastCGI では、.htaccess スタイルの &php.ini; ファイルをサポートしています。 - これはユーザー定義のファイルです。 - - - - - dl はデフォルトで無効になりました。 - CLI、CGI と 組み込みSAPI でのみ利用可能です。 - - - -
- -
- PHP 5.3.x で推奨されない機能 - - PHP 5.3.0 では新しく二つのエラーレベルが加わりました。 - E_DEPRECATEDE_USER_DEPRECATED です。 - E_DEPRECATED エラーレベルは、 - 特定の機能が推奨されないことを示すのに使います。 - E_USER_DEPRECATED - エラーレベルは、ユーザー定義のコードで推奨されない機能、たとえば - E_USER_ERRORE_USER_WARNING - のようなものを示すのに使います。 - - - INI ディレクティブで推奨されないものは以下の通りです。 - これらのひとつ以上を有効にすると、起動時 - E_DEPRECATED エラーが発生します - - - - - define_syslog_variables - - - - - register_globals - - - - - register_long_arrays - - - - - safe_mode - - - - - magic_quotes_gpc - - - - - magic_quotes_runtime - - - - - magic_quotes_sybase - - - - - '#' ではじまるコメントは .INI ファイルでは推奨されません。 - - - - - 推奨されない関数 - - - - - call_user_method (かわりに - call_user_func を使用します) - - - - - call_user_method_array (かわりに - call_user_func_array を使用します) - - - - - define_syslog_variables - - - - - dl - - - - - ereg (かわりに preg_match を使用します) - - - - - ereg_replace (かわりに preg_replace - を使用します) - - - - - eregi (かわりに preg_match で - 'i' 修正子を使用します) - - - - - eregi_replace (かわりに preg_replace - で 'i' 修正子を使用します) - - - - - mcrypt_generic_end - - - - - set_magic_quotes_runtime およびそのエイリアスである - magic_quotes_runtime - - - - - session_register (かわりにスーパーグローバル $_SESSION - を使用します) - - - - - session_unregister (かわりにスーパーグローバル - $_SESSION を使用します) - - - - - session_is_registered (かわりにスーパーグローバル - $_SESSION を使用します) - - - - - set_socket_blocking (かわりに - stream_set_blocking を使用します) - - - - - split (かわりに preg_split を使用します) - - - - - spliti (かわりに preg_split で - 'i' 修正子を使用します) - - - - - sql_regcase - - - - - mysql_db_query (かわりに - mysql_select_db および mysql_query - を使用します) - - - - - mysql_escape_string (かわりに - mysql_real_escape_string を使用します) - - - - - ロケールカテゴリ名を文字列で渡すこと。かわりに LC_* - 系の定数を使用します。 - - - - - is_dstmktime に渡すこと。 - かわりにタイムゾーン処理用の新しい関数を使用します。 - - - - - 推奨されない機能 - - - - - new - の返り値を参照で代入すること - - - - - 呼び出し時の参照渡し - - - -
- -
- PHP 5.3.x で推奨されない状態が取り消された機能 - - is_a 関数は推奨されていませんでしたが、 - ユーザーの要望によって取り消されました。つまり、この関数は - E_STRICT エラーの対象ではないということです。 - -
- -
- 新しいパラメータ - - PHP 5.3 では、新しい、またはオプションのパラメータを提供する関数があります。 - - PHP コア: - - - - clearstatcache - - clear_realpath_cache と - filename が追加されました。 - - - - - copy - - ストリームコンテキストパラメータ context が追加されました。 - - - - - fgetcsv - - escape が追加されました。 - - - - - ini_get_all - - details が追加されました。 - - - - - nl2br - - is_xhtml が追加されました。 - - - - - parse_ini_file - - scanner_mode が追加されました。 - - - - - round - - mode が追加されました。 - - - - - stream_context_create - - params が追加されました。 - - - - - strstr および stristr - - before_needle が追加されました。 - - - - - JSON関数: - - - - json_encode - - options が追加されました。 - - - - - json_decode - - depth が追加されました。 - - - - - ストリーム関数: - - - - stream_select、 - stream_set_blocking、 - stream_set_timeout および - stream_set_write_buffer - はユーザー空間のストリームラッパーとして機能します。 - - - - - Sybase関数: - - - - sybase_connect - - new が追加されました。 - - - - - - PHP 5.3.0 で追加されたメソッドパラメータは以下の通りです。 - - PHP コア: - - - - Exception::__construct - - previous が追加されました。 - - - -
- -
- 新しい関数 - - PHP 5.3 で加わった新しい関数は以下の通りです。 - - - PHP コア: - - - - array_replace - - 渡された配列の要素の値が一致するものを置き換え、ひとつの配列にする - - - - - array_replace_recursive - - 渡された配列の要素の値が一致するものを再帰的に置き換え、ひとつの配列にする - - - - - class_alias - - ユーザー定義のクラスのエイリアスを作成する - - - - - forward_static_call - - はじめのパラメータとして渡されたユーザー定義の静的関数を呼び出す。 - - - - - forward_static_call_array - - はじめのパラメータとして渡されたユーザー定義の静的関数を呼び出すが、 - 引数は配列として渡す。 - - - - - gc_collect_cycles - - 既存ガベージサイクルを強制的に収集する - - - - - gc_disable - - 循環参照コレクタを無効にする - - - - - gc_enable - - 循環参照コレクタを有効にする - - - - - gc_enabled - - 循環参照コレクタの状態を返す - - - - - get_called_class - - 静的メソッドのコール元のクラス名を取得する。 - - - - - gethostname - - ローカルマシンの現在のホスト名を取得する - - - - - header_remove - - header関数 で以前設定したHTTPヘッダを削除する - - - - - lcfirst - - 文字列の最初の文字を小文字にする - - - - - parse_ini_string - - 設定文字列をパースする。 - - - - - quoted_printable_encode - - 8 ビット文字列を quoted-printable 文字列に変換する - - - - - str_getcsv - - CSV文字列を配列にパースする。 - - - - - stream_context_set_default - - デフォルトのストリームコンテキストを設定する。 - - - - - stream_supports_lock - - ストリームがロッキングをサポートする場合に &true; を返す。 - - - - - stream_context_get_params - - ストリームのコンテキストからパラメータを集める。 - - - - - streamWrapper::stream_cast - - 既に存在しているリソースを集める。 - - - - - streamWrapper::stream_set_option - - ストリームのオプションを変更する。 - - - - - 日付・時刻関数: - - - - date_add - - 年月日時分秒の値を DateTime オブジェクトに加える - - - - - date_create_from_format - - 指定した書式でフォーマットした新しい DateTime オブジェクトを返す - - - - - date_diff - - ふたつの DateTime オブジェクトの差を返す - - - - - date_get_last_errors - - 日付/時刻 の操作中に発生した最後の警告やエラーを返す - - - - - date_parse_from_format - - 指定した日付についての情報を取得する - - - - - date_sub - - 年月日時分秒の値を DateTime オブジェクトから引く - - - - - timezone_version_get - - タイムゾーンデータベースのバージョンを取得する - - - - - GMP関数: - - - - gmp_testbit - - ビットが設定されているかどうかを調べる - - - - - Hash関数: - - - - hash_copy - - ハッシュコンテキストをコピーする - - - - - IMAP 関数: - - - - imap_gc - - IMAP のキャッシュをクリアする - - - - - imap_utf8_to_mutf7 - - UTF-8 文字列を 修正UTF-7 にエンコードする - - - - - imap_mutf7_to_utf8 - - 修正UTF-7 を UTF-8 にデコードする - - - - - JSON関数: - - - - json_last_error - - JSON関連の処理で直近に発生したエラーを返す - - - - - MySQL 改良版: - - - - mysqli_fetch_all - - 結果のすべての行を連想配列・数値添字配列あるいはその両方の形式で取得する - - - - - mysqli_get_connection_stats - - クライアント接続に関する統計情報を返す - - - - - mysqli_poll - - 接続を問い合わせる - - - - - mysqli_reap_async_query - - 非同期クエリから結果を取得する - - - - - OpenSSL 関数: - - - - openssl_random_pseudo_bytes - - ランダムな疑似バイトで、指定された長さを埋めた文字列を返す - - - - - PCNTL 関数: - - - - pcntl_signal_dispatch - - ペンディングシグナル用のハンドラをコールする - - - - - pcntl_sigprocmask - - ブロックされたシグナルを設定あるいは取得する - - - - - pcntl_sigtimedwait - - タイムアウトつきでシグナルを待つ - - - - - pcntl_sigwaitinfo - - シグナルを待つ - - - - - PCRE 関数: - - - - preg_filter - - 正規表現の検索と置換を行い、パターンにマッチした結果のみを返す - - - - - セマフォ関数: - - - - msg_queue_exists - - メッセージキューが存在するかどうかを調べる - - - - - shm_has_var - - 特定のキーが共有メモリセグメントに存在するかどうかを調べる - - - - - - 以下の関数はPHP本体に組み込まれました。つまり、これらは PHP を実行するオペレーティングシステムに関係なく使えるということです。 - - - - - acosh - - - - - asinh - - - - - atanh - - - - - expm1 - - - - - log1p - - - -
- -
- 新しいストリームラッパー - - PHP 5.3.0 で加わったストリームラッパーは次の通りです。 - - - - - glob:// - - - - - phar:// - - - -
- -
- 新しいフィルタ - - PHP 5.3.0 で加わったストリームフィルタは次の通りです。 - - - - - dechunk (HTTP chunked encoding を復元します) - - - - - bz2.decompress フィルタは連結機能をサポートするようになりました。 - - - -
- -
- 新しいクラス定数 - - PHP 5.3.0 で加わった新しいクラス定数は以下の通りです。 - - - PDO_FIREBIRD: - - - - PDO::FB_ATTR_DATE_FORMAT - - 日付のフォーマットを設定します。 - - - - - PDO::FB_ATTR_TIME_FORMAT - - 時間のフォーマットを設定します。 - - - - - PDO::FB_ATTR_TIMESTAMP_FORMAT - - タイムスタンプのフォーマットを設定します。 - - - -
- -
- 新しいメソッド - - PHP 5.3.0 で加わった新しいメソッドは以下の通りです。 - - - 日付/時刻: - - - - DateTime::add - - 年月日時分秒の値を DateTime オブジェクトに加える - - - - - DateTime::createFromFormat - - 指定した書式でフォーマットした新しい DateTime オブジェクトを返す - - - - - DateTime::diff - - ふたつの DateTime オブジェクトの差を返す - - - - - DateTime::getLastErrors - - 日付/時刻 の操作中に発生した最後の警告やエラーを返す - - - - - DateTime::sub - - 年月日時分秒の値を DateTime オブジェクトから引く - - - - - Exception: - - - - Exception::getPrevious - - 前の例外を返す - - - - - DOM: - - - - DOMNode::getLineNo - - パースしたノードが存在する行番号を取得する - - - - - PDO_FIREBIRD: - - - - PDO::setAttribute - - 属性を設定する - - - - - Reflection: - - - - ReflectionClass::getNamespaceName - - このクラスが定義された名前空間の名前を返す - - - - - ReflectionClass::getShortName - - クラスの短縮名を返す (名前空間の部分は含まない) - - - - - ReflectionClass::inNamespace - - このクラスが名前空間の中で定義されているかどうかを返す - - - - - ReflectionFunction::getNamespaceName - - この関数が定義された名前空間の名前を返す - - - - - ReflectionFunction::getShortName - - 関数の短縮名を返す (名前空間の部分は含まない) - - - - - ReflectionFunction::inNamespace - - この関数が名前空間の中で定義されているかどうかを返す - - - - - ReflectionProperty::setAccessible - - public でないプロパティを読み出せるかどうかを設定する - - - - - SPL: - - - - SplObjectStorage::addAll - - 別のストレージオブジェクトからすべてのオブジェクトを追加する - - - - - SplObjectStorage::removeAll - - 現在のストレージから、別のストレージに含まれているオブジェクトを取り除く - - - - - XSL: - - - - XSLTProcessor::setProfiling - - プロファイル情報の出力ファイルを設定する - - - -
- -
- 新しい拡張モジュール - - PHP 5.3.0 で追加された (デフォルトで含まれている) 拡張モジュールは以下の通りです。 - - - - - Enchant - - スペリングライブラリの最上位に位置する抽象レイヤ - - - - - Fileinfo - - 改良され、(完全に互換性を保ちながら) 堅牢な実装で - Mimetype 拡張モジュールを置き換えたものです。 - Mimetype 拡張モジュールは以前に削除されています。 - - - - - INTL - - 国際化のための拡張モジュールです。 - INTL は ICU ライブラリのラッパーです。 - - - - - Phar - - PHPアーカイブファイルの実装です。 - - - - - SQLite3 - - SQLite バージョン 3 のデータベースをサポートしています。 - - - - - mysqlnd は PHP に同梱された新しいコアライブラリです。 - これは libmysqlclient のためにPHP特有の部分を置き換えたものです。 - mysqlnd は libmysqlclient が システムに見つからない場合、 - mysql, - mysqli, - PDO_MYSQL をビルドするのに使われます。 - しかし、libmysqlclient が存在する場合でも、そのかわりに mysqlnd を使うこともできます。 - パフォーマンスの面で、mysqlnd を使用することを推奨します。 - -
- -
- 削除された拡張モジュール - - 以下に示す拡張モジュールは PECL に移動し、PHPに同梱されなくなりました。 - これらの PECLパッケージ は、ユーザーの需要に応じて作られるかが決まります。 - - - - - dbase - - もはやメンテナンスされていません。 - - - - - fbsql - - もはやメンテナンスされていません。 - - - - - fdf - - メンテナンスされています。 - - - - - ming - - メンテナンスされています。 - - - - - msql - - もはやメンテナンスされていません。 - - - - - ncurses - - メンテナンスされています。 - - - - - sybase - - メンテナンスが中止されました。代替として既にPHPコアに入っている - Sybase関数 を使ってください。 - - - - - mhash - - メンテナンスが中止されました。 - 代替として HASH関数 を使ってください。 - HASH関数 は、 - 古い関数を使っている既存のアプリケーションが動くように、mhash と完全な互換性があります。 - - - -
- -
- その他の拡張モジュールに対する変更 - - 以下の拡張モジュールは configure スクリプトの実行中に無効にすることができなくなりました。 - - - - - PCRE - - - - - Reflection - - - - - SPL - - - - - 拡張モジュールに対する振る舞いの変更や新機能は以下の通りです。 - - - - - 日付と時刻 - - TZ 環境変数はタイムゾーンを推測するのに使われなくなりました。 - - - - - cURL - - cURL が SSHプロトコルをサポートするようになりました。 - - - - - ネットワーク関数 - - dns_check_record が、 - 追加の「エントリ」インデックスを返すようになりました。これには TXT 要素が含まれます。 - - - - - Hash関数 - - SHA-224 と salsa ハッシュアルゴリズムがサポートされました。 - - - - - マルチバイト文字列関数(mbstring) - - CP850 エンコーディングがサポートされました。 - - - - - OCI8 - - oci_close関数を持続的接続の途中で呼び出したり、 - 持続的接続を参照している変数がスコープの外に出ると、 - 全てのコミットされていないトランザクションがロールバックされるようになりました。 - ユーザーは明示的にコミットするか、ロールバックすることが必要です。 - oci8.old_oci_close_semantics=On - と設定することで以前の振る舞いを残すことができます。 - - - Database Resident Connection Pooling (DRCP), Fast - Application Notification (FAN) をサポートしました。 - - - Oracle External Authentication (Windowsでは未サポート) をサポートしました。 - - - oci_bind_by_name関数は引数のタイプとして - SQLT_AFC (CHAR データ型の別名) をサポートしています。 - - - - - OpenSSL - - OpenSSL のダイジェストと暗号関数がサポートされました。 - また、DSA, RSA, DH 鍵の内部値にもアクセスできるようになっています。 - - - - - Session - - open_basedir の制限が有効な場合、 - "/tmp" を許可するパスに追加しない限り、セッションファイルを - /tmpディレクトリに保存しなくなりました。 - - - - - SOAP - ユーザー定義のHTTPヘッダを送信できるようになりました。 - - - - - MySQLi - ホスト名に "p:" を追加することで持続的接続ができるようになりました。 - - - - - 画像処理(GD) - gd_info 関数が返す "JPG Support" というインデックスが "JPEG Support" に変更されました。 - - - - - -
- -
- 新しいクラス - - PHP 5.3.0 で新しく加わったクラスは以下の通りです。 - - - 日付・時刻: - - - - DateInterval - - - - - DatePeriod - - - - - Phar: - - - - Phar - - - - - PharData - - - - - PharException - - - - - PharFileInfo - - - - - SPL: - - - - FilesystemIterator - - - - - GlobIterator - - - - - MultipleIterator - - - - - RecursiveTreeIterator - - - - - SplDoublyLinkedList - - - - - SplFixedArray - - - - - SplHeap - - - - - SplMaxHeap - - - - - SplMinHeap - - - - - SplPriorityQueue - - - - - SplQueue - - - - - SplStack - - - -
- -
- 新しいグローバル定数 - - PHP コア: - - - - __DIR__ - - - - - __NAMESPACE__ - - - - - E_DEPRECATED - - - - - E_USER_DEPRECATED - - - - - INI_SCANNER_NORMAL - - - - - INI_SCANNER_RAW - - - - - PHP_MAXPATHLEN - - - - - PHP_WINDOWS_NT_DOMAIN_CONTROLLER - - - - - PHP_WINDOWS_NT_SERVER - - - - - PHP_WINDOWS_NT_WORKSTATION - - - - - PHP_WINDOWS_VERSION_BUILD - - - - - PHP_WINDOWS_VERSION_MAJOR - - - - - PHP_WINDOWS_VERSION_MINOR - - - - - PHP_WINDOWS_VERSION_PLATFORM - - - - - PHP_WINDOWS_VERSION_PRODUCTTYPE - - - - - PHP_WINDOWS_VERSION_SP_MAJOR - - - - - PHP_WINDOWS_VERSION_SP_MINOR - - - - - PHP_WINDOWS_VERSION_SUITEMASK - - - - - cURL関数: - - - - CURLOPT_PROGRESSFUNCTION - - - - - GD および Image 関数: - - - - IMG_FILTER_PIXELATE - - - - - JSON 関数: - - - - JSON_ERROR_CTRL_CHAR - - - - - JSON_ERROR_DEPTH - - - - - JSON_ERROR_NONE - - - - - JSON_ERROR_STATE_MISMATCH - - - - - JSON_ERROR_SYNTAX - - - - - JSON_FORCE_OBJECT - - - - - JSON_HEX_TAG - - - - - JSON_HEX_AMP - - - - - JSON_HEX_APOS - - - - - JSON_HEX_QUOT - - - - - LDAP 関数: - - - - LDAP_OPT_NETWORK_TIMEOUT - - - - - libxml 関数: - - - - LIBXML_LOADED_VERSION - - - - - PCRE 関数: - - - - PREG_BAD_UTF8_OFFSET_ERROR - - - - - PCNTL 関数: - - - - BUS_ADRALN - - - - - BUS_ADRERR - - - - - BUS_OBJERR - - - - - CLD_CONTIUNED - - - - - CLD_DUMPED - - - - - CLD_EXITED - - - - - CLD_KILLED - - - - - CLD_STOPPED - - - - - CLD_TRAPPED - - - - - FPE_FLTDIV - - - - - FPE_FLTINV - - - - - FPE_FLTOVF - - - - - FPE_FLTRES - - - - - FPE_FLTSUB - - - - - FPE_FLTUND - - - - - FPE_INTDIV - - - - - FPE_INTOVF - - - - - ILL_BADSTK - - - - - ILL_COPROC - - - - - ILL_ILLADR - - - - - ILL_ILLOPC - - - - - ILL_ILLOPN - - - - - ILL_ILLTRP - - - - - ILL_PRVOPC - - - - - ILL_PRVREG - - - - - POLL_ERR - - - - - POLL_HUP - - - - - POLL_IN - - - - - POLL_MSG - - - - - POLL_OUT - - - - - POLL_PRI - - - - - SEGV_ACCERR - - - - - SEGV_MAPERR - - - - - SI_ASYNCIO - - - - - SI_KERNEL - - - - - SI_MESGQ - - - - - SI_NOINFO - - - - - SI_QUEUE - - - - - SI_SIGIO - - - - - SI_TIMER - - - - - SI_TKILL - - - - - SI_USER - - - - - SIG_BLOCK - - - - - SIG_SETMASK - - - - - SIG_UNBLOCK - - - - - TRAP_BRKPT - - - - - TRAP_TRACE - - - -
- -
- INIファイル の扱いに関する変更 - - PHP 5.3.0 はパフォーマンスが大きく向上しました。そして構文解析や構文の新機能があります。 - - - - - 標準の &php.ini; ファイルは再び整理され、名前が変更されました。 - php.ini-development ファイルには開発環境で推奨される設定があります。 - php.ini-production は本番環境向けに設定されています。 - - - - - [PATH=/opt/httpd/www.example.com/] と - [HOST=www.example.com] という特別なセクションをサポートしました。 - このセクションに置かれたディレクティブは、 - 実行時やユーザー定義のiniファイルで上書きすることができません。 - 詳しい情報は こちら を参照してください。 - - - - - zend_extension_debug、 - zend_extension_debug_ts - そして zend_extension_ts - ディレクティブが削除されました。代替として zend_extension - をすべてのZend拡張機能をロードするのに使ってください。 - - - - - zend.ze1_compatibility_mode ディレクティブは削除されました。 - このディレクティブをONにしていると、E_ERROR エラーが起動時に発生します。 - - - - - extension - ディレクティブを使ってロードするモジュールをフルパスで指定できるようになりました。 - directive. - - - - - &php.ini; ファイルのほとんどすべての場所で "ini-variables" の形式が使えるようになりました。 - - - - - 実行時に open_basedir の制限をより厳しくできるようになりました。 - また、このディレクティブは PHP_INI_ALL になりました。 - - - - - INI オプションの配列で 数値とアルファベットが混じった値が使えるようになりました。 - - - - - get_cfg_var 関数は "配列の" INIオプションを返せるようになりました。 - - - - - メールに関するディレクティブ - mail.add_x_header および - mail.log が追加されました。 - - - - - 新しく追加された iniディレクティブ は以下の通りです。 - - - - - user_ini.filenameuser_ini.cache_ttl - が追加されました。これは、 - ユーザー定義 INI ファイル用のものです。 - - - - - exit_on_timeout が追加されました。 - これは、PHP でタイムアウトが発生したときに Apache 1.x の子プロセスを終了させるものです。 - - - - - mbstring.http_output_conv_mimetype が追加されました。 - このディレクティブは mb_output_handler - 関数が呼び出された場合に使う Content-Type の正規表現パターンを指定します。 - - - - - request_order ディレクティブが追加されました。 - これはどのリクエストオプションを $_REQUEST - 変数で正確に利用可能にすべきかを指定します。 - - - - - デフォルト値が変更された ini ディレクティブは以下の通りです。 - - - - - session.use_only_cookies のデフォルト値は - "1" (有効) になりました。 - - - - - oci8.default_prefetch の値は - "10" から "100" に変更されました。 - - - -
- -
- その他の変更 - - - - SplFileInfo::getpathinfo メソッドは、パス名に関する情報を返すようになりました。 - - - - - SplObjectStorage クラス は ArrayAccess - インターフェイスをサポートしました。オブジェクトに関連付けた情報を - SplObjectStorage に格納することもできるようになっています。 - - - - - GD関数では、imagefilter 関数を使ってモザイク効果を適用できるようになりました。 - - - - - var_dump 関数の出力に private なオブジェクトプロパティの値も含まれるようになりました。 - - - - - session_start 関数はセッションの開始に失敗すると &false; を返します。 - - - - - property_exists 関数は、 - プロパティのアクセス制限に関係なくプロパティの存在をチェックするようになりました - (method_exists と似た動作をします)。 - - - - - ストリームラッパー は - include_path で制御できるようになりました。 - - - - - array_reduce 関数の initial - 引数にあらゆる型の値を渡せるようになりました。 - - - - - ディレクトリ関数 opendir, - scandir, そして dir 関数は context - 引数が渡されなければ、デフォルトのコンテキストを使うようになりました。 - - - - - crypt 関数が Blowfish と 拡張 DES をサポートし、 - crypt 関数の機能は100%移植可能になりました。 - PHP は cryptcrypt_r - のサポートがないプラットフォーム場合に使う crypt の内部実装を持っています。 - - - - - getopt 関数は全てのプラットフォームで - "長いオプション(--で始まる引数)" を受け付けるようになりました。 - オプションの(必須でない)値に対応し、引数と値の区切り文字として - = が使えるようになりました。 - - - - - fopen 関数の mode 引数に - (n) が加わりました。これを渡すと、 - O_NONBLOCK が - syscall() を呼ぶときに渡されます。 - このモードは、現在 Windows ではサポートされていないことに注意しましょう。 - - - - - getimagesize 関数は、アイコンファイル (.ico) - をサポートするようになりました。 - - - - - mhash 拡張モジュールが PECL に移動しました。しかし、PHP のコンパイル時に - --with-mhash を指定すれば、 - Hash 拡張モジュールで mhash - をサポートさせることができます。Hash 拡張モジュールは、 - mhash エミュレーションを有効にするか否かにかかわらず - mhash ライブラリを必要としないことに注意しましょう。 - - - -
-
- - diff --git a/appendices/migration54.xml b/appendices/migration54.xml deleted file mode 100644 index 4c9316b8c2..0000000000 --- a/appendices/migration54.xml +++ /dev/null @@ -1,1524 +0,0 @@ - - - - - - PHP 5.3.x から PHP 5.4.x への移行 - - &manual.migration.seealso; - 5.0.x、 - 5.1.x、 - 5.2.x、 - 5.3.x、 - 5.5.x および - 5.6.x。 - - -
- PHP 5.4.x における変更点 - - PHP 5.4.x で改良された点のほどんどは、既存のコードに影響を及ぼしません。ただ、 - 互換性がない変更 や 考慮すべき - 新機能 があります。よって、 - 実運用環境の PHP をこのバージョンにあげる前に、あらゆるコードをテストすべきです。 - - - 5.3.x より古いバージョンの PHP からのアップグレードの場合は、 - 以下の関連ドキュメントも参照ください。 - - - - - PHP 5.3.x への移行 - - - - - PHP 5.2.x への移行 - - - - - PHP 5.1.x への移行 - - - - - PHP 4 から PHP 5 への移行 - - - -
- -
- 下位互換性のない変更点 - - 既存の PHP5 のコードのほとんどは変更なしで動作するはずですが、 - 以下の下位互換性のない変更点については注意しましょう。 - - - - - セーフモード - をサポートしなくなりました。セーフモードでの動作を前提とするアプリケーションは、 - セキュリティに関する調整が必要となります。 - - - - - マジッククォート が削除されました。 - この機能に依存するアプリケーションは、依存しないように修正しないとセキュリティの問題が発生します。 - - - get_magic_quotes_gpcget_magic_quotes_runtime - は常に &false; を返すようになりました。set_magic_quotes_runtime を実行すると、 - マジッククォートを有効にしようとして E_CORE_ERROR が発生します。 - - - - - ini 設定 - register_globals と - register_long_arrays - が削除されました。 - - - - - mbstring.script_encoding が削除されました。代わりに zend.script_encoding を使いましょう。 - - - - - 呼び出し時の参照渡しをサポートしなくなりました。 - - - - - break - と continue - への引数として、変数は使えなくなりました。つまり、 - break 1 + foo() * $bar; などとは書けなくなったということです。 - 静的な引数を使うのはもちろん可能で、break 2; などは使えます。 - この変更の副作用として、 - break 0;continue 0; が使えなくなりました。 - - - - - htmlspecialcharshtmlentities - および html_entity_decode - のデフォルトの文字セットが ISO-8859-1 - から UTF-8 に変わりました。出力文字セットを - default_charset - で変更しても、htmlspecialchars/htmlentities/html_entity_decode のデフォルトには影響が及ばないことに注意しましょう。 - この変更を反映させるには、 - htmlspecialchars/htmlentities - をコールするときに、エンコーディングとして "" (空文字列) を指定しなければなりません。 - ただ、一般にこの方法はおすすめできません。 - この方法を使うと、出力文字セットが実行時の設定に依存してしまうからです。 - 安全策として、htmlspecialchars、 - htmlentities および html_entity_decode をコールするときには文字セットを毎回明示するようにしましょう。 - - - - - Date 拡張モジュールにおいて、TZ 環境変数によるタイムゾーンの設定をサポートしなくなりました。 - &php.ini; 設定 date.timezone あるいは date_default_timezone_set - 関数でタイムゾーンを指定しなければなりません。 - デフォルトのタイムゾーンが設定されていない場合に推測することがなくなり、 - 未設定の場合は常に "UTC" とみなして E_WARNING を発生させるようになりました。 - - - - - $a が文字列の場合に非数値のオフセット (たとえば $a['foo']) - を指定したときの isset の返り値は false、 - そして empty の返り値は true となりました。 - そして同時に E_WARNING が発生します。オフセットに double や bool そして null - を指定した場合は E_NOTICE が発生します。数値とみなせる文字列を渡した場合 - ($a['2'] など) の挙動はこれまでと変わりません。 - '12.3''5 foobar' のようなオフセットは非数値とみなされて E_WARNING - が発生しますが、過去との互換性のためにそれぞれ 12 および 5 に変換されることに注意しましょう。 - - - 次のようなコードの返す値が変わります。 - - - $str='abc';var_dump(isset($str['x'])); // PHP 5.4 以降では false、5.3 以前のバージョンでは true - - - - - 配列を文字列に変換しようとすると E_NOTICE が発生するようになりました。 - キャストの結果は "Array" で、以前と変わりません。 - - - - - &null;、&false; あるいは空文字列にプロパティを追加してオブジェクトに変換しようとすると、 - これまでのような E_STRICT エラーではなく warning が発生するようになりました。 - - - - - スーパーグローバルをパラメータ名として使うと fatal error となります。つまり - function foo($_GET, $_POST) {} などのコードは使えなくなります。 - - - - - ハッシュアルゴリズム Salsa10 および Salsa20 が削除されました。 - - - - - Tiger ハッシュアルゴリズムは、ビッグエンディアンのバイト順を使用するようになりました。 - この例に従って、 - PHP 5.3 および 5.4 の両方と互換性のあるコードを記述してください。 - - - - - array_combine のパラメータとして空の配列を二つ指定したときの返り値が - &false; ではなく array() となりました。 - - - - - htmlentities は、アジアの文字に対して使ったときに - E_STRICT を発行するようになりました。この場合の - htmlentities の挙動が htmlspecialchars - (こちらは以前からそうなっていた) と同じになりました。 - - - - - ob_start の三番目のパラメータが - boolean erase から integer - flags に変わりました。 - 明示的に erase に &false; を設定しているコードは、PHP 5.4 では期待通りに動きません。 - この例 に従って、 - PHP 5.3 と 5.4 のどちらでも動くコードを書きましょう。 - - - - - 次に示すキーワードは予約語となり、関数名やクラス名などの識別子の名前として使えなくなりました。 - - - - - trait - - - - - callable - - - - - insteadof - - - - - 次の関数は PHP から削除されました。 - - - - - define_syslog_variables - - - - - import_request_variables - - - - - session_is_registered, session_register - および session_unregister - - - - - エイリアス - mysqli_bind_param, mysqli_bind_result, - mysqli_client_encoding, mysqli_fetch, - mysqli_param_count, mysqli_get_metadata, - mysqli_send_long_data, mysqli::client_encoding() および mysqli_stmt::stmt() - - - -
- -
- 新機能 - - PHP 5.4.0 には多くの新機能が含まれています。 - - - - - トレイトのサポートが追加されました。 - - - - - 配列の短縮構文が追加されました。$a = [1, 2, 3, 4]; や - $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4]; のように使えます。 - - - - - foo()[0] のように、関数の返り値を配列として扱えるようになりました。 - - - - - クロージャ が $this をサポートするようになりました。 - - - - - <?= が常に有効になりました。 - short_open_tag - の設定にかかわらずいつでも使えます。 - - - - - クラスのインスタンスを生成するときに、そのメンバーにアクセスできるようになりました - (例: (new Foo)->bar())。 - - - - - Class::{expr}() 構文をサポートするようになりました。 - - - - - 二進数フォーマットが追加されました。0b001001101 のように使えます。 - - - - - パースエラー時のパーサからのメッセージや関数コール時の引数が間違っている場合の警告メッセージが改善されました。 - - - - - セッションモジュールで、ファイルのアップロード状況を追跡できるようになりました。 - - - - - CLI モードで動く、開発用のウェブサーバー が組み込まれました。 - - - - - GD 拡張は、WebP イメージの読み取りと書き込みをそれぞれ imagecreatefromwebp - および imagewebp を介してサポートするようになりました。 - - - - -
- -
- SAPI モジュールに対する変更 - - - - 新しい SAPI モジュール cli-server が使えるようになりました。 - - - - - CLI オプション --rz が追加されました。指定した Zend 拡張モジュールの情報を表示します。 - - - - - 対話シェル上で実行時に &php.ini; 設定を変更するためのショートカット #inisetting=value が追加されました。 - - - - - Apache 互換の関数 apache_child_terminate、 - getallheadersapache_request_headers - および apache_response_headers が FastCGI SAPI 用に追加されました。 - - - - - PHP-FPM: 設定項目 process.max を追加し、FPM がフォークできるプロセスの数を制御できるようになりました。 - - - -
- -
- PHP 5.4.x で推奨されなくなる機能 - - 推奨されない関数 - - - - - mysql_list_dbs - - - -
- -
- 変更された関数 - - PHP 5.4 では、新しい、またはオプションのパラメータを提供する関数があります。 - - PHP コア: - - - - オプションのパラメータ limitdebug_backtrace と - debug_print_backtrace に追加され、 - 返すスタックフレームの量を制限できるようになりました。 - - - - - is_link が - Windows Vista 以降でのシンボリックリンクに対しても適切に機能するようになりました。 - それより前の Windows ではシンボリックリンクをサポートしていません。 - - - - - parse_url が、 - スキームが省略されていてコンポーネント区切り文字から始まるホスト名を認識するようになりました。 - PHP 5.4.7 以降で対応しています。 - - - - OpenSSL: - - - - no padding オプションが openssl_encrypt および openssl_decrypt - に追加されました。 - - - - Intl: - - - - idn_to_asciiidn_to_utf8 - に二つのパラメータが追加されました。ひとつは変化形 (IDNA 2003 あるいは UTS #46) - を指定するものです。もうひとつは参照渡しで、 - UTS #46 を選択した場合の操作の詳細を返します。 - - - -
- -
- 新しい関数 - - PHP 5.4 で加わった新しい関数は以下の通りです。 - - PHP コア: - - - - hex2bin - - - - - http_response_code - - - - - get_declared_traits - - - - - getimagesizefromstring - - - - - stream_set_chunk_size - - - - - socket_import_stream - - - - - trait_exists - - - - - header_register_callback - - - - SPL: - - - - class_uses - - - - Session: - - - - session_status - - - - - session_register_shutdown - - - - Mysqli: - - - - mysqli_error_list - - - - - mysqli_stmt_error_list - - - - Libxml: - - - - libxml_set_external_entity_loader - - - - LDAP: - - - - ldap_control_paged_result - - - - - ldap_control_paged_result_response - - - - Intl: - - - - transliterator_create - - - - - transliterator_create_from_rules - - - - - transliterator_create_inverse - - - - - transliterator_get_error_code - - - - - transliterator_get_error_message - - - - - transliterator_list_ids - - - - - transliterator_transliterate - - - - Zlib: - - - - zlib_decode - - - - - zlib_encode - - - -
- -
- 新しいクラス - - PHP 5.4.0 で新しく加わったクラスは以下の通りです。 - - SPL: - - - - CallbackFilterIterator - - - - - RecursiveCallbackFilterIterator - - - - Reflection: - - - - ReflectionZendExtension - - - - Json: - - - - JsonSerializable インターフェイス - - - - Session: - - - - SessionHandler クラス - - - - - SessionHandlerInterface - - - - Snmp: - - - - SNMP - - - - Intl: - - - - Transliterator - - - - - Spoofchecker - - - -
- -
- 新しいメソッド - - PHP 5.4.0 で加わった新しいメソッドは以下の通りです。 - - XSL: - - - - XsltProcessor::setSecurityPrefs - - - - - XsltProcessor::getSecurityPrefs - - - - SPL: - - - - RegexIterator::getRegex - - - - - SplObjectStorage::getHash - - - - - DirectoryIterator::getExtension - - - - - SplDoublyLinkedList::serialize - - - - - SplDoublyLinkedList::unserialize - - - - - SplFileInfo::getExtension - - - - - SplFileObject::fputcsv - - - - - SplQueue::serialize - - - - - SplQueue::unserialize - - - - - SplStack::serialize - - - - - SplStack::unserialize - - - - - SplTempFileObject::fputcsv - - - - Reflection: - - - - ReflectionExtension::isPersistent - - - - - ReflectionExtension::isTemporary - - - - - ReflectionClass::isCloneable - - - - Closure: - - - - Closure::bind - - - - - Closure::bindTo - - - - PDO_dblib: - - - - PDO::newRowset - - - - StreamWrapper: - - - - StreamWrapper::stream_metadata - - - - - StreamWrapper::stream_truncate - - - -
- -
- 削除された拡張モジュール - - 以下に示す拡張モジュールは PECL に移動し、PHP に同梱されなくなりました。 - これらの PECL パッケージ は、ユーザーの需要に応じて作られるかが決まります。 - - - - - sqlite - - ext/sqlite3 や ext/pdo_sqlite には影響しないことに注意しましょう。 - - - -
- -
- その他の拡張モジュールに対する変更 - - 拡張モジュールに対する振る舞いの変更や新機能は以下の通りです。 - - - - - mysqli - - mysqli_resultTraversable を実装するようになりました。 - - - - - - - pdo_mysql - - MySQL クライアントライブラリ 4.1 より前のバージョンとのリンクをサポートしないようになりました。 - - - - - - - MySQL 用の拡張モジュールである mysql や - mysqli そして PDO_mysql - が、デフォルトのライブラリとして mysqlnd - を使うようになりました。libmysqlclient を使うことも可能ですが、その場合は - configure のオプションで libmysqlclient のパスを指定します。 - - - - - - - mysqlnd - - 名前付きパイプをサポートするようになりました。 - - - -
- -
- 新しいグローバル定数 - - PHP コア: - - - - ENT_DISALLOWED - - - - - ENT_HTML401 - - - - - ENT_HTML5 - - - - - ENT_SUBSTITUTE - - - - - ENT_XML1 - - - - - ENT_XHTML - - - - - IPPROTO_IP - - - - - IPPROTO_IPV6 - - - - - IPV6_MULTICAST_HOPS - - - - - IPV6_MULTICAST_IF - - - - - IPV6_MULTICAST_LOOP - - - - - IP_MULTICAST_IF - - - - - IP_MULTICAST_LOOP - - - - - IP_MULTICAST_TTL - - - - - MCAST_JOIN_GROUP - - - - - MCAST_LEAVE_GROUP - - - - - MCAST_BLOCK_SOURCE - - - - - MCAST_UNBLOCK_SOURCE - - - - - MCAST_JOIN_SOURCE_GROUP - - - - - MCAST_LEAVE_SOURCE_GROUP - - - - - Curl: - - - - CURLOPT_MAX_RECV_SPEED_LARGE - - - - - CURLOPT_MAX_SEND_SPEED_LARGE - - - - - LibXML: - - - - LIBXML_HTML_NODEFDTD - - - - - LIBXML_HTML_NOIMPLIED - - - - - LIBXML_PEDANTIC - - - - - OpenSSL: - - - - OPENSSL_CIPHER_AES_128_CBC - - - - - OPENSSL_CIPHER_AES_192_CBC - - - - - OPENSSL_CIPHER_AES_256_CBC - - - - - OPENSSL_RAW_DATA - - - - - OPENSSL_ZERO_PADDING - - - - - 出力バッファリング: - - - - PHP_OUTPUT_HANDLER_CLEAN - - - - - PHP_OUTPUT_HANDLER_CLEANABLE - - - - - PHP_OUTPUT_HANDLER_DISABLED - - - - - PHP_OUTPUT_HANDLER_FINAL - - - - - PHP_OUTPUT_HANDLER_FLUSH - - - - - PHP_OUTPUT_HANDLER_FLUSHABLE - - - - - PHP_OUTPUT_HANDLER_REMOVABLE - - - - - PHP_OUTPUT_HANDLER_STARTED - - - - - PHP_OUTPUT_HANDLER_STDFLAGS - - - - - PHP_OUTPUT_HANDLER_WRITE - - - - - セッション: - - - - PHP_SESSION_ACTIVE - - - - - PHP_SESSION_DISABLED - - - - - PHP_SESSION_NONE - - - - - ストリーム: - - - - STREAM_META_ACCESS - - - - - STREAM_META_GROUP - - - - - STREAM_META_GROUP_NAME - - - - - STREAM_META_OWNER - - - - - STREAM_META_OWNER_NAME - - - - - STREAM_META_TOUCH - - - - - Zlib: - - - - ZLIB_ENCODING_DEFLATE - - - - - ZLIB_ENCODING_GZIP - - - - - ZLIB_ENCODING_RAW - - - - - Intl: - - - - U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR - - - - - IDNA_CHECK_BIDI - - - - - IDNA_CHECK_CONTEXTJ - - - - - IDNA_NONTRANSITIONAL_TO_ASCII - - - - - IDNA_NONTRANSITIONAL_TO_UNICODE - - - - - INTL_IDNA_VARIANT_2003 - - - - - INTL_IDNA_VARIANT_UTS46 - - - - - IDNA_ERROR_EMPTY_LABEL - - - - - IDNA_ERROR_LABEL_TOO_LONG - - - - - IDNA_ERROR_DOMAIN_NAME_TOO_LONG - - - - - IDNA_ERROR_LEADING_HYPHEN - - - - - IDNA_ERROR_TRAILING_HYPHEN - - - - - IDNA_ERROR_HYPHEN_3_4 - - - - - IDNA_ERROR_LEADING_COMBINING_MARK - - - - - IDNA_ERROR_DISALLOWED - - - - - IDNA_ERROR_PUNYCODE - - - - - IDNA_ERROR_LABEL_HAS_DOT - - - - - IDNA_ERROR_INVALID_ACE_LABEL - - - - - IDNA_ERROR_BIDI - - - - - IDNA_ERROR_CONTEXTJ - - - - - Json: - - - - JSON_PRETTY_PRINT - - - - - JSON_UNESCAPED_SLASHES - - - - - JSON_NUMERIC_CHECK - - - - - JSON_UNESCAPED_UNICODE - - - - - JSON_BIGINT_AS_STRING - - - -
- -
- INI ファイルの扱いに関する変更 - - デフォルト値が変更された &php.ini; ディレクティブは以下の通りです。 - - - - - register_globals および - register_long_arrays - - - - - magic_quotes_gpc、 - magic_quotes_runtime - および magic_quotes_sybase - - - - - allow_call_time_pass_reference - - - - - define_syslog_variables - - - - - highlight.bg - - - - - session.bug_compat_42 および - session.bug_compat_warn - - - - - mbstring.script_encoding - - - - - y2k_compliance - - - - - safe_mode、 - safe_mode_gid、 - safe_mode_include_dir、 - safe_mode_exec_dir、 - safe_mode_allowed_env_vars および - safe_mode_protected_env_vars - - - - - 次の &php.ini; ディレクティブが追加されました。 - - - - - cli.pager および - cli.prompt。 - これは、readline を使った対話シェルモードで利用するものです。 - - - - - cli_server.color。これは、 - 開発用の組み込みウェブサーバーで ANSI カラーコードを使った端末への出力を有効にします。 - - - - - max_input_vars - - 最大で何個までの GET/POST/COOKIE 入力変数を受け付けるか。 - - - - - zend.multibyte - - 新たなマルチバイトサポートの制御。 - - - - - zend.script_encoding - - この値は、スクリプトの先頭に - "declare(encoding=...)" が書かれていないときに使うものです。 - - - - - zend.signal_check - - シャットダウン時に、シグナルハンドラが置き換えられているかどうかをチェックします。 - - - - - session.upload_progress.enabled、 - session.upload_progress.cleanup、 - session.upload_progress.prefix、 - session.upload_progress.name、 - session.upload_progress.freq および - session.upload_progress.min_freq - - - - - enable_post_data_reading - - 無効にすると、POST データの読み込みやその後の処理を行いません。 - - - - - windows_show_crt_warning - - このディレクティブを有効にすると Windows CRT の警告を表示します。 - これまでのバージョンでは、デフォルトで常に表示されていました。 - - - - - 次の &php.ini; ディレクティブには変更がありました。 - - - - - session.entropy_file - のデフォルトが /dev/random あるいは /dev/urandom - となりました。これはコンパイル時に推測した結果で決まります。 - - - - - session.entropy_length - のデフォルトが 32 に変わりました。 - - - -
- -
- その他の変更 - - - - error_reporting において、 - E_ALLE_STRICT を含むようになりました。 - - - - - SNMP が OOP API に対応しました。 - - - 関数は、SNMP 関連のもの - (インスタンスが存在しない、MIB の終端に到達したなど) も含めてすべてのエラーで FALSE を返すようになりました。 - 特に get/walk 関数で、以前の挙動とは変わります。 - 以前は SNMP 関連のエラーでは空文字列を返していました。 - - - 複数 OID の get/getnext/set クエリをサポートするようになりました。 - - - UCD-SNMP 互換のコードを削除しました。net-snmp v5.3 以降へのアップグレードを検討しましょう。 - Windows 版では Net-SNMP v5.4 以降が必要です。 - - - IPv6 のサポートのため、リモート SNMP エージェント (ピア) - の DNS 名前解決は拡張モジュール自身が行うようになりました。 - Net-SNMP ライブラリには頼りません。 - - - - - OpenSSL が AES に対応しました。 - - - - - CLI SAPI - を readline サポートつきで対話的に使っているときに、 - fatal エラーが発生しても強制終了されなくなりました。 - - - - - $_SERVER['REQUEST_TIME_FLOAT'] - が追加され、マイクロ秒単位の精度も取得できるようになりました。 - - - - - 新しいハッシュアルゴリズム fnv132, fnv164, joaat が追加されました。 - - - - - 文字列のオフセットの連鎖 (たとえば $a が文字列の場合の $a[0][0]) が動作するようになりました。 - - - - - SimpleXMLElement を配列にキャストすると、 - 最初にマッチしたノードだけでなく常にすべてのノードが含まれるようになりました。 - var_dumpvar_export そして - print_r を使った場合に、 - SimpleXMLElement のすべての子が常に表示されるようになります。 - - - - - クラスのコンストラクタ __construct の引数を、 - 基底クラスの abstract コンストラクタで強制できるようになりました。 - - - -
-
- - diff --git a/appendices/migration55.xml b/appendices/migration55.xml deleted file mode 100644 index b7ca208036..0000000000 --- a/appendices/migration55.xml +++ /dev/null @@ -1,1828 +0,0 @@ - - - - - - - PHP 5.4.x から PHP 5.5.x への移行 - - &manual.migration.seealso; - 5.0.x、 - 5.1.x、 - 5.2.x、 - 5.3.x、 - 5.4.x、 - 5.6.x および - 7.0.x。 - - - - PHP 5.5.x における変更点 - - PHP 5.5.x で改良された点のほどんどは、既存のコードに影響を及ぼしません。ただ、 - 互換性がない変更 や 考慮すべき - 新機能 があります。よって、 - 実運用環境の PHP をこのバージョンにあげる前に、あらゆるコードをテストすべきです。 - - - 5.4.x より古いバージョンの PHP からのアップグレードの場合は、 - 以下の関連ドキュメントも参照ください。 - - - - - PHP 5.4.x への移行 - - - - - PHP 5.3.x への移行 - - - - - PHP 5.2.x への移行 - - - - - PHP 5.1.x への移行 - - - - - PHP 4 から PHP 5 への移行 - - - - - - - 下位互換性のない変更点 - - 既存の PHP5 のコードのほとんどは変更なしで動作するはずですが、 - 以下の下位互換性のない変更点については注意しましょう。 - - - - Windows XP および 2003 のサポートの終了 - - - Windows XP および 2003 はサポートされなくなります。 - Windows 版の PHP は、Windows Vista 以降でしか動かなくなります。 - - - - - 大文字小文字を区別しない比較がロケールに依存しなくなる - - - 関数名やクラス名そして定数名は大文字小文字を区別しませんが、 - このマッチ方法が ASCII のルールに基づいたロケールに依存しない動きに変わります。 - ラテンアルファベットを通常とは異なる照合規則で使っている言語 - (トルコ語やアゼルバイジャン語など) にきちんと対応するようになりました。 - - - これは、マルチバイト文字セット (UTF-8 も含む) で非 ASCII - 文字に対して大文字小文字を区別しないマッチングをしているコードで問題になるかもしれません。 - ヨーロッパ諸国語のアクセント記号などがこれにあてはまります。 - 英語以外の非 ASCII コードベースを使っている場合は、 - 無意識のうちにこの振る舞いに依存してしまっていないかどうかを確かめてから - PHP 5.5 を実運用環境に投入するようにしましょう。 - - - - - <function>pack</function> と <function>unpack</function> の変更 - - - pack と - unpack が、より Perl との互換性を高めるように変更されました。 - - - - - - pack が書式文字 "Z" に対応しました。この文字の挙動は - "a" とまったく同じです。 - - - - - unpack も書式文字 "Z" に対応しました。これは - NULL 埋めの文字列に使うもので、以前のバージョンの "a" と同じ挙動です。 - 最後の NULL バイトは切り捨てます。 - - - - - unpack で書式文字 "a" を使ったときに、 - 最後の NULL バイトを維持するようになりました。 - - - - - unpack で書式文字 "A" を使ったときに、 - 最後の ASCII 空白文字をすべて切り捨てるようになりました。 - - - - - - unpack で "a" を使っているコードで過去のバージョンとの互換性を保つには、 - version_compare を使う必要があります。 - 過去との互換性が崩れてしまったからです。 - - - たとえば、このようにします。 - - - -=')) { - $data = unpack('Z5', $packed); -} else { - $data = unpack('a5', $packed); -} -?> -]]> - - - - - <function>json_encode</function> 関数に対する変更 - - json_encode に渡した value 引数が JSON - エンコーディングとしてエラーだった場合、 一部を出力する代わりに &false; を返すようになりました。 - optionsJSON_PARTIAL_OUTPUT_ON_ERROR - が含まれていた場合は、これまで通り一部を出力します。 - JSON エンコーディングが失敗した理由の一覧をすべて見るには、 - json_last_error を参照してください。 - 可能性がある理由の一つは、value に不正や UTF-8 文字列が含まれていることです。 - - - - - <literal>self</literal> や <literal>parent</literal> そして <literal>static</literal> - が、どんな場合であっても大文字小文字を区別しないようになる - - - PHP 5.5 より前のバージョンでは、キーワード - self、 - parent そして - static - について大文字小文字を区別した扱いになる場合がありました。 - この問題は解決し、PHP 5.5 からはどんな場合であっても大文字小文字を区別しないようになります。 - つまり、SELF::CONSTANT と - self::CONSTANT はまったく同じ扱いになるということです。 - - - - - PHP ロゴの GUID の削除 - - - PHP でいろいろなロゴを出すために使われていた GUID が削除されました。 - それに伴って、GUID を返す関数も削除されました。削除された関数は次のとおりです。 - - - - - - php_logo_guid - - - - - php_egg_logo_guid - - - - - php_real_logo_guid - - - - - zend_logo_guid - - - - - - - 内部的な実行方法の変更 - - - 拡張モジュールの作者が注意すべきなのは、zend_execute() - 関数がオーバーライドできなくなったということです。さらに、 - execute_data 構造体やそれに関連する関数、 - そしてオペコードを扱うメソッドにもさまざまな変更がありました。 - - - - この変更の影響を受ける拡張モジュールはほとんどないでしょう。 - しかし、Zend Engine の内部に深く食い込んだ拡張モジュールを書いている人は、 - 変更点に関するメモ - をしっかり読んでおきましょう。 - - - - - - 新機能 - - - <link linkend="language.generators">ジェネレータ</link>の追加 - - - ジェネレータが追加されました。 - yield キーワードで利用します。 - ジェネレータを使えば、シンプルなイテレータを簡単に実装できます。 - Iterator インターフェイスを実装したクラスを用意する - オーバーヘッドや複雑さを心配する必要はありません。 - - - - range 関数をジェネレータで実装しなおす例を示します - (step には正の値しか使えません)。 - - - - - -]]> - - &example.outputs; - - - - - - - - &finally; キーワードの追加 - - - &try;-&catch; ブロックで &finally; が使えるようになりました。 - 例外が発生したかどうかに関わらず - 必ず実行しないといけないコードをここに書きます。 - - - - - 新しいパスワードハッシュ API - - - 新しいパスワードハッシュ API - が用意され、より簡単にパスワードをハッシュしたり管理したりできるようになりました。 - PHP の crypt が使っているのと同じライブラリを利用します。 - 詳細は password_hash のドキュメントを参照ください。 - - - - - <link linkend="control-structures.foreach"><literal>foreach</literal></link> が <function>list</function> に対応 - - - foreach - で list を使って、 - ネストした配列を個別の変数に展開できるようになりました。たとえば次のようになります。 - - - - - -]]> - - &example.outputs; - - - - - - - 詳細な情報は - foreach - のマニュアルを参照ください。 - - - - - <function>empty</function> が任意の式に対応 - - - 変数だけでなく、任意の式を - empty に渡せるようになりました。たとえば次のようになります。 - - - - - -]]> - - &example.outputs; - - - - - - - - <type>array</type> リテラルと <type>string</type> リテラルのデリファレンス - - - Arraystring をデリファレンスして、 - 個々の要素や文字に直接アクセスできるようになりました。 - - - - -]]> - - &example.outputs; - - - - - - - - - <link linkend="language.oop5.basic.class.class">::class</link> によるクラス名の解決 - - - ClassName::class で、 - ClassName クラスの完全修飾名を取得できるようになりました。 - 次の例を参照ください。 - - - - -]]> - - &example.outputs; - - - - - - - - - <link linkend="book.opcache">OPcache</link> 拡張モジュールの追加 - - - Zend Optimiser+ のオペコードキャッシュ機能が、 - OPcache 拡張モジュール - としてPHP に追加されました。 - OPcache は、PHP のパフォーマンスを向上させるために、 - 事前にコンパイル済みのスクリプトのバイトコードを共有メモリに格納します。 - その結果、PHP がリクエストのたびにスクリプトの読み込みやパースをする必要がなくなります。 - OPcache を有効にする方法や使いかたについては - インストール - のページを参照ください。 - - - - - <link linkend="control-structures.foreach"><literal>foreach</literal></link> - が非スカラーのキーに対応 - - - foreach - が、キーに任意の型を使えるようになりました。 - 非スカラーのキーは PHP ネイティブの配列では使えませんが、 - Iterator::key は任意の型の値を返せ、 - これを適切に処理できるようになりました。 - - - - - Apache 2.4 ハンドラが Windows に対応 - - - Apache 2.4 ハンドラ SAPI が Windows に対応するようになりました。 - - - - - GD の改良 - - - GD 拡張モジュールに、さまざまな改良が加えられました。 - - - - - - 新しい imageflip 関数で、画像の反転に対応しました。 - - - - - imagecrop 関数と - imagecropauto 関数で、高度なクロップ処理に対応しました。 - - - - - - - - PHP 5.5.x で推奨されなくなる機能 - - - <link linkend="book.mysql">ext/mysql</link> 拡張モジュール - - - MySQL 拡張モジュール - が非推奨になりました。これを使ってデータベースに接続すると、 - E_DEPRECATED エラーが発生します。 - かわりに - MySQLi あるいは - PDO_MySQL を使いましょう。 - - - - - <function>preg_replace</function> の <literal>/e</literal> 修飾子 - - - preg_replace/e - 修飾子が非推奨になりました。かわりに - preg_replace_callback 関数を使いましょう。 - - - - - <link linkend="book.intl">intl</link> での非推奨 - - - IntlDateFormatter::setTimeZoneID と - datefmt_set_timezone_id が非推奨になりました。かわりに、 - IntlDateFormatter::setTimeZone メソッドと - datefmt_set_timezone 関数を使いましょう。 - - - - - <link linkend="book.mcrypt">mcrypt</link> での非推奨 - - - 次の関数が非推奨になりました。 - - - - - - mcrypt_cbc - - - - - mcrypt_cfb - - - - - mcrypt_ecb - - - - - mcrypt_ofb - - - - - - - - 変更された関数 - - - PHP コア - - - - - set_error_handler の引数に &null; を渡して呼ぶと、 - エラーハンドラをリセットできるようになりました。 - - - - - &null; を渡して呼んだ場合の set_error_handler と - set_exception_handler の返り値は、 - それぞれ以前のエラーハンドラと例外ハンドラになります。 - - - - - json_encodedepth - パラメータを渡せるようになりました。 - - - - - pack と - unpack で "a" や "A" を使ったときの挙動が変わりました。 - 詳細はこちらを参照ください。 - - - - - - - <link linkend="book.intl">intl</link> - - - - - MessageFormatter::format とその関連関数で、 - 名前付き引数に対応しました。数値引数との混在も可能です。 - これは、PHP を ICU 4.8 以降とリンクした場合に有効になります。 - - - - - MessageFormatter::format とその関連関数で、 - 引数の数を間違えた場合にエラーが発生しなくなりました。 - ただし、プレースホルダの置換は行われません。 - - - - - MessageFormatter::format と - MessageFormatter::parse で時刻を扱うときに、 - 秒単位の精度に縛られなくなりました。 - - - - - IntlDateFormatter::__construct と - datefmt_create の - timezone 引数で - IntlTimeZone や - DateTimeZone のオブジェクトが使えるようになり、同じく - calendar 引数で - IntlCalendar オブジェクトが使えるようになりました。 - さらに、タイムゾーンが省略されていて calendar - でタイムゾーンが指定されていない場合は、ICU のデフォルトタイムゾーンではなく - PHP のデフォルトタイムゾーン - (date_default_timezone_get の返す値) - を使うようになりました。 - - - - - IntlDateFormatter オブジェクトを作るときに - IntlDateFormatter の定数ではなく - IntlCalendar のインスタンスを使った場合に、 - IntlDateFormatter::getCalendar と - datefmt_get_calendar が false を返すようになりました。 - - - - - IntlDateFormatter::setCalendar と - datefmt_set_calendar で、 - IntlDateFormatter の定数以外に - IntlCalendar オブジェクトも受け付けるようになりました。 - - - - - IntlDateFormatter::format と - datefmt_format で - IntlCalendar オブジェクトが使えるようになりました。 - - - - - - - - 新しい関数 - - - PHP コア - - - - - array_column - - - - - boolval - - - - - json_last_error_msg - - - - - password_get_info - - - - - password_hash - - - - - password_needs_rehash - - - - - password_verify - - - - - - - <link linkend="book.hash">Hash</link> - - - - - hash_pbkdf2 - - - - - - - <link linkend="book.openssl">OpenSSL</link> - - - - - openssl_pbkdf2 - - - - - - - <link linkend="book.curl">cURL</link> - - - - - curl_escape - - - - - curl_file_create - - - - - curl_multi_setopt - - - - - curl_multi_strerror - - - - - curl_pause - - - - - curl_reset - - - - - curl_share_close - - - - - curl_share_init - - - - - curl_share_setopt - - - - - curl_strerror - - - - - curl_unescape - - - - - - - <link linkend="book.image">GD</link> - - - - - imageaffinematrixconcat - - - - - imageaffinematrixget - - - - - imagecrop - - - - - imagecropauto - - - - - imageflip - - - - - imagepalettetotruecolor - - - - - imagescale - - - - - - - <link linkend="book.mysqli">MySQLi</link> - - - - - mysqli_begin_transaction - - - - - mysqli_release_savepoint - - - - - mysqli_savepoint - - - - - - - <link linkend="book.pgsql">PostgreSQL</link> - - - - - pg_escape_literal - - - - - pg_escape_identifier - - - - - - - <link linkend="book.sockets">Sockets</link> - - - - - socket_sendmsg - - - - - socket_recvmsg - - - - - socket_cmsg_space - - - - - - - <link linkend="features.commandline">CLI</link> - - - - - cli_get_process_title - - - - - cli_set_process_title - - - - - - - <link linkend="book.intl">Intl</link> - - - - - datefmt_format_object - - - - - datefmt_get_calendar_object - - - - - datefmt_get_timezone - - - - - datefmt_set_timezone - - - - - datefmt_get_calendar_object - - - - - intlcal_create_instance - - - - - intlcal_get_keyword_values_for_locale - - - - - intlcal_get_now - - - - - intlcal_get_available_locales - - - - - intlcal_get - - - - - intlcal_get_time - - - - - intlcal_set_time - - - - - intlcal_add - - - - - intlcal_set_time_zone - - - - - intlcal_after - - - - - intlcal_before - - - - - intlcal_set - - - - - intlcal_roll - - - - - intlcal_clear - - - - - intlcal_field_difference - - - - - intlcal_get_actual_maximum - - - - - intlcal_get_actual_minimum - - - - - intlcal_get_day_of_week_type - - - - - intlcal_get_first_day_of_week - - - - - intlcal_get_greatest_minimum - - - - - intlcal_get_least_maximum - - - - - intlcal_get_locale - - - - - intlcal_get_maximum - - - - - intlcal_get_minimal_days_in_first_week - - - - - intlcal_get_minimum - - - - - intlcal_get_time_zone - - - - - intlcal_get_type - - - - - intlcal_get_weekend_transition - - - - - intlcal_in_daylight_time - - - - - intlcal_is_equivalent_to - - - - - intlcal_is_lenient - - - - - intlcal_is_set - - - - - intlcal_is_weekend - - - - - intlcal_set_first_day_of_week - - - - - intlcal_set_lenient - - - - - intlcal_equals - - - - - intlcal_get_repeated_wall_time_option - - - - - intlcal_get_skipped_wall_time_option - - - - - intlcal_set_repeated_wall_time_option - - - - - intlcal_set_skipped_wall_time_option - - - - - intlcal_from_date_time - - - - - intlcal_to_date_time - - - - - intlcal_get_error_code - - - - - intlcal_get_error_message - - - - - intlgregcal_create_instance - - - - - intlgregcal_set_gregorian_change - - - - - intlgregcal_get_gregorian_change - - - - - intlgregcal_is_leap_year - - - - - intltz_create_time_zone - - - - - intltz_create_default - - - - - intltz_get_id - - - - - intltz_get_gmt - - - - - intltz_get_unknown - - - - - intltz_create_enumeration - - - - - intltz_count_equivalent_ids - - - - - intltz_create_time_zone_id_enumeration - - - - - intltz_get_canonical_id - - - - - intltz_get_region - - - - - intltz_get_tz_data_version - - - - - intltz_get_equivalent_id - - - - - intltz_use_daylight_time - - - - - intltz_get_offset - - - - - intltz_get_raw_offset - - - - - intltz_has_same_rules - - - - - intltz_get_display_name - - - - - intltz_get_dst_savings - - - - - intltz_from_date_time_zone - - - - - intltz_to_date_time_zone - - - - - intltz_get_error_code - - - - - intltz_get_error_message - - - - - - - <link linkend="book.spl">SPL</link> - - - - - SplFixedArray::__wakeup - - - - - - - - 新しいクラスやインターフェイス - - - <link linkend="book.curl">cURL</link> - - - - CURLFile - - - - - - - <link linkend="book.datetime">日付と時刻</link> - - - - DateTimeImmutable - - - - - DateTimeInterface - - - - - - - <link linkend="book.intl">Intl</link> - - - - - IntlCalendar - - - - - IntlGregorianCalendar - - - - - IntlTimeZone - - - - - IntlBreakIterator - - - - - IntlRuleBasedBreakIterator - - - - - IntlCodePointBreakIterator - - - - - - - - 新しいメソッド - - - <link linkend="book.mysqli">MySQLi</link> - - - - - mysqli::begin_transaction - - - - - mysqli::release_savepoint - - - - - mysqli::savepoint - - - - - - - <link linkend="book.intl">Intl</link> - - - - - IntlDateFormatter::formatObject - - - - - IntlDateFormatter::getCalendarObject - - - - - IntlDateFormatter::getTimeZone - - - - - IntlDateFormatter::setTimeZone - - - - - - - - その他の拡張モジュールに対する変更 - - - <link linkend="book.intl">Intl</link> - - - intl 拡張モジュールで ICU 4.0 以降が必要になりました。 - - - - - - 新しいグローバル定数 - - - <link linkend="book.image">GD</link> - - - - - IMG_AFFINE_TRANSLATE - - - - - IMG_AFFINE_SCALE - - - - - IMG_AFFINE_ROTATE - - - - - IMG_AFFINE_SHEAR_HORIZONTAL - - - - - IMG_AFFINE_SHEAR_VERTICAL - - - - - IMG_CROP_DEFAULT - - - - - IMG_CROP_TRANSPARENT - - - - - IMG_CROP_BLACK - - - - - IMG_CROP_WHITE - - - - - IMG_CROP_SIDES - - - - - IMG_FLIP_BOTH - - - - - IMG_FLIP_HORIZONTAL - - - - - IMG_FLIP_VERTICAL - - - - - IMG_BELL - - - - - IMG_BESSEL - - - - - IMG_BICUBIC - - - - - IMG_BICUBIC_FIXED - - - - - IMG_BLACKMAN - - - - - IMG_BOX - - - - - IMG_BSPLINE - - - - - IMG_CATMULLROM - - - - - IMG_GAUSSIAN - - - - - IMG_GENERALIZED_CUBIC - - - - - IMG_HERMITE - - - - - IMG_HAMMING - - - - - IMG_HANNING - - - - - IMG_MITCHELL - - - - - IMG_POWER - - - - - IMG_QUADRATIC - - - - - IMG_SINC - - - - - IMG_NEAREST_NEIGHBOUR - - - - - IMG_WEIGHTED4 - - - - - IMG_TRIANGLE - - - - - - - <link linkend="book.json">JSON</link> - - - - - JSON_ERROR_RECURSION - - - - - JSON_ERROR_INF_OR_NAN - - - - - JSON_ERROR_UNSUPPORTED_TYPE - - - - - JSON_PARTIAL_OUTPUT_ON_ERROR - - - - - - - <link linkend="book.mysqli">MySQLi</link> - - - MYSQLI_SERVER_PUBLIC_KEY オプションが追加されました。 - mysqli_options で使えます。 - - - - - - INI ファイルの扱いに関する変更 - - - <link linkend="book.intl">Intl</link> - - - intl.use_exceptions が追加されました。 - これは、グローバルエラーが発生した場合の intl の挙動を制御するもので、 - 既に存在する intl.error_level - と組み合わせて使います。 - - - - - <link linkend="book.mysqlnd">MySQLnd</link> - - - mysqlnd.sha256_server_public_key が追加されました。 - mysqli で、新たな MySQL - 認証プロトコルが使えるようになります。 - - - - - - PHP の内部的な変更 - - - - - 拡張モジュールで zend_execute() をオーバーライドできなくなりました。 - かわりに zend_execute_ex() をオーバーライドしないといけません。 - EG(current_execute_data) は既に - zend_execute_ex() で初期化されるようになっているので、 - 互換性を保つために拡張モジュール側で - EG(current_execute_data)->prev_execute_data を使わないといけないかもしれません。 - - - - - EG(arg_types_stack) や - EX(fbc)EX(called_scope)、そして - EX(current_object) が削除されました。 - - - - - op_array->nested_calls が追加されました。 - これはコンパイル時に計算されます。 - - - - - EX(call_slots) が追加されました。これは、構文的にネストした呼び出し - (foo(bar()) など) に関する情報を格納する配列で、 - execute_data とともに事前に割り当てられます。 - - - - - EX(call) が追加されました。これは現在呼び出し中の関数へのポインタで、 - EX(call_slots) の要素になります。 - - - - - オペコード - INIT_METHOD_CALL、 - ZEND_INIT_STATIC_METHOD_CALL、 - ZEND_INIT_FCALL_BY_NAME - そして - ZEND_INIT_NS_FCALL_BY_NAME - が、 - EX(call_slots) でのインデックスとして - result.num を使うようになりました。 - - - - - オペコード ZEND_NEW - が、 - EX(call_slots) でのインデックスとして - extended_value を使うようになりました。 - - - - - オペコード ZEND_DO_FCALL - および - ZEND_DO_FCALL_BY_NAME - が、 - EX(call_slots) でのインデックスとして - op2.num を使うようになりました。 - - - - - op_array->used_stack が追加されました。 - これはコンパイル時に計算されます。対応するスタック領域は - execute_data とともに事前に割り当てられます。 - その結果、オペコード ZEND_SEND* および ZEND_DO_FCALL* - でスタックオーバーフローのチェックが不要になりました。 - - - - - execute_data->Ts フィールドが削除されました。 - VM のテンポラリ変数は常に - execute_data 構造体の直前に配置され、 - execute_data->Ts を使わなくても - 基底ポインタ execute_data からのオフセットでアクセスできるようになりました。 - コンパイラは、この新たなオフセットを op_array->opcodes[*].op?.num - に格納します。マクロ - EX_TMP_VAR() および EX_TMP_VAR_NUM() - を使うと、テンポラリ変数に対してオフセットや数値を使ってアクセスできます。 - 数字をオフセットに変換するには EX_TMP_VAR_NUM(0, - num) を、そしてオフセットを数字に変換するには - (EX_TMP_VAR_NUM(0,0)-EX_TMP_VAR(0,offset)) - が使えます。 - - - - - execute_data->CVs フィールドが削除されました。 - VM がコンパイルした変数は常に - execute_data 構造体の直後に配置され、 - execute_data->CVs を使わなくても - 基底ポインタ execute_data からのオフセットでアクセスできるようになりました。 - マクロ EX_CV_NUM() を使えば、コンパイルされた変数に対して数字を使ってアクセスできます。 - - - - - - - diff --git a/appendices/migration56.xml b/appendices/migration56.xml index 1aa634026f..7d93ec4d7c 100644 --- a/appendices/migration56.xml +++ b/appendices/migration56.xml @@ -1,6 +1,6 @@ - + - + PHP 5.5.x から PHP 5.6.x への移行 + + PHP 5.5.x で改良された点のほどんどは、既存のコードに影響を及ぼしません。ただ、 + 互換性がない変更 や 考慮すべき + 新機能 があります。よって、 + 実運用環境の PHP をこのバージョンにあげる前に、あらゆるコードをテストすべきです。 + + &appendices.migration56.incompatible; &appendices.migration56.new-features; &appendices.migration56.deprecated; @@ -22,25 +29,6 @@ &appendices.migration56.openssl; &appendices.migration56.extensions; &appendices.migration56.constants; - - - - PHP 5.5.x で改良された点のほどんどは、既存のコードに影響を及ぼしません。ただ、 - 互換性がない変更 や 考慮すべき - 新機能 があります。よって、 - 実運用環境の PHP をこのバージョンにあげる前に、あらゆるコードをテストすべきです。 - - - - &manual.migration.seealso; - 5.0.x、 - 5.1.x、 - 5.2.x、 - 5.3.x、 - 5.4.x および - 5.5.x。 - - - + + PHP 5.6.x で推奨されなくなる機能 @@ -46,10 +47,10 @@ B - <varname>$HTTP_RAW_POST_DATA</varname> および <link linkend="ini.always-populate-raw-post-data">always_populate_raw_post_data</link> + <varname>$HTTP_RAW_POST_DATA</varname> および <literal>always_populate_raw_post_data</literal> - always_populate_raw_post_data + always_populate_raw_post_data を使うと、$HTTP_RAW_POST_DATA に値が入っている場合に E_DEPRECATED が発生するようになりました。 新しいコードでは、$HTTP_RAW_POST_DATA ではなく @@ -58,7 +59,7 @@ B は、将来のバージョンで削除される予定です。 この新しい振る舞い ($HTTP_RAW_POST_DATA が定義されておらず、E_DEPRECATED が発生しない状態) を試すには、 - always_populate_raw_post_data + always_populate_raw_post_data-1 を設定します。 diff --git a/appendices/migration56/openssl.xml b/appendices/migration56/openssl.xml index 9a8bfe65df..2dcb0e0154 100644 --- a/appendices/migration56/openssl.xml +++ b/appendices/migration56/openssl.xml @@ -1,6 +1,6 @@ - + PHP 5.6.x における OpenSSL 関連の変更 @@ -316,7 +316,7 @@ array(8) { openssl_spki_export_challenge そして openssl_spki_export で、 SPKAC が HTML5 の KeyGen 要素から生成した - PEM 公開鍵とチャレンジの作成、検証、エクスポートを行います。 + PEM 公開鍵とチャレンジの作成、検証、エクスポートを行います。 @@ -387,7 +387,7 @@ $pkey = openssl_pkey_new(); openssl_pkey_export($pkey, 'secret passphrase'); $spkac = openssl_spki_new($pkey, 'challenge string'); -$challenge = openssl_spki_export_challenge($spkac): +$challenge = openssl_spki_export_challenge($spkac); echo $challenge; ?> ]]> @@ -406,7 +406,7 @@ challenge string openssl_spki_export - PEM フォーマットされた RSA 公開鍵を、SPKAC からエクスポートします。 + PEM フォーマットされた RSA 公開鍵を、SPKAC からエクスポートします。 diff --git a/appendices/migration70.xml b/appendices/migration70.xml index 1a88efdd50..a0083a11f2 100644 --- a/appendices/migration70.xml +++ b/appendices/migration70.xml @@ -1,13 +1,26 @@ - + - + PHP 5.6.x から PHP 7.0.x への移行 + + PHP 7.0 は新しいメジャーバージョンではありますが、 + 過去のバージョンからの移行をできるだけスムーズに行えるよう心がけています。 + このリリースで主に注力したのは、これまでのバージョンで廃止予定とされていた機能の削除や、 + 言語としての一貫性の向上です。 + + + 互換性がない変更 + が多少あり、また、考慮すべき + 新機能 があります。よって、 + 実運用環境の PHP をこのバージョンにあげる前に、あらゆるコードをテストすべきです。 + + &appendices.migration70.incompatible; &appendices.migration70.new-features; &appendices.migration70.deprecated; @@ -19,31 +32,6 @@ &appendices.migration70.removed-exts-sapis; &appendices.migration70.other-changes; - - - PHP 7.0 は新しいメジャーバージョンではありますが、 - 過去のバージョンからの移行をできるだけスムーズに行えるよう心がけています。 - このリリースで主に注力したのは、これまでのバージョンで廃止予定とされていた機能の削除や、 - 言語としての一貫性の向上です。 - - - 互換性がない変更 - が多少あり、また、考慮すべき - 新機能 があります。よって、 - 実運用環境の PHP をこのバージョンにあげる前に、あらゆるコードをテストすべきです。 - - - - &manual.migration.seealso; - 5.0.x、 - 5.1.x、 - 5.2.x、 - 5.3.x、 - 5.4.x、 - 5.5.x および - 5.6.x。 - - - + 変更された関数 @@ -48,7 +48,7 @@ setlocale 関数で、category を文字列で渡すことができなくなりました。定数 - LC_* を指定する必要があります。 + LC_* を指定する必要があります。 diff --git a/appendices/migration70/deprecated.xml b/appendices/migration70/deprecated.xml index 525de29669..0945fe9df8 100644 --- a/appendices/migration70/deprecated.xml +++ b/appendices/migration70/deprecated.xml @@ -84,8 +84,8 @@ I am not static! password_hash 関数の salt オプションが非推奨となりました。 - これは、開発者が自前で (たいていはセキュアでない) salt を作ってしまうことを避けるためです。 - 開発者が salt を指定しない場合は、この関数自身が暗号論的にセキュアな salt を生成します。 + これは、開発者が自前で (たいていは安全でない) salt を作ってしまうことを避けるためです。 + 開発者が salt を指定しない場合は、この関数自身が暗号学的にセキュアな salt を生成します。 したがって、もはや自前で salt を作る必要はありません。 diff --git a/appendices/migration70/incompatible/error-handling.xml b/appendices/migration70/incompatible/error-handling.xml index 63b86f116e..fbe3679011 100644 --- a/appendices/migration70/incompatible/error-handling.xml +++ b/appendices/migration70/incompatible/error-handling.xml @@ -1,6 +1,6 @@ - + エラーや例外の取り扱いの変更 @@ -48,14 +48,14 @@ ]]> diff --git a/appendices/migration70/incompatible/foreach.xml b/appendices/migration70/incompatible/foreach.xml index 1f0193402c..71e2bb1c79 100644 --- a/appendices/migration70/incompatible/foreach.xml +++ b/appendices/migration70/incompatible/foreach.xml @@ -1,6 +1,6 @@ - + &foreach; の変更 diff --git a/appendices/migration70/incompatible/integers.xml b/appendices/migration70/incompatible/integers.xml index 05b6b3701a..7924ad2b86 100644 --- a/appendices/migration70/incompatible/integers.xml +++ b/appendices/migration70/incompatible/integers.xml @@ -1,9 +1,9 @@ - + - <type>integer</type> の取り扱いの変更 + <type>int</type> の取り扱いの変更 無効な形式の八進リテラル @@ -53,7 +53,7 @@ Stack trace: 範囲外のビットシフト - integer のビット幅を超えるビットシフト (左右問わず) + int のビット幅を超えるビットシフト (左右問わず) を行うと、結果は常に 0 となります。 以前のバージョンでは、このときの振る舞いはアーキテクチャに依存していました。 diff --git a/appendices/migration70/incompatible/other.xml b/appendices/migration70/incompatible/other.xml index 1b479d153d..236ff2e7b3 100644 --- a/appendices/migration70/incompatible/other.xml +++ b/appendices/migration70/incompatible/other.xml @@ -1,6 +1,6 @@ - + 下位互換性のないその他の変更 @@ -364,7 +364,7 @@ switch (1) { - break 文と switch 文の位置の間違い + break 文と continue 文の位置の間違い ループまたは switch 制御構造の外の break および continue 文は、 @@ -373,8 +373,18 @@ switch (1) { + + break と continue 文に定数は渡せなくなった + + breakcontinue + 文は定数を引数として渡せなくなりました。 + 渡すと、 + E_COMPILE_ERROR が発生します。 + + + - Mhash はもう拡張機能ではありません + Mhash はもう拡張モジュールではありません Mhash 拡張は Hash 拡張に完全に統合されました。 したがって、extension_loaded で Mhash サポートを検出できなくなりました。 diff --git a/appendices/migration70/incompatible/removed-functions.xml b/appendices/migration70/incompatible/removed-functions.xml index ca64be69f1..de4ef9c5b8 100644 --- a/appendices/migration70/incompatible/removed-functions.xml +++ b/appendices/migration70/incompatible/removed-functions.xml @@ -1,6 +1,7 @@ - + + 削除された関数 @@ -18,7 +19,7 @@ あるいは 可変関数 や - ... + ... 演算子を使うことを検討しましょう。 @@ -28,7 +29,7 @@ ereg* 系のすべての関数 - ereg 関数はすべて削除されました。かわりに + ereg 関数はすべて削除されました。かわりに PCRE を使うことを推奨します。 @@ -46,7 +47,7 @@ mcrypt_cbcmcrypt_cfbmcrypt_ofb も削除されました。 mcrypt_decrypt に、適切な - MCRYPT_MODE_* 定数を組み合わせて使いましょう。 + MCRYPT_MODE_* 定数を組み合わせて使いましょう。 @@ -67,9 +68,14 @@ すべての ext/mssql 関数 - ext/mssql のすべての関数が削除されました。 - 代替となる選択肢については、 - MSSQL の導入ページ を参照ください。 + ext/mssql のすべての関数が削除されました。 + 代替となる選択肢については、以下を参照ください。 + + PDO_SQLSRV + PDO_ODBC + SQLSRV + Unified ODBC API + @@ -91,8 +97,7 @@ set_magic_quotes_runtime およびそのエイリアスである magic_quotes_runtime が削除されました。 これらは PHP 5.3.0 で非推奨となり、 - PHP 5.4.0 - でマジッククォートが廃止された時点で事実上無意味になっていました。 + PHP 5.4.0 でマジッククォートが廃止された時点で事実上無意味になっていました。 diff --git a/appendices/migration70/incompatible/removed-ini-directives.xml b/appendices/migration70/incompatible/removed-ini-directives.xml index 7654064492..cca3992195 100644 --- a/appendices/migration70/incompatible/removed-ini-directives.xml +++ b/appendices/migration70/incompatible/removed-ini-directives.xml @@ -1,6 +1,6 @@ - + 削除された INI 項目 @@ -15,12 +15,12 @@ - always_populate_raw_post_data + always_populate_raw_post_data - asp_tags + asp_tags diff --git a/appendices/migration70/incompatible/strings.xml b/appendices/migration70/incompatible/strings.xml index 7ea197c390..2fed5a77d5 100644 --- a/appendices/migration70/incompatible/strings.xml +++ b/appendices/migration70/incompatible/strings.xml @@ -1,6 +1,6 @@ - + 文字列の取り扱いの変更 @@ -49,7 +49,7 @@ string(3) "foo" filter_var を使えば、 文字列が十六進数値形式であるかどうかをチェックでき、 - その文字列を integer に変換することもできます。 + その文字列を int に変換することもできます。 diff --git a/appendices/migration70/new-features.xml b/appendices/migration70/new-features.xml index 05525995b7..19189aa5e7 100644 --- a/appendices/migration70/new-features.xml +++ b/appendices/migration70/new-features.xml @@ -1,6 +1,7 @@ - + + 新機能 @@ -10,8 +11,8 @@ スカラー - 型宣言 - には二つの方式があります。デフォルトの自動変換 (coercive) モードと、 + 型宣言 + には二つの方式があります。デフォルトの自動変換(coercive) モードと、 厳密に判断する strict モードです。 パラメータとして、 文字列 (string)、整数 (int)、浮動小数点数 @@ -46,13 +47,13 @@ int(9) strict モードを有効にするには、ファイルの先頭に &declare; ディレクティブを置く必要があります。 つまり、スカラー型を厳密に扱うかどうかは、ファイル単位で定めるということです。 このディレクティブは、パラメータの型宣言だけでなく、関数の戻り値の型 - (戻り値の型宣言を参照ください) + (戻り値の型宣言を参照ください) や PHP の標準関数、そして拡張モジュールの関数にも影響を及ぼします。 スカラー型宣言に関するドキュメントやサンプルについては、 - 型宣言 + 型宣言 を参照ください。 @@ -62,12 +63,12 @@ int(9) PHP 7 では、 - 戻り値の型宣言 + 戻り値の型宣言 もできるようになりました。 - 引数の型宣言 + 引数の型宣言 と同様に、戻り値の型宣言では、関数が戻す値がどの型になるかを宣言します。 戻り値の型宣言で使える - 型 + 型 は、引数の型宣言で使えるものと同じです。 @@ -101,7 +102,7 @@ Array 詳細なドキュメントやサンプルについては、 - 戻り値の型宣言. + 戻り値の型宣言. を参照ください。 @@ -271,9 +272,18 @@ object(class@anonymous)#2 (0) { ]]> &example.outputs; @@ -327,7 +337,7 @@ echo $getX->call(new A); この仕組みは、信頼できないデータからオブジェクトを復元する際に、 よりセキュリティを高められるようにするために用意されたものです。 - デシリアライズ可能なクラスの一覧をホワイトリストとして定義することで、 + アンシリアライズ可能なクラスの一覧をホワイトリストとして定義することで、 コードインジェクション攻撃を防ぎます。 @@ -387,7 +397,7 @@ bool(true) Expectation - Expectations は、かつての + Expectations は、かつての assert 関数を、下位互換性を保ったまま拡張したものです。 これを用いると、コストをかけずに実運用コードの中にアサーションを組み込めます。 そして、アサーションが失敗した際に自作の例外をスローできるようになります。 @@ -396,7 +406,7 @@ bool(true) これまでの API も下位互換性を保つために維持されていますが、 assert は言語構造となりました。 - 最初のパラメータには、単に評価対象の文字列や boolean + 最初のパラメータには、単に評価対象の文字列や bool 値を指定するだけではなく、式を渡せます。 @@ -422,9 +432,7 @@ Fatal error: Uncaught CustomError: Some error message 開発環境および運用環境での設定方法などの詳細については、 - assert のマニュアルの - expectation - の節を参照ください。 + 言語構造 assert のマニュアルを参照ください。 @@ -639,10 +647,10 @@ session_start([ - <link linkend="book.csprng">CSPRNG</link> 関数 + CSPRNG 関数 - 暗号論的に安全な整数値および文字列を生成する、 + 暗号学的にセキュアな整数値および文字列を生成する、 プラットフォームに依存しない二つの新しい関数が追加されました。 random_bytesrandom_int です。 diff --git a/appendices/migration70/new-functions.xml b/appendices/migration70/new-functions.xml index 0bfe65dab7..638334a602 100644 --- a/appendices/migration70/new-functions.xml +++ b/appendices/migration70/new-functions.xml @@ -1,6 +1,6 @@ - + 新しい関数 @@ -18,7 +18,7 @@ - <link linkend="book.csprng">CSPRNG</link> + CSPRNG diff --git a/appendices/migration71.xml b/appendices/migration71.xml index f554d57b17..195d231bec 100644 --- a/appendices/migration71.xml +++ b/appendices/migration71.xml @@ -1,10 +1,23 @@ - + - + PHP 7.0.x から PHP 7.1.x への移行 + + このマイナーバージョンアップには数多くの + 新機能 があります。 + また、 + 互換性がない変更 + が多少あるので、実運用環境の PHP をこのバージョンにあげる前にはテストすべきです。 + + + + &manual.migration.seealso; + 7.0.x. + + &appendices.migration71.new-features; &appendices.migration71.new-functions; &appendices.migration71.constants; @@ -14,27 +27,6 @@ &appendices.migration71.other-changes; &appendices.migration71.windows-support; - - - このマイナーバージョンアップには数多くの - 新機能 があります。 - また、 - 互換性がない変更 - が多少あるので、実運用環境の PHP をこのバージョンにあげる前にはテストすべきです。 - - - - &manual.migration.seealso; - 5.0.x、 - 5.1.x、 - 5.2.x、 - 5.3.x、 - 5.4.x、 - 5.5.x、 - 5.6.x および - 7.0.x。 - - - + PHP 7.1.x で推奨されなくなる機能 diff --git a/appendices/migration71/incompatible.xml b/appendices/migration71/incompatible.xml index 7e7128b9d8..8d77c590b7 100644 --- a/appendices/migration71/incompatible.xml +++ b/appendices/migration71/incompatible.xml @@ -1,6 +1,6 @@ - + @@ -146,7 +146,7 @@ Warning: Cannot call func_num_args() dynamically in %s on line %d mt_rand のデフォルトが、修正版のメルセンヌ・ツイスタ - アルゴリズムを使うようになりました。mt_srand + アルゴリズムを使うようになりました。mt_rand の結果に依存するコードを書いていた場合は、mt_srand のオプションの第二引数に MT_RAND_PHP を指定すると、これまでの挙動 (間違った実装) を維持できます。 @@ -374,7 +374,7 @@ array(2) { unserialize 関数の $options パラメータの allowed_classes 要素が、 型を厳密に解釈するようになりました。 - つまり、array または boolean + つまり、array または bool 以外のあらゆる値が与えられても、 unserialize() は &false; を返し、 E_WARNING レベルの警告が発生します。 @@ -408,163 +408,163 @@ new DateTime() == new DateTime(); 致命的なエラーが <classname>Error</classname> 例外に変換される - Date 拡張機能では、 + Date 拡張モジュールでは、 DateTime または DatePeriod - クラス ののシリアライズデータが不正だったり、 - シリアライズ化したデータからタイムゾーンを初期化するのに失敗した場合、 + クラス のシリアライズデータが不正だったり、 + シリアライズしたデータからタイムゾーンを初期化するのに失敗した場合、 致命的なエラーにならず、 __wakeup__set_state - メソッドから Error 例外を投げるようになりました。 + メソッドから Error 例外をスローするようになりました。 - DBA 拡張機能では、 + DBA 拡張モジュールでは、 (dba_insert のように) データを変更する関数は、キーが正確にふたつの要素を含んでいない場合に キャッチ可能な fatal error ではなく、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - DOM 拡張機能では、 + DOM 拡張モジュールでは、 不正なスキーマ や RelaxNG検証コンテキスト は 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 同じように、適切な基底クラスを継承しないノードクラスを登録しようとしたり、 不正なプロパティを読み出そうとしたり、 読み込み専用のプロパティに書き込もうとしたりしても、 - 同様に Error 例外を投げるようになりました。 + 同様に Error 例外をスローようになりました。 - IMAP 拡張機能では、 + IMAP 拡張モジュールでは、 16385 バイト以上の email アドレスは、 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - Intl 拡張機能では、 + Intl 拡張モジュールでは、 Collator クラスを継承したクラスで、 親メソッドを呼ぶ前に親のコンストラクタを呼ぶのに失敗すると、 回復可能な fatal error にはならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 同様に、Transliterator を clone すると、 内部の transliterator の複製に失敗した時に 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - LDAP 拡張機能では、 + LDAP 拡張モジュールでは、 ldap_batch_modify 関数に不明な変更タイプを渡すと、 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - mbstring 拡張機能では、 + mbstring 拡張モジュールでは、 mb_ereg 関数と mb_eregi 関数が、 'e' オプションを使い、かつ 不正な PHP の式が渡された場合に - ParseError 例外を投げるようになりました。 + ParseError 例外をスローするようになりました。 - Mcrypt 拡張機能では、 + Mcrypt 拡張モジュールでは、 mcrypt_encryptmcrypt_decrypt 関数が mcrypt を初期化できなかった場合に 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - mysqli 拡張機能では、 + mysqli 拡張モジュールでは、 不正なプロパティを読み出そうとしたり、 読み取り専用のプロパティに書き込もうとしたりすると、 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - Reflection 拡張機能では、 + Reflection 拡張モジュールでは、 リフレクションオブジェクトを取得できなかったり、 オブジェクトのプロパティを取得できなかったりすると、 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - Session 拡張機能では、 + Session 拡張モジュールでは、 セッションIDに文字列を返さないカスタムのセッションハンドラは、 セッションIDを生成しなければならない関数を呼んだ際に 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - SimpleXML 拡張機能では、 + SimpleXML 拡張モジュールでは、 名前が付いていない、または 重複した属性を作ろうとすると、 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - SPL 拡張機能では、 + SPL 拡張モジュールでは、 SplDirectory オブジェクトを clone しようとすると、 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 同じように、オブジェクトを繰り返している時に ArrayIterator::append を呼び出すと、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - standard 拡張機能では、 + standard 拡張モジュールでは、 assert関数 の 最初のパラメーターに string 型の引数が与えられた場合、 かつ PHP のコードが不正だった場合に キャッチ可能な致命的なエラーではなく、 - ParseError 例外を投げるようになりました。 + ParseError 例外をスローするようになりました。 同じように、 クラススコープの外側から forward_static_call を呼び出すと、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - Tidy 拡張機能では、 + Tidy 拡張モジュールでは、 tidyNode を手動で作ろうとすると、 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - WDDX 拡張機能では、 + WDDX 拡張モジュールでは、 シリアライズする時に循環参照が存在すると、 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - XML-RPC 拡張機能では、 + XML-RPC 拡張モジュールでは、 シリアライズする時に循環参照が存在すると、 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 - Zip 拡張機能では、 + Zip 拡張モジュールでは、 glob サポートが利用できない場合、 ZipArchive::addGlob メソッドは 致命的なエラーにならず、 - Error 例外を投げるようになりました。 + Error 例外をスローするようになりました。 @@ -601,7 +601,7 @@ $f = function ($param) use ($param) {}; JSON のエンコードとデコード serialize_precision ini 設定が、 - double 型の値をエンコードするときに、 + float 型の値をエンコードするときに、 シリアル化の精度を制御するようになりました。 @@ -656,8 +656,8 @@ object(stdClass)#1 (1) { 戻り値の型が決まっている関数で "return;" と書いてもコンパイルエラーになる - 返り値の型を宣言している関数内で、引数がないreturn文を使うと、 - (返り値の型を void と宣言していない場合) + 戻り値の型を宣言している関数内で、引数がないreturn文を使うと、 + (戻り値の型を void と宣言していない場合) E_COMPILE_ERROR が発生するようになりました。 これは、そのreturn文に到達しない場合であっても同じです。 diff --git a/appendices/migration71/new-features.xml b/appendices/migration71/new-features.xml index 02e2c48793..c32372028f 100644 --- a/appendices/migration71/new-features.xml +++ b/appendices/migration71/new-features.xml @@ -1,6 +1,6 @@ - + 新機能 @@ -9,7 +9,7 @@ nullable な型 - パラメータや返り値の型宣言で nullable 指定ができるようになりました。 + パラメータや戻り値の型宣言で nullable 指定ができるようになりました。 型の前にクエスチョンマークをつけると、nullable であることを指定できます。 nullable 指定をすると、指定した型だけでなく &null; も渡せるようになります。 @@ -19,19 +19,19 @@ @@ -60,7 +60,7 @@ Uncaught Error: Too few arguments to function test(), 0 passed in... void 関数 - 返り値の型として void が導入されました。返り値の型を void + 戻り値の型として void が導入されました。戻り値の型を void と宣言した関数は、関数内での return 文を省略するか、あるいは空の return を使う必要があります。 void 関数から &null; を返すことはできません。 @@ -96,7 +96,7 @@ int(1) - void 関数の返り値を使おうとした場合はその値は &null; と評価されます。 + void 関数の戻り値を使おうとした場合はその値は &null; と評価されます。 警告は発生しません。警告を発生させると、一般的な高階関数の利用にも影響するからです。 @@ -169,13 +169,13 @@ class ConstDemo 新しい擬似型 (callable と同じような型) である iterable が導入されました。 - パラメータおよび返り値の型指定で使うことができます。 + パラメータおよび戻り値の型指定で使うことができます。 配列か、あるいは Traversable インターフェイスを実装したオブジェクトを受け付けるようになります。 派生型に貸しては、子クラスのパラメータの型が、 親クラスの arrayTraversable を拡張して iterable に広げることができます。 - 返り値の型に関しては、親クラスの iterable 型指定を子クラスで + 戻り値の型に関しては、親クラスの iterable 型指定を子クラスで 配列あるいはオブジェクト (Traversable を実装したもの) に絞り込むことができます。 @@ -322,7 +322,7 @@ The last character of 'bar' is 'r'. <methodname>Closure::fromCallable</methodname> による callables から <classname>Closure</classname> への変換 - Closure クラスに新しい静的メソッドが追加されました。 + Closure クラスに新しいstaticメソッドが追加されました。 callable を、簡単に Closure オブジェクトに変換できるようにするものです。 diff --git a/appendices/migration71/windows-support.xml b/appendices/migration71/windows-support.xml index a7ded3df1e..d5843bdeeb 100644 --- a/appendices/migration71/windows-support.xml +++ b/appendices/migration71/windows-support.xml @@ -1,5 +1,5 @@ - + @@ -52,7 +52,7 @@ - sapi_windows_cp_conv() は、iconv() 互換のシグナチャで、コードページ間の変換を行います。 + sapi_windows_cp_conv() は、iconv() 互換のシグネチャで、コードページ間の変換を行います。 @@ -110,7 +110,7 @@ ストリームで UTF-8 がサポートされたことによって、 PHP スクリプトは ASCII や ANSI のファイル名にもはや縛られなくなりました。 これは CLI の枠を越えたサポートです。他の SAPI については、 - 対応するサーバのドキュメントを見ると有益でしょう。 + 対応するサーバーのドキュメントを見ると有益でしょう。 長いパス名のサポートは透過的です。 @@ -136,7 +136,7 @@ readline - readline 拡張機能 + readline 拡張モジュール が WinEditLine ライブラリ を通じてサポートされました。 これにより、インタラクティブな CLI diff --git a/appendices/migration72.xml b/appendices/migration72.xml index cf7804aecf..a779b9552c 100644 --- a/appendices/migration72.xml +++ b/appendices/migration72.xml @@ -1,10 +1,24 @@ - + - + PHP 7.1.x から PHP 7.2.x への移行 + + このマイナーバージョンアップには数多くの + 新機能 があります。 + また、 + 互換性がない変更 + が多少あるので、実運用環境の PHP をこのバージョンにあげる前にはテストすべきです。 + + + + &manual.migration.seealso; + 7.0.x, + 7.1.x. + + &appendices.migration72.new-features; &appendices.migration72.new-functions; &appendices.migration72.constants; @@ -12,28 +26,6 @@ &appendices.migration72.deprecated; &appendices.migration72.other-changes; - - - このマイナーバージョンアップには数多くの - 新機能 があります。 - また、 - 互換性がない変更 - が多少あるので、実運用環境の PHP をこのバージョンにあげる前にはテストすべきです。 - - - - &manual.migration.seealso; - 5.0.x、 - 5.1.x、 - 5.2.x、 - 5.3.x、 - 5.4.x、 - 5.5.x、 - 5.6.x、 - 7.0.x および - 7.1.x。 - - - + 新しいグローバル定数 @@ -148,7 +148,7 @@ - PREG_UNMATCHED_AS_NULL + PREG_UNMATCHED_AS_NULL @@ -539,17 +539,17 @@ - ZipArchive::EM_AES_128 + ZipArchive::EM_AES_128 - ZipArchive::EM_AES_192 + ZipArchive::EM_AES_192 - ZipArchive::EM_AES_256 + ZipArchive::EM_AES_256 diff --git a/appendices/migration72/incompatible.xml b/appendices/migration72/incompatible.xml index e68a0065ec..974b5ad4a4 100644 --- a/appendices/migration72/incompatible.xml +++ b/appendices/migration72/incompatible.xml @@ -1,6 +1,6 @@ - + @@ -46,7 +46,7 @@ var_dump(number_format(-0.01)); // string(2) "-0" ではなく string(1) "0" と // 配列からオブジェクトへの変換 $arr = [0 => 1]; -$obj = (object)$arr; +$obj = (object) $arr; var_dump( $obj, $obj->{'0'}, // アクセスできるようになりました @@ -84,7 +84,7 @@ $obj = new class { $this->{0} = 1; } }; -$arr = (array)$obj; +$arr = (array) $obj; var_dump( $arr, $arr[0], // アクセスできるようになりました @@ -135,7 +135,7 @@ var_dump( count(null), // NULL はカウントできません count(1), // integer はカウントできません count('abc'), // string はカウントできません - count(new stdclass), // Countable インターフェイスを実装していないオブジェクトはカウントできません + count(new stdClass), // Countable インターフェイスを実装していないオブジェクトはカウントできません count([1,2]) // array はカウントできます ); ]]> @@ -200,7 +200,7 @@ int(2) - <function>gettype</function> にクローズ済みのリソースを渡した際の返り値 + <function>gettype</function> にクローズ済みのリソースを渡した際の戻り値 以前のバージョンでは、 gettype にクローズ済みのリソースを渡すと、"unknown type" という文字列を返していました。 @@ -337,6 +337,16 @@ int(2) + + 外部から入力されるCookie + + + PHP 7.2.34 以降は、セキュリティ上の理由により、 + 外部から入力される Cookie の + 名前 はurlデコードされなくなりました。 + + + - + 新機能 @@ -10,7 +10,7 @@ object 型が新たに導入されました。 - 任意のオブジェクトに対する (反変) パラメータの型付けや (共変) 返り値の型付けで使えます。 + 任意のオブジェクトに対する (反変) パラメータの型付けや (共変) 戻り値の型付けで使えます。 @@ -23,7 +23,7 @@ function test(object $obj) : object return new SplQueue(); } -test(new StdClass()); +test(new stdClass()); ]]> diff --git a/appendices/migration72/other-changes.xml b/appendices/migration72/other-changes.xml index 3ffefa199f..ebe542c0fd 100644 --- a/appendices/migration72/other-changes.xml +++ b/appendices/migration72/other-changes.xml @@ -1,6 +1,6 @@ - + その他の変更 @@ -16,10 +16,10 @@ - <function>mail</function> および <function>mb_sendmail</function> への変更 + <function>mail</function> および <function>mb_send_mail</function> への変更 - mail および mb_sendmail の + mail および mb_send_mail の $additional_headers パラメータは、string の代わりに array も受け付けるようになりました。 diff --git a/appendices/migration73.xml b/appendices/migration73.xml index 5ba52237b9..9ab51ed17c 100644 --- a/appendices/migration73.xml +++ b/appendices/migration73.xml @@ -1,10 +1,23 @@ - - + + - + PHP 7.2.x から PHP 7.3.x への移行 + + このマイナーバージョンアップには数多くの 新機能 があります。また、互換性がない変更 が多少あるので、実運用環境の PHP をこのバージョンにあげる前にはテストすべきです。 + + + + &manual.migration.seealso; + 7.0.x, + 7.1.x, + 7.2.x. + + &appendices.migration73.new-features; &appendices.migration73.new-functions; &appendices.migration73.constants; @@ -13,27 +26,6 @@ &appendices.migration73.other-changes; &appendices.migration73.windows-support; - - - このマイナーバージョンアップには数多くの 新機能 があります。また、互換性がない変更 が多少あるので、実運用環境の PHP をこのバージョンにあげる前にはテストすべきです。 - - - - &manual.migration.seealso; - 5.0.x, - 5.1.x, - 5.2.x, - 5.3.x, - 5.4.x, - 5.5.x, - 5.6.x, - 7.0.x, - 7.1.x, - 7.2.x. - - + diff --git a/appendices/migration73/deprecated.xml b/appendices/migration73/deprecated.xml index 059f964618..6f3014fd36 100644 --- a/appendices/migration73/deprecated.xml +++ b/appendices/migration73/deprecated.xml @@ -1,5 +1,5 @@ - + @@ -107,7 +107,7 @@ PHP が ICU バージョン56以上とリンクされた状態で Normalizer::NONE - を使うと、推奨されない警告が投げられるようになりました。 + を使うと、推奨されない警告が発生するようになりました。 diff --git a/appendices/migration73/incompatible.xml b/appendices/migration73/incompatible.xml index 8a0223a078..adc471f79f 100644 --- a/appendices/migration73/incompatible.xml +++ b/appendices/migration73/incompatible.xml @@ -1,6 +1,6 @@ - - + + 下位互換性のない変更点 @@ -42,8 +42,8 @@ FOO; switch の制御フローを変更することを狙った continue 文は、警告が出るようになりました。 PHP では、このような continue 文は - break と同等で、他のプログラミング言語の - continue 2 と同じように振る舞います。 + break と同等で、他のプログラミング言語では + continue 2 と同じように振る舞うのとは対照的です。 ArrayAccess を実装したオブジェクトに対する、 - 数値文字列キーの解釈が厳密に + 数値形式の文字列キーの解釈が厳密に $objArrayAccess @@ -255,7 +255,7 @@ foo(...gen()); mb_ereg_replace はこれを追加の文法に従って解釈します。 さらに詳しい情報は、名前付きキャプチャ - を参照して下さい。 + を参照ください。 @@ -267,7 +267,7 @@ foo(...gen()); マイクロ秒を使う場合 TIMESTAMP(6) のようにする) ことによって、 DATETIME, TIME および TIMESTAMP 型の秒の小数部を報告するようになりました。 - 以前のバージョンでは、秒の小数部は返り値から単に省略されていました。 + 以前のバージョンでは、秒の小数部は戻り値から単に省略されていました。 @@ -279,7 +279,7 @@ foo(...gen()); マイクロ秒を使う場合 TIMESTAMP(6) のようにする) ことによって、DATETIME, TIME および TIMESTAMP 型の秒の小数部を報告するようになりました。 - 以前のバージョンでは、秒の小数部は返り値から単に省略されていました。 + 以前のバージョンでは、秒の小数部は戻り値から単に省略されていました。 この変更は、PDO_MYSQL のプリペアドステートメントをエミュレートする機能を無効にしていた場合 @@ -306,7 +306,7 @@ foo(...gen()); Standard PHP Library (SPL) - SPL autoloader が例外を投げた場合、後に続く + SPL autoloader が例外をスローした場合、後に続く autoloader は実行されなくなりました。以前は、全ての autoloader が実行され、例外がチェインしていました。 @@ -317,12 +317,21 @@ foo(...gen()); 数学的な演算 に SimpleXML - オブジェクトが含まれていた場合、テキストが integer または + オブジェクトが含まれていた場合、テキストが int または float のうち、より適切なものとして扱われるようになりました。 - 以前は値が意図せず integer として扱われた場合がありました。 + 以前は値が意図せず int として扱われた場合がありました。 + + 外部から入力されるCookie + + + PHP 7.3.23 以降は、セキュリティ上の理由により、 + 外部から入力される Cookie の + 名前 はurlデコードされなくなりました。 + + diff --git a/appendices/migration73/new-features.xml b/appendices/migration73/new-features.xml index 623a234400..1258fe366a 100644 --- a/appendices/migration73/new-features.xml +++ b/appendices/migration73/new-features.xml @@ -1,6 +1,6 @@ - - + + 新機能 @@ -46,10 +46,10 @@ CompileError 例外が新たに追加されました。これは ParseError クラスを継承しています。 少ない数ですが、いくつかのコンパイルエラーが致命的なエラーを生成せず、CompileError - 例外を投げるようになります。 + 例外をスローするようになります。 現状は、この変更は TOKEN_PARSE モードで token_get_all - が実行された場合に投げられる可能性があるコンパイルエラーだけに影響しますが、将来より多くのエラーがこの例外に変換される可能性があります。 + が実行された場合にスローされる可能性があるコンパイルエラーだけに影響しますが、将来より多くのエラーがこの例外に変換される可能性があります。 @@ -85,7 +85,7 @@ php-fpm - FRM のロギングをカスタマイズするために、新しいオプションが追加されました。 + FPM のロギングをカスタマイズするために、新しいオプションが追加されました。 log_limit @@ -135,7 +135,7 @@ - コントロールをサーバに送信するために $serverctrls + コントロールをサーバーに送信するために $controls パラメータが ldap_add, ldap_mod_replace, ldap_mod_add, ldap_mod_del, ldap_rename, @@ -147,8 +147,8 @@ - サーバからコントロールを取得するために、出力パラメータ - $serverctrls が + サーバーからコントロールを取得するために、出力パラメータ + $controlsldap_parse_result 関数に追加されました。 @@ -281,7 +281,7 @@ mb_strtoupper("Straße"); マルチバイト文字列 - 拡張機能のパフォーマンスが全体的に大きく向上しました。大文字小文字のケースの変換関数で、一番大きな改善が見られます。 + 拡張モジュールのパフォーマンスが全体的に大きく向上しました。大文字小文字のケースの変換関数で、一番大きな改善が見られます。 diff --git a/appendices/migration73/new-functions.xml b/appendices/migration73/new-functions.xml index 5bb5b9f3ff..8f62050e71 100644 --- a/appendices/migration73/new-functions.xml +++ b/appendices/migration73/new-functions.xml @@ -1,5 +1,5 @@ - + diff --git a/appendices/migration73/other-changes.xml b/appendices/migration73/other-changes.xml index 38605ddc18..51f034575b 100644 --- a/appendices/migration73/other-changes.xml +++ b/appendices/migration73/other-changes.xml @@ -1,6 +1,6 @@ - - + + その他の変更 @@ -13,7 +13,7 @@ setcookie および setrawcookie - 関数は、次のようなシグナチャもサポートするようになりました: + 関数は、次のようなシグネチャもサポートするようになりました: boolsetcookie stringname @@ -49,10 +49,14 @@ syslog.filter - ログメッセージをフィルタするために、フィルタタイプを指定します。 - サポートされているのは、以下の3つのフィルタタイプです - - all, - no-ctrl そして ascii。 + ログメッセージをフィルタするために、 + サポートされているフィルタタイプを指定します。 + サポートされているのは、all, + no-ctrl そして ascii です。 + + PHP 7.3.8 以降では、 + それより前のバージョンでの振る舞いを復元する raw も使えます。 + このフィルタは、syslog をコールした際にも影響します。 @@ -210,7 +214,7 @@ - + OPcache @@ -283,7 +287,7 @@ session_set_cookie_params - 関数は、以下のシグナチャもサポートしました: + 関数は、以下のシグネチャもサポートしました: boolsession_set_cookie_params arrayoptions diff --git a/appendices/migration73/windows-support.xml b/appendices/migration73/windows-support.xml index 0d20bce72c..127cbacdb0 100644 --- a/appendices/migration73/windows-support.xml +++ b/appendices/migration73/windows-support.xml @@ -1,5 +1,5 @@ - + diff --git a/appendices/migration74.xml b/appendices/migration74.xml index e4363be823..28b87eb04f 100644 --- a/appendices/migration74.xml +++ b/appendices/migration74.xml @@ -1,10 +1,24 @@ - - + + - + PHP 7.3.x から PHP 7.4.x への移行 + + このマイナーバージョンアップには数多くの 新機能 があります。また、互換性がない変更 が多少あるので、実運用環境の PHP をこのバージョンにあげる前にはテストすべきです。 + + + + &manual.migration.seealso; + 7.0.x, + 7.1.x, + 7.2.x, + 7.3.x. + + &appendices.migration74.new-features; &appendices.migration74.new-classes; &appendices.migration74.new-functions; @@ -15,21 +29,6 @@ &appendices.migration74.other-changes; &appendices.migration74.windows-support; - - - このマイナーバージョンアップには数多くの 新機能 があります。また、互換性がない変更 が多少あるので、実運用環境の PHP をこのバージョンにあげる前にはテストすべきです。 - - - - &manual.migration.seealso; - 7.0.x、 - 7.1.x、 - 7.2.x および - 7.3.x。 - - + diff --git a/appendices/migration74/deprecated.xml b/appendices/migration74/deprecated.xml index e12502b55d..6210b2b442 100644 --- a/appendices/migration74/deprecated.xml +++ b/appendices/migration74/deprecated.xml @@ -1,6 +1,6 @@ - - + + PHP 7.4.x で推奨されなくなる機能 @@ -21,6 +21,17 @@ (1 ? 2 : 3) ? 4 : 5; // ok 1 ? 2 : (3 ? 4 : 5); // ok ?> +]]> + + + + + 2番目のオペランドをネストさせる場合は、括弧は必須では ありません。 + なぜなら、これについては曖昧さがなく、結合法則に影響がないからです。 + + + diff --git a/appendices/migration74/incompatible.xml b/appendices/migration74/incompatible.xml index 36606ac09c..2c80a6bac6 100644 --- a/appendices/migration74/incompatible.xml +++ b/appendices/migration74/incompatible.xml @@ -1,6 +1,6 @@ - - + + 下位互換性のない変更点 @@ -42,12 +42,11 @@ ファイルの最後の (改行が最後に付かない) <?php - タグは、PHPタグの開始タグとして解釈されるようになりました。以前は、短い形式の開始タグ <? の後にリテラル + タグは、PHPタグの開始タグとして解釈されるようになりました。以前は、短縮型の開始タグ <? の後にリテラル php - を続けたものとして解釈されるか、(short_open_tag=1 - の場合は) 文法エラー になるか、(short_open_tag=0 - の場合は) <?php - というリテラルとして解釈されていました。 + を続けたものとして解釈された結果文法エラーになる (short_open_tag=1 + の場合) か、<?php という文字列リテラルとして解釈されていました (short_open_tag=0 + の場合) 。 @@ -86,8 +85,9 @@ - PASSWORD_DEFAULT は int型の 1 でしたが、&null; - になりました。 + PASSWORD_DEFAULT は int型の 1 でしたが、 + string の '2y' になりました。 + (PHP 7.4.0, 7.4.1, 7.4.2 では &null; でした) @@ -191,7 +191,7 @@ - Intl + 国際化関数 idn_to_asciiidn_to_utf8 @@ -204,7 +204,7 @@ MySQLi - 組み込みサーバの機能は削除されました。少なくとも PHP 7.0 + 組み込みサーバーの機能は削除されました。少なくとも PHP 7.0 以降、この機能は壊れていました。 @@ -219,14 +219,14 @@ openssl_random_pseudo_bytes - 関数は、エラーが発生した場合に例外を投げるようになりました。random_bytes + 関数は、エラーが発生した場合に例外をスローするようになりました。random_bytes 関数も同じです。 特に、リクエストされたバイト数が0以下の場合には、 Error - が投げられ、十分なランダム性が得られなかった場合は + がスローされ、十分なランダム性が得られなかった場合は Exception が生成されます。 - $crypto_strong output - 引数は、例外が投げられなかった場合は常に &true; + $crypto_strong の出力引数は、 + 例外がスローされなかった場合は常に &true; であることが保証されるので、明示的なチェックは不要です。 @@ -253,6 +253,11 @@ ではなく Exception が生成されるようになりました。これは、シリアル化をサポートしていない他の内部的なクラスと一貫した挙動です。 + + + ReflectionClassConstant, + ReflectionMethod, ReflectionProperty のクラス定数の値が変更されました。 + @@ -294,6 +299,7 @@ オブジェクトのプロパティをリストとして扱うその他の操作も、影響を受ける可能性があります。 + たとえば array_walk 関数が挙げられます。 @@ -305,7 +311,7 @@ SplPriorityQueue::setExtractFlags - は、0を渡された場合に例外を投げるようになりました。以前は、次の配列を展開する操作の際に回復可能な致命的なエラーを生成していました。 + は、0を渡された場合に例外をスローするようになりました。以前は、次の配列を展開する操作の際に回復可能な致命的なエラーを生成していました。 ArrayObject, ArrayIterator, @@ -330,6 +336,16 @@ + + 外部から入力されるCookie + + + PHP 7.4.11 以降は、セキュリティ上の理由により、 + 外部から入力される Cookie の + 名前 はurlデコードされなくなりました。 + + + + diff --git a/appendices/migration74/new-features.xml b/appendices/migration74/new-features.xml index d872d1ce6a..9da8e81b46 100644 --- a/appendices/migration74/new-features.xml +++ b/appendices/migration74/new-features.xml @@ -1,6 +1,6 @@ - + 新機能 @@ -25,7 +25,7 @@ class User { ]]> - 上の例は、 $user->id には integer の 値だけを、そして $user->name には string の値だけを代入できるように強制します。 + 上の例は、 $user->id には int の 値だけを、そして $user->name には string の値だけを代入できるように強制します。 @@ -50,7 +50,7 @@ $nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]); - 返り値の型を狭めたり、引数の型を広げたりする + 戻り値の型を狭めたり、引数の型を広げたりする 次のようなコードが動作するようになります: @@ -72,6 +72,34 @@ class ChildProducer extends Producer { 完全な型の変位指定は、オートローディングが使われている場合のみ有効です。単一ファイル内では、型の参照が循環参照していない場合のみ可能です。なぜなら、全てのクラスは参照する前に利用可能でなければならないからです。 + + + +]]> + + @@ -134,10 +162,10 @@ $fruits = ['banana', 'orange', ...$parts, 'watermelon']; - 弱参照 + 弱い参照 - 弱い参照により、オブジェクトが破棄されるのを防がないオブジェクトへの参照を保持することが可能です。 + 弱い参照 により、オブジェクトが破棄されるのを妨げないオブジェクトへの参照を保持することが可能です。 @@ -157,7 +185,7 @@ $fruits = ['banana', 'orange', ...$parts, 'watermelon']; CURL - CURLFile は、CURL拡張機能が libcurl 7.56.0 より新しいものでビルドされた場合は、通常のファイル名に加えて、ストリームラッパーをサポートするようになります。 + CURLFile は、CURL拡張モジュールが libcurl 7.56.0 より新しいものでビルドされた場合は、通常のファイル名に加えて、ストリームラッパーをサポートするようになります。 @@ -176,7 +204,7 @@ $fruits = ['banana', 'orange', ...$parts, 'watermelon']; FFI - FFI は、ネイティブ関数を呼び出したり、ネイティブな値にアクセスしたり、Cライブラリで定義されたデータ構造を生成/アクセスする簡単な方法を提供する新しい拡張機能です。 + FFI は、ネイティブ関数を呼び出したり、ネイティブな値にアクセスしたり、Cライブラリで定義されたデータ構造を生成/アクセスする簡単な方法を提供する新しい拡張モジュールです。 @@ -275,7 +303,7 @@ $fruits = ['banana', 'orange', ...$parts, 'watermelon']; - Standard + 標準ライブラリ strip_tags() をタグ名の配列とともに使う @@ -298,10 +326,14 @@ $fruits = ['banana', 'orange', ...$parts, 'watermelon']; ]]> @@ -361,7 +393,7 @@ proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes); PHP が libargon を使わずにビルドされた場合、password_hash 関数は sodium - 拡張機能の argon2i と argon2id を使った実装を使うようになります。 + 拡張モジュールの argon2i と argon2id を使った実装を使うようになります。 diff --git a/appendices/migration74/new-functions.xml b/appendices/migration74/new-functions.xml index 0ccd67f0c3..d770aed9b8 100644 --- a/appendices/migration74/new-functions.xml +++ b/appendices/migration74/new-functions.xml @@ -1,6 +1,6 @@ - - + + 新しく追加された関数 @@ -39,6 +39,18 @@ + + マルチバイト文字列 + + + + + mb_str_split + + + + + OpenSSL @@ -81,7 +93,6 @@ - - + + その他の変更 @@ -45,7 +45,7 @@ pkg-config への移行 - たくさんの拡張機能が、ライブラリへの依存性を検知するために、明示的に + たくさんの拡張モジュールが、ライブラリへの依存性を検知するために、明示的に pkg-config に移行しました。一般的には、このことは 以前 に似た指定をしていたのが、 @@ -56,7 +56,7 @@ でコンパイルオプションを指定することができます。 - 以下の拡張機能や SAPI が影響を受けます: + 以下の拡張モジュールや SAPI が影響を受けます: @@ -104,7 +104,7 @@ オプションは - (拡張機能全部を有効にする場合) と + (拡張モジュール全部を有効にする場合) と (バンドルされたものではなく、外部のlibgdを使う場合) になりました。 @@ -367,7 +367,7 @@ SplFileObject::setCsvControl は、 $escape パラメータに空文字列を受け入れるようになりました。 - これによって、プロプライエタリな PHP のエスケープ機構が無効になります。 + 空文字列を指定すると、(RFC 4180 に準拠していない) 独自仕様の PHP のエスケープ機構が無効になります。 str_getcsv @@ -382,7 +382,7 @@ データのフィルタリング - filter 拡張機能は、 + filter 拡張モジュールは、 Unix でビルドする際に が不要になり、 ./configure コマンドで共有ライブラリとして確実にビルドされるようになりました。 @@ -426,16 +426,16 @@ HASH メッセージダイジェストフレームワーク hash - 拡張機能を無効にすることはできなくなり、PHP + 拡張モジュールを無効にすることはできなくなり、PHP ビルドに必須の部分として扱われます。 - date 拡張機能も同様です。 + date 拡張モジュールも同様です。 - Intl + 国際化関数 - intl 拡張機能は、ICU 50.1 + intl 拡張モジュールは、ICU 50.1 以降が必須になりました。 @@ -454,7 +454,7 @@ Libxml - すべての libxmlベースの拡張機能は libxml 2.7.6 以降が必須になりました。 + すべての libxmlベースの拡張モジュールは libxml 2.7.6 以降が必須になりました。 @@ -483,7 +483,9 @@ パスワードハッシュ - password_hash 関数は、$algo に nullable な &string; と + password_hash と + password_needs_rehash 関数は、 + $algo に nullable な &string; と &integer; を受け入れるようになりました。 @@ -533,9 +535,9 @@ バンドルされていた libsqlite は削除されました。 SQLite3 - 拡張機能をビルドするには、libsqlite3 3.7.4 以降が必須になりました。 + 拡張モジュールをビルドするには、libsqlite3 3.7.4 以降が必須になりました。 PDO_SQLite - 拡張機能をビルドするには、libsqlite3 3.5.0 以降が必須になりました。 + 拡張モジュールをビルドするには、libsqlite3 3.5.0 以降が必須になりました。 SQLite3, @@ -554,7 +556,7 @@ Zip バンドルされていた libzip ライブラリは削除されました。 - zip 拡張機能をビルドするには、libzip >= + zip 拡張モジュールをビルドするには、libzip >= 0.11 が必要になっています。 diff --git a/appendices/migration74/removed-extensions.xml b/appendices/migration74/removed-extensions.xml index 8845735736..ebd0c802a7 100644 --- a/appendices/migration74/removed-extensions.xml +++ b/appendices/migration74/removed-extensions.xml @@ -1,12 +1,12 @@ - + 削除された拡張モジュール - 以下の拡張モジュールは、PECLに移され、PHPの配布物からは削除されました。これらの拡張機能のPECL版は、ユーザーが必要とすれば作られるでしょう。 + 以下の拡張モジュールは、PECLに移され、PHPの配布物からは削除されました。これらの拡張モジュールのPECL版は、ユーザーが必要とすれば作られるでしょう。 diff --git a/appendices/migration74/windows-support.xml b/appendices/migration74/windows-support.xml index 40915eaa45..98f6143cf3 100644 --- a/appendices/migration74/windows-support.xml +++ b/appendices/migration74/windows-support.xml @@ -1,6 +1,6 @@ - - + + Windows のサポート @@ -17,7 +17,16 @@ CTRLキーの扱い sapi_windows_set_ctrl_handler - 関数でハンドラを設定することで、コンソールにおける CTRL+C や CTRL+BREAK + 関数でハンドラを設定することで、コンソールにおける + + CTRL + C + + や + + CTRL + BREAK + をキャッチできるようになりました。 @@ -69,7 +78,7 @@ SQLite3 と PDO_SQLITE - のインストール手順をそれぞれ参照してください。 + のインストール手順をそれぞれ参照ください。 diff --git a/appendices/migration80.xml b/appendices/migration80.xml new file mode 100644 index 0000000000..8d1f9b47ce --- /dev/null +++ b/appendices/migration80.xml @@ -0,0 +1,51 @@ + + + + + + PHP 7.4.x から PHP 8.0.x への移行 + + + この新しいメジャーバージョンには、たくさんの + 新機能 と + 互換性のない変更 がいくつかあります。 + 実運用環境の PHP をこのバージョンにあげる前に、これらの変更を必ずテストすべきです。 + + + + &manual.migration.seealso; + 7.0.x, + 7.1.x, + 7.2.x, + 7.3.x, + 7.4.x. + + + &appendices.migration80.new-features; + &appendices.migration80.new-classes; + &appendices.migration80.incompatible; + &appendices.migration80.deprecated; + &appendices.migration80.other-changes; + + + + diff --git a/appendices/migration80/deprecated.xml b/appendices/migration80/deprecated.xml new file mode 100644 index 0000000000..b85796dc2a --- /dev/null +++ b/appendices/migration80/deprecated.xml @@ -0,0 +1,270 @@ + + + + + + 推奨されなくなる機能 + + + PHP コア + + + + + デフォルト値を持つ引数の後に、必須の引数が続く場合、デフォルト値は意味をなしません。 + こうした書き方は PHP 8.0.0 から推奨されなくなります。 + 以下のようにしてデフォルト値を削除することで、機能を変更することなく解決できます: + + + + +]]> + + + + このルールの唯一の例外は、Type $param = null と書かれた引数です。 + null をデフォルトにすることは、型が暗黙のうちに nullable であることを示しています。 + この書き方はまだ許可されていますが、以下のようにして 明示的に nullable 型を使うことを推奨します: + + + + +]]> + + + + + + exclude_disabled を明示的に &false; に指定して + get_defined_functions 関数を呼び出すことは推奨されなくなり、 + 結果として何も起きなくなりました。 + get_defined_functions 関数は無効な関数を返さなくなっています。 + + + + + + + Enchant + + + + + enchant_broker_set_dict_path と + enchant_broker_get_dict_path 関数は推奨されません。 + これらの機能は libenchant < 1.5 や libenchant-2 では既に利用できないからです。 + + + + + enchant_dict_add_to_personal は推奨されません。 + enchant_dict_add を代わりに使って下さい。 + + + + + enchant_dict_is_in_session は推奨されません。 + enchant_dict_is_added を代わりに使って下さい。 + + + + + enchant_broker_free と + enchant_broker_free_dict は推奨されません。 + 代わりにオブジェクトを unset して下さい。 + + + + + 定数 ENCHANT_MYSPELL と + ENCHANT_ISPELL は推奨されません。 + + + + + + + LibXML + + + libxml_disable_entity_loader 関数は推奨されなくなりました。 + libxml 2.9.0 がビルドに必須になったので、 + 外部エンティティの読み込みはデフォルトで無効になっていることが保証されています。 + よって、(未だ脆弱な) LIBXML_NOENT を使わない限り、 + XXE 攻撃を防ぐためにこの関数を使う必要は既になくなっています。 + LIBXML_NOENT をまだ使っている場合は、 + 外部エンティティの読み込みを抑制するように、 + libxml_set_external_entity_loader + を使ってコードをリファクタリングすることを推奨します。 + + + + + PGSQL / PDO PGSQL + + + + + 定数 PGSQL_LIBPQ_VERSION_STR の値は、 + PGSQL_LIBPQ_VERSION と同じになりました。 + よって、PGSQL_LIBPQ_VERSION_STR は推奨されません。 + + + + + pgsql 拡張モジュールの関数エイリアスは推奨されなくなりました。 + 代わりにどの関数を使うべきなのかは、以下の一覧を参照ください: + + + + pg_errormessagepg_last_error + pg_numrowspg_num_rows + pg_numfieldspg_num_fields + pg_cmdtuplespg_affected_rows + pg_fieldnamepg_field_name + pg_fieldsizepg_field_size + pg_fieldtypepg_field_type + pg_fieldnumpg_field_num + pg_resultpg_fetch_result + pg_fieldprtlenpg_field_prtlen + pg_fieldisnullpg_field_is_null + pg_freeresultpg_free_result + pg_getlastoidpg_last_oid + pg_locreatepg_lo_create + pg_lounlinkpg_lo_unlink + pg_loopenpg_lo_open + pg_loclosepg_lo_close + pg_loreadpg_lo_read + pg_lowritepg_lo_write + pg_loreadallpg_lo_read_all + pg_loimportpg_lo_import + pg_loexportpg_lo_export + pg_setclientencodingpg_set_client_encoding + pg_clientencoding -> pg_client_encoding + + + + + + + + 標準ライブラリ + + + + + &true; または &false; を返すソートの比較関数は、推奨されない警告を発生させるようになりました。 + 0より大きいか、0に等しいか、0より小さい整数を返す実装に置き換えるべきです。 + + + + $a > $b); +// 以下のように置き換えて下さい +usort($array, fn($a, $b) => $a <=> $b); +?> +]]> + + + + + + + + Zip + + + + + 空のファイルを ZipArchive として使うことは推奨されなくなりました。 + Libzip 1.6.0 は空のファイルを正しいzipアーカイブとして受け入れなくなっています。 + 既に存在する回避策は、次のバージョンで削除される予定です。 + + + + + Zip の手続き型の API は推奨されなくなりました。 + ZipArchive クラスを代わりに使って下さい。 + ZipArchive::statIndex と + for ループを以下のようにして使えば、 + 全てのエントリを処理できます: + + + +statIndex($i); $i++) { + echo $entry['name']; +} +?> +]]> + + + + + + + + リフレクション + + + + + ReflectionFunction::isDisabled は推奨されなくなりました。 + 無効な関数に対して ReflectionFunction + を生成することはできなくなっているためです。 + このメソッドは常に &false; を返すようになっています。 + + + + + ReflectionParameter::getClass, + ReflectionParameter::isArray, + ReflectionParameter::isCallable は推奨されません。 + ReflectionParameter::getType と + ReflectionType API を代わりに使って下さい。 + + + + + + + + diff --git a/appendices/migration80/incompatible.xml b/appendices/migration80/incompatible.xml new file mode 100644 index 0000000000..f023845134 --- /dev/null +++ b/appendices/migration80/incompatible.xml @@ -0,0 +1,1960 @@ + + + + + + 下位互換性のない変更点 + + + PHP コア + + + 文字列と数値の比較 + + + (厳密でないやり方で)数値と非数値形式の文字列を比較する場合、 + 数値を文字列にキャストし、文字列と比較するようになりました。 + 数値と数値形式の文字列の比較は、以前と同じ振る舞いをします。 + 注意すべきなのは、これによって、 + 0 == "not-a-number" が &false; と見なされるようになったことです。 + + + + + 比較 + 変更前 + 変更後 + + + + + 0 == "0" + &true; + &true; + + + 0 == "0.0" + &true; + &true; + + + 0 == "foo" + &true; + &false; + + + 0 == "" + &true; + &false; + + + 42 == " 42" + &true; + &true; + + + 42 == "42foo" + &true; + &false; + + + + + + + + + + その他の下位互換性のない変更 + + + + + match が予約語になりました。 + + + + + mixed が予約語になりました。 + よって、クラスやインターフェイス、 + トレイトの名前として使えなくなっています。 + 名前空間の中であっても同様です。 + + + + + アサーションに失敗すると、デフォルトで例外をスローするようになりました。 + 古い振る舞いを望む場合、php.ini で assert.exception=0 と設定できます。 + + + + + クラス名と同じ名前のメソッドは、コンストラクタと解釈されなくなりました。 + __construct() メソッドを代わりに使って下さい。 + + + + + static でないメソッドを、staticメソッドとしてコールできる機能が削除されました。 + static でないメソッドをクラス名を使ってチェックした場合、 + is_callable は失敗します。 + (オブジェクトのインスタンスを使ってチェックしなければいけません) + + + + + (real)(unset) キャストが削除されました。 + + + + + track_errors ini ディレクティブは削除されました。 + つまり、php_errormsg が利用できなくなったということです。 + 代わりに error_get_last 関数が使えます。 + + + + + 大文字小文字を区別しない定数を定義できる機能が削除されました。 + define 関数の第3引数はもはや &true; ではありません。 + + + + + __autoload 関数を使ってオートローダーを指定する機能は削除されました。 + 代わりに spl_autoload_register を使うべきです。 + + + + + set_error_handler 関数で設定されるカスタムエラーハンドラには、 + errcontext 引数は渡されなくなりました。 + + + + + create_function 関数は削除されました。 + 無名関数が代わりに使えます。 + + + + + each 関数は削除されました。 + 代わりに &foreach; や ArrayIterator を使うべきです。 + + + + + Closure::fromCallable や + ReflectionMethod::getClosure を使って + メソッドから生成されたクロージャーから + this の束縛を解除できる機能は削除されました。 + + + + + this を使っている適切なクロージャーから、 + this の束縛を解除する機能も削除されています。 + + + + + オブジェクトに対して array_key_exists + 関数を使える機能は削除されました。 + isset または property_exists + を代わりに使えます。 + + + + + array_key_exists 関数の引数 key + の型に関する振る舞いが、 + isset 関数や配列アクセスの場合と一貫したものになりました。 + 全てのキーの型は通常の強制が行われ、配列やオブジェクトのキーは + TypeError がスローされるようになりました。 + + + + + はじめの数値のキーとして n を持つ配列は、 + たとえ n が負の値であっても、 + 次の暗黙のキーは n+1 を使うようになります。 + + + + + + デフォルトの error_reporting のレベルは E_ALL になりました。 + これより前のバージョンでは、 + E_ALL から + E_NOTICEE_DEPRECATED が除かれていました。 + + + + + display_startup_errors は、 + デフォルトで有効になりました。 + + + + + 親クラスがないクラスの内部で parent を使うと、 + 致命的なコンパイルエラーが発生するようになりました。 + + + + + @ 演算子は、致命的なエラー + (E_ERROR, E_CORE_ERROR, + E_COMPILE_ERROR, E_USER_ERROR, + E_RECOVERABLE_ERROR, E_PARSE) + を隠さなくなりました。 + @ を使う時に、 + error_reporting が 0 であることを期待しているエラーハンドラは、 + 代わりにマスクチェックを調整すべきです: + + + + +]]> + + + + さらに、実運用環境で表示されていなかった、 + 情報のリークに繋がるエラーメッセージにも注意を払うべきです。 + エラーのロギングと併せて、 + display_errors=Off となっていることを確認するようにして下さい。 + + + + + #[ は、コメントの開始として解釈されなくなりました。 + この文法は、アトリビュート として使われるようになっているからです。 + + + + + + 非互換なメソッドのシグネチャによる継承エラー(リスコフの置換原則違反)については、 + 常に致命的なエラーが生成されるようになりました。 + これより前のバージョンでは、警告が生成される場合がありました。 + + + + + + ビットシフトや加算、減算に対する連結演算子の優先順位が変更されました。 + + + + +]]> + + + + + + + 実行時に &null; に解決されるデフォルト値を持つ引数は、 + 引数の型を暗黙のうちに nullable とマークすることはなくなりました。 + 明示的に nullable と宣言するか、 + 明示的にデフォルト値を &null; と宣言しなければなりません。 + + + + +]]> + + + + + + たくさんの警告が Error 例外に変換されるようになりました: + + + + + オブジェクトでない値にプロパティを書き込もうとした場合。 + これより前のバージョンでは、 + &null; については stdClass オブジェクトが暗黙のうちに作られ、 + 空文字列については &false; となっていました。 + + + PHP_INT_MAX キーが既に使われている配列に対して、 + 要素を追加しようとした場合。 + + + 不正な型(配列やオブジェクト) + を配列のキーや文字列のオフセットとして使おうとした場合。 + + スカラー値に配列のインデックスを書き込もうとした場合 + 配列やTraversable でない値をアンパックしようとした場合 + + 未定義の、非修飾の定数にアクセスしようとした場合。 + これより前のバージョンでは、 + 非修飾の定数にアクセスしようとすると、警告が発生し、 + 文字列として解釈されていました。 + + + 可変長引数でない組み込み関数に、間違った数の引数を渡した場合、 + ArgumentCountError がスローされるようになりました。 + + + 無効な countable 型を count に渡した場合、 + TypeError がスローされるようになりました。 + + + + + 多くの notice が警告に変換されるようになりました: + + + + 未定義の変数を読み取ろうとした場合 + 未定義のプロパティを読み取ろうとした場合 + 未定義の配列のキーを読み取ろうとした場合 + オブジェクトでない値のプロパティを読み取ろうとした場合 + 配列でない値のインデックスにアクセスしようとした場合 + 配列を文字列に変換しようとした場合 + リソースを配列のキーとして使おうとした場合 + null や bool 値や float の値を文字列オフセットとして使おうとした場合 + 境界を超えて文字列のオフセットを読み取ろうとした場合 + 文字列のオフセットに空文字列を割り当てようとした場合 + + + + + + + 文字列のオフセットに複数バイトを割り当てようとすると、警告が発生するようになりました。 + + + + + ソースファイル中に(文字列の範囲外のNUL バイトのような) + 想定外の文字が含まれていた場合、 + コンパイル時に警告を出す代わりに、 + ParseError がスローされるようになりました。 + + + + + 例外がキャッチされなかった場合、 + "クリーンなシャットダウン" が行われます。 + これは、例外がキャッチされなかった後、 + デストラクタが呼ばれるということです。 + + + + + コンパイル時の致命的なエラー + "Only variables can be passed by reference" は、 + 実行時まで遅延され、 + "Argument cannot be passed by reference" + という Error 例外に変換されるようになりました。 + + + + + "Only variables should be passed by reference" という警告は、 + "Argument cannot be passed by reference" + という例外に変換されるようになりました。 + + + + + 無名クラスのために生成される名前が変更されました。 + 最初の親クラスやインターフェイスの名前が含まれるようになっています: + + + + ParentClass@anonymous +new class implements FirstInterface, SecondInterface {}; +// -> FirstInterface@anonymous +new class {}; +// -> class@anonymous +?> +]]> + + + + 上で示した名前の後に、NULバイトやユニークなサフィックスが続きます。 + + + + + トレイトのエイリアス調整において、 + クラス名を指定していないメソッド参照は、 + 曖昧でないことが必須になりました: + + + + +]]> + + + + T1::func()T2::func() + が両方存在している場合、 + PHP 8.0.0 より前のバージョンでは、 + このコードは黙って動作し、func は + T1::func を参照するものと想定されていました。 + PHP 8.0.0 からは、このコードは致命的なエラーが発生します。 + T1::func または T2::func + を明示的に書く必要があります。 + + + + + トレイトで定義される抽象メソッドのシグネチャは + それを実装するクラスのメソッド側で、 + 一致しているかがチェックされるようになりました: + + + + +]]> + + + + + + + 無効にされている関数は、存在しない関数であるかのように扱われるようになりました。 + 無効にされている関数を呼び出しても unknown と報告されますし、 + 無効にされている関数を再定義することも可能になっています。 + + + + + data:// ストリームラッパーは書き込み可能ではなくなりました。 + これは、ドキュメント化されている振る舞いに一致します。 + + + + + 算術演算子とビット演算子 + +, -, + *, /, + **, %, + <<, >>, + &, + |, ^, + ~, ++, + -- は、オペランドのひとつが配列だったり、 + &resource; だったり、オーバーロードされていない &object; だったりした場合に、 + 一貫して + TypeError をスローするようになりました。 + これに対する唯一の例外は、配列と配列を + + でマージする操作で、 + これはまだサポートされています。 + + + + + + float 型から文字列型へのキャストは、 + ロケールに依存しないように常に振る舞うようになります。 + + + + +]]> + + + + 数値のフォーマットをカスタマイズする方法については、 + printf, number_format 関数 + および NumberFormatter メソッドを参照ください。 + + + + + + 推奨されなくなっていた、 + オフセットを指定してアクセスするための波括弧のサポートが削除されました。 + + + + +]]> + + + + + + + private メソッドに final 修正子を指定した場合、 + そのメソッドがコンストラクタでない限り、警告が発生するようになります。 + + + + + + オブジェクトのコンストラクタで + exit が呼び出された場合、 + オブジェクトのデストラクタはコールされなくなりました。 + これは、コンストラクタが例外をスローしたときの振る舞いと一致します。 + + + + + 名前空間に含まれる名前には、 + ホワイトスペースを含めることができなくなりました。 + つまり、Foo\Bar は名前空間の名前として認識されますが + Foo \ Bar は認識されなくなったということです。 + 逆に、予約語のキーワードは名前空間の一部として許されるようになりました。 + これによって、コードの解釈が変わるかもしれません。 + new\xconstant('new\x') と同じですが、 + new \x() とは異なります。 + + + + + + 三項演算子をネストする場合、明示的に括弧が必要になりました。 + + + + + + debug_backtrace と + Exception::getTrace メソッド + は、引数にリファレンスを取らなくなりました。 + これにより、バックトレースを通じて、関数の引数を変更できなくなります。 + + + + + 数値形式の文字列の扱いが、より直感的で間違いにくいものに変更されました。 + ホワイトスペースが前に付いている場合の扱いと一貫性を持たせるため、 + 数値形式の文字列の後にホワイトスペースを付けることが許されるようになりました。 + これがもっとも影響するのは以下です: + + + + is_numeric 関数 + 文字列同士の比較 + 型宣言 + インクリメントとデクリメント演算 + + + + "数値が始めに来る文字列" の概念は殆どなくなっています; + このケースは、移行を容易にするために存在しています。 + + "A non well-formed numeric value encountered" という + E_NOTICE が発生する文字列 + は、"A non-numeric value encountered" という + E_WARNING が発生するようになっています。 + そして、"A non-numeric value encountered" という + E_WARNING が発生していた全ての文字列は、 + TypeError が発生するようになりました。 + + これが最も影響するのは、以下の場合です: + + + + 算術演算 + ビット演算 + + + + この E_WARNING から + TypeError への変更は、 + 不正な文字列オフセットの場合に発生する + "Illegal string offset 'string'" という E_WARNING + にも影響します。 + 文字列から int/float に明示的にキャストする場合の振る舞いは変更されていません + + + + + + マジックメソッドは引数と戻り値の型を持ち、 + 宣言された場合はチェックが行われるようになりました。 + シグネチャは次の一覧と一致させるべきです: + + + + __call(string $name, array $arguments): mixed + __callStatic(string $name, array $arguments): mixed + __clone(): void + __debugInfo(): ?array + __get(string $name): mixed + __invoke(mixed $arguments): mixed + __isset(string $name): bool + __serialize(): array + __set(string $name, mixed $value): void + __set_state(array $properties): object + __sleep(): array + __unserialize(array $data): void + __unset(string $name): void + __wakeup(): void + + + + + + + call_user_func_array 関数に渡される + 配列のキーは、引数名として解釈されるようになりました。 + これより前のバージョンでは、静かに無視されていました。 + + + + + 名前空間の内部で assert() と呼ばれる関数を宣言する + ことは許されなくなり、 + E_COMPILE_ERROR が発生するようになりました。 + assert 関数は + PHP エンジンによって特別扱いを受けることになっているので、 + 名前空間の内部で同じ名前が定義されていると、 + 動作が一貫しなくなる原因になるからです。 + + + + + + + + リソースからオブジェクトへの移行 + + + いくつかの &resource; が、&object; に移行しました。 + is_resource 関数を使って戻り値をチェックしているコードは、 + &false; を返すことをチェックするコードに置き換えるべきです。 + + + + + curl_init 関数は + &resource; ではなく、CurlHandle + オブジェクトを返すようになりました。 + curl_close 関数はもはや意味をなしません。 + CurlHandle インスタンスは、 + 参照されなくなった場合に、自動的に破棄されます。 + + + + + curl_multi_init 関数は + &resource; ではなく、CurlMultiHandle + オブジェクトを返すようになりました。 + curl_multi_close 関数はもはや意味をなしません。 + CurlMultiHandle インスタンスは、 + 参照されなくなった場合に、自動的に破棄されます。 + + + + + curl_share_init 関数は + &resource; ではなく、CurlShareHandle + オブジェクトを返すようになりました。 + curl_share_close 関数はもはや意味をなしません。 + CurlShareHandle インスタンスは、 + 参照されなくなった場合に、自動的に破棄されます。 + + + + + enchant_broker_init 関数は + &resource; ではなく、EnchantBroker + オブジェクトを返すようになりました。 + + + + + enchant_broker_request_dict と + enchant_broker_request_pwl_dict 関数は + &resource; ではなく、EnchantDictionary + オブジェクトを返すようになりました。 + + + + + GD 拡張モジュールは 画像の基本的なデータ構造として + &resource; ではなく、GdImage + オブジェクトを使うようになりました。 + imagedestroy 関数はもはや意味をなしません。 + GdImage インスタンスは、 + 参照されなくなった場合に、自動的に破棄されます。 + + + + + openssl_x509_read と + openssl_csr_sign 関数は + &resource; ではなく、OpenSSLCertificate + オブジェクトを返すようになりました。 + openssl_x509_free 関数は非推奨となり、 + もはや意味をなしません。 + OpenSSLCertificate インスタンスは、 + 参照されなくなった場合に、自動的に破棄されます。 + + + + + openssl_csr_new 関数は + &resource; ではなく、OpenSSLCertificateSigningRequest + オブジェクトを返すようになりました。 + + + + + openssl_pkey_new 関数は + &resource; ではなく、OpenSSLAsymmetricKey + オブジェクトを返すようになりました。 + openssl_pkey_free 関数は非推奨となり、 + もはや意味をなしません。 + OpenSSLAsymmetricKey インスタンスは、 + 参照されなくなった場合に、自動的に破棄されます。 + + + + + shmop_open 関数は + &resource; ではなく、Shmop + オブジェクトを返すようになりました。 + shmop_close 関数は非推奨となり、 + もはや意味をなしません。 + Shmop インスタンスは、 + 参照されなくなった場合に、自動的に破棄されます。 + + + + + socket_create, socket_create_listen, + socket_accept, socket_import_stream, + socket_addrinfo_connect, socket_addrinfo_bind, + socket_wsaprotocol_info_import 関数は + &resource; ではなく、Socket + オブジェクトを返すようになりました。 + socket_addrinfo_lookup 関数は + &resource; ではなく、AddressInfo + オブジェクトを返すようになりました。 + + + + + msg_get_queue 関数は + &resource; ではなく、SysvMessageQueue + オブジェクトを返すようになりました。 + + + + + sem_get 関数は + &resource; ではなく、SysvSemaphore + オブジェクトを返すようになりました。 + + + + + shm_attach 関数は + &resource; ではなく、SysvSharedMemory + オブジェクトを返すようになりました。 + + + + + xml_parser_create と + xml_parser_create_ns 関数は + &resource; ではなく、XMLParser + オブジェクトを返すようになりました。 + xml_parser_free 関数はもはや意味をなしません。 + XMLParser インスタンスは、 + 参照されなくなった場合に、自動的に破棄されます。 + + + + + XMLWriter 関数 は + &resource; ではなく、XMLWriter + オブジェクトを受け入れ、返すようになりました。 + + + + + inflate_init 関数は + &resource; ではなく、InflateContext + オブジェクトを返すようになりました。 + + + + + deflate_init 関数は + &resource; ではなく、DeflateContext + オブジェクトを返すようになりました。 + + + + + + + COM および .Net (Windows) + + + タイプライブラリ から + 大文字小文字を区別せずに定数をインポートする機能は削除されました。 + com_load_typelib 関数の第二引数は + もはや &false; ではありません。 + com.autoregister_casesensitive はもはや無効ではなくなりました。 + つまり、com.typelib_file + の #case_insensitive マーカーは無視されます。 + + + + + CURL + + + CURLOPT_POSTFIELDS は、 + オブジェクトを配列として受け入れなくなりました。 + オブジェクトを配列として解釈させるためには、 + 明示的に (array) キャストを行って下さい。 + 配列を受け入れる他のオプションにも、同じことが当てはまります。 + + + + + 日付と時刻 + + + mktime と + gmmktime 関数は + 少なくともひとつ引数が必要になりました。 + 現在のタイムスタンプを取得する用途には + time 関数が使えます。 + + + + + DOM + + + DOM 拡張モジュールで実装されておらず、振る舞いも持たず、 + テストデータもないクラスが削除されました。 + これらのクラスは、最新のDOM標準からも削除されています: + + + + DOMNameList + DomImplementationList + DOMConfiguration + DomError + DomErrorHandler + DOMImplementationSource + DOMLocator + DOMUserDataHandler + DOMTypeInfo + DOMStringExtend + + + + DOM 拡張モジュールで実装されておらず、 + 振る舞いも持たない以下のメソッドが削除されました: + + + + DOMNamedNodeMap::setNamedItem + DOMNamedNodeMap::removeNamedItem + DOMNamedNodeMap::setNamedItemNS + DOMNamedNodeMap::removeNamedItemNS + DOMText::replaceWholeText + DOMNode::compareDocumentPosition + DOMNode::isEqualNode + DOMNode::getFeature + DOMNode::setUserData + DOMNode::getUserData + DOMDocument::renameNode + + + + + + Enchant + + + + + enchant_broker_list_dicts, + enchant_broker_describe, + enchant_dict_suggest 関数は、 + &null; ではなく、空の配列を返すようになりました。 + + + + + + + Exif + + + read_exif_data 関数は削除されました。 + exif_read_data 関数を代わりに使うべきです。 + + + + + フィルタ + + + + + FILTER_VALIDATE_URL フラグのための定数 + FILTER_FLAG_SCHEME_REQUIRED と + FILTER_FLAG_HOST_REQUIRED が削除されました。 + scheme + と host は(かつてもそうでしたが) 常に必須です。 + + + + + filter_input 関数などで使われている定数 + INPUT_REQUESTINPUT_SESSION + は削除されました。 + これらは実装されたことがなく、使うと常に警告が発生していました。 + + + + + + + GD + + + + + 推奨されなくなっていた image2wbmp 関数は削除されました。 + + + + + + 推奨されなくなっていた関数 + png2wbmpjpeg2wbmp + が削除されました。 + + + + + + imagecropauto 関数の + mode 引数のデフォルトは + -1 ではなくなりました。 + IMG_CROP_DEFAULT を代わりに使うべきです。 + + + + + Windows では、php_gd2.dll の名前が、php_gd.dll に変更されました。 + + + + + + + GMP + + + gmp_random 関数は削除されました。 + gmp_random_range や + gmp_random_bits 関数を代わりに使うべきです。 + + + + + Iconv + + + エラーが発生した時に + errno を適切に設定していなかった + iconv の実装はもはやサポートされなくなりました。 + + + + + IMAP + + + + + imap_headerinfo 関数で + 未使用になっていた default_host 引数が削除されました。 + + + + + imap_headerinfo 関数のエイリアスだった + imap_header 関数は削除されました。 + + + + + + + 国際化関数 + + + + + 推奨されなくなっていた定数 + INTL_IDNA_VARIANT_2003 が削除されました。 + + + + + + 推奨されなくなっていた定数 + Normalizer::NONE が削除されました。 + + + + + + + LDAP + + + + + 推奨されなくなっていた関数 + ldap_sort, + ldap_control_paged_result, + ldap_control_paged_result_response は削除されました。 + + + + + ldap_set_rebind_proc のインターフェイスが変更されました。 + callback 引数は空文字列を受け入れなくなりました。 + &null; を代わりに使うべきです。 + + + + + + + マルチバイト文字列 + + + + + INI ディレクティブ + mbstring.func_overload + は削除されました。 + 関連する定数 + MB_OVERLOAD_MAIL, + MB_OVERLOAD_STRING, + MB_OVERLOAD_REGEX も削除されています。 + mb_get_info 関数の + "func_overload" と + "func_overload_list" エントリも削除されています。 + + + + + mb_parse_str は、 + 結果の配列を指定しないと使えなくなりました。 + + + + + たくさんの mbregex の関数エイリアスが削除されました。 + どの関数を代わりに使うべきなのかは、以下の一覧を参照ください: + + + + mbregex_encodingmb_regex_encoding + mberegmb_ereg + mberegimb_eregi + mbereg_replacemb_ereg_replace + mberegi_replacemb_eregi_replace + mbsplitmb_split + mbereg_matchmb_ereg_match + mbereg_searchmb_ereg_search + mbereg_search_posmb_ereg_search_pos + mbereg_search_regsmb_ereg_search_regs + mbereg_search_initmb_ereg_search_init + mbereg_search_getregsmb_ereg_search_getregs + mbereg_search_getposmb_ereg_search_getpos + mbereg_search_setposmb_ereg_search_setpos + + + + + + mb_ereg_replace 関数の + e 修正子が削除されました。 + mb_ereg_replace_callback 関数を代わりに使って下さい。 + + + + + mb_ereg_replace 関数に文字列でないパターン引数を渡すと、 + ASCII コードポイントではなく、文字列として解釈されるようになりました。 + 以前のバージョンの振る舞いは、 + 明示的に chr 関数を呼び出すことで復元できます。 + + + + + mb_strpos, + mb_strrpos, mb_stripos, + mb_strripos, mb_strstr, + mb_stristr, mb_strrchr, + mb_strrichr 関数の + needle 引数は、空に出来るようになりました。 + + + + + mb_decode_numericentity + 関数で内部的に使われていなかった + 引数 is_hex は削除されました。 + + + + + mb_strrpos 関数の第三引数に、 + オフセットではなくエンコーディングを渡していた古い振る舞いは削除されました。 + 明示的にオフセットに + 0 を渡し、 + 第四引数にエンコーディングを渡す方法を代わりに使うべきです。 + + + + + 文字エンコーディング ISO_8859-* のエイリアスは + ISO8859-* に置き換えられました。 + これは、iconv 拡張モジュールと相互運用性を向上させるためです。 + アンダースコア付きの mbregex の ISO 8859 aliases + (ISO_8859_*ISO8859_*) + も削除されています。 + + + + + mb_ereg と + mb_eregi 関数は、 + マッチに成功した場合に &true; を返すようになりました。 + これより前のバージョンでは、 + matches が渡されなかった場合に + 整数 1 が返されていました。 + matches が渡された場合には + max(1, strlen($matches[0])) が返されていました。 + + + + + + + OCI8 + + + + + OCI-Lob クラスは + OCILob と呼ばれるようになり、 + OCI-Collection クラスは + OCICollection と呼ばれるようになりました。 + これは、PHP 8 の arginfo 型アノテーションツールの + 名前に関する規約で強制されたものです。 + + + + + いくつかの関数エイリアスが推奨されなくなりました。 + + + + + oci_internal_debug 関数と + そのエイリアス ociinternaldebug は削除されました。 + + + + + + + ODBC + + + + + odbc_connect 関数は + 接続を使い回さなくなりました。 + + + + + odbc_exec 関数で使われていなかった + flags 引数が削除されました。 + + + + + + + OpenSSL + + + + + openssl_seal と + openssl_open 関数には + method を渡すことが必須になりました。 + なぜなら、以前のデフォルト値 "RC4" + はセキュアでないと見なされているからです。 + + + + + + + 正規表現 (Perl互換) + + + 不正なエスケープシーケンスを渡した場合、 + もはやリテラルと解釈されなくなりました。 + リテラルと解釈する振る舞いは X 修正子で必須でしたが、 + 無視されるようになっています。 + + + + + PHP Data Objects(PDO) + + + + + デフォルトのエラーハンドリングのモードが + "silent" から "exceptions" に変更されました。 + 詳細は Errors とエラーハンドリング を参照ください。 + + + + + + いくつかの PDOクラスのメソッドシグネチャが変更されました: + + + + PDO::query(string $query, ?int $fetchMode = null, mixed ...$fetchModeArgs) + PDOStatement::setFetchMode(int $mode, mixed ...$args) + + + + + + + + PDO ODBC + + + &php.ini; ディレクティブ + pdo_odbc.db2_instance_name は削除されました。 + + + + + PDO MySQL + + + PDO::inTransaction は、 + PDO が管理しているおおよその情報ではなく、 + 実際のトランザクションの状態を報告するようになりました。 + クエリが "暗黙のコミット" に依存していた場合、 + PDO::inTransaction は後に &false; を返します。 + なぜなら、トランザクションが既にアクティブではないからです。 + + + + + PostgreSQL + + + + + pg_connect 関数で + 推奨されなくなっていた、 + 接続文字列の代わりに複数の引数を受け入れる文法は + もはやサポートされなくなりました。 + + + + + 推奨されなくなっていた + pg_lo_import と + pg_lo_export 関数の、 + 最後の引数で接続を渡すシグネチャはサポートされなくなりました。 + 代わりに、接続は最初の引数で渡すべきです。 + + + + + pg_fetch_all 関数 + は 結果セットの行が0行の場合に、&false; ではなく空の配列を返すようになりました。 + + + + + + + Phar + + + phar に関連付けられたメタデータは、自動的にアンシリアライズされなくなりました。 + これは、オブジェクトのインスタンス化やオートローディングなどに起因する、 + 潜在的なセキュリティ上の脆弱性を修正するためです。 + + + + + + リフレクション + + + + + メソッドシグネチャに関する変更 + + + + ReflectionClass::newInstance($args) + ReflectionFunction::invoke($args) + ReflectionMethod::invoke($object, $args) + + + + は、以下のように変更されました: + + + + ReflectionClass::newInstance(...$args) + ReflectionFunction::invoke(...$args) + ReflectionMethod::invoke($object, ...$args) + + + + PHP 7 と PHP 8 の間で互換性を保たなければならないコードは、 + 両方のバージョンで互換性を取るために、以下のようなシグネチャが使えます: + + + + ReflectionClass::newInstance($arg = null, ...$args) + ReflectionFunction::invoke($arg = null, ...$args) + ReflectionMethod::invoke($object, $arg = null, ...$args) + + + + + + ReflectionType::__toString メソッドは、 + 完全な型のデバッグ用の文字列表現を返すようになり、非推奨ではなくなりました。 + 特に、nullable な型に対しては、nullを代入できることを示す情報が含まれるようになります。 + 戻り値のフォーマットは安定しておらず、PHP のバージョンによって変わる可能性があります。 + + + + + リフレクションの export() メソッドは削除されました。 + 代わりに、リフレクションオブジェクトを文字列にキャストすることができます。 + + + + + ReflectionMethod::isConstructor と + ReflectionMethod::isDestructor メソッドは + インターフェイスの + __construct() と + __destruct() についても &true; を返すようになりました。 + これより前のバージョンでは、クラスとトレイトのメソッドに対してだけ &true; を返していました。 + + + + + ReflectionType::isBuiltin メソッドは、 + ReflectionNamedType クラスに移動しました。 + ReflectionUnionType クラスには存在しなくなっています。 + + + + + + + Sockets + + + + + 推奨されなくなっていた + socket_addrinfo_lookup 関数の + flags に指定する + AI_IDN_ALLOW_UNASSIGNED および + AI_IDN_USE_STD3_ASCII_RULES は削除されました。 + + + + + + + Standard PHP Library (SPL) + + + + + SplFileObject::fgetss メソッドは削除されました。 + + + + + SplFileObject::seek は、 + 常に行の先頭にシークするようになりました。 + これより前のバージョンでは、 + >=1 を position に指定すると、次の行の先頭を探していました。 + + + + + SplHeap::compare + はメソッドシグネチャを指定するようになりました。 + このメソッドを実装する継承先のクラスは、 + 互換性のあるメソッドシグネチャを持たなければなりません。 + + + + + SplDoublyLinkedList::push, + SplDoublyLinkedList::unshift および + SplQueue::enqueue は、&true; ではなく + void を返すようになりました。 + + + + + spl_autoload_register 関数は、 + 引数が不正な場合には常に TypeError を発生させるようになりました。 + よって、2番目の引数 do_throw は無視され、 + &false; を設定すると、警告が発生します。 + + + + + SplFixedArray クラスは + Iterator ではなく + IteratorAggregate を実装しました。 + + SplFixedArray::rewind, + SplFixedArray::current, + SplFixedArray::key, + SplFixedArray::next, + SplFixedArray::valid は削除されました。 + + 代替として、SplFixedArray::getIterator + が追加されました。 + + SplFixedArray を通じて明示的にイテレーションを行うあらゆるコードは、 + SplFixedArray::getIterator メソッドを使い + Iterator を取得しなければなりません。 + + これは、SplFixedArray + がネストされたループ中で安全に使えるようになったということです。 + + + + + + + 標準ライブラリ + + + + + assert 関数は + 文字列の引数を評価しなくなりました。 + 代わりに、他の引数と同じように扱われます。 + assert('$a == $b') ではなく + assert($a == $b) を使うべきです。 + + INI ディレクティブ assert.quiet_eval と + 定数 ASSERT_QUIET_EVAL も削除されました。 + なぜなら、もはや何の効果も無いからです。 + + + + + parse_str は、 + 結果の配列を指定しなければ使えなくなりました。 + + + + + string.strip_tags フィルタは削除されました。 + + + + + strpos, + strrpos, + stripos, + strripos, + strstr, + strchr, + strrchr, + stristr 関数の + needle + 引数は常に文字列として解釈されるようになりました。 + これより前のバージョンでは、 + 文字列でない引数は ASCII コードポイントと解釈されていました。 + chr 関数を明示的に呼ぶことで、 + 以前の振る舞いを復元できます。 + + + + + strpos, + strrpos, + stripos, + strripos, + strstr, + stristr, + strrchr 関数の + needle 引数は、空に出来るようになりました。 + + + + + substr, + substr_count, + substr_compare, + iconv_substr 関数の + length 引数は &null; も指定できるようになりました。 + &null; を指定した場合、 + length 引数が指定されなかったことと同じように振る舞います。 + よって、この場合、空文字列ではなく、残りの文字列を返します。 + + + + + array_splice 関数の + length 引数は &null; も指定できるようになりました。 + &null; を指定した場合、引数を省略した場合と同じ振る舞いをします。 + よって、offset + から配列の最後までの全ての要素を削除する動きになります。 + + + + + vsprintf, + vfprintf, + vprintf 関数の + args 引数は、配列であることが必須になりました。 + これより前のバージョンでは、あらゆる型の値を受け入れていました。 + + + + + password_hash 関数の + 'salt' オプションはサポートされなくなりました。 + 'salt' オプションを使うと警告が生成され、 + 指定された salt は無視されます。 + そして生成された salt が代わりに使われます。 + + + + + quotemeta 関数は、空文字列を渡すと空文字列を返すようになりました。 + これより前のバージョンでは、&false; を返していました。 + + + + + 以下の関数は削除されました: + + + + hebrevc + convert_cyr_string + money_format + ezmlm_hash + restore_include_path + get_magic_quotes_gpc + get_magic_quotes_runtime + fgetss + + + + + + 定数 FILTER_SANITIZE_MAGIC_QUOTES は削除されました。 + + + + + ($pieces, + $glue) のような形で、implode + 関数を逆の引数の順番で呼ぶことはサポートされなくなりました。 + + + + + parse_url 関数は、 + query および fragment が存在しないことと、空であることを区別するようになりました: + + + + http://example.com/foo → query = null, fragment = null + http://example.com/foo? → query = "", fragment = null + http://example.com/foo# → query = null, fragment = "" + http://example.com/foo?# → query = "", fragment = "" + + これより前のバージョンでは、上の全ての場合で、query と fragment の値が &null; になっていました。 + + + + + var_dump と + debug_zval_dump 関数は + INIディレクティブ precision + ではなく + serialize_precision + を使って浮動小数点を印字するようになりました。 + デフォルトの設定では、浮動小数点はこのデバッグ関数によって + 全精度で印字されるようになるということです。 + + + + + __sleep() が返す + 配列に存在しないプロパティが含まれていた場合、 + 静かに無視されるようになりました。 + これより前のバージョンでは、 + そうしたプロパティは値 &null; を持つかのようにシリアライズされていました。 + + + + + デフォルトの起動時のロケールは、常に + "C" になりました。 + デフォルトでは、どのロケールからも環境を継承しません。 + これより前のバージョンでは、 + LC_ALL は + "C" に設定されていましたが、 + LC_CTYPE は環境から情報を継承していました。 + しかしながら、関数によっては、明示的に + setlocale を呼び出さないと + 継承した環境を尊重しないものもあります。 + ロケールをデフォルトから変えるためには、 + setlocale 関数を明示的に呼ぶことが常に必須になりました。 + + + + + 非推奨になっていた + crypt 関数が + DES にフォールバックする振る舞いが削除されました。 + 不明な salt フォーマットを crypt 関数に渡すと、 + 弱い DES ハッシュにフォールバックするのではなく、 + *0 という値になり、失敗するようになります。 + + + + + crypt 関数に、 + SHA256/SHA512 の範囲外の round を指定すると、 + 最も近い境界値に切り詰めるのではなく、 + *0 という値になり、失敗するようになりました。 + これは、glibc の振る舞いと一致します。 + + + + + 配列に比較結果が等しい要素が含まれている場合、ソートを行う関数の結果が変わる可能性があります。 + + + + + コールバックを受け入れるあらゆる関数のうち、 + リファレンスの引数を受け入れるように明示的に指定して「いない」 + ものに対し、 + リファレンスを使ったコールバックを渡すと警告が発生するようになりました。 + 例としては、 + array_filter や + array_reduce 関数があります。 + これらでほとんどの関数の例を示していますが、全てではありません。 + + + + + file_get_contents 関数のように、 + 関数が使うHTTPストリームラッパーは、 + デフォルトで HTTP/1.0 ではなく、 + HTTP/1.1 を指定するようになりました。 + これによって、クライアントの振る舞いが変わるわけではありませんが、 + サーバーが異なるレスポンスを返す可能性があります。 + 古い振る舞いをさせるには、 + 以下のようにして 'protocol_version' + ストリームコンテキストオプションを設定して下さい。 + + + + ['protocol_version' => '1.0']]); +echo file_get_contents('http://example.org', false, $ctx); +?> +]]> + + + + + + 明示的に salt を指定せず + crypt 関数を呼ぶことはサポートされなくなりました。 + 自動的に生成される salt で強いハッシュを生成したい場合、 + 代わりに password_hash を使って下さい。 + + + + + substr, + mb_substr, + iconv_substr, + grapheme_substr 関数は、 + 文字列の境界を越えたオフセットを一貫した形で処理するようになりました。 + これより前のバージョンでは、空文字列ではなく &false; を返す場合がありました。 + + + + + Windows では、 + シェルを使い、プログラムを実行する関数 + (proc_open, exec, + popen など) は、 + 一貫して %comspec% /s + /c "$commandline" を使うようになりました。 + これは、(追加のクォート無しで) $commandline を実行することと同じです。 + + + + + + + Sysvsem + + + + + sem_get 関数の + auto_release 引数は、 + int ではなく bool の値を受け入れるように変更されました。 + + + + + + + Tidy + + + + + 内部的に使われていなかった + use_include_path 引数が、 + tidy_repair_string 関数から削除されました。 + + + + + tidy::repairString, + tidy::repairFile が、staticメソッドになりました。 + + + + + + + Tokenizer + + + + + T_COMMENT トークンは最後の改行文字を含まなくなりました。 + 改行文字はその後に続く + T_WHITESPACE トークンに含まれるようになります。 + 注意すべきなのは、 + T_COMMENT の後にホワイトスペースが続くとは限らないことです。 + T_CLOSE_TAG やファイルの終端が続く場合もありえます。 + + + + + 名前空間の中にある名前は、 + T_NAME_QUALIFIED + (Foo\Bar), + T_NAME_FULLY_QUALIFIED + (\Foo\Bar), + T_NAME_RELATIVE + (namespace\Foo\Bar) + トークンを使って表現されるようになりました。 + + T_NS_SEPARATOR トークンは + 単独の名前空間の区切り文字としてだけ使われます。 + そして、グループ化されたuse宣言と一緒に使った場合にだけ文法的に合法です。 + + + + + + + + XMLReader + + + XMLReader::open, + XMLReader::XML が staticメソッドになりました。 + これらは、まだインスタンスメソッドとして呼び出すことが出来ますが、 + クラスを継承し、これらのメソッドをオーバーライドする場合は、 + それらは static として宣言する必要があります。 + + + + + XML-RPC + + + XML-RPC 拡張モジュールは PECL に移動し、PHPの一部として配布されなくなりました。 + + + + + Zip + + + ZipArchive::OPSYS_Z_CPM は削除されました(この名前は typo でした)。 + ZipArchive::OPSYS_CPM を代わりに使って下さい。 + + + + + Zlib + + + + + gzgetss 関数が削除されました。 + + + + + zlib.output_compression + は、Content-Type: image/* を自動的に無効にすることはなくなりました。 + + + + + + + Windows の PHP Test Packs + + + テストランナーの名前が、run-test.php から + run-tests.php に変更されました。 + これは、php-src の名前に合わせるためです。 + + + + + diff --git a/appendices/migration80/new-classes.xml b/appendices/migration80/new-classes.xml new file mode 100644 index 0000000000..ae2950f2bf --- /dev/null +++ b/appendices/migration80/new-classes.xml @@ -0,0 +1,172 @@ + + + + + 新しいクラスとインターフェイス + + + cURL + + + + + CurlHandle + + + + + CurlMultiHandle + + + + + CurlShareHandle + + + + + + + Enchant + + + + + EnchantBroker + + + + + EnchantDictionary + + + + + + + GD + + + + + GdImage + + + + + + + OpenSSL + + + + + OpenSSLAsymmetricKey + + + + + OpenSSLCertificate + + + + + OpenSSLCertificateSigningRequest + + + + + + + Shmop + + + + + Shmop + + + + + + + Sockets + + + + + AddressInfo + + + + + Socket + + + + + + + Systen V + + + + + SysvMessageQueue + + + + + SysvSemaphore + + + + + SysvSharedMemory + + + + + + + XML Parser + + + + + XMLParser + + + + + + + XMLWriter + + + + + XMLWriter + + + + + + + Zlib + + + + + DeflateContext + + + + + InflateContext + + + + + + diff --git a/appendices/migration80/new-features.xml b/appendices/migration80/new-features.xml new file mode 100644 index 0000000000..cceea743dd --- /dev/null +++ b/appendices/migration80/new-features.xml @@ -0,0 +1,680 @@ + + + + + + 新機能 + + + PHP コア + + + 名前付き引数 + + + + 名前付き引数 のサポートが追加されました。 + + + + + アトリビュート + + + アトリビュート のサポートが追加されました。 + + + + + + + + + コンストラクタのプロパティ昇格機能 + + + コンストラクタの引数をプロパティへ昇格させる機能 が追加されました。 + + + + + + union 型 + + + union 型 のサポートが追加されました。 + + + + + + match 式 + + + match 式 のサポートが追加されました。 + + + + + + nullsafe 演算子 + + + nullsafe 演算子 (?->) のサポートが追加されました。 + + + + + + その他の新機能 + + + + + WeakMap クラスが追加されました。 + + + + + + ValueError クラスが追加されました。 + + + + + 任意の数の関数の引数が、可変長引数に置き換えられるようになりました。 + 但し、型に互換性がある場合に限ります。 + たとえば、次のようなコードが書けるようになります: + + + + +]]> + + + + + + 以下のようにして、static ("遅延静的束縛"における) 型が、 + 戻り値の型として使えるようになりました: + + + + +]]> + + + + + + + オブジェクトのクラス名を $object::class と書くことで取得できるようになりました。 + この結果は、get_class($object) と同じです。 + + + + + + &new; と &instanceof; が、 + new (expression)(...$args)$obj instanceof (expression) + という形で、任意の式と一緒に使えるようになりました。 + + + + + + 変数の文法に一貫性を持たせるため、いくつかの修正が適用されます。 + たとえば、Foo::BAR::$baz のような書き方が許可されるようになりました。 + + + + + + インターフェイス Stringable が追加されました。 + クラスが __toString() メソッドを定義していた場合、 + このインターフェイスが自動的に実装されます。 + + + + + + トレイトで、private な抽象メソッドを定義できるようになりました。 + このメソッドは、トレイトを使うクラスで実装されなければなりません。 + + + + + + throw が式として使えるようになりました。 + これによって、以下のような書き方ができるようになります: + + throw new Exception('Exception in arrow function'); +$user = $session->user ?? throw new Exception('Must have user'); +]]> + + + + + + + 引数のリストに付ける最後のカンマも、オプションで許可されるようになりました。 + + + + + + + + + 変数に保存せずに、 + 例外をキャッチするために、catch (Exception) というコードが書けるようになりました。 + + + + + + mixed 型のサポートが追加されました。 + + + + + + 親クラスで宣言された private メソッドは、 + 子クラスのメソッドに対して継承ルールを強制しなくなりました( + private final と宣言されたコンストラクタは例外です)。 + 次の例は、どういった制限がなくなるのかを示しています: + + +]]> + + + + + + + (int) $resource と同じ値を返す get_resource_id 関数が追加されました。 + よりわかりやすいAPIで、同じ機能を提供するものです。 + + + + + InternalIterator が追加されました。 + + + + + + + + 日付と時刻 + + + + + DateTime::createFromInterface と + DateTimeImmutable::createFromInterface が追加されました。 + + + + + + DateTime のフォーマット指定子 p が追加されました。 + これは P と同じですが、 + UTC の +00:00 ではなく、 + Z を返します。 + + + + + + + DOM + + + 新しいDOMの走査と管理を行う API を持つ + DOMParentNodeDOMChildNode + が追加されました。 + + + + + + フィルタ + + + FILTER_VALIDATE_BOOLEAN のエイリアスとして、 + FILTER_VALIDATE_BOOL が追加されました。 + 新しい名前のほうが望ましいです。なぜなら、 + 正規化された型の名前を使っているからです。 + + + + + Enchant + + + enchant_dict_add, enchant_dict_is_added, + LIBENCHANT_VERSION が追加されました。 + + + + + FPM + + + 新しいオプション pm.status_listen が追加されました。 + これによって、異なるエンドポイント(例: ポートやUDSファイル)から、 + ステータスを取得することが出来るようになります。 + 実行時間がかかっているリクエストを処理しているために、全ての子プロセスがビジーである場合、 + ステータスを取得するのに役立ちます。 + + + + + Hash + + + HashContext オブジェクトが、シリアライズ出来るようになりました。 + + + + + 国際化関数 + + + 定数 IntlDateFormatter::RELATIVE_FULL, + IntlDateFormatter::RELATIVE_LONG, + IntlDateFormatter::RELATIVE_MEDIUM, + IntlDateFormatter::RELATIVE_SHORT が追加されました。 + + + + + LDAP + + + 検索結果に含まれる参照メッセージの数を返す ldap_count_references が追加されました。 + + + + OPcache + + + opcache.record_warnings + INI ディレクティブが有効になっている場合、 + OPcache はコンパイル時の警告を記録し、次に include されたときにそれを繰り返します。 + これは、たとえキャッシュから情報を得た場合でも同じです。 + + + + + OpenSSL + + + 暗号化メッセージ構文(CMS) + (RFC 5652) のサポートが追加されました。 + これは、暗号化、復号化、署名、検証と読み込みの関数が含まれます。 + API は PKCS #7 の関数と似ていますが、新しいエンコーディングの定数が追加されています: + OPENSSL_ENCODING_DER, OPENSSL_ENCODING_SMIME + OPENSSL_ENCODING_PEM です。 + + + 証明書を使ってファイル中のメッセージを暗号化し、 + 結果を指定されたファイルに出力する openssl_cms_encrypt が追加されました。 + + + ファイル中の S/MIME メッセージを復号化し、 + 結果を指定されたファイルに出力する openssl_cms_decrypt が追加されました。 + + + CMSファイルを PEM 証明書の配列にエクスポートする openssl_cms_read が追加されました。 + + + 証明書と鍵を使ってファイル中のMIMEメッセージに署名し、 + 結果を指定されたファイルに出力する openssl_cms_sign が追加されました。 + + + データブロックが無傷なことや、 + 署名した人がその人であることを検証し、 + 署名した人の証明書を返す openssl_cms_verify が追加されました。 + + + + + + + 正規表現 (Perl互換) + + + 直近で発生した PCRE に関するエラーを人間が読みやすいメッセージとして返す + preg_last_error_msg が追加されました。 + これは、整数の enum を返していた preg_last_error を補完するものです。 + + + + + リフレクション + + + + + 以下のメソッドは、内部関数の引数のデフォルト値に関する情報を返すようになりました: + + + + ReflectionParameter::isDefaultValueAvailable + ReflectionParameter::getDefaultValue + ReflectionParameter::isDefaultValueConstant + ReflectionParameter::getDefaultValueConstantName + + + + + + + + SQLite3 + + + データベース上で認証する用途に使う、 + ユーザー空間のコールバックを設定する SQLite3::setAuthorizer と、 + それに対応するクラス定数が追加されました。 + + + + + + 標準ライブラリ + + + + + 文字列に needle が含まれているかどうかを調べる + str_contains 関数が追加されました。 + + + 文字列が needle で始まるかを調べる + str_starts_with 関数が追加されました。 + + + 文字列が needle で終わるかを調べる + str_ends_with 関数が追加されました。 + + + + + + + IEEE 754 のセマンティクスに沿って浮動小数点数の割り算を行う + fdiv 関数が追加されました。 + ゼロ除算は、well-defined とみなされ、 + Inf, + -Inf, NaN のいずれかを返します。 + + + + + エラーメッセージで使うのに便利な型を返す + get_debug_type 関数が追加されました。 + gettype と違うのは、 + この関数は正規化された型の名前を使い、オブジェクトのときはクラス名を返し、 + リソースの場合はリソースのタイプを示すことです。 + + + + + + printf 関数とその仲間の関数は、 + フォーマット指定子 %h%H をサポートしました。 + これらは %g および %G と同じですが、 + 10進数の区切り文字を LC_NUMERIC ロケールによって決めるのではなく、 + 常に "." を使います。 + + + + + printf 関数とその仲間の関数は、 + 精度または広さを指定する用途のために "*" をサポートしました。 + この場合、精度/広さは printf の引数として渡します。 + 精度として -1%g, %G, + %h, %H に指定することも出来ます。 + たとえば、次のコードで、PHP のデフォルトの浮動小数点のフォーマットを再現することができます: + + + + +]]> + + + + + + proc_open に、疑似端末(PTY) ディスクリプタのサポートが追加されました。 + 以下のコードは、 + stdin, stdout, stderr + を同じPTYにアタッチします: + + + + +]]> + + + + + + proc_open 関数は、 + ソケットペアのディスクリプタをサポートするようになりました。 + 以下のコードは、異なるソケットペアを + stdin, stdout, + stderr にアタッチします: + + + + +]]> + + + + Windows では、パイプと異なり、ソケットは ブロッキングI/O の問題の影響を受けません。 + しかし、全てのプログラムが標準入出力のソケットで正しく動くとは限りません。 + + + + + ソート関数が安定ソートになりました。 + これは、比較して等しいと判定された要素は、もともとの順序を維持するということです。 + + + + + + array_diff, array_intersect や、 + そのバリエーションの関数は、単一の配列を引数に取れるようになりました。 + これによって、以下のような使い方が出来るようになるということです: + + + + +]]> + + + + + + ob_implicit_flush 関数の flag + 引数が、int ではなく bool を受け取るように変更されました。 + + + + + + + Tokenizer + + + PhpToken クラスは、 + オブジェクトベースのインターフェイスを tokenizer に追加します。 + このクラスは、統一された、人間工学に基づいた表現を提供しながら、 + メモリ効率がよく、高速になっています。 + + + + + + Zip + + + + + Zip 拡張モジュールが、1.19.1 に更新されました。 + + + + + エントリの変更時間を設定するための + ZipArchive::setMtimeName, + ZipArchive::setMtimeIndex が追加されました。 + + + + + アーカイブがクローズされている間に行われた更新情報を提供する + ZipArchive::registerProgressCallback が追加されました。 + + + + + アーカイブがクローズされている間にキャンセルを許可する + ZipArchive::registerCancelCallback が追加されました。 + + + + + エントリの内容を置換する + ZipArchive::replaceFile が追加されました。 + + + + + オプションの圧縮機能がサポートされているかをチェックする + ZipArchive::isCompressionMethodSupported が追加されました。 + + + + + オプションの暗号化機能がサポートされているかをチェックする + ZipArchive::isEncryptionMethodSupported が追加されました。 + + + + + 最後に追加されたエントリのインデックスの値を取得するために、 + ZipArchive::lastId が追加されました。 + + + + + ZipArchive::status や + ZipArchive::statusSys プロパティ、 + または ZipArchive::getStatusString メソッドを使って、 + アーカイブがクローズされた後でもエラーをチェックできるようになりました。 + + + + + ZipArchive::addGlob と + ZipArchive::addPattern メソッドの + 'remove_path' オプションは、 + ('add_path' オプションと一貫性を保つため) + 任意の文字列のプレフィックスとして扱われるようになりました。 + これより前のバージョンでは、デイレクトリ名として扱われていました。 + + + + + オプションの 圧縮/伸長 機能が phpinfo でも一覧できるようになりました。 + + + + + + + + diff --git a/appendices/migration80/other-changes.xml b/appendices/migration80/other-changes.xml new file mode 100644 index 0000000000..ca1a5765c8 --- /dev/null +++ b/appendices/migration80/other-changes.xml @@ -0,0 +1,353 @@ + + + + + + その他の変更 + + + SAPI モジュールの変更 + + + Apache2Handler + + + PHP モジュールの名前が php7_module から + php_module に変更されました。 + + + + + + 変更された関数 + + + リフレクション + + + ReflectionClass::getConstants と + ReflectionClass::getReflectionConstants の結果は + 新しい引数 filter を経由してフィルタされるように変更されました。 + この用途のために、以下の3つの新しい定数が追加されています: + + + + ReflectionClassConstant::IS_PUBLIC + ReflectionClassConstant::IS_PROTECTED + ReflectionClassConstant::IS_PRIVATE + + + + + + 標準ライブラリ + + + 数学関数 + abs, + ceil, + floor, + round + は、 + strict_types ディレクティブ + を適切に尊重するようになりました。 + PHP 8.0.0 より前のバージョンでは、 + たとえ strict モードであっても、 + 最初の引数の型を強制的に自動変換していました。 + + + + + Zip + + + + + ZipArchive::addGlob と + ZipArchive::addPattern メソッドは + 配列 options の値に、以下の値を追加で受け入れるようになりました: + + + + flags + comp_method + comp_flags + env_method + enc_password + + + + + + ZipArchive::addEmptyDir, + ZipArchive::addFile, + ZipArchive::addFromString に新しい引数 + flags が追加されました。 + これによって、名前のエンコーディング + (ZipArchive::FL_ENC_*) + とエントリの置換 (ZipArchive::FL_OVERWRITE) が管理できるようになります。 + + + + + ZipArchive::extractTo メソッドは、ファイルの変更時間も復元するようになりました。 + + + + + + + + 拡張モジュールに対するその他の変更 + + + CURL + + + + + CURL 拡張モジュールは、libcurl 7.29.0 以降が必須になりました。 + + + + + 推奨されなくなっていた curl_version 関数の + version 引数が削除されました。 + + + + + + + 日付と時刻 + + + DatePeriod クラスが、 + (Traversable ではなく) + IteratorAggregate を実装しました。 + + + + + DOM + + + DOMNamedNodeMapDOMNodeList が、 + (Traversable ではなく) + IteratorAggregate を実装しました。 + + + + + 国際化関数 + + + IntlBreakIteratorResourceBundle が、 + (Traversable ではなく) + IteratorAggregate を実装しました。 + + + + + Enchant + + + enchant 拡張モジュールは、利用可能な場合は、デフォルトで libenchant-2 を使うようになりました。 + libenchant バージョン1 もまだサポートしていますが、推奨されませんし、将来削除される可能性があります。 + + + + + GD + + + + + imagepolygon, + imageopenpolygon, + imagefilledpolygon 関数の + num_points 引数はオプションになりました。 + つまり、これらの関数は3つ、または4つの引数で呼び出すことが出来るということです。 + この引数が省略された場合、この値は count($points)/2 で計算されます。 + + + + + 現在の補間メソッドを取得するために、imagegetinterpolation 関数が追加されました。 + + + + + + + JSON + + + JSON 拡張モジュールは無効にできなくなりました。 + date 拡張モジュールと同様に、PHP をビルドするために常に必須になっています。 + + + + + マルチバイト文字列 + + + Unicode データのテーブルが、バージョン 13.0.0 に更新されました。 + + + + + PDO + + + PDOStatement は、 + (Traversable ではなく) + IteratorAggregate を実装しました。 + + + + + LibXML + + + libxml の最低バージョンが 2.9.0 になりました。 + これにより、外部エンティティの読み込みがデフォルトで無効であることが保証されるようになりました。 + よって、XXE攻撃を防ぐために追加の手順を踏む必要はありません。 + + + + + MySQLi / PDO MySQL + + + + + mysqlnd を使わない (これはデフォルトであり、推奨されるオプションです) 場合、 + サポートされる libmysqlclient の最低バージョンは 5.5 になりました。 + + + + + mysqli_result は、 + (Traversable ではなく) + IteratorAggregate を実装しました。 + + + + + + + PGSQL / PDO PGSQL + + + PGSQL と PDO PGSQL 拡張モジュールは、libpq 9.1 以降が最低限必要になりました。 + + + + + Readline + + + 対話的なプロンプトが始まる前に + (つまり、 auto_prepend_file を実行中に) + readline_completion_function を呼ぶと、 + デフォルトの対話プロンプトの補完関数を上書きするようになりました。 + PHP 8.0.0 より前のバージョンでは、 + readline_completion_function 関数は + 対話的なプロンプトが始まった後に呼び出したときにだけ動作していました。 + + + + + SimpleXML + + + SimpleXMLElement は、 + RecursiveIterator を実装し、 + SimpleXMLIterator の機能を吸収しました。 + SimpleXMLIterator は、 + SimpleXMLElement を継承しただけのものです。 + + + + + + INI ファイルの扱いの変更 + + + + + com.dotnet_version + は、dotnet オブジェクトで使う、 + .NET framework のバージョンを選ぶための新しいINIディレクティブです。 + + + + + zend.exception_string_param_max_len + は、文字列化されたスタックトレースの引数中の、 + 文字列の最大の長さを設定する新しいINIディレクティブです。 + + + + + + + EBCDIC + + + EBCDIC ターゲットはサポートされなくなりました。 + しかし、そもそもまだ動いているわけでもなさそうです。 + + + + + パフォーマンスに関わる変更 + + + + + ジャストインタイム (JIT) コンパイラが opcache 拡張モジュールに追加されました。 + + + + + + 隙間がない配列で array_slice 関数を使う場合、 + 最初のオフセットを探すために配列全体を走査しなくなりました。 + これによって、オフセットが巨大、かつサイズが小さい場合に、 + 関数の実行時間が著しく改善する可能性があります。 + + + + + LC_CTYPE ロケールが + "C" の場合 (これはデフォルトです)、 + strtolower 関数は SIMD 実装を使うようになりました。 + + + + + + + + diff --git a/appendices/migration81.xml b/appendices/migration81.xml new file mode 100644 index 0000000000..e9de775ff5 --- /dev/null +++ b/appendices/migration81.xml @@ -0,0 +1,54 @@ + + + + + PHP 8.0.x から PHP 8.1.x への移行 + + + この新しいマイナーバージョンには、 + たくさんの + 新機能 と + 互換性のない変更 + がいくつかあります。 + 実運用環境の PHP をこのバージョンにあげる前に、 + これらの変更を必ずテストすべきです。 + + + + &manual.migration.seealso; + 7.1.x, + 7.2.x, + 7.3.x, + 7.4.x, + 8.0.x. + + + &appendices.migration81.new-features; + &appendices.migration81.new-classes; + &appendices.migration81.new-functions; + &appendices.migration81.constants; + &appendices.migration81.incompatible; + &appendices.migration81.deprecated; + &appendices.migration81.other-changes; + + + diff --git a/appendices/migration81/constants.xml b/appendices/migration81/constants.xml new file mode 100644 index 0000000000..254c005715 --- /dev/null +++ b/appendices/migration81/constants.xml @@ -0,0 +1,181 @@ + + + + + 新しいグローバル定数 + + + cURL + + + + CURLOPT_DOH_URL + + + CURLOPT_ISSUERCERT_BLOB + + + CURLOPT_PROXY_ISSUERCERT + + + CURLOPT_PROXY_ISSUERCERT_BLOB + + + CURLOPT_PROXY_SSLCERT_BLOB + + + CURLOPT_PROXY_SSLKEY_BLOB + + + CURLOPT_SSLCERT_BLOB + + + CURLOPT_SSLKEY_BLOB + + + + + + GD + + + + IMG_AVIF + + + IMG_WEBP_LOSSLESS + + + + + + MySQLi + + + + MYSQLI_REFRESH_REPLICA + + この定数は、MYSQLI_REFRESH_SLAVE + の代替として追加されました。 + MySQL の最新の変更に追随したものです。 + 古い定数は後方互換性を保つためにまだ残されていますが、 + 将来非推奨になるか、削除される可能性があります。 + + + + + + + PCNTL + + + + PRIO_DARWIN_BG + + + PRIO_DARWIN_THREAD + + + + + + POSIX + + + + POSIX_RLIMIT_KQUEUES + + + POSIX_RLIMIT_NPTS + + + + + + Sockets + + + 以下のソケットオプションが、 + サポートされている場合に定義されるようになりました: + + + + SO_ACCEPTFILTER + + + SO_DONTTRUNC + + + SO_WANTMORE + + + SO_MARK + + + TCP_DEFER_ACCEPT + + + + + + Sodium + + + + SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES + + + SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES + + + SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_BYTES + + + SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES + + + SODIUM_CRYPTO_CORE_RISTRETTO255_BYTES + + + SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES + + + SODIUM_CRYPTO_CORE_RISTRETTO255_SCALARBYTES + + + SODIUM_CRYPTO_CORE_RISTRETTO255_NONREDUCEDSCALARBYTES + + + + + + Tokenizer + + + + T_READONLY + + + + + + diff --git a/appendices/migration81/deprecated.xml b/appendices/migration81/deprecated.xml new file mode 100644 index 0000000000..265c301737 --- /dev/null +++ b/appendices/migration81/deprecated.xml @@ -0,0 +1,426 @@ + + + + + PHP 8.1.x で推奨されなくなる機能 + + + PHP コア + + + + <function>__serialize</function>, + <function>__unserialize</function> がない状態で、 + <interfacename>Serializable</interfacename> を実装するのは推奨されない + + + + 新しいこれらのメソッドだけを実装するか、 + これらのメソッドをサポートしていない + PHP 7.4 より前のバージョンでも使う場合は、 + 新旧両方のインターフェイスを実装すべきです。 + + + + + ビルトイン関数の nullable でない引数に &null; を渡した場合 + + + ビルトイン関数のスカラー型の引数は、 + デフォルトで nullable ですが、 + この振る舞いは推奨されなくなりました。 + ユーザ定義の関数においては、 + スカラー型の引数は nullable と明示的にマークする必要があり、 + その振る舞いと合わせるためです。 + + + + +]]> + + + + + + + 暗黙の &float; から &integer; への変換 + + + 精度を損なうことになる + &float; から &integer; への暗黙の変換は、 + 推奨されなくなりました。 + これは配列のキーに &float; を使った場合や、 + 型の自動変換 (coerciveモード) 時に &integer; 型を宣言した場合や、 + &integer; に対して演算子を適用する場合に影響します。 + + + +]]> + + + + + + + トレイトの <modifier>static</modifier> な要素をコールする + + + トレイトにある + static メソッドや、 + static プロパティに直接アクセスすることは、 + 推奨されなくなりました。 + これらは、トレイトを使っているクラスからのみアクセスすべきものです。 + + + + + <function>__sleep</function> から配列でない値を返す + + + 配列でない値を + __sleep() + から返すと、警告が発生するようになりました。 + + + + + <type>void</type> の関数からリファレンスを返す + + + + + +]]> + + + 上記のような関数は矛盾しているため、 + 呼び出された時に + Only variable references should be returned by reference + という E_NOTICE + が既に発生するようになっています。 + + + + + &false; な変数を自動的に復活させる挙動(Autovivification) + + Autovivification とは、 + 値を追加しようとする際に配列を自動で生成する処理のことです。 + スカラー型の値からこのような処理を行うことは禁止されていますが、 + &false; だけは例外でした。 + このバージョンから、この例外も推奨されなくなります。 + + + +]]> + + + + + + &null; や 未定義値から、 + 自動的に配列を生成する処理は未だ許可されています: + + + +]]> + + + + + + + + + + ctype 関数 + + + 文字列でない引数の検証 + + + ctype関数 に文字列でない引数を渡すことは、 + 推奨されなくなりました。 + 将来のバージョンでは、引数は ASCII コードポイントではなく、 + 文字列として解釈されるようになります。 + ユーザが意図する振る舞いによっては、 + 引数を文字列にキャストするか、 + chr + を明示的にコールすべきです。 + 全ての ctype_*() 関数が影響を受けます。 + + + + + + 日付・時刻 関数 + + + date_sunrise + と + date_sunset + は、推奨されなくなりました。 + date_sun_info + を使って下さい。 + + + + strptime 関数は、 + 推奨されなくなりました。 + (ロケールに依存しないパースを行う場合) + date_parse_from_format + または + (ロケールに依存するパースを行う場合) + IntlDateFormatter::parse + を代わりに使って下さい。 + + + + strftime + と + gmstrftime + は、推奨されなくなりました。 + (ロケールに依存しないフォーマットを行う場合) + date + または + (ロケールに依存するフォーマットを行う場合) + IntlDateFormatter::format + を代わりに使って下さい。 + + + + + + Filter + + + FILTER_SANITIZE_STRING + と + FILTER_SANITIZE_STRIPPED + フィルタは、推奨されなくなりました。 + + + INI ディレクティブ + filter.default + は、推奨されなくなりました。 + + + + + + GD + + + imagepolygon, + imageopenpolygon, + imagefilledpolygon + の + num_points 引数は、 + 推奨されなくなりました。 + + + + + Hash + + + mhash, + mhash_keygen_s2k, + mhash_count, + mhash_get_block_size, + mhash_get_hash_name + は、推奨されなくなりました。 + hash_*() 関数を代わりに使って下さい。 + + + + + IMAP + + + 定数 NIL は、推奨されなくなりました。 + 0 を代わりに使って下さい。 + + + + + 国際化関数(Intl) + + + IntlCalendar::roll + に &boolean; 引数を渡してコールすることは、 + 推奨されなくなりました。 + &true; と &false; + の代わりに、 + 1-1 + をそれぞれ渡すようにして下さい。 + + + + + マルチバイト文字列 + + + mb_check_encoding + 関数を引数を渡さずにコールすることは、推奨されなくなりました。 + + + + + MySQLi + + + mysqli_driver::$driver_version + プロパティは、推奨されなくなりました。 + このプロパティは意味がなく、時代遅れになっています。 + PHP_VERSION_ID + を代わりに使って下さい。 + + + + mysqli 引数を渡して、 + mysqli::get_client_info や + mysqli_get_client_info + をコールすることは、推奨されなくなりました。 + クライアントライブラリのバージョン情報を取得するには、 + mysqli_get_client_info + を引数なしでコールするようにして下さい。 + + + + mysqli::init メソッドは、 + 推奨されなくなりました。 + parent::init のコールを + parent::__construct + に置き換えるようにして下さい。 + + + + + OCI8 + + + INI ディレクティブ + oci8.old_oci_close_semantics + は、推奨されなくなりました。 + + + + + ODBC + + + odbc_result_all 関数は推奨されなくなりました。 + + + + + PDO + + + フェッチモードの定数 PDO::FETCH_SERIALIZE + は、推奨されなくなりました。 + + + + + PgSQL + + + 全ての + pgsql_*() + 関数に対して、接続リソースを渡さないことは推奨されなくなりました。 + + + + + SOAP + + + SoapClient::__construct + の + ssl_method オプションは推奨されなくなりました。 + SSL コンテキストオプションを使うのが望ましいです。 + + + + + + 標準ライブラリ + + + &object; に対して、 + key, current, + next, prev, + reset, end + を呼び出すことは推奨されなくなりました。 + get_mangled_object_vars を使って + 最初に &object; を配列に変換するか、 + ArrayIterator のような + Iterator を実装したクラスのメソッドを使ってください。 + + + + INI ディレクティブ + auto_detect_line_endings + は、推奨されなくなりました。 + 必要な場合は、 + "\r" を手動で扱うようにして下さい。 + + + + 定数 + FILE_BINARY と + FILE_TEXT は推奨されなくなりました。 + これらの定数は、使われたことがありませんでした。 + + + + + diff --git a/appendices/migration81/incompatible.xml b/appendices/migration81/incompatible.xml new file mode 100644 index 0000000000..8edabb799f --- /dev/null +++ b/appendices/migration81/incompatible.xml @@ -0,0 +1,474 @@ + + + + + 下位互換性のない変更点 + + + PHP コア + + + $GLOBALS へのアクセス制限 + + + $GLOBALS 配列へのアクセスに対し、 + 多くの制限が適用されるようになりました。 + $GLOBALS['var'] のような、 + 個別の配列要素に対する読み取りや書き込みは、 + これまで通り動作します。 + $GLOBALS 配列全体への読み取り専用のアクセスも、 + 引き続きサポートされます。 + しかし、$GLOBALS 配列全体への書き込みは、 + もはやサポートされなくなりました。 + たとえば、array_pop($GLOBALS) + のようなコードは、エラーが発生します。 + + + + + + 継承したメソッド内で <modifier>static</modifier> 変数を使う + + + + static 変数を使っているメソッドが継承された + (但し、オーバーライドはされていない) + 場合、継承されたメソッドは + static 変数を親クラスのメソッドと共有するようになりました。 + + + +]]> + + + + これは、メソッド中の static 変数が、 + static プロパティと同じ振る舞いをするようになったということです。 + + + + + 必須の引数の前に、デフォルト値を持つ引数を指定した場合 + + + 必須の引数の前に、 + デフォルト値を持つ引数 + を指定した場合、 + デフォルト値を持つ引数は常に必須の引数として扱われるようになりました。 + これは、 + 名前付き引数 + を使って関数を呼び出した場合でも同様です。 + PHP 8.0.0 以降、かつ 8.1.0 より前のバージョンでは、 + 以下のコードは推奨されない警告を発生させていましたが、 + 呼び出しは成功していました。 + PHP 8.1.0 以降では、 + ArgumentCountError + がスローされるようになっています。 + 位置を指定して呼び出した場合でも、同じエラーがスローされます。 + + +getMessage(), "\n"; +} +?> +]]> + + &example.outputs.80; + + + + &example.outputs.81; + + + + + + + 但し、必須の引数の前であっても、 + Null を許容する型 を指定するために、 + 引数にデフォルト値 &null; を指定できることに注意して下さい。 + その場合でも、その引数は必須であることには変わりありません。 + + + + + 内部クラスと戻り値の型の互換性 + + + ほとんどの final でない内部メソッドは、 + それをオーバライドする際、 + 互換性がある戻り値の型を宣言することが必須になりました。 + そうしない場合、継承が有効かを検証する際に、 + 推奨されない警告が発生するようになります。 + PHP のバージョン間の互換性を保ちたいがために、 + 戻り値の型を宣言できない場合、 + アトリビュート ReturnTypeWillChange + を追加することで警告を抑止できます。 + + + + + 新しいキーワード + + readonly は予約されたキーワードになりました。しかし、まだ関数名としては使えます。 + + + never が予約語になりました。 + よって、クラスやインターフェイス、 + トレイトの名前として使えなくなっています。 + 名前空間の中であっても同様です。 + + + + + + リソースからオブジェクトへの移行 + + + いくつかの &resource; が、&object; に移行しました。 + is_resource + 関数を使って戻り値をチェックしているコードは、 + &false; を返すことをチェックするコードに置き換えるべきです。 + + + + + FileInfo 関数は、 + fileinfo &resource; ではなく、 + finfo オブジェクトを受け取り、 + 返すようになりました。 + + + + + FTP 関数は、 + ftp &resource; ではなく、 + FTP\Connection オブジェクトを受け取り、 + 返すようになりました。 + + + + + IMAP 関数は、 + imap &resource; ではなく、 + IMAP\Connection オブジェクトを受け取り、 + 返すようになりました。 + + + + + LDAP 関数は、 + ldap link &resource; ではなく、 + LDAP\Connection オブジェクトを受け取り、 + 返すようになりました。 + + + + + LDAP 関数は、 + ldap result &resource; ではなく、 + LDAP\Result オブジェクトを受け取り、 + 返すようになりました。 + + + + + LDAP 関数は、 + ldap result entry &resource; ではなく、 + LDAP\ResultEntry オブジェクトを受け取り、 + 返すようになりました。 + + + + + PgSQL 関数は、 + pgsql link &resource; ではなく、 + PgSql\Connection オブジェクトを受け取り、 + 返すようになりました。 + + + + + PgSQL 関数は、 + pgsql result &resource; ではなく、 + PgSql\Result オブジェクトを受け取り、 + 返すようになりました。 + + + + + PgSQL 関数は、 + pgsql large object &resource; ではなく、 + PgSql\Lob オブジェクトを受け取り、 + 返すようになりました。 + + + + + PSpell 関数は、 + pspell &resource; ではなく、 + PSpell\Dictionary オブジェクトを受け取り、 + 返すようになりました。 + + + + + PSpell 関数は、 + pspell config &resource; ではなく、 + PSpell\Config オブジェクトを受け取り、 + 返すようになりました。 + + + + + + + MySQLi + + + mysqli_fetch_fields + と + mysqli_fetch_field_direct は、 + max_length を指定すると + 常に 0 を返すようになりました。 + この情報は、結果セットを繰り返し処理する際に計算できますし、 + 長さの最大値をとります。 + PHP でも以前のバージョンから、 + 内部的にこれと同じ処理が行われてきました。 + + + + MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH + オプションは、もはや意味をなさなくなりました。 + + + + MYSQLI_STORE_RESULT_COPY_DATA + オプションは、もはや意味をなさなくなりました。 + mysqli::store_result + の mode 引数にどんな値を渡しても、 + 同様に意味がなくなっています。 + + + + mysqli::connect は、 + 成功時に &null; ではなく、&true; を返すようになりました。 + + + + デフォルトのエラー処理モードが、 + "silent" から + "exceptions" に変更されました。 + この変更の意味の詳細と、 + どのようにこの属性を明示的に設定するかについては、 + MySQLi のエラー報告モード + のページを参照ください。 + 以前のバージョンの振る舞いは、 + mysqli_report(MYSQLI_REPORT_OFF); + を使うことで再現できます。 + + + + mysqli_stmt::execute + を継承したクラスは、 + 追加でオプションの引数を指定しなければいけません。 + + + + + MySQLnd + + + INI ディレクティブ + mysqlnd.fetch_data_copy + が削除されました。 + このディレクティブによって、 + ユーザーの目に見える形で、振る舞いが変更されるべきではないからです。 + + + + + OpenSSL + + + EC キーの秘密鍵は、他のキーと同じように + PKCS#8 フォーマットでエクスポートされるようになりました。 + + + openssl_pkcs7_encrypt + と + openssl_cms_encrypt は、 + デフォルト値が RC2-40 から AES-128-CBC に変更されました。 + RC2-40 暗号はセキュアではないと見なされており、 + OpenSSL 3 からはデフォルトで有効ではなくなっています。 + + + + + PHP Data Objects(PDO) + + + PDO::ATTR_STRINGIFY_FETCHES + は、&boolean; 型の値を + "0""1" + に変換するようになりました。 + 以前のバージョンでは、&boolean; は文字列に変換されていませんでした。 + + + PDOStatement::bindColumn + に + PDO::PARAM_LOB + を指定してコールした場合、 + かつ、PDO::ATTR_STRINGIFY_FETCHES + が有効になっていない場合は、 + 常にストリームに結果をバインドするようになりました。 + 以前のバージョンでは、 + 使っているデータベースドライバやバインドが行われるタイミングによって、 + 文字列にバインドされることもあれば、 + ストリームにバインドされることもありました。 + + + + MySQL ドライバ + + + 結果セットの整数と浮動小数点の値は、 + エミュレートされたプリペアドステートメントを使った場合、 + 文字列ではなく、 + ネイティブの PHP の型を使って返されるようになりました。 + これは、ネイティブのプリペアドステートメントの振る舞いと一致します。 + 以前のバージョンの振る舞いは、 + PDO::ATTR_STRINGIFY_FETCHES + オプションを有効にすることで再現できます。 + + + + + SQLite ドライバ + + + 結果セットの整数と浮動小数点の値は、 + ネイティブの PHP の型を使って返されるようになりました。 + 以前のバージョンの振る舞いは、 + PDO::ATTR_STRINGIFY_FETCHES + オプションを有効にすることで再現できます。 + + + + + + Phar + + + ArrayAccess + インターフェイスに準拠するため、 + Phar::offsetUnset と、 + PharData::offsetUnset + は &boolean; を返さなくなりました。 + + + + + 標準ライブラリ + + + version_compare は、 + ドキュメントに書かれていない演算子の省略形を受け入れなくなりました。 + + + + htmlspecialchars, + htmlentities, + htmlspecialchars_decode, + html_entity_decode, + get_html_translation_table のデフォルト値が、 + ENT_COMPAT から + ENT_QUOTES | ENT_SUBSTITUTE に変更されました。 + これは、' が + &#039; にエスケープされるようになるということです。 + 以前のバージョンでは、' + に対してはエスケープは行われていませんでした。 + さらに、不正な UTF-8 文字列は、空文字列を返すのではなく、 + Unicode 置換文字に置きかえられるようになっています。 + + + + debug_zval_dump は、 + 値の前に & を付加する代わりに、 + 自身のリファレンスカウントだけでなく、 + リファレンスラッパーのリファレンスカウントも表示するようになりました。 + これは、PHP 7.0 以降のリファレンスの表現をより正確にモデル化したものです。 + + + + debug_zval_dump は、 + インターン化された文字列や、 + 変更できない配列については、 + ダミーのリファレンスカウントではなく、 + interned と表示するようになりました。 + + + + + Standard PHP Library (SPL) + + + SplFixedArray は、 + &array; のように JSON にエンコードできるようになりました。 + + + + + diff --git a/appendices/migration81/new-classes.xml b/appendices/migration81/new-classes.xml new file mode 100644 index 0000000000..a742cb99f1 --- /dev/null +++ b/appendices/migration81/new-classes.xml @@ -0,0 +1,160 @@ + + + + + 新しいクラスとインターフェイス + + + cURL + + + + + CURLStringFile + + + + + + + FileInfo + + + + + finfo + + + + + + + FTP + + + + + FTP\Connection + + + + + + + IMAP + + + + + IMAP\Connection + + + + + + + 国際化関数 + + + + + IntlDatePatternGenerator + + + + + + + LDAP + + + + + LDAP\Connection + + + + + LDAP\Result + + + + + LDAP\ResultEntry + + + + + + + PgSQL + + + + + PgSql\Connection + + + + + PgSql\Lob + + + + + PgSql\Result + + + + + + + PSpell + + + + + PSpell\Config + + + + + PSpell\Dictionary + + + + + + + Reflection + + + + + ReflectionFiber + + + + + + + diff --git a/appendices/migration81/new-features.xml b/appendices/migration81/new-features.xml new file mode 100644 index 0000000000..994e80b6a1 --- /dev/null +++ b/appendices/migration81/new-features.xml @@ -0,0 +1,534 @@ + + + + + 新機能 + + + PHP コア + + + 8進数の整数リテラルのプレフィックス指定 + + + 8進数の整数値の場合に、 + 数値リテラルのプレフィックスとして明示的に + 0o0O + を指定できるようになりました。 + これは、2進数や16進数の整数リテラルの表記と似ています。 + + + +]]> + + + + + + + + 文字列をキーとして持つ配列のアンパック + + + 文字列をキーとして持つ 配列をアンパック できるようになりました。 + + + 'b']; +$arr2 = [...$arr1, 'c' => 'd']; //[1, 'a' => 'b', 'c' => 'd'] +?> +]]> + + + + + + + + 引数を展開した後の名前付き引数 + + + 引数を ... で展開した後に、名前付き引数を指定できるようになりました。 + + e.g. + foo(...$args, named: $arg). + + + + + ファイルアップロード時の full-path キーのサポート + + + ファイルアップロード時に、 + 追加で + full_path キーを指定できるようになりました。 + これにより、アップロードされるファイルの + (basename ではなく) + フルパスを指定できます。 + これは、 + "webkitdirectory" 属性 + と組み合わせて使うことを意図しています。 + + + + + + 列挙型(Enum) + + + 列挙型 + のサポートが追加されました。 + + + + + + ファイバー(Fibers) + + + ファイバー + のサポートが追加されました。 + + + + + + 第一級callableを生成する記法 + + + myFunc(...) という記法 で、 + callable から無名関数を生成できるようになりました。 + これは、 + Closure::fromCallable('myFunc') と同等です。 + + + + + ... は文法の一部であり、省略形ではありません。 + + + + + + 交差型 + + + 交差型 のサポートが追加されました。 + + + + + 交差型 は、 + union 型 + と一緒に使うことはできません。 + + + + + + Never 型 + + + 戻り値にのみ指定できる型として、 + 新しく &never; 型が追加されました。 + これは、関数が exit するか、 + 例外をスローするか、終了しないことを示します。 + + + + + + 初期化時の &new; 式の許可 + + + new ClassName() 式が、引数のデフォルト値の初期化時、 + static 変数の初期化時、グローバルな定数の初期化時、 + およびアトリビュートの引数として許可されるようになりました。 + オブジェクトが define に渡せるようにもなっています。 + + + + + + + 読み取り専用プロパティ + + + プロパティに対して、readonly が指定できるようになりました。 + + + + + + クラス定数の final 指定 + + + クラスの定数に対して、 + final が指定できる ようになりました。 + また、インターフェイスの定数も、デフォルトでオーバーライド(上書き)できるようになりました。 + + + + + + + + CURL + + + CURLOPT_DOH_URL オプションが追加されました。 + + + + libcurl >= 7.71.0 で、 + 証明書を blob 経由で扱うためのオプションが追加されました。 + + + + CURLOPT_ISSUERCERT_BLOB + + + CURLOPT_PROXY_ISSUERCERT + + + CURLOPT_PROXY_ISSUERCERT_BLOB + + + CURLOPT_PROXY_SSLCERT_BLOB + + + CURLOPT_PROXY_SSLKEY_BLOB + + + CURLOPT_SSLCERT_BLOB + + + CURLOPT_SSLKEY_BLOB + + + + + ファイルをファイル経由ではなく、 + 文字列で POST するために使える + CURLStringFile クラスが追加されました。 + + + $file]); +?> +]]> + + + + + + + FPM + + + OpenMetrics status フォーマットが追加されました。 + これは、Prometheus が FPM のメトリクスを取得する用途に使います。 + + + pm.max_spawn_rate と呼ばれる、 + 動的なプロセスマネージャーのための、 + 新しいプールオプションが追加されました。 + これを指定することで、 + 動的なプロセスマネージャーを選択した場合に、 + 高速にたくさんの子プロセスが起動できるようになります。 + これのデフォルト値は 32 で、 + 以前からハードコーディングされていたものです。 + + + + + GD + + + libgd に Avif のサポートが組み込まれている場合に、 + imagecreatefromavif と + imageavif + で Avif が使えるようになりました。 + + + + + Hash + + + hash, + hash_file, + hash_init 関数に、 + オプションの引数 options が追加されました。 + これによって、ハッシュアルゴリズム特有のデータを渡せるようになります。 + + + + MurmurHash3 + + + ストリーミングをサポートした + MurmurHash3 のサポートが追加されました。 + 以下のバリアントが実装されています: + + + + murmur3a, 32-bit hash + + + murmur3c, 128-bit hash for x86 + + + murmur3f, 128-bit hash for x64 + + + + + ハッシュの初期ステートを + 引数 options の + seed キーを通じて渡すことができます。 + たとえば、以下のように書くことができます: + + + + 42]); +echo $h, "\n"; +?> +]]> + + + + 有効な seed の値は + 0 から + プラットフォーム定義の UINT_MAX までです。 + この値は、通常は 4294967295 です。 + + + + + xxHash + + + xxHash のサポートが追加されました。 + 以下のバリアントが実装されています: + + + + xxh32, 32-bit hash + + + xxh64, 64-bit hash + + + xxh3, 64-bit hash + + + xxh128, 128-bit hash + + + + + ハッシュの初期ステートを + 引数 options の + seed キーを通じて渡すことができます。 + たとえば、以下のように書くことができます: + + + + 42]); +echo $h, "\n"; +?> +]]> + + + + 以下のようにして、シークレットを引数 options の + secret キーを通じて渡すこともできます: + + + + "at least 136 bytes long secret here"]); +echo $h, "\n"; +?> +]]> + + + + カスタムのシークレットの品質が、 + 生成されるハッシュ値の品質に重大な影響を及ぼします。 + できる限りエントロピーが高いシークレットを使うことを強く推奨します。 + + + + + + MySQLi + + + 新しい INI ディレクティブ <literal>mysqli.local_infile_directory</literal> + + + mysqlnd.local_infile_directory + ディレクティブが追加されました。 + これによって、ファイルを読み込むことを許可するディレクトリを指定できます。 + これは、 + mysqli.allow_local_infile + が無効の場合にだけ意味があります。 + なぜなら、 + この場合に全てのディレクトリからのファイルの読み込みが許可されるからです。 + + + + + 実行時に引数をバインド + + + mysqli_stmt::execute + に配列を指定することで、引数をバインドできるようになりました。 + 全ての値が、文字列としてバインドされます。 + (連想配列でない) リストだけを指定できます。 + この新機能は、MySQLi を libmysqlclient + を使ってコンパイルしている場合には利用できません。 + + + +prepare('INSERT INTO users(id, name) VALUES(?,?)'); +$stmt->execute([1, $username]); +?> +]]> + + + + + + + 新しいメソッド <methodname>mysqli_result::fetch_column</methodname> + + + mysqli_result::fetch_column + が追加されました。これによって、 + 結果セットから単一のスカラー値を取得することができるようになります。 + この新しいメソッドは、 + オプションの引数 column + に 0 から始まる整数値を指定することで、 + どのカラムから情報を取得するかを指定できます。 + + + +query('SELECT username FROM users WHERE id = 123'); +echo $result->fetch_column(); +?> +]]> + + + + + + + + + PDO + + + PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY + 属性が追加されました。 + これによって、ファイルを読み込むことを許可するディレクトリを指定できます。 + これは、 + PDO::MYSQL_ATTR_LOCAL_INFILE + が無効の場合にだけ意味があります。 + なぜなら、 + この場合に全てのディレクトリからのファイルの読み込みが許可されるからです。 + + + + + PDO_SQLite + + + SQLite の + "file:" + DSN 記法がサポートされるようになり、 + 追加のフラグも指定できるようになりました。 + この機能は、open_basedir が設定されている場合は使えません。 + + + +]]> + + + + + + + POSIX + + + POSIX_RLIMIT_KQUEUES と + POSIX_RLIMIT_NPTS が追加されました。 + これらの rlimits は、FreeBSD でのみ利用可能です。 + + + + + 標準ライブラリ + + + fputcsv は、 + 新しい引数 eol を受け入れるようになりました。 + これによって、カスタムの改行文字を定義できるようになります。 + デフォルトは以前と同じで、"\n" のままです。 + + + + + Standard PHP Library(SPL) + + + SplFileObject::fputcsv は、 + 新しい引数 eol を受け入れるようになりました。 + これによって、カスタムの改行文字を定義できるようになります。 + デフォルトは以前と同じで、"\n" のままです。 + + + + + diff --git a/appendices/migration81/new-functions.xml b/appendices/migration81/new-functions.xml new file mode 100644 index 0000000000..abf75bc175 --- /dev/null +++ b/appendices/migration81/new-functions.xml @@ -0,0 +1,225 @@ + + + + + 新しく追加された関数 + + + PHP コア + + + + + array_is_list + + + + + + + GD + + + + + imagecreatefromavif + + + + + imageavif + + + + + + + MySQLi + + + + + mysqli_result::fetch_column + + + + + mysqli_fetch_column + + + + + + + プロセス制御 + + + + + pcntl_rfork + + + + + + + リフレクション + + + + + ReflectionFunctionAbstract::getClosureUsedVariables + + + + + + + 標準ライブラリ + + + + + fsync + + + + + fdatasync + + + + + + + Sodium + + + XChaCha20 + + + + sodium_crypto_stream_xchacha20 + + + + + sodium_crypto_stream_xchacha20_keygen + + + + + sodium_crypto_stream_xchacha20_xor + + + + + + + Ristretto255 + + + Ristretto255 関数は、libsodium 1.0.18 以降で利用可能です。 + + + + + + sodium_crypto_core_ristretto255_add + + + + + sodium_crypto_core_ristretto255_from_hash + + + + + sodium_crypto_core_ristretto255_is_valid_point + + + + + sodium_crypto_core_ristretto255_random + + + + + sodium_crypto_core_ristretto255_scalar_add + + + + + sodium_crypto_core_ristretto255_scalar_complement + + + + + sodium_crypto_core_ristretto255_scalar_invert + + + + + sodium_crypto_core_ristretto255_scalar_mul + + + + + sodium_crypto_core_ristretto255_scalar_negate + + + + + sodium_crypto_core_ristretto255_scalar_random + + + + + sodium_crypto_core_ristretto255_scalar_reduce + + + + + sodium_crypto_core_ristretto255_scalar_sub + + + + + sodium_crypto_core_ristretto255_sub + + + + + sodium_crypto_scalarmult_ristretto255 + + + + + sodium_crypto_scalarmult_ristretto255_base + + + + + + + + diff --git a/appendices/migration81/other-changes.xml b/appendices/migration81/other-changes.xml new file mode 100644 index 0000000000..69c3d5e296 --- /dev/null +++ b/appendices/migration81/other-changes.xml @@ -0,0 +1,287 @@ + + + + + その他の変更 + + + SAPI モジュールへの変更 + + + CLI + + + readline 拡張モジュール + が組み込まれていないのに、 + オプションを使った場合、 + エラーが発生するようになりました。 + 以前のバージョンでは、 + readline が組み込まれていない時に + オプションを使うと、 + php + コマンドを引数なしでコールしたのと同じ振る舞いをするのに、 + "Interactive mode enabled" + というメッセージを追加で出力していました。 + この場合のモードは、インタラクティブでは ありませんでした。 + + + + + PHPDBG + + + phpdbg + のリモート関連の機能が削除されました。 + + + + + + 変更された関数 + + + PHP コア + + + &foreach;、 + var_dump、 + serialize、 + オブジェクトの比較時などで用いられるプロパティの順序が変更されました。 + プロパティは宣言や継承に応じて、自然順に並ぶようになりました。 + 親クラスで宣言されたプロパティは、 + 子クラスのプロパティの前に並びます。 + + + この順序は、 + 構造体 zend_object + 内部のレイアウトと一致しており、 + default_properties_table[] + と + properties_info_table[] + でも同様の順序が用いられています。 + 以前のバージョンでは、 + プロパティの順序がドキュメント化されておらず、 + クラスの継承の実装の詳細に依存していました。 + + + + + Filter + + + FILTER_VALIDATE_INT + フィルタの + FILTER_FLAG_ALLOW_OCTAL + フラグは、 + 8進数のプレフィックス + ("0o"/"0O") + が先頭についた8進文字列を受け入れるようになりました。 + + + + + GMP + + + 全ての + GMP + 関数が、 + 8進数のプレフィックス + ("0o"/"0O") + が先頭についた8進文字列を受け入れるようになりました。 + + + + + PDO ODBC + + + PDO::getAttribute に + PDO::ATTR_SERVER_INFO や + PDO::ATTR_SERVER_VERSION を指定した場合でも、 + 値を返すようになりました。 + 以前のバージョンでは、 + PDOException をスローしていました。 + + + + + リフレクション + + + ReflectionProperty::setAccessible + と + ReflectionMethod::setAccessible + は、もはや意味をなさなくなりました。 + プロパティとメソッドは、 + 常にリフレクション経由でアクセス可能と見なされるようになっています。 + + + + + 標準ライブラリ + + + syslog 関数は、バイナリセーフになりました。 + + + + + + 拡張モジュールへのその他の変更 + + + GD + + + imagewebp + 関数の quality 引数に + IMG_WEBP_LOSSLESS + を指定することで、 + ロスレスエンコードが行えるようになりました。 + + + システムが使っている libgd が + WebP のロスレスエンコーディングをサポートしている場合にのみ、 + この定数は定義されます。 + + + + + MySQLi + + + libmysqlclient とリンクした場合に、 + mysqli_stmt::next_result + と + mysqli::fetch_all が使えるようになりました。 + + + + + OpenSSL + + + + + OpenSSL 拡張モジュール + は、OpenSSL 1.0.2 以降が必須になりました。 + + + + + OpenSSL 3.0 がサポートされるようになりました。 + 多くの暗号が(レガシーなプロバイダの一部となっているため) + デフォルトで有効ではなくなり、 + 引数の検証 (たとえば鍵の最小サイズ) が厳しくなっています。 + + + + + + + Phar + + + + + SHA256 が、シグネチャのデフォルトとして使われるようになりました。 + + + + + OpenSSL_SHA256 と OpenSSL_SHA512 + シグネチャのサポートが追加されました。 + + + + + + + SNMP + + + + + セキュリティプロトコルのために、 + SHA256 と SHA512 のサポートが追加されました。 + + + + + + + 標準ライブラリ + + + configure オプション + --with-password-argon2 は、 + libargon2 を検知するのに pkg-config を使うようになっています。 + そのため、libargon2 のインストール先を指定するには、 + PKG_CONFIG_PATH を使うべきです。 + + + + + + INI ファイルの扱いの変更 + + + + + INI ディレクティブ + log_errors_max_len + は削除されました。 + PHP 8.0.0 以降、この設定は意味をなさなくなっていました。 + + + + + クォートされた文字列の先頭にドル記号がある場合、 + そのドル記号はエスケープされるようになりました。 + つまり、 + "\${" + は、 + ${ という文字列として解釈されます。 + + + + + ダブルクォートで囲まれた文字列中のバックスラッシュは、 + エスケープ文字としてより一貫した形で扱われるようになりました。 + 以前のバージョンでは、 + "foo\\" の後に改行文字以外の文字が続いた場合、 + 文字列の終端とは見なされませんでした。 + PHP 8.1.0 以降では、foo\ + という文字列として解釈されるようになります。 + 例外として、"foo\" の後に改行文字が続いた場合は、 + foo\ という文字列として解釈されます。 + 文字列が終端していないとは見なされません。 + 但し、"C:\foo\" のような、 + Windows のファイルパスを使う場合には例外が存在します。 + + + + + + + diff --git a/appendices/migration82.xml b/appendices/migration82.xml new file mode 100644 index 0000000000..f798c88af4 --- /dev/null +++ b/appendices/migration82.xml @@ -0,0 +1,55 @@ + + + + + PHP 8.1.x から PHP 8.2.x への移行 + + + この新しいマイナーバージョンには、 + たくさんの + 新機能 と + 互換性のない変更 + がいくつかあります。 + 実運用環境の PHP をこのバージョンにあげる前に、 + これらの変更を必ずテストすべきです。 + + + + &manual.migration.seealso; + 7.1.x, + 7.2.x, + 7.3.x, + 7.4.x, + 8.0.x, + 8.1.x. + + + &appendices.migration82.new-features; + &appendices.migration82.new-functions; + &appendices.migration82.constants; + &appendices.migration82.incompatible; + &appendices.migration82.deprecated; + &appendices.migration82.other-changes; + &appendices.migration82.windows-support; + + + diff --git a/appendices/migration82/constants.xml b/appendices/migration82/constants.xml new file mode 100644 index 0000000000..970676a066 --- /dev/null +++ b/appendices/migration82/constants.xml @@ -0,0 +1,513 @@ + + + + + 新しいグローバル定数 + + + COM + + + + DISP_E_PARAMNOTFOUND + + + LOCALE_NEUTRAL + + + + + + cURL + + + + + CURLALTSVC_H1 (libcurl >= 7.64.1) + + + + + CURLALTSVC_H2 (libcurl >= 7.64.1) + + + + + CURLALTSVC_H3 (libcurl >= 7.64.1) + + + + + CURLALTSVC_READONLYFILE (libcurl >= 7.64.1) + + + + + CURLAUTH_AWS_SIGV4 (libcurl >= 7.75.0) + + + + + CURLE_PROXY (libcurl >= 7.73.0) + + + + + CURLFTPMETHOD_DEFAULT + + + + + CURLHSTS_ENABLE (libcurl >= 7.74.0) + + + + + CURLHSTS_READONLYFILE (libcurl >= 7.74.0) + + + + + CURLINFO_PROXY_ERROR (libcurl >= 7.73.0) + + + + + CURLINFO_REFERER (libcurl >= 7.76.0) + + + + + CURLINFO_RETRY_AFTER (libcurl >= 7.66.0) + + + + + CURLMOPT_MAX_CONCURRENT_STREAMS (libcurl >= 7.67.0) + + + + + CURLOPT_ALTSVC_CTRL (libcurl >= 7.64.1) + + + + + CURLOPT_ALTSVC (libcurl >= 7.64.1) + + + + + CURLOPT_AWS_SIGV4 (libcurl >= 7.75.0) + + + + + CURLOPT_CAINFO_BLOB (libcurl >= 7.77.0) + + + + + CURLOPT_DOH_SSL_VERIFYHOST (libcurl >= 7.76.0) + + + + + CURLOPT_DOH_SSL_VERIFYPEER (libcurl >= 7.76.0) + + + + + CURLOPT_DOH_SSL_VERIFYSTATUS (libcurl >= 7.76.0) + + + + + CURLOPT_HSTS_CTRL (libcurl >= 7.74.0) + + + + + CURLOPT_HSTS (libcurl >= 7.74.0) + + + + + CURLOPT_MAIL_RCPT_ALLLOWFAILS (libcurl >= 7.69.0) + + + + + CURLOPT_MAXAGE_CONN (libcurl >= 7.65.0) + + + + + CURLOPT_MAXFILESIZE_LARGE + + + + + CURLOPT_MAXLIFETIME_CONN (libcurl >= 7.80.0) + + + + + CURLOPT_PROXY_CAINFO_BLOB (libcurl >= 7.77.0) + + + + + CURLOPT_SASL_AUTHZID (libcurl >= 7.66.0) + + + + + CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (libcurl >= 7.80.0) + + + + + CURLOPT_SSL_EC_CURVES (libcurl >= 7.73.0) + + + + + CURLOPT_UPKEEP_INTERVAL_MS (libcurl >= 7.62.0) + + + + + CURLOPT_UPLOAD_BUFFERSIZE (libcurl >= 7.62.0) + + + + + CURLOPT_XFERINFOFUNCTION (libcurl >= 7.32.0) + + + + + CURLPROTO_MQTT (libcurl >= 7.71.0) + + + + + CURLPX_BAD_ADDRESS_TYPE (libcurl >= 7.73.0) + + + + + CURLPX_BAD_VERSION (libcurl >= 7.73.0) + + + + + CURLPX_CLOSED (libcurl >= 7.73.0) + + + + + CURLPX_GSSAPI (libcurl >= 7.73.0) + + + + + CURLPX_GSSAPI_PERMSG (libcurl >= 7.73.0) + + + + + CURLPX_GSSAPI_PROTECTION (libcurl >= 7.73.0) + + + + + CURLPX_IDENTD_DIFFER (libcurl >= 7.73.0) + + + + + CURLPX_IDENTD (libcurl >= 7.73.0) + + + + + CURLPX_LONG_HOSTNAME (libcurl >= 7.73.0) + + + + + CURLPX_LONG_PASSWD (libcurl >= 7.73.0) + + + + + CURLPX_LONG_USER (libcurl >= 7.73.0) + + + + + CURLPX_NO_AUTH (libcurl >= 7.73.0) + + + + + CURLPX_OK (libcurl >= 7.73.0) + + + + + CURLPX_RECV_ADDRESS (libcurl >= 7.73.0) + + + + + CURLPX_RECV_AUTH (libcurl >= 7.73.0) + + + + + CURLPX_RECV_CONNECT (libcurl >= 7.73.0) + + + + + CURLPX_RECV_REQACK (libcurl >= 7.73.0) + + + + + CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED (libcurl >= 7.73.0) + + + + + CURLPX_REPLY_COMMAND_NOT_SUPPORTED (libcurl >= 7.73.0) + + + + + CURLPX_REPLY_CONNECTION_REFUSED (libcurl >= 7.73.0) + + + + + CURLPX_REPLY_GENERAL_SERVER_FAILURE (libcurl >= 7.73.0) + + + + + CURLPX_REPLY_HOST_UNREACHABLE (libcurl >= 7.73.0) + + + + + CURLPX_REPLY_NETWORK_UNREACHABLE (libcurl >= 7.73.0) + + + + + CURLPX_REPLY_NOT_ALLOWED (libcurl >= 7.73.0) + + + + + CURLPX_REPLY_TTL_EXPIRED (libcurl >= 7.73.0) + + + + + CURLPX_REPLY_UNASSIGNED (libcurl >= 7.73.0) + + + + + CURLPX_REQUEST_FAILED (libcurl >= 7.73.0) + + + + + CURLPX_RESOLVE_HOST (libcurl >= 7.73.0) + + + + + CURLPX_SEND_AUTH (libcurl >= 7.73.0) + + + + + CURLPX_SEND_CONNECT (libcurl >= 7.73.0) + + + + + CURLPX_SEND_REQUEST (libcurl >= 7.73.0) + + + + + CURLPX_UNKNOWN_FAIL (libcurl >= 7.73.0) + + + + + CURLPX_UNKNOWN_MODE (libcurl >= 7.73.0) + + + + + CURLPX_USER_REJECTED (libcurl >= 7.73.0) + + + + + CURLSSLOPT_AUTO_CLIENT_CERT (libcurl >= 7.77.0) + + + + + CURLSSLOPT_NATIVE_CA (libcurl >= 7.71.0) + + + + + CURLSSLOPT_NO_PARTIALCHAIN (libcurl >= 7.68.0) + + + + + CURLSSLOPT_REVOKE_BEST_EFFORT (libcurl >= 7.70.0) + + + + + CURL_VERSION_GSASL (libcurl >= 7.76.0) + + + + + CURL_VERSION_HSTS (libcurl >= 7.74.0) + + + + + CURL_VERSION_HTTP3 (libcurl >= 7.66.0) + + + + + CURL_VERSION_UNICODE (libcurl >= 7.72.0) + + + + + CURL_VERSION_ZSTD (libcurl >= 7.72.0) + + + + + + + DBA + + + + DBA_LMDB_USE_SUB_DIR + + + DBA_LMDB_NO_SUB_DIR + + + + + + Filter + + + + FILTER_FLAG_GLOBAL_RANGE + + + + + + Sockets + + + 以下のソケットオプションは、サポートされている場合にのみ定義されます: + + + + SO_INCOMING_CPU + + + SO_MEMINFO + + + SO_RTABLE (OpenBSD) + + + TCP_KEEPALIVE (MacOS) + + + TCP_KEEPCNT (Linux, others) + + + TCP_KEEPIDLE (Linux, others) + + + TCP_KEEPINTVL (Linux, others) + + + TCP_NOTSENT_LOWAT + + + LOCAL_CREDS_PERSISTENT (FreeBSD) + + + SCM_CREDS2 (FreeBSD) + + + LOCAL_CREDS (NetBSD) + + + SO_BPF_EXTENSIONS + + + SO_SETFIB + + + TCP_CONGESTION (Linux, FreeBSD) + + + SO_ZEROCOPY (Linux) + + + MSG_ZEROCOPY (Linux) + + + + + + diff --git a/appendices/migration82/deprecated.xml b/appendices/migration82/deprecated.xml new file mode 100644 index 0000000000..190f793427 --- /dev/null +++ b/appendices/migration82/deprecated.xml @@ -0,0 +1,134 @@ + + + + + PHP 8.2.x で推奨されなくなる機能 + + + PHP コア + + + 動的なプロパティの利用 + + + クラスにアトリビュート #[\AllowDynamicProperties] を付加していない場合、 + 動的にプロパティを生成することは推奨されなくなりました。 + stdClass で動的なプロパティを使うことはまだ許可されています。 + マジックメソッド + __get() / __set() + を使う場合は、この変更の影響は受けません。 + 動的なプロパティによる非推奨の警告については、以下によって対応できます: + + + プロパティを宣言する (好ましい対応方法です) + + クラスにアトリビュート #[\AllowDynamicProperties] を付加する + (すべての子クラスにも適用されます) + + + 追加のデータをオブジェクトと関連付ける必要があるが、 + そのオブジェクトがデータを所有していない場合、 + WeakMap を使う + + + + + + + 部分的にしかサポートされていない callable + + + $callable() 形式で呼び出せない + (但し、call_user_func を使うと呼び出せる) callable は、推奨されなくなりました。 + + 特に注意すべきなのは以下です: + + "self::method" + "parent::method" + "static::method" + ["self", "method"] + ["parent", "method"] + ["static", "method"] + ["Foo", "Bar::method"] + [new Foo, "Bar::method"] + + + この変更は、 + "A::method"["A", "method"] + のような通常のメソッド呼び出し形式の callable には影響しません。 + + + + + + + <code>"${var}"</code> / <code>"${expr}"</code> 形式の、文字列への値の埋め込み + + + "${var}""${expr}" 形式の文字列への値の埋め込みは、推奨されなくなりました。 + "$var"/"{$var}""{${expr}}" 形式をそれぞれ使ってください。 + + + + + + + + マルチバイト文字列 + + + 'テキストエンコーディング' + QPrint, Base64, + Uuencode, HTML-ENTITIES を使うことは、 + 全ての mbstring の関数で推奨されなくなりました。 + + mbstring でサポートされている他のテキストエンコーディングと異なり、 + これらは Unicode のコードポイント列でエンコードされておらず、 + 生のバイト列でエンコードされています。 + + これらのテキストエンコーディングが指定された場合、 + ほとんどの mbstring 関数では、何が正しい戻り値なのか明確でありません。 + + さらに、これらのエンコーディングについてはすべて、PHP には別の組み込みの実装が存在します。 + たとえば、UUencode されたデータについては、 + convert_uuencode / convert_uudecode が使えます。 + + + + + Standard PHP Library(SPL) + + + 内部メソッド SplFileInfo::_bad_state_ex は、推奨されなくなりました。 + + + + + 標準ライブラリ + + + utf8_encodeutf8_decode は、推奨されなくなりました。 + + + + + diff --git a/appendices/migration82/incompatible.xml b/appendices/migration82/incompatible.xml new file mode 100644 index 0000000000..a4d09cf9e2 --- /dev/null +++ b/appendices/migration82/incompatible.xml @@ -0,0 +1,166 @@ + + + + + 下位互換性のない変更点 + + + Date + + + DateTime::createFromImmutable の仮の戻り値の型が、 + static になりました。 + これより前のバージョンでは、DateTime でした。 + + + + DateTimeImmutable::createFromMutable の仮の戻り値の型が、 + static になりました。 + これより前のバージョンでは、DateTimeImmutable でした。 + + + + 相対的な書式 の number + シンボルは、複数の符号を受け入れなくなりました。 + たとえば、+-2 のようなフォーマットです。 + + + + + ODBC + + + ODBC 拡張モジュールは、ユーザー名/パスワードと接続文字列が両方渡された場合に、 + ユーザー名とパスワードをエスケープするようになりました。そして、 + エスケープ済みのものを接続文字列と結合することが必須になりました。 + これより前のバージョンでは、 + エスケープする必要がある値が含まれたユーザー指定の文字列によって、悪意ある接続文字列を生成される可能性がありました。 + また、ユーザー指定の文字列を値に注入されてしまう可能性もありました。 + このエスケープのルールは .NET BCL の DbConnectionOptions の振る舞いと同じです。 + + + + + + PDO_ODBC + + + PDO_ODBC 拡張モジュールは、接続文字列を渡した場合にユーザー名とパスワードをエスケープするようになりました。 + 詳細は ODBC の変更点 を参照ください。 + + + + + 標準ライブラリ + + + glob は、 + すべてのパスが open_basedir によって制限されている場合に、 + 空の配列を返すようになりました。 + これより前のバージョンでは、&false; を返していました。 + さらに、パスの一部が open_basedir によって制限されている場合でも、 + 警告が発生するようになっています。 + + + + FilesystemIterator::__construct を使うと、 + 以前のバージョンでは + FilesystemIterator::SKIP_DOTS が常に設定され、削除できませんでしたが、この振る舞いはなくなりました。 + 以前の振る舞いを維持するには、 + flags パラメータを使ってその定数を明示的に常に設定しなければいけません。 + flags パラメータのデフォルト値は変更されていません。 + + + + strtolower, + strtoupper, + stristr, + stripos, + strripos, + lcfirst, + ucfirst, + ucwords, + str_ireplace は、ロケールに依存しなくなりました。 + これらは、ロケールが "C" であったかのように ASCII のケース変換を行います。 + これらの関数のロケール対応版は、マルチバイト文字列 関数で使えます。 + さらに、array_change_key_case 関数を使った場合や、 + SORT_FLAG_CASE を使ってソートを行った場合も、ASCII のケース変換を行います。 + + + + str_split は、空文字列を渡した場合に、空の配列を返すようになりました。 + これより前のバージョンでは、空文字列の要素が一つ入った配列を返していました。 + mb_str_split は、既に空の配列を返しているため、影響を受けません。 + + + + ksortkrsort は、 + SORT_REGULAR を使って数値形式の文字列の比較を行う際に、 + PHP 8 で標準になっているルールを使うようになりました。 + + + + var_export は、クラス名をエクスポートする際、 + 先頭のバックスラッシュを省略しなくなりました。 + つまり、エクスポートされるクラス名は完全修飾名になりました。 + + + + + Standard PHP Library (SPL) + + + 以下のメソッドは、シグネチャを強制するようになりました: + + SplFileInfo::_bad_state_ex + SplFileObject::getCsvControl + SplFileObject::fflush + SplFileObject::ftell + SplFileObject::fgetc + SplFileObject::fpassthru + + + + + SplFileObject::hasChildren の仮の戻り値の型が、 + false になりました。 + これより前のバージョンでは、bool でした。 + + + + SplFileObject::getChildren の仮の戻り値の型が、 + null になりました。 + これより前のバージョンでは、RecursiveIteratornull でした。 + + + + GlobIterator は、 + すべてのパスが open_basedir によって制限されている場合に、 + 空の配列を返すようになりました。 + これより前のバージョンでは、&false; を返していました。 + さらに、パスの一部が open_basedir によって制限されている場合でも、 + 警告が発生するようになっています。 + + + + + diff --git a/appendices/migration82/new-features.xml b/appendices/migration82/new-features.xml new file mode 100644 index 0000000000..a6a31c92e0 --- /dev/null +++ b/appendices/migration82/new-features.xml @@ -0,0 +1,189 @@ + + + + + 新機能 + + + PHP コア + + + SensitiveParameter アトリビュート + + + バックトレースから機密情報を削除するためのアトリビュートとして、 + #[\SensitiveParameter] が追加されました。 + + + + + + error_log_mode INI ディレクティブ + + + エラーログファイルに対してパーミッションを設定できる INI ディレクティブとして、 + error_log_mode が追加されました。 + + + + + 定数式の中で、列挙型のプロパティを取得 + + + 定数式の中で、列挙型 のプロパティを取得できるようになりました。 + + + + + + 型システムの改善 + + + nullfalse が独立した型として使えるようになりました。 + + + + + true 型が追加されました。 + + + + + 交差型 と union型 が組み合わせて使えるようになりました。 + その場合、型は DNF として記す必要があります。 + + + + + + トレイトで定数 + + + トレイトの中で、定数を定義できるようになりました。 + + + + + + + 読み取り専用クラス + + + クラスに対して readonly + を指定する機能 がサポートされました。 + + + + + + + + cURL + + + CURLINFO_EFFECTIVE_METHOD オプションが追加されました。 + これは、curl_getinfo の戻り値として、 + 有効な HTTP メソッドの値を返します。 + + + + libcurl 7.62 から 7.80 までに追加された、 + 新しい複数の定数 が使えるようになりました。 + + + + 接続を維持するためのチェックを行う関数として、 + curl_upkeep が追加されました。 + + + + + DBA + + + データベースファイルを作成する際にサブディレクトリを作るかどうかを決めるフラグとして、 + DBA_LMDB_USE_SUB_DIR と + DBA_LMDB_NO_SUB_DIR が追加されました。 + これらは、LMDB ドライバで使えます。 + + + + + OCI8 + + + oci8.prefetch_lob_size INI ディレクティブと、 + oci_set_prefetch_lob が追加されました。 + これらを使うと、LOB(ラージオブジェクト) を取得する際に、PHP と Oracle Database 間の通信回数を削減することで、 + LOB への問い合わせのパフォーマンスチューニングを行うことができます。 + + + + + OpenSSL + + + chacha20-poly1305 向けに AEAD のサポートが追加されました。 + + + + + ODBC + + + 新しい関数 odbc_connection_string_is_quoted, + odbc_connection_string_should_quote, + odbc_connection_string_quote が追加されました。 + これらは主に、ODBC や PDO_ODBC 拡張モジュールの裏側で使われるものです。 + ただ、ユニットテストを容易にしたり、 + ユーザーアプリケーションやライブラリ自体がクォートを行えるようにする目的で、 + ユーザーが使える関数として公開されています。 + + + + + PCRE + + + 修飾子 n (NO_AUTO_CAPTURE) のサポートが追加されました。 + これを使うと、単純な (xyz) 形式でのグループ化ではキャプチャを行いません。 + (?<name>xyz) のような、名前付きのグループ化を使う場合にのみ、 + キャプチャを行うようになります。 + これによって影響を受けるのは、どのグループがキャプチャされるかだけです。 + 番号付きのサブパターンによる参照もまだ使えますし、 + その場合マッチ結果が格納される配列には数値が含まれています。 + + + + + Random 拡張モジュール + + + 乱数生成器に関連する既存の実装を整理し、統合する新しい拡張モジュールが追加されました。 + 新しく、かつ優れた乱数生成器が使えるようになり、スコープの問題も解消されています。 + + + + + + + diff --git a/appendices/migration82/new-functions.xml b/appendices/migration82/new-functions.xml new file mode 100644 index 0000000000..974ff4d516 --- /dev/null +++ b/appendices/migration82/new-functions.xml @@ -0,0 +1,100 @@ + + + + + 新しく追加された関数 + + + cURL + + curl_upkeep + + + + + IMAP + + imap_is_open (PHP 8.2.1 以降) + + + + + MySQLi + + mysqli_execute_query + + + + + ODBC + + odbc_connection_string_is_quoted + odbc_connection_string_should_quote + odbc_connection_string_quote + + + + + OpenSSL + + openssl_cipher_key_length + + + + + Reflection + + + ReflectionFunction::isAnonymous + + ReflectionMethod::hasPrototype + + + + + Sodium + + + XChaCha20 + + sodium_crypto_stream_xchacha20_xor_ic + + + + + + 標準ライブラリ + + memory_reset_peak_usage + ini_parse_quantity + + + + + XML + + libxml_get_external_entity_loader + + + + + diff --git a/appendices/migration82/other-changes.xml b/appendices/migration82/other-changes.xml new file mode 100644 index 0000000000..03829c740f --- /dev/null +++ b/appendices/migration82/other-changes.xml @@ -0,0 +1,368 @@ + + + + + その他の変更 + + + PHP コア + + + iterable 型は、コンパイル時に組み込みで + arrayTraversable のエイリアスと見なされるようになりました。 + よって、iterable に関連するエラーメッセージは、 + array|Traversable のものが使われるようになります。 + 型のリフレクションは、単一の iterable + (および ?iterable) については + iterable という名前が付いた ReflectionNamedType を生成しますが、 + union 型の中で iterable を使った場合、 + array|Traversable に変換されます。 + + + + 送信される Cookie の日付フォーマットが 'D, d M Y H:i:s \G\M\T' になりました。 + これより前のバージョンでは 'D, d-M-Y H:i:s T' でした。 + + + + + SAPI モジュールへの変更 + + + CLI + + + STDOUT, STDERR, STDIN ストリームは、リソースが破棄される時にクローズされなくなりました。 + これらのクローズは、ほとんどの場合 CLI が終了する際に行われます。 + しかし、fclose や類似の関数を使うことで、これらのストリームを明示的に閉じることはできます。 + + + + + + 変更された関数 + + + PHP コア + + + バイナリセーフな文字列比較を行う + strcmp, strcasecmp, + strncmp, strncasecmp, + substr_compare は、 + 比較対象の文字列の長さが等しくないときに strlen($string1) - strlen($string2) を返すことが保証されなくなり、 + -11 を返すようになりました。 + 返される具体的な値に依存する代わりに、これらの関数の戻り値は + 0 と比較すべきです。 + + + + + DBA + + + dba_opendba_popen は、以下のシグネチャを強制するようになりました: + + resourcefalsedba_open + stringpath + stringmode + stringnullhandler&null; + intpermission0644 + intmap_size0 + intnullflags&null; + + + + dba_fetch のオプションの skip 引数は、 + PHP でユーザーが使える関数のセマンティクスに従い、最後に置かれるようになりました。 + シグネチャは以下になります: + + stringfalsedba_fetch + stringarraykey + resourcehandle + intskip + + + オーバーロードされたシグネチャは下記のとおりです: + + stringfalsedba_fetch + stringarraykey + intskip + resourcehandle + + + 上記は、引き続き許可されていますが、新しい標準的なシグネチャを使うことを推奨します。 + + + + + Random + + + random_bytesrandom_int + は、CSPRNG が失敗した場合に + \Random\RandomException をスローするようになりました。 + これより前のバージョンでは、\Exception がスローされていました。 + + + + + Standard PHP Library(SPL) + + + iterator_to_arrayiterator_count + の iterator 引数の型が + Iterator から iterable に拡張され、 + 配列を渡せるようになりました。 + + + + + + + 拡張モジュールへのその他の変更 + + + Date + + + DatePeriod のプロパティが、適切に宣言されるようになりました。 + + + + + 国際化関数 + + + IntlBreakIterator, + IntlRuleBasedBreakIterator, + IntlCodePointBreakIterator, + IntlPartsIterator, + IntlCalendar, + Collator, + IntlIterator, + UConverter, + IntlDateFormatter, + IntlDatePatternGenerator, + MessageFormatter, + ResourceBundle, + Spoofchecker, + IntlTimeZone, + Transliterator のインスタンスは、シリアライズできなくなりました。 + これより前のバージョンでは、シリアライズはできていましたが、 + アンシリアライズした際に役に立たないオブジェクトを生成したり、失敗したりしていました。 + + + + + MySQLi + + + libmysql のサポートが削除されました。 + よって、libmysql を使って mysqli をビルドすることはもはやできません。 + このバージョンからは、 + mysqli 拡張モジュールは mysqlnd を使った場合にのみコンパイルできます。 + 以下に示す、mysqlnd で利用できない、libmysql のすべての機能が削除されました: + + mysqli_driver の reconnect プロパティ + + mysqli.reconnect INI ディレクティブ + + 定数 MYSQLI_IS_MARIADB は、推奨されなくなりました + + + + + + OCI8 + + + 必須となる Oracle Client library の最低バージョンが、11.2 になりました。 + + + + + PCRE + + + パターン文字列中の NUL 文字 (\0) がサポートされるようになりました。 + + + + + Session + + + セッションがアクティブだったり、出力が既に送信された後に + session.cookie_samesite + を変更しようとすると、変更が失敗するとともに、警告が発生するようになりました。 + この変更は、他のセッション関連の INI 設定の振る舞いに合わせたものです。 + + + + + SQLite3 + + + sqlite3.defensive の変更可能範囲が、INI_USER になりました。 + + + + + 標準ライブラリ + + + getimagesize は、AVIF 画像の ビット数、チャンネル情報、幅と高さの情報(dimensions) を返すようになりました。 + これより前のバージョンでは、幅と高さの情報は 0x0 として報告され、ビット数とチャンネル情報は全く報告されていませんでした。 + + + + + Tidy + + + tidy クラスのプロパティが、適切に宣言されるようになりました。 + tidyNode のプロパティも、readonly として適切に宣言されるようになりました。 + + + + + Zip + + + Zip 拡張モジュールは、1.20.0 にアップデートされました。 + 以下のメソッドが追加されています: + + ZipArchive::clearError + ZipArchive::getStreamName + ZipArchive::getStreamIndex + + + + + + + INI ファイルの扱いの変更 + + + + INI ファイルに数値を設定する際、 + 2進数のプレフィックス (0b/0B) + および、8進数のプレフィックス (0o/0O) + を指定する機能がサポートされました。 + INI ファイルに数値を設定する際に値をゼロ (0) から始めた場合、 + 引き続き8進数の数値として解釈されます。 + + + + 設定項目によっては、不正な値をパースした場合に警告が発生するようになりました。 + これより前のバージョンでは、静かに無視されていました。 + 後方互換を保つため、値を解釈する方法は変更されていません。 + 影響を受ける設定は、以下のとおりです: + + + bcmath.scale + com.code_page + default_socket_timeout + fiber.stack_size + hard_timeout + intl.error_level + ldap.max_links + max_input_nesting_level + max_input_vars + mbstring.regex_retry_limit + mbstring.regex_stack_limit + mysqli.allow_local_infile + mysqli.allow_persistent + mysqli.default_port + mysqli.max_links + mysqli.max_persistent + mysqli.rollback_on_cached_plink + mysqlnd.log_mask + mysqlnd.mempool_default_size + mysqlnd.net_read_buffer_size + mysqlnd.net_read_timeout + oci8.default_prefetch + oci8.max_persistent + oci8.persistent_timeout + oci8.ping_interval + oci8.prefetch_lob_size + oci8.privileged_connect + oci8.statement_cache_size + odbc.allow_persistent + odbc.check_persistent + odbc.max_persistent + odbc.max_links + odbc.defaultbinmode + odbc.default_cursortype + odbc.defaultlrl + opcache.consistency_checks + opcache.file_update_protection + opcache.force_restart_timeout + opcache.interned_strings_buffer + opcache.jit_bisect_limit + opcache.jit_blacklist_root_trace + opcache.jit_blacklist_side_trace + opcache.jit_debug + opcache.jit_hot_func + opcache.jit_hot_loop + opcache.jit_hot_return + opcache.jit_hot_side_exit + opcache.jit_max_exit_counters + opcache.jit_max_loop_unrolls + opcache.jit_max_polymorphic_calls + opcache.jit_max_recursive_calls + opcache.jit_max_recursive_returns + opcache.jit_max_root_traces + opcache.jit_max_side_traces + opcache.log_verbosity_level + opcache.max_file_size + opcache.opt_debug_level + opcache.optimization_level + opcache.revalidate_freq + output_buffering + pcre.backtrack_limit + pcre.recursion_limit + pgsql.max_links + pgsql.max_persistent + post_max_size + realpath_cache_size + realpath_cache_ttl + session.cache_expire + session.cookie_lifetime + session.gc_divisor + session.gc_maxlifetime + session.gc_probability + soap.wsdl_cache_limit + soap.wsdl_cache_ttl + unserialize_max_depth + upload_max_filesize + user_ini.cache_ttl + xmlrpc_error_number + zend.assertions + zlib.output_compression_level + + + + + + diff --git a/appendices/migration82/windows-support.xml b/appendices/migration82/windows-support.xml new file mode 100644 index 0000000000..977e44219b --- /dev/null +++ b/appendices/migration82/windows-support.xml @@ -0,0 +1,57 @@ + + + + + Windows のサポート + + + PHP コア + + Windows 特有のエラーメッセージは、ローカライズされなくなりました。 + PHP のエラーメッセージによりマッチさせるため、代わりに英語で表示されます。 + + + 仮の、かつとても初期の実験的なサポートとして、 + ARM64 版のビルドが追加されました。 + + + + + OCI8 + + Oracle 10g を使ってビルドすることはもはやサポートされていないため、 + configureオプション --with-oci8 は削除されました。 + --with-oci8-11g, --with-oci8-12c, + --with-oci8-19 は引き続きサポートされています。 + + + + + Zip + + Zip 拡張モジュールは、1.21.0 にアップデートされました。 + かつ、デフォルトで共有ライブラリ (DLL) としてビルドされるようになりました。 + + + + + diff --git a/appendices/migration83.xml b/appendices/migration83.xml new file mode 100644 index 0000000000..e13805bda0 --- /dev/null +++ b/appendices/migration83.xml @@ -0,0 +1,51 @@ + + + + + PHP 8.2.x から PHP 8.3.x への移行 + + + この新しいマイナーバージョンには、たくさんの 新機能 と 互換性のない変更がいくつか あります。実運用環境の PHP をこのバージョンにあげる前に、これらの変更を必ずテストすべきです。 + + + + &manual.migration.seealso; + 7.1.x, + 7.2.x, + 7.3.x, + 7.4.x, + 8.0.x, + 8.1.x, + 8.2.x. + + + &appendices.migration83.new-features; + &appendices.migration83.new-classes; + &appendices.migration83.new-functions; + &appendices.migration83.constants; + &appendices.migration83.incompatible; + &appendices.migration83.deprecated; + &appendices.migration83.other-changes; + &appendices.migration83.windows-support; + + + diff --git a/appendices/migration83/constants.xml b/appendices/migration83/constants.xml new file mode 100644 index 0000000000..93e6f5b105 --- /dev/null +++ b/appendices/migration83/constants.xml @@ -0,0 +1,337 @@ + + + + + 新しいグローバル定数 + + + cURL + + + + + CURLINFO_CAPATH (libcurl >= 7.84.0) + + + + + CURLINFO_CAINFO (libcurl >= 7.84.0) + + + + + CURLOPT_MIME_OPTIONS (libcurl >= 7.81.0) + + + + + CURLMIMEOPT_FORMESCAPE (libcurl >= 7.81.0) + + + + + CURLOPT_WS_OPTIONS (libcurl >= 7.86.0) + + + + + CURLWS_RAW_MODE (libcurl >= 7.86.0) + + + + + CURLOPT_SSH_HOSTKEYFUNCTION (libcurl >= 7.84.0) + + + + + CURLOPT_PROTOCOLS_STR (libcurl >= 7.85.0) + + + + + CURLOPT_REDIR_PROTOCOLS_STR (libcurl >= 7.85.0) + + + + + CURLOPT_CA_CACHE_TIMEOUT (libcurl >= 7.87.0) + + + + + CURLOPT_QUICK_EXIT (libcurl >= 7.87.0) + + + + + CURLKHMATCH_OK (libcurl >= 7.19.6) + + + + + CURLKHMATCH_MISMATCH (libcurl >= 7.19.6) + + + + + CURLKHMATCH_MISSING (libcurl >= 7.19.6) + + + + + CURLKHMATCH_LAST (libcurl >= 7.19.6) + + + + + + + 国際化関数 + + + + MIXED_NUMBERS + (Spoofchecker) + + + HIDDEN_OVERLAY + (Spoofchecker) + + + + + + OpenSSL + + + + OPENSSL_CMS_OLDMIMETYPE + + + PKCS7_NOOLDMIMETYPE + + + + + + PCNTL + + + + SIGINFO + + + + + + PDO_ODBC + + + + PDO_ODBC_TYPE + + + + + + Posix + + + + POSIX_SC_ARG_MAX + + + POSIX_SC_PAGESIZE + + + POSIX_SC_NPROCESSORS_CONF + + + POSIX_SC_NPROCESSORS_ONLN + + + POSIX_PC_LINK_MAX + + + POSIX_PC_MAX_CANON + + + POSIX_PC_MAX_INPUT + + + POSIX_PC_NAME_MAX + + + POSIX_PC_PATH_MAX + + + POSIX_PC_PIPE_BUF + + + POSIX_PC_CHOWN_RESTRICTED + + + POSIX_PC_NO_TRUNC + + + POSIX_PC_ALLOC_SIZE_MIN + + + POSIX_PC_SYMLINK_MAX + + + + + + Sockets + + + 以下のソケットオプションは、サポートされている場合にのみ定義されます: + + + + + SO_ATTACH_REUSEPORT_CBPF (Linux) + + + SO_DETACH_BPF (Linux) + + + SO_DETACH_FILTER (Linux) + + + TCP_QUICKACK (Linux) + + + IP_DONTFRAG (FreeBSD) + + + IP_MTU_DISCOVER (Linux) + + + IP_PMTUDISC_DO (Linux) + + + IP_PMTUDISC_DONT (Linux) + + + IP_PMTUDISC_WANT (Linux) + + + IP_PMTUDISC_PROBE (Linux) + + + IP_PMTUDISC_INTERFACE (Linux) + + + IP_PMTUDISC_OMIT (Linux) + + + AF_DIVERT (FreeBSD) + + + SOL_UDPLITE + + + UDPLITE_RECV_CSCOV + + + UDPLITE_SEND_CSCOV + + + + SO_RERROR (NetBSD) + + + SO_ZEROIZE (OpenBSD) + + + SO_SPLICE (OpenBSD) + + + TCP_REPAIR (Linux) + + + SO_REUSEPORT_LB (FreeBSD) + + + IP_BIND_ADDRESS_NO_PORT (Linux) + + + + + + Zip + + + + + ZipArchive::ER_DATA_LENGTH (libzip >= 1.10) + + + + + ZipArchive::ER_NOT_ALLOWED (libzip >= 1.10) + + + + + ZipArchive::AFL_RDONLY (libzip >= 1.10) + + + + + ZipArchive::AFL_IS_TORRENTZIP (libzip >= 1.10) + + + + + ZipArchive::AFL_WANT_TORRENTZIP (libzip >= 1.10) + + + + + ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE + (libzip >= 1.10) + + + + + ZipArchive::FL_OPEN_FILE_NOW + + + + + ZipArchive::LENGTH_TO_END (ZipArchive::addFileZipArchive::replaceFile のデフォルト値) + + + + + ZipArchive::LENGTH_UNCHECKED (libzip >= 1.10) + + + + + + + diff --git a/appendices/migration83/deprecated.xml b/appendices/migration83/deprecated.xml new file mode 100644 index 0000000000..7412811697 --- /dev/null +++ b/appendices/migration83/deprecated.xml @@ -0,0 +1,153 @@ + + + + + PHP 8.3.x で推奨されなくなる機能 + + + PHP コア + + + 加算子/減算子 に対する変更 + + + 空文字列や、数値形式でない文字列、そして英数字でない文字列に対して、加算子 (++) を使うことは推奨されなくなりました。さらに、数値形式でない文字列に 加算子 を使うことも、soft-deprecated 扱いになりました。つまり、E_DEPRECATED は発生しないものの、新しいコードではこの機能を使うべきではないということです。新しい str_increment 関数を代わりに使いましょう。 + + + + 空文字列や数値形式でない文字列に対して、減算子 (--) を使うことは推奨されなくなりました。 + + + + + + 引数を渡さずに get_class()/get_parent_class() をコールする + + + get_classget_parent_class を、引数を渡さずにコールすることは、推奨されなくなりました。 + + + + + + DBA + + + $dba を第3引数に渡して dba_fetch をコールすることは、推奨されなくなりました。 + + + + + FFI + + + FFI::cast, FFI::new, FFI::type を static メソッドとしてコールすることは、推奨されなくなりました。 + + + + + 国際化関数 + + + 定数 U_MULTIPLE_DECIMAL_SEP*E*RATORS は、推奨されなくなりました。代わりに U_MULTIPLE_DECIMAL_SEP*A*RATORS を使いましょう。 + + + 定数 NumberFormatter::TYPE_CURRENCY は、推奨されなくなりました。 + + + + + LDAP + + + ldap_connect に、$hostname$port を別々に渡してコールすることは、推奨されなくなりました。 + + + + + + マルチバイト文字列 + + + mb_strimwidth に負の $width を渡すことは、推奨されなくなりました。 + + + + + Phar + + + resource$length を渡して Phar::setStub をコールすることは、推奨されなくなりました。$phar->setStub(stream_get_contents($resource)); に置き換えるべきです。 + + + + + Random + + + メルセンヌ・ツイスタ の動作モード MT_RAND_PHP は、推奨されなくなりました。 + + + + + + リフレクション + + + ReflectionProperty::setValue にひとつだけ引数を渡してコールすることは、推奨されなくなりました。static プロパティを設定するには、最初の引数に &null; を渡します。 + + + + + 標準ライブラリ + + + assert_options 関数は、推奨されなくなりました。 + + + 定数 ASSERT_ACTIVE, ASSERT_BAIL, ASSERT_CALLBACK, ASSERT_EXCEPTION, ASSERT_WARNING は、推奨されなくなりました。 + + + + INI 設定 assert.* は、推奨されなくなりました。詳細は INI ファイルの扱いの変更 を参照ください。 + + + + + + SQLite3 + + + 例外を使うことが推奨されるようになりました。警告は将来のバージョンで削除されます。SQLite3::enableExceptions(false) をコールすると、このバージョンでは推奨されない警告が発生します。 + + + + + Zip + + + 定数 ZipArchive::FL_RECOMPRESS は、推奨されなくなりました。将来の libzip のバージョンで削除されます。 + + + + + diff --git a/appendices/migration83/incompatible.xml b/appendices/migration83/incompatible.xml new file mode 100644 index 0000000000..ea094f228e --- /dev/null +++ b/appendices/migration83/incompatible.xml @@ -0,0 +1,190 @@ + + + + + 下位互換性のない変更点 + + + PHP コア + + + + コールスタックがオーバーフローしそうになっているプログラム + + コールスタックがオーバーフローしそうになっているプログラムは、zend.max_allowed_stack_size - zend.reserved_stack_size (ファイバーの場合は fiber.stack_size - zend.reserved_stack_size) バイト以上のスタックを使い切った時点で Error をスローするようになりました。 + + + + + proc_get_status() を複数回コールする + + proc_get_status を複数回コールした場合、POSIX システムでは常に正しい値を返すようになりました。これより前のバージョンでは、最初の呼び出しの場合にだけ正しい値を返していました。proc_get_status をコールしたあとに proc_close を呼び出した場合も、正しい終了コードを返すようになりました。これより前のバージョンでは、-1 を返していました。内部的に、この処理は POSIX システム上で結果の値をキャッシュすることで実現しています。以前の振る舞いを望む場合は、proc_get_status が返す配列の "cached" キーをチェックすることで、結果がキャッシュされているかを確認できます。 + + + + + 実行時間の最大秒数を制御するタイマー + + 実行時間の最大秒数を制御するタイマーが、Linux 上で ZTS を有効にしてビルドした場合でもデフォルトで有効になりました。 + + + + + static プロパティと一緒にトレイトを使う + + static プロパティと一緒にトレイトを使うと、親クラスから継承する static プロパティを再宣言するようになりました。つまり、現在のクラスのために別の static プロパティを作成するということです。これは、トレイトを使わずに直接 static プロパティを追加する操作に似ています。 + + + + + 空の配列に負のインデックスを割り当てる + + 空の配列に負のインデックス $n を割り当てた場合、その次のインデックスは 0 ではなく、必ず $n+1 になります。 + + + + + クラス定数のアクセス権 + + クラス定数のアクセス権が、インターフェイスから継承した場合でも正しくチェックされるようになりました。 + + + + + キーが自分自身を参照している WeakMap のエントリ + + WeakMap のエントリには、(おそらく推移的に) キーが自分自身を参照しているものがあります。そのキーが到達できない場合に、循環参照のコレクタがそれを削除できるようになりました。但し、WeakMap をループしている場合を除きます (ループ経由で到達できることは、weak と見なされるためです)。これより前のバージョンでは、こうしたエントリは自動で決して削除されませんでした。 + + + + + + Date + + + 日付・時刻の拡張モジュールでは、DateErrorDateException の階層に、拡張モジュール特有の例外とエラーを追加しました。これは、エラー時に警告や汎用の例外を発生させていた動作を置き換えるものです。これらによって、エラーや例外をチェックする必要がなくなり、エラーハンドリングが改善できます。 + + + + + DOM + + + 親が存在しないノード上で DOMChildNode::after, DOMChildNode::before, DOMChildNode::replaceWith をコールしても、親子関係に関する例外をスローせず、何もしなくなりました。これは DOM の仕様が要求している振る舞いです。 + + + + ドキュメントノードが存在しない状態で DOMParentNodeDOMChildNode のメソッドを使うと、DOM_HIERARCHY_REQUEST_ERR DOMException をスローせず、エラーなしで動作するようになりました。これはDOMの仕様が要求している振る舞いです。 + + + + prefix を指定せずに DOMDocument::createAttributeNS をコールすると、デフォルトの名前空間を誤って作成し、その名前空間中に属性ではなく要素を置いていました。PHP 8.3 では、このバグが修正されています。 + + + + 以前のバージョンでは、DOMDocument::createAttributeNS は、prefix が既に異なる URI で使われている場合に DOM_NAMESPACE_ERRNAMESPACE_ERR DOMException をスローしていました。 + このバージョンからは、prefix の名前が衝突していた場合でも、異なる prefix を正しく選べるようになりました。 + + + + 新しいメソッドやプロパティが DOM クラスに追加されました。ユーザー定義のクラスがこれらを継承し、メソッドやプロパティを親クラスのものと同じ名前で宣言した場合、それらの宣言には互換性がなければいけません。互換性がない宣言の場合、それを指摘するコンパイルエラーがスローされることになります。新しく実装されたメソッドやプロパティについては、新機能 のセクションと 新しく追加された関数 を参照ください。 + + + + + FFI + + + void 型を返すC言語の関数は、object(FFI\CData:void) { } ではなく、&null; を返すようになりました。 + + + + + Opcache + + + INI ディレクティブ opcache.consistency_checks が削除されました。この機能は tracing JIT や、inheritance cache (継承関係をキャッシュする機能) と一緒に使った場合に壊れてしまっていました。その後、このディレクティブを有効にする方法が見つからないまま、PHP 8.1.18 と 8.2.5 で無効にされました。tracing JIT と inheritance cache は両方、スクリプトが永続化された後に共有メモリを変更し、そのチェックサムを無効にする可能性があります。変更されうるポインタをスキップする変更も試みられましたが、複雑過ぎて受け入れられませんでした。以上の理由から、壊れてしまうバグを修正するのではなく、ディレクティブそのものが削除されることになりました。 + + + + + Phar + + + Phar クラスの定数が、型宣言するようになりました。 + + + + + 標準ライブラリ + + + range 関数に対して、さまざまな変更が加えられました: + + オブジェクトやリソース、配列を境界の値として渡すと、TypeError がスローされるようになりました。 + $step0 を渡すと、よりわかりやすい ValueError がスローされるようになりました。 + 範囲が増加しているのに、$step に負の値を渡すと、ValueError がスローされるようになりました。 + $step が整数型として解釈できる float の場合、整数型として解釈するようになりました。 + 引数のいずれかが無限大または NAN の場合、ValueError がスローされるようになりました。 + $start$end が空文字列の場合、E_WARNING が発生するようになりました。値そのものが 0 にキャストされる動作は変更されていません。 + $start$end が1バイトより長い場合、E_WARNING が発生するようになりました。但し、それが数値形式の文字列でない場合に限ります。 + $start$end が整数型にキャストした値の場合、E_WARNING が発生するようになりました。なぜなら、他の境界の入力値は数値だからです。(例: range(5, 'z');) + $step が float の場合で、ある範囲の文字を生成しようとした場合、E_WARNING が発生するようになりました。但し、境界の値がともに数値形式の文字列の場合を除きます。(例: range('5', '9', 0.5); のようなコードは、警告が発生しません) + range 関数は、境界の値の一方が数字の場合、もう片方の境界の値を整数にキャストせず、文字のリストを生成するようになりました。(例: range('9', 'A');). + + + + +", "?", "@", "A"] +range('9', 'A'); // PHP 8.3.0 より前は、[9, 8, 7, 6, 5, 4, 3, 2, 1, 0] +?> +]]> + + + + + + number_format は、負の + $decimals の値を小数点以下 + $num 桁から abs($decimals) + 桁に丸めるようになりました。 + これより前のバージョンでは、負の $decimals + は黙って無視されていました。 + + + + file 関数の flags パラメータは、すべての不正な値をチェックするようになりました。注意すべきなのは、これより前のバージョンでは FILE_APPEND を黙って受け入れていましたが、このバージョンから受け入れなくなったことです。 + + + + + SNMP + + + SNMP クラスの定数が、型宣言するようになりました。 + + + + + diff --git a/appendices/migration83/new-classes.xml b/appendices/migration83/new-classes.xml new file mode 100644 index 0000000000..2cba429432 --- /dev/null +++ b/appendices/migration83/new-classes.xml @@ -0,0 +1,92 @@ + + + + + + 新しいクラスとインターフェイス + + + Date + + + + DateError + + + + + DateObjectError + + + + + DateRangeError + + + + + DateException + + + + + DateInvalidOperationException + + + + + DateInvalidTimeZoneException + + + + + DateMalformedIntervalStringException + + + + + DateMalformedPeriodStringException + + + + + DateMalformedStringException + + + + + + + Random + + + + + Random\IntervalBoundary + + + + + + + + diff --git a/appendices/migration83/new-features.xml b/appendices/migration83/new-features.xml new file mode 100644 index 0000000000..fc7fda63d6 --- /dev/null +++ b/appendices/migration83/new-features.xml @@ -0,0 +1,185 @@ + + + + + 新機能 + + + PHP コア + + + readonly 機能の修正 + + + 無名クラスも、readonly としてマークできるようになりました。 + + + + 読み取り専用プロパティは、clone している間に再初期化できるようになりました。 + + + + + + クラス定数に対する型宣言 + + + クラス、インターフェイス、トレイト、そして列挙型の定数は、新たに型宣言をサポートするようになりました。 + + + + + + マジックメソッドで作ったクロージャ + + + マジックメソッドで作ったクロージャは、名前付き引数を受け入れるようになりました。 + + + + + トレイトのメソッドに対する final 指定 + + + トレイトからメソッドを使う場合に、そのメソッドに対して final を指定できるようになりました。 + + + + + Override アトリビュート + + + 親クラスまたは実装済みのインターフェイス内で、メソッドが存在するかを調べるアトリビュートとして、#[\Override] が追加されました。 + + + + + + クラス定数への動的なアクセス構文 + + + クラス定数は、C::{$name} という構文で動的にアクセスできるようになりました。 + + + + + + static 変数の初期化 + + + static 変数を初期化する際に、任意の式が使えるようになりました。 + + + + + + INI 変数に対するデフォルト値指定 + + + ini ファイル内で、デフォルト値を指定する文法をサポートしました。 + + + + + + + + + + + + + + CLI + + + 複数のファイルの文法チェックを、一度にできるようになりました。 + + + + + DOM + + + プロパティ DOMElement::$className と、DOMElement::$id が追加されました。libxml2 の制限により、現時点でこれらはバイナリセーフではありません。つまり、プロパティの値から NUL バイト以降が切り捨てられるということです。 + + + + プロパティ DOMNode::$isConnectedDOMNameSpaceNode::$isConnected が追加されました。 + + + + プロパティ DOMNode::$parentElementDOMNameSpaceNode::$parentElement が追加されました。 + + + + + FFI + + + FFI\CData を他の FFI\CData に代入できるようになりました。つまり、CData を構造体やフィールドに代入できるようになったということです。 + + + + + Opcache + + + opcache_get_status()['scripts'][n]['revalidate'] の値に、いつスクリプトの更新チェックを行うかの予定が Unix タイムスタンプの形で含まれるようになりました。いつチェックを行うかは、opcache.revalidate_freq によって決まります。 + + + + + POSIX + + + posix_getrlimit で、リソースの制限値をひとつ取得できる、オプションの $resource パラメータが使えるようになりました。 + + + + posix_isatty は、通常のパラメータ解釈のセマンティクス(ZPP) に従い、整数値に対して警告を発生させるようになりました。 + + + + posix_ttyname は、通常のパラメータ解釈のセマンティクス(ZPP) に従い、整数値に対して警告を発生させるようになりました。さらに、無効なファイルディスクリプタの整数値に対しても、警告を発生させるようになっています。 + + + + + Streams + + + 以前のバージョンでは実装されていなかった新しい通知として、STREAM_NOTIFY_COMPLETED が発生させられるようになりました。 + + + + + diff --git a/appendices/migration83/new-functions.xml b/appendices/migration83/new-functions.xml new file mode 100644 index 0000000000..6540e64971 --- /dev/null +++ b/appendices/migration83/new-functions.xml @@ -0,0 +1,159 @@ + + + + + 新しく追加された関数 + + + Date + + + DatePeriod::createFromISO8601String + + + + + DOM + + + DOMElement::getAttributeNames + + DOMElement::insertAdjacentElement + + DOMElement::insertAdjacentText + + DOMElement::toggleAttribute + + DOMNode::contains + + DOMNode::getRootNode + + DOMNode::isEqualNode + + DOMParentNode::replaceChildren + + + + + 国際化関数 + + + IntlCalendar::setDate + + IntlCalendar::setDateTime + + IntlGregorianCalendar::createFromDate + + IntlGregorianCalendar::createFromDateTime + + + + + JSON + + json_validate + + + + + + LDAP + + ldap_connect_wallet + ldap_exop_sync + + + + + マルチバイト文字列 + + mb_str_pad + + + + + + Posix + + posix_sysconf + posix_pathconf + posix_fpathconf + posix_eaccess + + + + + PostgreSQL + + pg_set_error_context_visibility + (libpq >= 9.6) + + + + + Random + + + + Random\Randomizer::getBytesFromString + + Random\Randomizer::nextFloat + + Random\Randomizer::getFloat + + + + + Reflection + + + ReflectionMethod::createFromMethodName + + + + + Sockets + + socket_atmark + + + + + Standard + + str_increment + str_decrement + + stream_context_set_options + + + + + Zip + + + ZipArchive::getArchiveFlag + + + + + diff --git a/appendices/migration83/other-changes.xml b/appendices/migration83/other-changes.xml new file mode 100644 index 0000000000..104177c541 --- /dev/null +++ b/appendices/migration83/other-changes.xml @@ -0,0 +1,425 @@ + + + + + その他の変更 + + + PHP コア + + + FFI + + + opcache.preload_user が現在のシステムユーザーに設定されている場合、事前ロードの間に FFI::load をコールできるようになりました。これより前のバージョンでは、opcache.preload_user が設定されている場合は、事前ロードの間に FFI::load を呼び出せませんでした。 + + + + + FPM + + + ソケットのパスの長さが OS がサポートする長さ以上の場合、FPM CLI のテストが失敗するようになりました。 + + + + + Opcache + + + CLI SAPI と phpdbg SAPI では、opcache.preload_user ディレクティブを設定しなくても root として事前ロードを実行できるようになりました。これら以外の SAPI では、root として事前ロードを実行する際に このディレクティブの設定が未だ必須です。なぜなら、SAPI が特権を持っていないユーザに移行する前に事前ロードが実行されるからです。 + + + + + Streams + + + ソケット接続をブロックする fread 関数は、バッファリングされているデータが存在した場合、追加のデータを待つのではなく、すぐに値を返すようになりました。 + + + + seek のオフセットが終端を超えた場合でも、memory ストリームは失敗しなくなりました。代わりに、次回書き込まれたときにメモリサイズが増加し、以前の終端からオフセットまでの間は、ファイルを扱っているときのようにゼロバイトで埋められます。 + + + + stat のファイルアクセス操作が、file_exists 類似の関数と同様に、ストリームのパスではなく、実在のパスを使うようになりました。これはストリームをオープンするときの振る舞いと一致します。 + + + + + + SAPI モジュールへの変更 + + + CLI + + + STDOUT, STDERR, STDIN ストリームは、リソースが破棄される際にクローズされなくなりました。リソースが破棄されるタイミングでは CLI がほぼ終了しているからです。但し、fclose やその類似の関数を使い、これらのストリームを明示的に閉じることは未だできます。 + + + + + + 変更された関数 + + + PHP コア + + + gc_status に、以下の8つのフィールドが追加されました: + + + "running" => bool + "protected" => bool + "full" => bool + "buffer_size" => int + "application_time" => float: gc の合計の実行時間を秒単位で示します(collector_time を含みます) + "collector_time" => float: 循環参照を回収するのに使った時間を秒単位で示します(dessructor_time と free_time を含みます) + "destructor_time" => float: 循環参照を回収している間に、デストラクタを実行した時間を秒単位で示します + "free_time" => float: 循環参照を回収している間に、メモリを開放するのにかかった時間を秒単位で示します + + + + + class_alias は、内部クラスのエイリアスを作成する操作もサポートしました。 + + + + ini_set('open_basedir', ...); を実行して実行時に open_basedir を設定する場合、親ディレクトリ (..) を含んだパスを受け入れなくなりました。これより前のバージョンでは、.. で始まるパスだけを拒否していました。.. で始まるパスのみを拒否する制限は、パスの先頭に ./ を付加することで簡単に回避できてしまっていました。 + + + + ユーザー定義の例外ハンドラは、シャットダウン時の例外もキャッチするようになりました。 + + + + highlight_stringhighlight_file の結果として出力されるHTMLが、変更されました。外側のHTMLタグの間にあるホワイトスペースは削除されます。改行とスペースはHTMLエンティティに変換されなくなりました。HTML全体を <pre> タグで囲むようになっています。外側の <span> タグは <code> タグに統合されました。 + + + + + + Calendar + + + easter_date は、64ビットシステム上で 1970 から 2,000,000,000 までの年の値をサポートしました。これより前のバージョンでは、1970 から 2037 までの年の値だけをサポートしていました。 + + + + + Curl + + + curl_getinfo は、新しく2つの定数をサポートしました: CURLINFO_CAPATHCURLINFO_CAINFO です。$option が &null; の場合、以下の追加のキーが含まれるようになります: "capath", "cainfo" + + + + + DOM + + + DOMCharacterData::appendData の仮の戻り値の型が、true に変更されました。 + + + + DOMDocument::loadHTML, DOMDocument::loadHTMLFile, DOMDocument::loadXML の仮の戻り値の型が、bool になりました。これより前のバージョンでは、DOMDocument|bool を返すとドキュメントに記されていましたが、PHP 8.0 以降は static にコールできなかったため、 DOMDocument が返せていませんでした。 + + + + + + Gd + + + imagerotate 関数のシグネチャが変更され、$ignore_transparent パラメータが削除されました。このパラメータは PHP 5.5.0 以降、無視されていたためです。 + + + + + 国際化関数 + + + datefmt_set_timezone (とそのエイリアス IntlDateformatter::setTimeZone) は、成功時に &true; を返すようになりました。これより前のバージョンでは、&null; を返していました。 + + + + IntlBreakiterator::setText は、失敗時に &false; を返すようになりました。これより前のバージョンでは、&null; を返していました。 また、成功時に &true; を返すようになりました。これより前のバージョンでは、&null; を返していました。 + + + + IntlChar::enumCharNames は、戻り値として boolean を返すようになりました。これより前のバージョンでは、成功時に &null;、失敗時に &false; を返していました。 + + + + IntlDateFormatter::__construct は、無効なロケールを設定した場合に U_ILLEGAL_ARGUMENT_ERROR 例外をスローするようになりました。 + + + + + マルチバイト文字列 + + + mb_strtolowermb_convert_case は、ギリシャ文字シグマの条件付きケース変換規則を実装しました。mb_convert_case では、条件付きケース変換は MB_CASE_LOWERMB_CASE_TITLE モードにのみ適用され、MB_CASE_LOWER_SIMPLEMB_CASE_TITLE_SIMPLE には適用されません。 + + + + mb_decode_mimeheader は、RFC 2047 で要求された通りに、Qprint でエンコードされた単語のアンダースコアを解釈するようになりました。つまり、それらはスペースに変換されます。このようにMIMEエンコードされた単語では、アンダースコアは "=5F" としてエンコードしなければいけません。 + + + + mb_encode_mimeheader の実装が変更され、レアケースではあるものの、PHP 8.2 で生の ASCII として渡されていた入力文字列が、transfer_encoding の値でエンコードされる場合があります。 + + + + mb_encode_mimeheader は、入力文字列が Qprint エンコーディングの場合に、NUL(ゼロ)バイトを削除しなくなりました。これより前のバージョンでは、あるテキストエンコーディングの場合(特に UTF-16 と UTF-32) に NUL バイトが削除され、mb_encode_mimeheader の結果が壊れる場合がありました。 + + + + mb_detect_encoding の "$strict に true を指定しない" モードが、ドキュメントの通りに振る舞うようになりました。これより前のバージョンでは、入力文字列と同一のバイト(たとえば、最初のバイト) が、候補となるエンコーディングのリスト全てに対して不正と判定された場合でも、&false; を返していました。もっと一般化すると、不正なバイトが見つかった時点で、候補となるエンコーディングから削除してしまっていました。そして、入力と同一のバイトを削除した場合に、残りのエンコーディングをすべて候補として考慮すべき場合でも、&false; を返していました。一方で、候補となるエンコーディングが削除されて残りがひとつだけになった場合、文字列中で後にどれくらいエンコーディングのエラーが見つかるのかを考慮することなく、その残ったエンコーディングを返していました。この振る舞いは、ドキュメントの以下の説明と一致しません: "strict が false の場合、 もっとも近いと判定された文字エンコーディングが返されます" + + + + + mysqli + + + mysqli_fetch_object は、$constructor_args が空でないのに、クラスにコンストラクタが存在しない場合、 Exception ではなく ValueError を発生させるようになりました。 + + + + mysqli_poll は、$read$error が両方渡されない場合、ValueError を発生させるようになりました。 + + + + mysqli_field_seekmysqli_result::field_seek の戻り値の型が、bool ではなく true に変更されました。 + + + + + ODBC + + + odbc_autocommitは、$enable パラメータで &null; を受け入れるようになりました。&null; を渡すと、パラメータをひとつ渡した場合と同じ振る舞いをします。つまり、自動コミットが有効かどうかだけを示す動きをします。 + + + + + PostgreSQL + + + pg_fetch_object は、$constructor_args が空でないのに、クラスにコンストラクタが存在しない場合、Exception ではなく ValueError を発生させるようになりました。 + + + + pg_insert は、指定されたテーブルが無効な場合に、E_WARNING ではなく ValueError を発生させるようになりました。 + + + + pg_insertpg_convert は、フィールドの値/タイプ が PostgreSQL の型と一致しない場合に、E_WARNING ではなく ValueError または TypeError を発生させるようになりました。 + + + + pg_fetch_result, pg_field_prtlen, pg_field_is_null のパラメータ $row は、nullable になりました。 + + + + + Random + + + mt_srandsrand は、ランダムなシードを使うかを決めるために、引数の数をチェックしなくなりました。&null; を渡すとランダムなシードを生成します。0 を渡すとゼロをシードとして使います。これらの関数の振る舞いは、Random\Engine\Mt19937::__construct と一貫したものになりました。 + + + + + + リフレクション + + + ReflectionClass::getStaticProperties の戻り値の型は、nullable ではなくなりました。 + + + + + 標準ライブラリ + + + unserialize で発生していた E_NOTICE は、E_WARNING に変更されました。 + + + + + 処理されていない入力が残っている場合に、unserialize は新たに E_WARNING を発生させるようになりました。 + + + + + array_pad は、配列が持つことができる最大の要素数だけを制限するようになりました。これより前のバージョンでは、一度に追加できる最大の要素数が 1048576 になっていました。 + + + + strtok は、トークンの分割を開始した際にトークンが与えられていない場合、E_WARNING を発生させるようになりました。 + + + + password_hash は、ソルトの生成が失敗した場合に、ValueError$previous (直前にスローされた例外) として、既に存在する Random\RandomException をチェインさせるようになりました。 + + + + proc_open$command に配列を指定する場合、空でない要素を少なくともひとつ含んでいることが必須になりました。そうでない場合、ValueError がスローされます。 + + + + proc_open$command に配列を指定する場合、かつそれが不正なコマンドの場合に、後に警告が発生するリソースではなく &false; を返すようになりました。Windows では既にそのように動作していましたが、posix_spawn を使っている場合(ほとんどのプラットフォーム Linux, BSD, MacOS) でも同様の振る舞いをするようになりました。ただ、posix_spawn をサポートしていないために、以前の振る舞いが変更されていない古いプラットフォームもまだ残っています。 + + + + array_sumarray_product は、配列に含まれる値が int/float に変換できない場合、警告を発生させるようになりました。これより前のバージョンでは、配列とオブジェクトは無視され、それら以外の値は int にキャストされていました。さらに、数値へのキャストを定義しているオブジェクト (例: GMP) は、無視されるのではなく、数値に変換されるようになっています。 + + + + + number_format$decimals パラメータは、負の整数値の四捨五入も扱うようになりました。つまり、$decimals が負の値の場合、$num は 小数点前の有効桁数 $decimals 桁に丸められます。これより前のバージョンでは、負の $decimals を指定しても、黙って無視され、数値は小数点以下が0桁になるように丸められていました。 + + + + strrchr$before_needle が追加されました。これは strstrstristr の対応するパラメータと、似た振る舞いをします。 + + + + str_getcsvfgetcsv は、最後のフィールドに終端されていないクォートだけが含まれている場合、null バイトの文字列をひとつ返すのではなく、空文字列を返すようになりました。 + + + + + + + 拡張モジュールへのその他の変更 + + + PHP コア + + + bool 型の値に対して、加算子/減算子 (++/--) を使うと、警告が発生するようになりました。現状、この操作にはなんの意味もありませんが、将来的に $bool += 1 のような振る舞いをするようになるからです。 + + + + null 型の値に対して、減算子 (--) を使うと、警告が発生するようになりました。現状、この操作にはなんの意味もありませんが、将来的に $null -= 1 のような振る舞いをするようになるからです。 + + + + 内部オブジェクトで、_IS_NUMBER キャストを実装しているものの、加算と減算の振る舞いを上書きする do_operator ハンドラを実装していない場合があります。この場合でも、$o += 1$o -= 1 をあたかも実行したかのように、値をインクリメント / デクリメントできるようになりました。 + + + + + DOM + + + DOM の寿命を管理する仕組みが書き直され、暗黙のうちに削除されていたノードが取得できるようになりました。これより前のバージョンでは、削除されていたノードを取得しようとすると例外が発生していました。 + + + + + SQLite3 + + + SQLite3 クラスは、Exception ではなく、(Exception を継承した) SQLite3Exception をスローするようになりました。 + + + + SQLite のエラーコードは、エラーメッセージに含められるのではなく、例外に渡されるようになりました。 + + + + + + + INI ファイルの扱いの変更 + + + + + assert.* INI 設定は、推奨されなくなりました。 + 以下の INI 設定が該当します: + + assert.active + assert.bail + assert.callback + assert.exception + assert.warning + + これらの設定値がデフォルト値の場合、推奨されない警告は発生しません。zend.assertions を代わりに使うべきです。 + + + + + zend.max_allowed_stack_size は、許可される最大のスタックサイズの値を設定するための、新しい INI ディレクティブです。設定できる値は、0 (プロセスやスレッドの、スタックサイズの最大値を用います)、-1 (無制限)、そしてバイト単位の正の数値です。デフォルトは 0 です。プロセスやスレッドのスタックサイズの最大値がわからない場合、既知のシステムのデフォルト値を使います。この値に大き過ぎる値を設定すると、スタックサイズの制限を無効にすることと同じ効果があります。ファイバーは 許可される最大のスタックサイズとして fiber.stack_size の値を使います。プロセスのコールスタックが zend.max_allowed_stack_size-zend.reserved_stack_size バイトを超えると、スタックオーバーフローが引き起こすセグメンテーションフォルトを防ぐため、Error がスローされます。これは、デバッグを容易にすることが目的です。スタックサイズは、制御されていない再帰処理によって増加します。増加する範囲は、内部関数やマジックメソッド __toString(), __clone(), __sleep(), __destruct() 内も含みます。この機能はスタックバッファのオーバーフローとは無関係ですし、セキュリティのための機能でもありません。 + + + + + zend.reserved_stack_size は、予約済みのスタックサイズをバイト単位で設定するための、新しい INI ディレクティブです。許可されたスタックサイズの最大値から、この値がバッファとして引かれ、スタックサイズがチェックされます。 + + + + + + + パフォーマンスに関わる変更 + + + DOM + + + DOMNodeList をループさせた場合、キャッシュを使うようになりました。よって、ノードをリクエストする処理に、デフォルトで O(n^2) 時間かかることはなくなりました。 + + + + ノードからテキストを取得する際に、メモリを確保する処理を避けるようになりました。この結果、パフォーマンスが向上しています。 + + + + DOMChildNode::remove は、計算量が O(1) で実行されるようになりました。 + + + + + 標準ライブラリ + + + file 関数の flags パラメータのエラーチェックは、約7% 高速になりました。 + + + + + Standard PHP Library(SPL) + + + RecursiveDirectoryIterator を使ってディレクトリをループする場合の、I/O が削減されました。 + + + + + + diff --git a/appendices/migration83/windows-support.xml b/appendices/migration83/windows-support.xml new file mode 100644 index 0000000000..9213d52070 --- /dev/null +++ b/appendices/migration83/windows-support.xml @@ -0,0 +1,35 @@ + + + + + Windows のサポート + + + PHP コア + + + PHP の実行をサポートする Windows の最低バージョンが、Windows 8 と Windows Server 2012 になりました。 + + + + + diff --git a/appendices/migration84.xml b/appendices/migration84.xml new file mode 100644 index 0000000000..541ad0f04b --- /dev/null +++ b/appendices/migration84.xml @@ -0,0 +1,54 @@ + + + + + + PHP 8.3.x から PHP 8.4.x への移行 + + + この新しいマイナーバージョンには、たくさんの 新機能 と 互換性のない変更がいくつか あります。実運用環境の PHP をこのバージョンにあげる前に、これらの変更を必ずテストすべきです。 + + + + &manual.migration.seealso; + 7.1.x, + 7.2.x, + 7.3.x, + 7.4.x, + 8.0.x, + 8.1.x, + 8.2.x, + 8.3.x. + + + &appendices.migration84.new-features; + &appendices.migration84.new-classes; + &appendices.migration84.new-functions; + &appendices.migration84.constants; + &appendices.migration84.incompatible; + &appendices.migration84.deprecated; + &appendices.migration84.removed-extensions; + &appendices.migration84.other-changes; + &appendices.migration84.windows-support; + + + diff --git a/appendices/migration84/constants.xml b/appendices/migration84/constants.xml new file mode 100644 index 0000000000..c149912748 --- /dev/null +++ b/appendices/migration84/constants.xml @@ -0,0 +1,340 @@ + + + + + + 新しいグローバル定数 + + + PHP コア + + + + PHP_OUTPUT_HANDLER_PROCESSED + + + PHP_SBINDIR + + + + + + cURL + + + + CURL_HTTP_VERSION_3 + + + CURL_HTTP_VERSION_3ONLY + + + CURL_TCP_KEEPCNT + + + CURLOPT_PREREQFUNCTION + + + CURL_PREREQFUNC_OK + + + CURL_PREREQFUNC_ABORT + + + CURLOPT_SERVER_RESPONSE_TIMEOUT + + + CURLOPT_DEBUGFUNCTION + + + CURLINFO_TEXT + + + CURLINFO_HEADER_IN + + + CURLINFO_DATA_IN + + + CURLINFO_DATA_OUT + + + CURLINFO_SSL_DATA_OUT + + + CURLINFO_SSL_DATA_IN + + + CURLINFO_POSTTRANSFER_TIME_T + + + + + + Intl + + + + PATTERN + (IntlDateFormatter) + + + PROPERTY_IDS_UNARY_OPERATOR + (IntlChar) + + + PROPERTY_ID_COMPAT_MATH_START + + + + PROPERTY_ID_COMPAT_MATH_CONTINUE + + + + + + + LDAP + + + + LDAP_OPT_X_TLS_PROTOCOL_MAX + + + LDAP_OPT_X_TLS_PROTOCOL_TLS1_3 + + + + + + libxml + + + + LIBXML_RECOVER + + + LIBXML_NO_XXE + これは、外部エンティティの読み込みを許可せず + エンティティの置換を行うために、 + LIBXML_NOENTと一緒に使用されます。 + この定数はlibxml2 2.13から利用可能です。 + + + + + + MySQLi + + + + MYSQLI_TYPE_VECTOR + + + + + + OpenSSL + + + X509_PURPOSE_OCSP_HELPER + X509_PURPOSE_TIMESTAMP_SIGN + + + + + PCNTL + + + + SIGCKPT (DragonFlyBSDのみ) + + + SIGCKPTEXIT (DragonFlyBSDのみ) + + + WEXITED + + + WSTOPPED + + + WNOWAIT + + + P_ALL + + + P_PID + + + P_PGID + + + P_PIDFD (Linuxのみ) + + + P_UID (NetBSD/FreeBSDのみ) + + + P_GID (NetBSD/FreeBSDのみ) + + + P_SID (NetBSD/FreeBSDのみ) + + + P_JAILID (FreeBSDのみ) + + + + + + PGSQL + + + PGSQL_TUPLES_CHUNK + + + + + POSIX + + + POSIX_SC_CHILD_MAX + POSIX_SC_CLK_TCK + + + + + Sockets + + + サポートされている場合、次のソケットオプションが新たに定義されます: + + + + + SO_EXCLUSIVEADDRUSE (Windowsのみ) + + + SOCK_CONN_DGRAM (NetBSDのみ) + + + SOCK_DCCP (NetBSDのみ) + + + TCP_SYNCNT (Linuxのみ) + + + SO_EXCLBIND (Solaris/Illumosのみ) + + + SO_NOSIGPIPE(macOSおよびFreeBSD) + + + SO_LINGER_SEC (macOSのみ) + + + IP_PORTRANGE (FreeBSD/NetBSD/OpenBSDのみ) + + + IP_PORTRANGE_DEFAULT (FreeBSD/NetBSD/OpenBSDのみ) + + + IP_PORTRANGE_HIGH (FreeBSD/NetBSD/OpenBSDのみ) + + + IP_PORTRANGE_LOW (FreeBSD/NetBSD/OpenBSDのみ) + + + SOCK_NONBLOCK + + + SOCK_CLOEXEC + + + SO_BINDTOIFINDEX + + + + + + Sodium + + + + SODIUM_CRYPTO_AEAD_AEGIS128L_KEYBYTES + + + SODIUM_CRYPTO_AEAD_AEGIS128L_NSECBYTES + + + SODIUM_CRYPTO_AEAD_AEGIS128L_NPUBBYTES + + + SODIUM_CRYPTO_AEAD_AEGIS128L_ABYTES + + + SODIUM_CRYPTO_AEAD_AEGIS256_KEYBYTES + + + SODIUM_CRYPTO_AEAD_AEGIS256_NSECBYTES + + + SODIUM_CRYPTO_AEAD_AEGIS256_NPUBBYTES + + + SODIUM_CRYPTO_AEAD_AEGIS256_ABYTES + + + + + + Tokenizer + + + T_PUBLIC_SET + + + T_PROTECTED_SET + + + T_PRIVATE_SET + + + + + + XML + + + + XML_OPTION_PARSE_HUGE + xml_parseや + xml_parse_into_struct + を使用して大きな入力を解析することを可能にします。 + + + + + + diff --git a/appendices/migration84/deprecated.xml b/appendices/migration84/deprecated.xml new file mode 100644 index 0000000000..21cfcb20da --- /dev/null +++ b/appendices/migration84/deprecated.xml @@ -0,0 +1,494 @@ + + + + + + PHP 8.4.x で推奨されなくなる機能 + + + PHP コア + + + + 暗黙的な nullable パラメータ + + + パラメータのデフォルト値が &null; の場合、 + その型は暗黙的に null を受け入れるように拡張されます。 + + + + 次のコードは: + + + + + + このように: + + + + + + またはこのように修正する必要があります。 + + + + + + + + + しかし、そのようなパラメータ宣言の後に必須パラメータが続く場合: + + + + + + このように: + + + + + + またはこのように修正する必要があります。 + + + + + + なぜなら、必須パラメータの前に任意パラメータを置くことは非推奨だからです。 + + + + + + ゼロを負の数でべき乗 + + + ある数の負のべき乗は、 + その数の正のべき乗の逆数と同等です。 + 例えば、10-2 は + 1 / 102 と同等です。 + つまり、0の負のべき乗は + 0 で割ることを意味します。例えば、 + 0-2 は + 1 / 02、または + 1 / 0 となります。以上より、この動作は非推奨とされました。 + + + + これはべき乗演算子 ** と + pow 関数に影響します。 + + + + IEEE 754 のセマンティクスが必要な場合は、新しい + fpow 関数を使用してください。 + + + + + + クラス名をアンダースコア <literal>_</literal> とする + + + クラス名を _ とすることは、現在非推奨となっています: + + + + + + + + + + クラス名がアンダースコアで始まるのは、 + 非推奨ではありません: + + + + + + + + + + + + + <function>trigger_error</function> で + <constant>E_USER_ERROR</constant> を使用 + + + + trigger_error で + error_level として + E_USER_ERROR を指定するのは非推奨となりました。 + + + + そのような場合、例外をスローするか、 + exit を呼び出すように修正すべきです。 + + + + + + + <constant>E_STRICT</constant> 定数 + + + + E_STRICT エラーレベルが削除されたため、 + この定数は非推奨となりました。 + + + + + + cURL + + + CURLOPT_BINARYTRANSFER 定数は非推奨となりました。 + + + + + Date + + + DatePeriod::__construct(string $isostr, int $options = 0) の + シグネチャは非推奨となりました。 + 代わりに DatePeriod::createFromISO8601String を使用してください。 + + + + + SUNFUNCS_RET_TIMESTAMP、 + SUNFUNCS_RET_STRING、 + および SUNFUNCS_RET_DOUBLE 定数は非推奨となりました。 + これは PHP 8.1.0 で date_sunset と + date_sunrise 関数が非推奨となったことに伴うものです。 + + + + + DBA + + + + dba_key_split に &null; または &false; を渡すことは + 非推奨となりました。 + これらの場合、常に &false; を返していました。 + + + + + DOM + + + + DOM_PHP_ERR 定数は非推奨となりました。 + + + + + 以下のプロパティは正式に非推奨となりました: + + DOMDocument::$actualEncoding + DOMDocument::$config + DOMEntity::$actualEncoding + DOMEntity::$encoding + DOMEntity::$version + + + + + + Hash + + + + ハッシュ関数に無効なオプションを渡すことは非推奨となりました。 + + + + + Intl + + + intlcal_set または + IntlCalendar::set + を 2 つを超える引数で呼び出すことは非推奨となりました。 + 代わりに IntlCalendar::setDate または + IntlCalendar::setDateTime を使用してください。 + + + + intlgregcal_create_instance または + IntlGregorianCalendar::__construct + を 2 つを超える引数で呼び出すことは非推奨となりました。 + 代わりに IntlGregorianCalendar::createFromDate または + IntlGregorianCalendar::createFromDateTime を使用してください。 + + + + + LDAP + + + ldap_connect を + 2 つを超える引数で呼び出すことは非推奨となりました。 + 代わりに ldap_connect_wallet を使用してください。 + + + + ldap_exop + を 4 つを超える引数で呼び出すことは非推奨となりました。 + 代わりに ldap_exop_sync を使用してください。 + + + + + MySQLi + + + + mysqli_ping 関数および + mysqli::ping メソッドは、 + PHP 8.2.0 で再接続機能が削除されたため、非推奨となりました。 + + + + + mysqli_kill 関数および + mysqli::kill メソッド + は非推奨となりました。 + この機能が必要な場合は、代わりに SQL の KILL + コマンドを使用できます。 + + + + + mysqli_refresh 関数および + mysqli::refresh メソッドは + 非推奨となりました。 + この機能が必要な場合は、代わりに SQL の FLUSH コマンド + を使用できます。 + すべての MYSQLI_REFRESH_* + 定数も非推奨となりました。 + + + + + mysqli_store_result に + mode パラメータを明示的に渡すことは非推奨となりました。 + この関数のために用意されていたMYSQLI_STORE_RESULT_COPY_DATA 定数も + 非推奨となりました。 + + + + + PDO_PGSQL + + + ドル記号で囲まれた文字列の中で + エスケープされた疑問符(??)を使用することは非推奨となりました。 + PDO_PGSQL はドル記号で囲まれた文字列をサポートする独自の SQL パーサーを持つようになったため、 + それらの中で疑問符をエスケープする必要はなくなりました。 + + + + + PGSQL + + + pg_fetch_result、 + pg_field_prtlen、 + および pg_field_is_null の 2 引数のシグネチャは非推奨となりました。 + 代わりに row を &null; に設定した 3 引数のシグネチャを + 使用してください。 + + + + + Random + + + + lcg_value は非推奨となりました。 + この関数は複数の点で問題があるためです。 + 代わりに Random\Randomizer::getFloat を使用してください。 + + + + + Reflection + + + ReflectionMethod::__construct を + 1 つの引数で呼び出すことは非推奨となりました。 + 代わりに ReflectionMethod::createFromMethodName を使用してください。 + + + + + Session + + + session_set_save_handler を + 2 つを超える引数で呼び出すことは非推奨となりました。 + 2 引数のシグネチャを使用してください。 + + + + + session.sid_length および + session.sid_bits_per_character + の INI 設定値を変更することは非推奨となりました。 + セッションストレージバックエンドを修正し、 16 進数 32 文字による + セッション ID を受け入れるようにし、これら 2 つの INI 設定を変更するのをやめてください。 + + + + + session.use_only_cookies、 + session.use_trans_sid、 + session.trans_sid_tags、 + session.trans_sid_hosts、および + session.referer_check + の INI 設定値を変更することは非推奨となりました。 + SID 定数も非推奨となりました。 + + + + + SOAP + + + + SoapServer::addFunction に + int を渡すことは非推奨となりました。 + すべての PHP 関数を提供する必要がある場合は、 + get_defined_functions が返す配列をフラット化してください。 + + + + + SOAP_FUNCTIONS_ALL 定数は非推奨となりました。 + + + + + SPL + + + SplFixedArray::__wakeup メソッドは + 非推奨となりました。代わりに + SplFixedArray::__serialize と + SplFixedArray::__unserialize + をオーバーライドしてください。 + + + + + SplFileObject::setCsvControl、 + SplFileObject::fputcsv、および + SplFileObject::fgetcsv で + escape パラメータのデフォルト値を利用することは非推奨となりました。 + + 引数または名前付き引数で明示的に指定する必要があります。 + これは、SplFileObject::setCsvControl で + 新しいデフォルト値を設定した場合、SplFileObject::fputcsv および + SplFileObject::fgetcsv には適用されません。 + + + + + Standard + + + stream_context_set_option を + 2 つの引数で呼び出すことは非推奨となりました。 + 代わりに stream_context_set_options を使用してください。 + + + + + unserialize で大文字の S タグを使用して文字列を + アンシリアライズすることは非推奨となりました。 + + + + + fputcsv、 + fgetcsv、および + str_getcsv の + escape パラメータのデフォルト値を利用することは非推奨となりました。 + + 引数または名前付き引数で明示的に指定する必要があります。 + + + + + XML + + + + xml_set_object 関数は非推奨となりました。 + + + + + callable でない文字列を + xml_set_* + 関数に渡すことは非推奨となりました。 + + + + + diff --git a/appendices/migration84/incompatible.xml b/appendices/migration84/incompatible.xml new file mode 100644 index 0000000000..c563b19fbf --- /dev/null +++ b/appendices/migration84/incompatible.xml @@ -0,0 +1,860 @@ + + + + + + 下位互換性のない変更点 + + + このセクションで明示的に述べられていなくても、 + 新しい関数、 + クラス、インターフェイス、列挙型、 + または定数は、 + 再宣言によるErrorがスローされる可能性があります。 + + + + PHP コア + + + + <function>exit</function> の動作の変更 + + + exit (およびdie) + 言語構造は、関数のように振る舞います。 + これにより、callableとして渡すことができ、 + + strict_types 宣言の影響を受け、 + 任意の非整数値を文字列にキャストする代わりに、通常の型強制を行います。 + + + + そのため、exit および die に + 無効な型を渡すと、一貫してTypeError が + スローされるようになりました。 + + + + + 比較中の再帰 + + + 比較中に再帰が発生すると、 + E_ERROR の致命的なエラーの代わりに、 + Error 例外がスローされるようになりました。 + + + + + readonly プロパティの間接的な変更 + + + + __clone() 内で readonly プロパティを間接的に変更することは、 + もはや許可されなくなりました。例えば、$ref = &$this->readonly のようなコードです。 + これは readonly の初期化時にはすでに禁止されており、 + 「クローン時の readonly の再初期化」の実装における見落としでした。 + + + + + 定数の型の変更 + + + PHP_DEBUG および PHP_ZTS 定数の型が、 + int から bool に変更されました。 + + + + + 一時ファイル名の長さ + + + アップロードされたファイルや tempnam 関数で作成されるファイルの名前は、 + 以前より13バイト長くなりました。 + 総合的な長さは引き続きプラットフォーム依存です。 + + + + + + <constant>E_STRICT</constant> エラーレベルの削除 + + + E_STRICT エラーレベルは、 + PHPエンジン内で使用されなくなったため削除されました。 + E_STRICT 定数は非推奨となりました。 + + + + + + 型が追加された拡張クラスの定数 + + + 以下の拡張クラスは、定数に型が宣言されました: + + Date + Intl + PDO + Reflection + SPL + Sqlite + XMLReader + + + + + + + リソースからオブジェクトへの移行 + + + いくつかの &resource; が &object; に移行されました。 + is_resource を使用した戻り値のチェックは、 + 特に指定がない限り、&false; かどうかを確認するように置き換える必要があります。 + + + + DBA + + + DBA 関数は、 + dba_connection &resource; の代わりに + Dba\Connection オブジェクトを受け取り、返すようになりました。 + + + + + ODBC + + + ODBC 関数は、 + odbc_result &resource; の代わりに + Odbc\Result オブジェクトを受け取り、返すようになりました。 + + + + ODBC 関数は、 + odbc_connection &resource; の代わりに + Odbc\Connection オブジェクトを受け取り、返すようになりました。 + + + + + SOAP + + + SoapClient::$httpurl プロパティは、 + soap_url &resource; の代わりに + Soap\Url オブジェクトになりました。 + is_resource を使用したチェック + (例: is_resource($client->httpurl))は、 + &null; かどうかのチェック(例: $client->httpurl !== null)に置き換える必要があります。 + + + SoapClient::$sdl プロパティは、 + soap_sdl &resource; の代わりに + Soap\Sdl オブジェクトになりました。 + is_resource を使用したチェック + (例: is_resource($client->sdl))は、 + &null; かどうかのチェック(例: $client->sdl !== null)に置き換える必要があります。 + + + + + + 新しい警告と例外 + + + プログラミングエラー、つまり無効な値が引数として提供された場合にトリガーされる + 新しい警告と例外が追加されました。 + + + + cURL + + + curl_multi_select は、 + timeout パラメータが 0 未満または + PHP_INT_MAX を超える場合、 + ValueError をスローするようになりました。 + + + + + GD + + + + imagejpeg + imagewebp + imagepng + imageavif + + は、無効な quality が渡された場合、 + ValueError をスローするようになりました。 + + + + imageavif は、 + 無効な speed パラメータ値が渡された場合、 + ValueError をスローするようになりました。 + + + + imagescale は、 + width または height パラメータが + アンダーフロー/オーバーフローした場合、 + ValueError をスローするようになりました。 + + + + imagescale は、 + 無効な mode パラメータ値が渡された場合、 + ValueError をスローするようになりました。 + + + + imagefilter は、 + IMG_FILTER_SCATTER フィルタで、 + sub または plus パラメータが + アンダーフロー/オーバーフローした場合、 + ValueError をスローするようになりました。 + + + + + Gettext + + + + bind_textdomain_codeset + textdomain + d*gettext + + は、domain が空文字列の場合、 + ValueError をスローするようになりました。 + + + + + Intl + + + resourcebundle_get、 + ResourceBundle::get、および + ResourceBundle オブジェクトでのオフセットアクセスは、 + 以下の場合に例外をスローするようになりました: + + + 無効なオフセット型の場合、TypeError + + + 空の &string; の場合、ValueError + + + 整数インデックスが符号付き32ビット整数に収まらない場合、 + ValueError + + + + + + IntlDateFormatter::__construct は、 + locale が無効な場合、 + ValueError をスローするようになりました。 + + + + NumberFormatter::__construct は、 + locale が無効な場合、 + ValueError をスローするようになりました。 + + + + + MBString + + + mb_encode_numericentity および + mb_decode_numericentity は、 + map が &integer; のみで構成されているかをチェックし、 + そうでない場合 ValueError をスローするようになりました。 + + + + mb_http_input は、 + type が無効な場合、常に + ValueError をスローするようになりました。 + + + + mb_http_output は、 + encoding にヌルバイトが含まれていないかをチェックし、 + 含まれている場合 ValueError をスローするようになりました。 + + + + + ODBC + + + odbc_fetch_row は、 + row0 以下の場合、 + &false; を返すようになりました。この場合、警告が発せられます。 + + + + + PCNTL + + + pcntl_sigprocmask、 + pcntl_sigwaitinfo、および + pcntl_sigtimedwait 関数は、次の場合エラーをスローするようになりました: + + + signals 配列が空の場合、 + ValueError + (pcntl_sigprocmask で + modeSIG_SETMASK のときを除く) + + + signals 配列の値が &integer; でない場合、 + TypeError + + + signals 配列の値が有効なシグナル番号でない場合、 + ValueError + + + + + + pcntl_sigprocmask 関数は、 + modeSIG_BLOCK、 + SIG_UNBLOCKSIG_SETMASK のいずれでもない場合、 + ValueError をスローするようになりました。 + + + + pcntl_sigtimedwait 関数は、次の場合エラーをスローするようになりました: + + + seconds0 未満の場合、 + ValueError + + + nanoseconds0 未満 + または 1e9 を超える場合、 + ValueError + + + seconds および nanoseconds が両方とも + 0 の場合、ValueError + + + + + + + Session + + + session.gc_divisor に正でない値を設定したり、 + session.gc_probability + に負の値を設定したりすると、警告が発生するようになりました。 + + + + + SimpleXML + + + simplexml_import_dom に非XMLオブジェクトを渡すと、 + ValueError の代わりに + TypeError をスローするようになりました。 + + + + + Standard + + + round 関数は、 mode の値を検証し、 + 無効なモードの場合、ValueError をスローするようになりました。 + 以前は、無効なモードは PHP_ROUND_HALF_UP と解釈されていました。 + + + + str_getcsv は、 + separator および enclosure 引数が + 1バイトの長さでない場合、または escape 引数が + 1バイトの長さでないか空文字列でない場合、 + ValueError をスローするようになりました。 + これは、fputcsv および fgetcsv の動作と + 同じになるように合わせたものです。 + + + + php_uname 関数は、 + mode が無効な場合、 + ValueError をスローするようになりました。 + + + + unserialize の + "allowed_classes" オプションは、 + クラス名の array でない場合、 + TypeError および + ValueError をスローするようになりました。 + + + + + XMLReader + + + 無効な文字エンコーディングを + XMLReader::open または + XMLReader::XML に渡すと、 + ValueError をスローするようになりました。 + + + + ヌルバイトを含む &string; を渡すと、以前は警告が発せられていましたが、 + 現在は ValueError をスローするようになりました。 + + + + + XMLWriter + + + ヌルバイトを含む &string; を渡すと、以前は警告が発せられていましたが、 + 現在は ValueError をスローするようになりました。 + + + + + XSL + + + XSLTProcessor::setParameter は、 + 引数にヌルバイトが含まれる場合、ValueError をスローするようになりました。 + これは、そもそも正しく動作していませんでした。 + + + + XSLTProcessor::importStyleSheet に + 非XMLオブジェクトを渡すと、ValueError の代わりに + TypeError がスローされるようになりました。 + + + + + 評価中にPHP関数コールバックの呼び出しに失敗した場合、 + 警告の発生ではなく、例外がスローされるようになりました。 + + + + + + Date + + + 相対的な書式 + の number シンボルは、 + 再び複数の符号を受け入れるようになりました。 + たとえば +-2 のような形式です。 + + + + + DOM + + + 一部のDOMメソッドは、新しいノードを割り当てられない場合、以前は + &false; を返すか、DOM_PHP_ERR コードの + DOMException をスローしていました。 + これらは現在、一貫して DOM_INVALID_STATE_ERR コードの + DOMException をスローするようになりました。 + この状況は極めてまれであり、影響を受ける可能性は低いです。 + その結果、DOMImplementation::createDocument は、 + + 戻り値の型が、以前の DOMDocument|false から + DOMDocument になりました。 + + + + 以前は、DOMXPath オブジェクトをクローンできましたが、 + 返されるオブジェクトは使用できませんでした。 + これはもはや可能ではなく、DOMXPath オブジェクトをクローンすると、 + Error がスローされるようになりました。 + + + + + DOMImplementation::getFeature メソッドは削除されました。 + + + + + GMP + + + + GMP クラスは final になり、継承できなくなりました。 + + + + + MBString + + + 無効な文字列(エンコーディングエラーを含む)に対して、 + mb_substr は他の多くの mbstring 関数と同様に、 + 文字インデックスを解釈するようになりました。 + これにより、mb_strpos が返す文字インデックスを + mb_substr に渡すことができます。 + + + + SJIS-Mac(MacJapanese) 文字列の場合、mb_substr + に渡される文字インデックスは、文字列が Unicode に変換されたときに生成される + Unicode コードポイントのインデックスを参照します。 + これは、 SJIS-Mac の約40文字が複数の Unicode コードポイントの + シーケンスに変換されることによる重要な処理です。 + + + + + MySQLi + + + 未使用でドキュメント化されていない定数 + MYSQLI_SET_CHARSET_DIR は削除されました。 + + + + MYSQLI_STMT_ATTR_PREFETCH_ROWS 定数は削除されました。 + この機能は mysqlnd では利用できません。 + + + + MYSQLI_CURSOR_TYPE_FOR_UPDATE および + MYSQLI_CURSOR_TYPE_SCROLLABLE 定数は + 削除されました。この機能は mysqlnd および libmysql のどちらでも + 実装されていませんでした。 + + + + 未使用の MYSQLI_TYPE_INTERVAL 定数は、 + 現在は MYSQLI_TYPE_ENUM のエイリアスであり、削除されました。 + + + + + + MySQLnd + + + MySQL サーバーの待機タイムアウトに対して報告されるエラーコードは、 + MySQL サーバーバージョン 8.0.24 以降で + 2006 から 4031 に変更されました。 + + + + + Opcache + + + 64ビットアーキテクチャ上での + opcache.interned_strings_buffer + 設定の最大値は 32767 になりました。 + 以前は 4095 でした。 + + + + JIT + + + JIT のデフォルトの設定値は、 + opcache.jit=tracing + および opcache.jit_buffer_size=0 + から、 opcache.jit=disable および + opcache.jit_buffer_size=64M にそれぞれ変更されました。 + + + + これはデフォルトの動作には影響しません。 + JIT は引き続きデフォルトで無効になっています。 + ただし、 + opcache.jit_buffer_size ではなく、 + opcache.jit を通じて無効化されています。 + これは、以前に + opcache.jit_buffer_size + のみを使用して JIT を有効にし、 + opcache.jit + を使用してJIT モードを指定していなかったユーザーに影響を与える可能性があります。 + JIT コンパイルを有効にするには、 + opcache.jit の設定値を適切に設定してください。 + + + + JIT コンパイルが有効になっている場合、 + JIT コンパイラの初期化に何らかの理由で失敗すると、 + PHP は起動時に致命的なエラーで終了するようになりました。 + + + + + + PCNTL + + + pcntl_sigprocmask、 + pcntl_sigwaitinfo、 + および pcntl_sigtimedwait 関数は、 + 失敗時に常に &false; を返すようになりました。 + 以前は場合によっては -1 を返すことがありました。 + + + + + PCRE + + + バンドルされた pcre2lib はバージョン 10.44 に更新されました。 + その結果、{,3} はテキストとしてではなく + 量指定子として認識されるようになりました。 + さらに、UCP モードでの一部の文字クラスの意味が変更されました。 + 完全な変更ログは PCRE2 Changelog を + 参照してください。 + + + + + PDO_DBLIB + + + Pdo\Dblib::ATTR_STRINGIFY_UNIQUEIDENTIFIER および + Pdo\Dblib::ATTR_DATETIME_CONVERT 属性は、 + 整数属性の代わりにブール属性として動作するようになりました。 + したがって、PDO::setAttribute を介して属性を設定し、 + PDO::getAttribute を介して取得する場合、 + bool を期待または返却します。 + + + + + PDO_FIREBIRD + + + PDO::ATTR_AUTOCOMMIT 属性は、 + 整数属性の代わりにブール属性として動作するようになりました。 + したがって、PDO::setAttribute を介して属性を設定し、 + PDO::getAttribute を介して取得する場合、 + bool を期待または返却します。 + + + + この拡張モジュールはいくつかの Firebird C++ API を公開するようになったため、 + この拡張モジュールをビルドするには C++ コンパイラが必要になりました。 + さらに、この拡張モジュールは fbclient 3.0 以上にでコンパイルする必要があります。 + + + + + PDO_MYSQL + + + PDO::ATTR_AUTOCOMMIT、 + PDO::ATTR_EMULATE_PREPARES、 + PDO::MYSQL_ATTR_DIRECT_QUERY 属性は、 + 整数属性の代わりにブール属性として動作するようになりました。 + したがって、PDO::setAttribute を介して属性を設定し、 + PDO::getAttribute を介して取得する場合、 + bool を期待または返却します。 + + + + + PDO_PGSQL + + + DSN に認証情報が設定されている場合、PDO コンストラクタの引数よりも優先されるようになり、 + ドキュメントの記述に近くなりました。 + + + + + SimpleXML + + + SimpleXMLElement は XML 要素の + 表現であるだけでなく、RecursiveIterator でもあります。 + PHP 8.4.0 より前では、一部のメソッド(例: + SimpleXMLElement::asXML や + SimpleXMLElement::getName)および + それらのインスタンスの &string; へのキャストすると、 + 暗黙的にイテレータをリセットしていました。 + + + これはイテレータが巻き戻されるため、予期しない無限ループを引き起こす可能性がありました。 + 例えば: + + +123"; +$xml = simplexml_load_string($xmlString); + +$nodes = $xml->a->b; +foreach ($nodes as $nodeData) { + echo "nodeData: " . $nodeData . "\n"; + + $xml = $nodes->asXml(); +} + +]]> + + + これは無限ループを引き起こしていました。 + + + + + + しかし、この動作は修正され、 + SimpleXMLElement は明示的に巻き戻されない限り、 + イテレータをリセットしなくなりました。 + つまり、前述の例は現在では次のようになります: + + + + + + + + + + + SOAP + + + SoapClient::$typemap は、resource ではなく + array になりました。 + is_resource を使用したチェック + (例: is_resource($client->typemap))は、 + &null; かどうかのチェック(例: $client->typemap !== null)に置き換える必要があります。 + + + + SOAP 拡張モジュールには、session 拡張モジュールへの + オプションの依存関係が追加されました。 + PHP が session 拡張モジュールなしでビルドされ、かつ + 構成フラグが有効になっている場合、 + SOAP 拡張モジュールも使用していると、 + 起動時にエラーが発生します。 + これを解決するには、rtld-now を使用しないか、session 拡張モジュールを読み込んでください。 + + + + + Standard + + + strcspn で + characters に空文字列を指定すると + 文字列の長さが返されるようになりました。 + 以前は、最初のヌルバイトで誤って停止していました。 + + + + + http_build_query は、Backed Enumを正しく処理するようになりました。 + + + + + stream_bucket_make_writeable および + stream_bucket_new は、 + stdClass のインスタンスではなく、 + StreamBucket のインスタンスを返すようになりました。 + + + + + Tidy + + + コンストラクタでの失敗時に、警告を発して壊れたオブジェクトになるのではなく、 + 例外をスローするようになりました。 + + + + + XML + + + xml_set_*_handler + 関数は、handler パラメータに対して + callablestringnull の + 有効なシグネチャを宣言し、チェックするようになりました。 + さらに、xml_set_object で設定されたオブジェクトのメソッド名に対応する + string 型の値は、事前に渡されたオブジェクトのクラス上にメソッドが存在するかどうかが + チェックされるようになりました。 + 従って、xml_set_object は、 + callable メソッドを設定する前に呼び出す必要があります。 + ハンドラを無効にするために空文字列を渡すことは引き続き許可されていますが、 + 非推奨となりました。 + + + + しかし、xml_set_object と + callable でない文字列を渡すことは非推奨です。 + そのようなインスタンスをメソッドを直接参照する callable に + 変更することをお勧めします。 + + + + + diff --git a/appendices/migration84/new-classes.xml b/appendices/migration84/new-classes.xml new file mode 100644 index 0000000000..8e57a9d2c3 --- /dev/null +++ b/appendices/migration84/new-classes.xml @@ -0,0 +1,167 @@ + + + + + + 新しいクラス、列挙型、インターフェイス + + + Core + + Deprecated + RequestParseBodyException + + + + + BCMath + + BcMath\Number + + + + + DBA + + Dba\Connection + + + + + DOM + + Dom\HTMLDocument + Dom\XMLDocument + Dom\Document + Dom\ParentNode + Dom\ChildNode + Dom\Implementation + Dom\Node + Dom\NodeList + Dom\NamedNodeMap + Dom\DtdNamedNodeMap + Dom\HTMLCollection + Dom\AdjacentPosition + Dom\Element + Dom\HTMLElement + Dom\Attr + Dom\CharacterData + Dom\Text + Dom\CDATASection + Dom\ProcessingInstruction + Dom\Comment + Dom\DocumentType + Dom\DocumentFragment + Dom\Entity + Dom\EntityReference + Dom\Notation + Dom\TokenList + Dom\NamespaceInfo + Dom\XPath + + + + + ODBC + + Odbc\Connection + Odbc\Result + + + + + PCNTL + + + Pcntl\QosClass (macOSのみ) + + + + + PDO_DBLIB + + Pdo\DbLib + + + + + PDO_FIREBIRD + + Pdo\Firebird + + + + + PDO_MYSQL + + Pdo\Mysql + + + + + PDO_ODBC + + Pdo\Odbc + + + + + PDO_PGSQL + + Pdo\Pgsql + + + + + PDO_SQLITE + + Pdo\Sqlite + + + + + Reflection + + ReflectionConstant + + + + + SOAP + + Soap\Url + Soap\Sdl + + + + + Standard + + + + RoundingMode + StreamBucket + + + + + diff --git a/appendices/migration84/new-features.xml b/appendices/migration84/new-features.xml new file mode 100644 index 0000000000..dc00a58a5f --- /dev/null +++ b/appendices/migration84/new-features.xml @@ -0,0 +1,617 @@ + + + + + + 新機能 + + + + PHP コア + + + + プロパティフック + + + オブジェクトのプロパティは、 + get および set 操作に + 追加のロジックを関連付けることができるようになりました。 + 使用方法に応じてそのプロパティは、値を持つ場合もありますし、 + 仮想的、つまり値を持たない場合もあります。 + + + + + $this->firstName . ' ' . $this->lastName; + } + + // すべての書き込み操作はこのフックを通り、返却値が書き込まれます。 + // 読み取りアクセスは通常通り行われます。 + public string $firstName { + set => ucfirst(strtolower($value)); + } + + // すべての書き込み操作はこのフックを通り、フックの中で値が書き込まれます。 + // 読み取りアクセスは通常通り行われます。 + public string $lastName { + set { + if (strlen($value) < 2) { + throw new \InvalidArgumentException('Too short'); + } + $this->lastName = $value; + } + } +} + +$p = new Person(); + +$p->firstName = 'peter'; +print $p->firstName; // Prints "Peter" +$p->lastName = 'Peterson'; +print $p->fullName; // Prints "Peter Peterson" +]]> + + + + + + + 非対称可視性プロパティ + + + オブジェクトのプロパティは、set のアクセス権を get のアクセス権とは別に制御できるようになりました。 + + + +name = $name; + } +} +]]> + + + + + + + レイジーオブジェクト + + アクセスされるまで初期化が延期されるオブジェクトを作成できるようになりました。 + ライブラリやフレームワークは、これらのレイジーオブジェクトを利用して、 + 初期化に必要なデータや依存関係の取得を遅延させることができます。 + + + +__construct($data); +}; + +$reflector = new ReflectionClass(Example::class); +$object = $reflector->newLazyGhost($initializer); +]]> + + + + + + + <code>#[\Deprecated]</code> アトリビュート + + + 新しい Deprecated 属性を使用して、関数、メソッド、 + およびクラス定数を非推奨としてマークできます。このアトリビュートで非推奨となった機能の動作は、 + PHP 自身が提供する既存の非推奨メカニズムの動作と一致します。 + 唯一の例外は、発生するエラーコードが + E_DEPRECATED ではなく E_USER_DEPRECATED であることです。 + + + + PHP 自身が提供する機能の既存の非推奨は、この属性を使用するように更新され、 + 短い説明を含むことでエラーメッセージが改善されました。 + + + + + + POST 以外の HTTP リクエストでの RFC1867 (マルチパート)リクエストの解析 + + + + POST 以外の HTTP リクエストで RFC1867(マルチパート)リクエストを解析するための + request_parse_body 関数が追加されました。 + + + + + + 括弧なしでの &new; 式のチェーン + + + + コンストラクタ引数を持つ &new; 式は直接参照できるようになり、 + 式を括弧で囲むことなくメソッド呼び出しや + プロパティアクセスなどのチェーンが可能になりました。 + + + + + <classname>WeakReference</classname> のデバッグ情報の改善 + + + + WeakReference のデバッグ情報を取得すると、 + 参照しているオブジェクト、または参照が無効になっている場合は + &null; が出力されるようになりました。 + + + + + <classname>Closure</classname> のデバッグ情報の改善 + + + + Closure::__debugInfo の出力には、 + Closure の名前、ファイル名、および行が含まれるようになりました。 + + + + + + 異なる名前空間ブロックで同一のシンボルを定義 + + + + 名前空間を終了すると、そこで定義されたシンボルがクリアされるようになりました。 + これにより、以前の名前空間ブロックで同じ名前のシンボルが宣言されていても、 + 名前空間ブロック内でシンボルを使用できるようになりました。 + + + + + + + + cURL + + + curl_version は、新たに + feature_list 値を返すようになりました。これは、 + 既知のすべての cURL 機能と、それらがサポートされているか(&true;)されていないか + (&false;)を示す連想配列です。 + + + + CURLOPT_HTTP_VERSION のオプションとして、 + CURL_HTTP_VERSION_3 および + CURL_HTTP_VERSION_3ONLY 定数 + (libcurl 7.66 および 7.88 から利用可能) + が追加されました。 + + + + cURL オプションとしてCURLOPT_PREREQFUNCTION が追加されました。 + 接続が確立された後、リクエストが送信される前に呼び出される + callable を受け入れます。 + この callable は、リクエストを許可または中止するために CURL_PREREQFUNC_OK または + CURL_PREREQFUNC_ABORT のいずれかを返す必要があります。 + + + + CURLOPT_SERVER_RESPONSE_TIMEOUT が追加されました。 + これは以前は CURLOPT_FTP_RESPONSE_TIMEOUT として知られていました。 + 両方の定数は同じ値を持ちます。 + + + + cURL オプションとして CURLOPT_DEBUGFUNCTION が追加されました。 + リクエストの実行中に呼び出される callable を受け入れます。 + この callable は、CurlHandle オブジェクト、 + デバッグメッセージの種類を含む整数、 + およびデバッグメッセージを含む文字列を受け取ります。 + デバッグメッセージの種類は、次の定数のいずれかです: + + CURLINFO_TEXT + CURLINFO_HEADER_IN + CURLINFO_HEADER_OUT + CURLINFO_DATA_IN + CURLINFO_DATA_OUT + CURLINFO_SSL_DATA_IN + CURLINFO_SSL_DATA_OUT + + このオプションを設定した場合、CURLINFO_HEADER_OUT を設定してはいけません。 + 同じ libcurl の機能を使用するためです。 + + + + curl_getinfo は、新たに + posttransfer_time_us キーを返すようになりました。 + これは、開始から最後のバイトが送信されるまでのマイクロ秒数を示します。 + リダイレクトが行われた場合、各リクエストの時間が合計されます。 + この値は、curl_getinfo の + option パラメータに + CURLINFO_POSTTRANSFER_TIME_T を渡すことでも取得できます。 + libcurl 8.10.0 以降が必要です。 + + + + + DOM + + + + + Dom 名前空間と、既存の DOM クラスに対応する + 新たなクラスが追加されました(例: Dom\Node は + DOMNode に対応する新しいクラスです)。 + これらのクラスは HTML 5 に対応しており、WHATWG の仕様に準拠しています。 + これは DOM 拡張の長年のバグを解決します。 + 従来の DOM クラスも後方互換性のために引き続き利用可能です。 + + + + DOMNode::compareDocumentPosition + と関連する定数が追加されました: + + DOMNode::DOCUMENT_POSITION_DISCONNECTED + DOMNode::DOCUMENT_POSITION_PRECEDING + DOMNode::DOCUMENT_POSITION_FOLLOWING + DOMNode::DOCUMENT_POSITION_CONTAINS + DOMNode::DOCUMENT_POSITION_CONTAINED_BY + DOMNode::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC + + + + + + DOMXPath::registerPhpFunctions + に任意の callable を渡すことが可能になりました。 + + さらに、DOMXPath::registerPhpFunctionNs により、 + php:function('name') ではなく、ネイティブな関数呼び出し構文で + コールバックを登録できるようになりました。 + + + + + Intl + + + NumberFormatter::ROUND_HALFODD が追加されました。 + 既存の NumberFormatter::ROUND_HALFEVEN 機能を + 補完します。 + + + + + OpenSSL + + + Curve25519 および Curve448 ベースのキーのサポートが追加されました。 + 具体的には、x25519、ed25519、x448、ed448 フィールドが + openssl_pkey_new、 + openssl_pkey_get_details、 + openssl_sign、および + openssl_verify を、サポートするよう拡張されました。 + + + + パスワードのハッシュ方法として PASSWORD_ARGON2 が実装されました。 + これは OpenSSL 3.2 および NTS ビルドが必要です。 + + + + + PCRE + + + 同梱の pcre2lib がバージョン 10.44 に更新されました。 + これにより、LoongArch JIT サポートが追加され、 + Perl 互換のアイテムで波括弧間のスペースが許可され、 + 可変長の後読みアサーションがサポートされるようになりました。 + + + + pcre2lib バージョン 10.44 では、名前付きキャプチャグループの最大長が + 32 から 128 に変更されました。 + + + + r (PCRE2_EXTRA_CASELESS_RESTRICT) + 修飾子と (?r) モード修飾子のサポートされました。 + 大文字・小文字を区別しない修飾子 (i) と一緒に有効にすると、 + ASCII と非 ASCII 文字の混在が禁止されます。 + + + + + PDO + + + + ドライバ固有のサブクラスのサポートが追加されました。 + PDO のサブクラスを追加することで、 + データベース固有の機能のサポートを向上します。 + 新しいクラスは、PDO::connect メソッドを呼び出すか、 + ドライバ固有のサブクラスを直接インスタンス化することで + 利用できます。 + + + + + ドライバ固有の SQL パーサーのサポートが追加されました。 + ドライバ固有のパーサーが利用できない場合、デフォルトのパーサーが使われます。 + デフォルトのパーサーは以下をサポートします: + + + シングルクオートやダブルクオートで囲まれたリテラルでのクオートの二重化によるエスケープ + + + 2 つのハイフンによるコメント、ネストされていない C 言語形式のコメント + + + + + + + PDO_MYSQL + + + + 以下をサポートするカスタムパーサーが追加されました: + + + シングルクオートやダブルクオートで囲まれたリテラルでのクオートの二重化やバックスラッシュによる + エスケープ + + + バッククオートで囲まれたリテラルでのクオートの二重化によるエスケープ + + + 2 つのハイフンによるコメント、C 言語形式のコメント、 + # によるコメント + + + + + + + PDO_PGSQL + + + + 以下をサポートするカスタムパーサーが追加されました: + + + シングルクオートやダブルクオートで囲まれたリテラルでのクオートの二重化によるエスケープ + + + C 言語形式の「エスケープ」文字列リテラル (E'string') + + + ドル記号で囲まれた文字列リテラル + + + 2 つのハイフンによるコメント、ネストされていない C 言語形式のコメント + + + ? 演算子のエスケープシーケンスとしての ?? のサポート + + + + + + + PDO_SQLITE + + + + 以下をサポートするカスタムパーサーが追加されました: + + + シングルクオート、ダブルクオート、バッククオートで囲まれたリテラルでのクオートの二重化による + エスケープ + + + 識別子の角括弧によるクオート + + + 2 つのハイフンとネストされていない C 言語形式のコメント + + + + + + + Phar + + + Zip アーカイブの Unix タイムスタンプ拡張のサポートが追加されました。 + + + + + Readline + + + PHP_HISTFILE 環境変数を利用し + .php_history パスを変更する機能が追加されました。 + + + + + Reflection + + + ReflectionAttribute に + デバッグ体験を向上させるための name プロパティが追加されました。 + + + + ReflectionClassConstant::__toStringおよび + ReflectionProperty::__toString は、 + 添付されたドキュメントコメントを返すようになりました。 + + + + + レイジーオブジェクト機能に関連する複数の新しいメソッドと定数が + 追加されました: + + + + ReflectionClass::newLazyGhost + + + ReflectionClass::newLazyProxy + + + ReflectionClass::resetAsLazyGhost + + + ReflectionClass::resetAsLazyProxy + + + ReflectionClass::isUninitializedLazyObject + + + ReflectionClass::initializeLazyObject + + + ReflectionClass::markLazyObjectAsInitialized + + + ReflectionClass::getLazyInitializer + + + ReflectionProperty::skipLazyInitialization + + + ReflectionProperty::setRawValueWithoutLazyInitialization + + + ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE + + + ReflectionClass::SKIP_DESTRUCTOR + + + + + + + SOAP + + + クラスマップでの名前空間のクラーク式記法のサポートが追加されました。 + クラスマップ内でクラーク式記法を使用して、 + 特定の名前空間の型を特定のクラスに解決するエントリを指定できるようになりました。 + 例: '{http://example.com}foo' => 'FooClass' + + + + DateTimeInterface のインスタンスが + xsd:datetime や類似の要素に渡されると、 + 空の文字列としてではなく、そのままシリアライズされるようになりました。 + + + + 持続的セッションが共有セッションモジュールで動作するようになりました。 + + + + + Standard + + + + + RoundingMode 列挙型が追加されました。 + PHP_ROUND_* 定数より + 明確な名前と発見性を提供します。 + さらに、4 つの新しい丸めモードが追加されました。これらは + RoundingMode 列挙型を介してのみ利用可能です。 + + + + + XSL + + + シングルクオートとダブルクオートの両方を含むパラメータを + 使用できるようになりました。 + + + + + XSLTProcessor::registerPhpFunctions に + 任意の callable を渡すことが可能になりました。 + + + + + XSLTProcessor::$maxTemplateDepth および + XSLTProcessor::$maxTemplateVars が追加されました。 + XSL テンプレート評価の再帰の深さを制御することができます。 + + + + + Zip + + + ZipArchive::ER_TRUNCATED_ZIP + 定数が追加されました。これは libzip 1.11 で追加されました。 + + + + + diff --git a/appendices/migration84/new-functions.xml b/appendices/migration84/new-functions.xml new file mode 100644 index 0000000000..04914f1eb6 --- /dev/null +++ b/appendices/migration84/new-functions.xml @@ -0,0 +1,331 @@ + + + + + + 新しく追加された関数 + + + PHP コア + + + + request_parse_body + + + + + BCMath + + + + + bcceil + bcdivmod + bcfloor + bcround + + + + + Date + + + DateTime::createFromTimestamp + + + DateTime::getMicrosecond + + + DateTime::setMicrosecond + + + DateTimeImmutable::createFromTimestamp + + + DateTimeImmutable::getMicrosecond + + + DateTimeImmutable::setMicrosecond + + + + + + DOM + + + DOMNode::compareDocumentPosition + + + + DOMXPath::registerPhpFunctionNS + + + DOMXPath::quote + + + + + + Hash + + + HashContext::__debugInfo + + + + + + Intl + + + IntlTimeZone::getIanaID + + intltz_get_iana_id + + IntlDateFormatter::parseToCalendar + + + Spoofchecker::setAllowedChars + + + grapheme_str_split + + + + + MBString + + + + mb_trim + mb_ltrim + mb_rtrim + + mb_ucfirst + mb_lcfirst + + + + + Opcache + + opcache_jit_blacklist + + + + + PCNTL + + + pcntl_getcpu + pcntl_getcpuaffinity + pcntl_getqos_class + pcntl_setns + pcntl_waitid + + + + + PDO_PGSQL + + + Pdo\Pgsql::setNoticeCallback + + + + + + PGSQL + + + pg_change_password + pg_jit + pg_put_copy_data + pg_put_copy_end + pg_result_memory_size + pg_set_chunked_rows_size + pg_socket_poll + + + + + Reflection + + + + + 次のメソッドは新しいレイジーオブジェクト機能に関連しています: + + + ReflectionClass::newLazyGhost + + + ReflectionClass::newLazyProxy + + + ReflectionClass::resetAsLazyGhost + + + ReflectionClass::resetAsLazyProxy + + + ReflectionClass::isUninitializedLazyObject + + + ReflectionClass::initializeLazyObject + + + ReflectionClass::markLazyObjectAsInitialized + + + ReflectionClass::getLazyInitializer + + + ReflectionProperty::skipLazyInitialization + + + ReflectionProperty::setRawValueWithoutLazyInitialization + + + + + + + ReflectionClassConstant::isDeprecated + + + ReflectionGenerator::isClosed + + + ReflectionProperty::isDynamic + + + + + + Sodium + + + sodium_crypto_aead_aegis128l_* + sodium_crypto_aead_aegis256l_* + + + + + SPL + + + + SplObjectStorage::seek + + + + + + SOAP + + + + SoapServer::__getLastResponse + + + + + + Standard + + + http_get_last_response_headers + http_clear_last_response_headers + + fpow + + array_all + array_any + array_find + array_find_key + + + + + + Tidy + + + + tidyNode::getNextSibling + + + tidyNode::getPreviousSibling + + + + + + XMLReader + + + + + XMLReader::fromStream + + + XMLReader::fromUri + + + XMLReader::fromString + + + + + + XMLWriter + + + + + XMLWriter::toStream + + + XMLWriter::toUri + + + XMLWriter::toMemory + + + + + + XSL + + + + + XSLTProcessor::registerPhpFunctionNS + + + + + + diff --git a/appendices/migration84/other-changes.xml b/appendices/migration84/other-changes.xml new file mode 100644 index 0000000000..d1d546cfda --- /dev/null +++ b/appendices/migration84/other-changes.xml @@ -0,0 +1,790 @@ + + + + + + その他の変更 + + + PHP コア + + + クロージャ + + + クロージャの名前が調整され、親関数の名前と + 定義の行番号を含むようになりました。これにより、 + スタックトレース内などでの識別が容易になります。 + + + + + ファイバー(Fibers) + + + デストラクタ実行中にファイバーを切り替えられるようになりました。 + 以前はガベージコレクションとの競合のためブロックされていました。 + + + + デストラクタは別のファイバー内で実行される場合があります。 + + + + ガベージコレクションがファイバー内でトリガーされると、 + GC によって呼び出されるデストラクタは + 別のファイバー(gc_destructor_fiber)内で実行されます。 + このファイバーが中断された場合、残りのデストラクタを実行するために + 新しいファイバーが作成されます。 + 以前の gc_destructor_fiber は GC によって参照されなくなり、 + 他に参照されていなければ回収される可能性があります。 + デストラクタが中断されたオブジェクトは、 + デストラクタが戻るか Fiber が回収されるまで回収されません。 + + + + + 出力ハンドラ + + + ob_startflags パラメータに渡された + 出力ハンドラのステータスフラグがクリアされるようになりました。 + + + + output_add_rewrite_var は、 + リライトされるホストを選択するために + url_rewriter.hosts を使用するようになりました。 + 以前は + session.trans_sid_hosts + を使用していました。 + + + + + + SAPI モジュールへの変更 + + + apache2handler + + + EOLを迎えた Apache 2.0 および 2.2 のサポートが削除されました。 + 最小必要 Apache バージョンは 2.4 になりました。 + + + + + CLI + + + 組み込みサーバーは、指定されたファイルが見つからない場合、 + 親ディレクトリをたどってインデックスファイルを再帰的に探します。 + このプロセスは、パスがファイルを指しているように見える場合 + (最後のパスコンポーネントにピリオドが含まれる場合)はスキップされていました。 + その場合、404 エラーが返されていました。 + この動作は、すべての場合にインデックスファイルを探すように変更されました。 + + + + + FPM + + + 本文なしでヘッダをフラッシュできるようになりました。 + + + + + ステータスページにメモリの最大使用量を表示するフィールドが追加されました。 + + + + + Solaris/Illumos 用の /dev/poll events.mechanism + 設定は廃止されました。 + + + + + + 変更された関数 + + + PHP コア + + + trigger_error および user_error + は、戻り値の型が bool ではなく true になりました。 + + + + + DOM + + + DOMDocument::registerNodeClass + は、戻り値の型が bool ではなく true になりました。 + 実際には常に &true; を返すことしかできませんでした。 + + + + + Hash + + + hash_update + は、戻り値の型が bool ではなく true になりました。 + 実際には常に &true; を返すことしかできませんでした。 + + + + + Intl + + + NumberFormatter::ROUND_TOWARD_ZERO および + NumberFormatter::ROUND_AWAY_FROM_ZERO + が、新しい PHP_ROUND_* + モードと一致するように、 + NumberFormatter::ROUND_DOWN および + NumberFormatter::ROUND_UP + のエイリアスとして追加されました。 + + + + ResourceBundle::get + + は、戻り値の型が ResourceBundle|array|string|int|null になりました。 + + + + idn_to_ascii および idn_to_utf8 + 関数は、domain 名が空または長すぎる場合、 + ValueError をスローするようになりました。 + + + + idn_to_ascii および idn_to_utf8 + 関数は、variant パラメータが + INTL_IDNA_VARIANT_UTS46 でない場合、 + ValueError をスローするようになりました。 + + + + + LibXML + + + libxml_set_streams_context は、 + 非ストリームコンテキストリソースが関数に渡された場合、 + ストリームコンテキストが使用されるときではなく、 + 直ちに TypeError をスローするようになりました。 + + + + + MBString + + + mb_strcut の動作は、 + 無効な UTF-8 および UTF-16 文字列に対してより一貫性のあるものになりました。 + 有効な UTF-8 および UTF-16 文字列に対する動作の変更はありません。 + + + + + ODBC + + + odbc_fetch_object、 + odbc_fetch_array、および + odbc_fetch_into の + row は、デフォルト値が &null; になり、 + odbc_fetch_row と一致するようになりました。 + 以前は、それぞれデフォルト値が + -1、 + -1、 + 0 + でした。 + + + + + OpenSSL + + + openssl_csr_new の + extra_attributes は、 + CSR 属性を設定します。 + 以前はサブジェクト DN が誤って設定されていました。 + + + + openssl_csr_new の + dn は、 + 単一のエントリに対して値の array を設定できるようになりました。 + + + + openssl_csr_sign に新たに + serial_hex が追加され、 + 16 進形式でシリアル番号を設定できるようになりました。 + + + + openssl_x509_parse で ASN.1 UTCTime を解析する際、 + OpenSSL バージョン 3.2 未満では秒が省略されていると失敗します + (そのようなフィールドでは -1 が返されます)。 + OpenSSL バージョン 3.3 以降では、そのような証明書は読み込むことができません。 + + + + + PDO + + + PDO::getAttribute で + PDO::ATTR_STRINGIFY_FETCHES + 属性の値を取得できるようになりました。 + + + + PDO::PGSQL_ATTR_RESULT_MEMORY_SIZE が追加されました。 + サポートされているドライバで PDO::getAttribute を使用して + クエリ結果のメモリ使用量を取得できるようになりました。 + + + + + PDO_FIREBIRD + + + + PDO::getAttribute で + + FB_ATTR_DATE_FORMAT、 + FB_ATTR_TIME_FORMAT、 + FB_ATTR_TIMESTAMP_FORMAT 属性の値を取得できるようになりました。 + + + + トランザクションの分離レベルとアクセスモードを指定するための新しい属性が追加されました。 + この機能のため 5 つの定数が追加されました: + + + Pdo\Firebird::TRANSACTION_ISOLATION_LEVEL + Pdo\Firebird::READ_COMMITTED + Pdo\Firebird::REPEATABLE_READ + Pdo\Firebird::SERIALIZABLE + Pdo\Firebird::WRITABLE_TRANSACTION + + + + + 永続的な接続を使用する場合、コンストラクタ内での生存チェックが追加されました。 + + + + ビルドされる内容は、 + ibase.h 内の + FB_API_VER の値によって変わります。 + この情報を取得するために新しい static メソッド Pdo\Firebird::getApiVersion + が追加されました。 + この情報は phpinfo からも参照できます。 + + + + 5 つの新しいデータ型が利用可能になりました: + + INT128 + DEC16 + DEC34 + TIMESTAMP_TZ + TIME_TZ + + + これらは Firebird 4.0 以降で利用可能です。 + + + + + PDO_MYSQL + + + + PDO::getAttribute で + PDO::ATTR_FETCH_TABLE_NAMES 属性の + 値を取得できるようになりました。 + + + + + PDO_PGSQL + + + PDO::PGSQL_ATTR_RESULT_MEMORY_SIZE + によるクエリのメモリ使用量の取得をサポートしました。 + + + + カラムが FLOAT4OID または + FLOAT8OID 型の場合、値は + string ではなく float として返されるようになりました。 + + + + + PGSQL + + + pg_selectconditions パラメータ + はオプションになり、空の配列を受け入れるようになりました。 + + + + + Phar + + + + Phar::setAlias + Phar::setDefaultStub + + は、戻り値の型が bool ではなく + true になりました。 + + + + + POSIX + + + posix_isatty は、 + ファイル記述子/ストリーム引数が無効な場合エラー番号を設定するようになりました。 + + + + + Reflection + + + ReflectionGenerator::getFunction + は、ジェネレータの実行が終了した後でも呼び出すことができるようになりました。 + + + + + Sockets + + + socket_create_listen の + backlog パラメータのデフォルト値は + SOMAXCONN になりました。 + 以前は 128 でした。 + + + + + Sodium + + + sodium_crypto_aead_aes256gcm_* + 関数は、ARM 暗号化拡張を持つ aarch64 CPU で + 利用可能になりました。 + + + + + SPL + + + + SplPriorityQueue::insert + SplPriorityQueue::recoverFromCorruption + SplHeap::insert + SplHeap::recoverFromCorruption + + メソッドは、戻り値の型が bool ではなく + true になりました。 + + + + SplObjectStorage は + SeekableIterator を実装するようになりました。 + + + + + Standard + + + + password_hash で指定できる + PASSWORD_BCRYPT ハッシュアルゴリズムの + デフォルトの 'cost' 値が + 10 から 12 に引き上げられました。 + + + + + debug_zval_dump は、配列がパックされているかどうかを示すようになりました。 + + + + + long2ip は、戻り値の型が string|false ではなく + string になりました。 + + + + highlight_string は、戻り値の型が + + string|bool ではなくstring|true になりました。 + + + + print_r は、戻り値の型が + + string|bool ではなく string|true になりました。 + + + + + <function>round</function> による丸め処理 + + + round 関数の + mode パラメータは、 + + RoundingMode|int に拡張され、 + + 新たに追加された RoundingMode 列挙型のインスタンスを受け入れます。 + + + + + round 関数に 4 つの新しいモードが追加されました: + + RoundingMode::PositiveInfinity + RoundingMode::NegativeInfinity + RoundingMode::TowardsZero + RoundingMode::AwayFromZero + + + + + + 整数への丸めのための内部実装が、正確さの検証と + メンテナンスの容易さのために書き直されました。 + その結果、いくつかの丸め処理のバグが修正されました。 + 例えば、以前は 0.49999999999999994を最も近い整数に丸めると、 + 正しい結果の 0.0 ではなく + 1.0 になっていました。 + 他の入力も影響を受け、以前の PHP バージョンと比較して + 異なる出力になる場合があります。 + + + + round 関数の「事前丸め」によるバグが修正されました。 + 以前は、「事前丸め」により 0.285 + (実際には 0.28499999999999998)のような値を + 10 進数として、0.29 に丸めていました。 + しかし、「事前丸め」は特定の数値を誤って丸めるため、 + この修正では「事前丸め」を削除し、値同士の比較方法を変更することで、 + 値が 10 進数として正しく丸められるようにしました。 + + + + round が処理できる最大精度が + 1桁増えました。 + 例えば、round(4503599627370495.5) は以前は + 4503599627370495.5 を返していましたが、 + 現在は 4503599627370496 を返します。 + + + + + + + + + 拡張モジュールへのその他の変更 + + + cURL + + + 最小必要 libcurl バージョンは 7.61.0 になりました。 + + + + CURLOPT_DNS_USE_GLOBAL_CACHE オプションは + もはや効果がなく、通知なく無視されます。 + この基本機能は libcurl 7.11.1 で非推奨となり、 + libcurl 7.62.0 で削除されました。 + + + + + GMP + + + + GMP オブジェクトを bool に + キャストできるようになりました。以前は E_RECOVERABLE_ERROR が発生していました。 + キャストの動作はオーバーロードされ、値が 0 を表す + GMP オブジェクトは &false; にキャストされます。 + + + + + LibXML + + + 最小必要 libxml2 バージョンは 2.9.4 になりました。 + + + + + Intl + + + Intl クラスの動作が統一され、 + 初期化されていないオブジェクトを使用しようとした場合やクローンに失敗した場合に、 + Error 例外をスローするようになりました。 + + + + + MBString + + + Unicode データテーブルが Unicode 16.0 に更新されました。 + + + + + MySQLnd + + + MySQL 9 の新しい VECTOR データ型のサポート。 + + + + + OpenSSL + + + 最小必要 OpenSSL バージョンは 1.1.1 になりました。 + + + + + PDO_PGSQL + + + 最小必要 libpq バージョンは 10.0 になりました。 + + + + + PGSQL + + + 最小必要 libpq バージョンは 10.0 になりました。 + + + + + SPL + + + SplFixedArray での範囲外アクセスは、 + RuntimeException ではなく + OutOfBoundsException 型の例外をスローするようになりました。 + OutOfBoundsException は + RuntimeException の子クラスであるため、 + これらの例外をキャッチしようとする際の動作に変更はありません。 + + + + + XSL + + + 型付きプロパティ XSLTProcessor::$cloneDocument + および XSLTProcessor::$doXInclude が定義されました。 + + + + + Zlib + + + 最小必要 zlib バージョンは 1.2.11 になりました。 + + + + + + パフォーマンス + + + PHP コア + + + ZTS ビルドにおける高負荷の並行処理環境下で、 + 浮動小数点数の解析とフォーマットのパフォーマンスが向上しました。 + これは printf 系の関数や + json_encodeserialize + などのシリアライズ関数に影響します。 + + + + %s%d 指定子のみを使用する + sprintf は、同等の文字列補間にコンパイルされ、 + 関数呼び出しのオーバーヘッドとフォーマット文字列の + 繰り返し解析を回避します。 + + + + + BCMath + + + 数値の変換と演算のパフォーマンスが向上しました。 + + + + + DOM + + + DOMNode::C14N のパフォーマンスが、 + xpath クエリなしの場合に大幅に向上しました。 + これは数万ノードのドキュメントで簡単に 2 桁の + 時間改善をもたらします。 + + + + XML シリアライズのパフォーマンスが向上し、メモリ消費が削減されました。 + + + + ノードクラスのメモリ使用量が削減されました。 + + + + + FTP + + + 大きなアップロードで FTP アップロードのパフォーマンスが + 最大 10 倍向上しました。 + + + + + Hash + + + SHA-256 の SSE2 および SHA-NI 実装が追加されました。 + これにより、サポートされている CPU でのパフォーマンスが SSE2 で最大 1.3 倍、 + SHA-NIで 3から 5 倍向上します。 + この最適化は Colin Percival / Tarsnap の功績です。 + + + + + MBString + + + mb_strcut は UTF-8 および + UTF-16 文字列で大幅に高速になりました。 + + + + mbstring のエンコーディング名の検索が大幅に高速になりました。 + + + + SJIS-win から Unicode への変換のパフォーマンスが大幅に向上しました。 + + + + + MySQLnd + + + MySQLnd のクオートのパフォーマンスが向上しました。 + + + + + PCRE + + + 名前付きキャプチャグループのパフォーマンスが向上しました。 + + + + + Random + + + Random\Randomizer のパフォーマンスが向上しました。 + 特に Random\Randomizer::getBytes と + Random\Randomizer::getBytesFromString メソッドで顕著です。 + + + + + SimpleXML + + + XML シリアライズのパフォーマンスが向上し、メモリ消費が削減されました。 + + + + + Standard + + + strspn および strcspn の + パフォーマンスが大幅に向上しました。 + 二乗時間ではなく、線形時間で実行されるようになりました。 + + + + strpbrk のパフォーマンスが向上しました。 + + + + get_browser は大幅に高速になり、 + いくつかのテストケースで最大 1.5 倍から 2.5 倍の速度向上を実現しました。 + + + + + + diff --git a/appendices/migration84/removed-extensions.xml b/appendices/migration84/removed-extensions.xml new file mode 100644 index 0000000000..8223de5dc5 --- /dev/null +++ b/appendices/migration84/removed-extensions.xml @@ -0,0 +1,40 @@ + + + + + + 削除された拡張モジュール + + + これらの拡張モジュールは PECL に移行され、 + PHP 配布の一部ではなくなりました。PECL パッケージの新しいリリースは、 + ユーザーの需要に応じて随時公開されます。 + + + + IMAP + OCI8 + PDO_OCI + PSpell + + + diff --git a/appendices/migration84/windows-support.xml b/appendices/migration84/windows-support.xml new file mode 100644 index 0000000000..b66c080f82 --- /dev/null +++ b/appendices/migration84/windows-support.xml @@ -0,0 +1,47 @@ + + + + + + Windows のサポート + + + PHP コア + + + Visual Studio でのビルドには、 Visual Studio 2019 以降が必要になりました。 + ただし、Visual Studio 2022 が推奨されます。 + + + + MSVC ビルドでは、AVX(2) CPU のサポートが正しく検出されるようになりました。 + + + + ネイティブ AVX-512 ビルドが、configure オプション + + でサポートされました。 + + + + + diff --git a/appendices/migration85.xml b/appendices/migration85.xml new file mode 100644 index 0000000000..a31d832530 --- /dev/null +++ b/appendices/migration85.xml @@ -0,0 +1,57 @@ + + + + + PHP 8.4.x から PHP 8.5.x への移行 + + + この新しいマイナーバージョンには、 + たくさんの 新機能 と + 互換性のない変更がいくつか + あります。実運用環境の PHP をこのバージョンにあげる前に、 + これらの変更を必ずテストすべきです。 + + + + &manual.migration.seealso; + 7.1.x, + 7.2.x, + 7.3.x, + 7.4.x, + 8.0.x, + 8.1.x, + 8.2.x. + 8.3.x. + 8.4.x. + + + &appendices.migration85.new-features; + &appendices.migration85.new-classes; + &appendices.migration85.new-functions; + &appendices.migration85.constants; + &appendices.migration85.incompatible; + &appendices.migration85.deprecated; + &appendices.migration85.other-changes; + &appendices.migration85.windows-support; + + + diff --git a/appendices/migration85/constants.xml b/appendices/migration85/constants.xml new file mode 100644 index 0000000000..38229cb4bf --- /dev/null +++ b/appendices/migration85/constants.xml @@ -0,0 +1,192 @@ + + + + + 新しいグローバル定数 + + + PHP コア + + + + PHP_BUILD_DATE + + + PHP_BUILD_PROVIDER + + + + + + cURL + + + + CURLINFO_USED_PROXY + + + CURLINFO_HTTPAUTH_USED + + + CURLINFO_PROXYAUTH_USED + + + CURLINFO_CONN_ID + + + CURLINFO_QUEUE_TIME_T + + + CURLOPT_INFILESIZE_LARGE + + + CURLFOLLOW_ALL + + + CURLFOLLOW_OBEYCODE + + + CURLFOLLOW_FIRSTONLY + + + + + + Filter + + + + FILTER_THROW_ON_FAILURE + + + + + + Intl + + + + DECIMAL_COMPACT_SHORT + + + DECIMAL_COMPACT_LONG + + + + + + OpenSSL + + + OPENSSL_PKCS1_PSS_PADDING + PKCS7_NOSMIMECAP + PKCS7_CRLFEOL + PKCS7_NOCRL + PKCS7_NO_DUAL_CONTENT + + + + + POSIX + + + POSIX_SC_OPEN_MAX + + + + + Sockets + + + + IPPROTO_ICMP + + + IPPROTO_ICMPV6 + + + TCP_FUNCTION_BLK (FreeBSD only) + + + TCP_FUNCTION_ALIAS (FreeBSD only) + + + TCP_REUSPORT_LB_NUMA (FreeBSD only) + + + TCP_REUSPORT_LB_NUMA_NODOM (FreeBSD only) + + + TCP_REUSPORT_LB_NUMA_CURDOM (FreeBSD only) + + + TCP_BBR_ALGORITHM (FreeBSD only) + + + AF_PACKET (Linux only) + + + IP_BINDANY (FreeBSD/NetBSD/OpenBSD only) + + + SO_BUSY_POLL (Linux only) + + + UDP_SEGMENT (Linux only) + + + SHUT_RD + + + SHUT_WR + + + SHUT_RDWR + + + + + + Tokenizer + + + T_VOID_CAST + + + T_PIPE + + + + + + Standard + + + + IMAGETYPE_SVG + when libxml is loaded. + + + + + + diff --git a/appendices/migration85/deprecated.xml b/appendices/migration85/deprecated.xml new file mode 100644 index 0000000000..790740e924 --- /dev/null +++ b/appendices/migration85/deprecated.xml @@ -0,0 +1,566 @@ + + + + + PHP 8.5.x で推奨されなくなる機能 + + + PHP コア + + + ユーザー定義の出力ハンドラに関する変更 + + + + ユーザー定義の出力ハンドラから(たとえば echo + などを使って) 出力を行うことは、推奨されなくなりました。 + この推奨されない警告は、 + 出力を生成するハンドラをバイパスして、 + それが確実に表示されるようにします。 + つまり、ネストされた出力ハンドラが存在する場合、 + 次のハンドラは引き続き使われるということです。 + + + + + + 正規化されていない型名でのキャスト + + + + 正規化されていない型名 + (boolean), + (integer), + (double), + (binary) でキャストすることは、 + 推奨されなくなりました。 + (bool), (int), + (float), (string) + をそれぞれ使ってください。 + + + + + + セミコロンでcase文を終了させる + + + + case文をコロンではなく、セミコロンで終了させることは、 + 推奨されなくなりました。 + + + + + + バッククォート演算子 + + + + shell_exec + のエイリアスとして使われている + バッククォート演算子 + は、推奨されなくなりました。 + + + + + + __debugInfo() から null を返す + + + + __debugInfo() + から &null; を返すことは、推奨されなくなりました。 + 空の配列を返してください。 + + + + + + report_memleaks INI ディレクティブ + + + + INI ディレクティブ + report_memleaks は、 + 推奨されなくなりました。 + + + + + + 定数の再宣言 + + + + 同じ定数を再宣言することは、推奨されなくなりました。 + これについては既に警告は発生しており、 + (警告の種類が変わるだけで)それが続くことに注意してください。 + + + + + + クロージャのバインド時の問題 + + + + 既に E_WARNING が発生している、 + クロージャのバインド時の以下の問題は、推奨されなくなりました: + + + インスタンスを static なクロージャにバインドすること + メソッドが定義されているクラス(またはサブクラス)のインスタンスでないオブジェクトに、メソッドをバインドすること + メソッドから $this のバインドを解除すること + `$this` を使っているクロージャから、$this のバインドを解除すること + 内部クラスのスコープにクロージャをバインドすること + 関数やメソッドから生成したクロージャのスコープを、再度バインドすること + + + + + + + マジックメソッド __sleep() と __wakeup() + + + + + マジックメソッド __sleep() と + __wakeup() は、 + soft-deprecated 扱いになりました。 + 代わりに、__serialize() と + __unserialize() を使ってください。 + PHP 7 との互換性が必要な場合は、両方を同時に使ってください。 + + + + + + 配列のオフセットに null を指定 + + + + 配列のオフセットに &null; を指定したり、 + array_key_exists をコールする際に &null; を指定することは、 + 推奨されなくなりました。 + 代わりに、空文字列を使ってください。 + + + + + + 数値でない文字列をインクリメント + + + + 数値でない文字列をインクリメントすることは、推奨されなくなりました。 + str_increment を代わりに使ってください。 + + + + + + register_argc_argv INI ディレクティブ + + + + CLI でない SAPI において、 + クエリ文字列から $_SERVER['argc'] と + $_SERVER['argv'] の値を取得する機能は、 + 推奨されなくなりました。 + 安全な使い方を検証した上で register_argc_argv=0 + を設定し、情報を取得する手段を $_GET や + $_SERVER['QUERY_STRING'] に切り替えてください。 + + + + + + + + cURL + + + curl_close 関数は、推奨されなくなりました。 + CurlHandle オブジェクトが、 + 自動でリソースを開放するためです。 + + + + + curl_share_close 関数は、推奨されなくなりました。 + CurlShareHandle オブジェクトが、 + 自動でリソースを開放するためです。 + + + + + + + Date + + + 定数 DATE_RFC7231 と + DateTimeInterface::RFC7231 + は、推奨されなくなりました。 + これらに関連付けられているタイムゾーンは無視され、 + 常に GMT を使っているためです。 + + + + + + + FileInfo + + + finfo_close 関数は、推奨されなくなりました。 + finfo オブジェクトが、 + 自動でリソースを開放するためです。 + + + + + finfo_buffer 関数の $context + パラメータは、推奨されなくなりました。 + このパラメータは無視されているためです。 + + + + + + + GD + + + imagedestroy 関数は、推奨されなくなりました。 + GdImage オブジェクトが、 + 自動でリソースを開放するためです。 + + + + + + + Hash + + + MHASH_* 定数は、 + 推奨されなくなりました。 + + + + + + + Intl + + + INI ディレクティブ + intl.error_level は、 + 推奨されなくなりました。 + エラーは手動でチェックするか、 + INI ディレクティブ + intl.use_exceptions + を使って例外を有効にすべきです。 + + + + + + + LDAP + + + 特定の Oracle Instant Client の呼び出しや定数は、 + 推奨されなくなりました。 + + 影響を受ける呼び出しは以下の通りです: + + wallet のサポートを使った ldap_connect + ldap_connect_wallet + + + 影響を受ける定数は以下の通りです: + + GSLC_SSL_NO_UATH + GSLC_SSL_ONEWAY_UATH + GSLC_SSL_TWOWAY_UATH + + + + + + + + MySQLi + + + エイリアスとして定義されている + mysqli_execute 関数は、 + 推奨されなくなりました。 + 代わりに mysqli_stmt_execute を使いましょう。 + + + + + + + OpenSSL + + + openssl_pkey_derive$key_length + パラメータは、推奨されなくなりました。 + このパラメータは無視されているか、キーを切り捨てるかしており、 + それらの挙動がセキュリティ上の脆弱性になりうるためです。 + + + + + + + PDO + + + "uri:" DSN スキームは、推奨されなくなりました。 + リモートURI から生じる、DSN に関するセキュリティ上の懸念があるためです。 + + + + + PDO クラスのドライバ特有の定数は、推奨されなくなりました。 + 影響を受ける定数と、代替は以下のとおりです: + + + PDO::DBLIB_ATTR_CONNECTION_TIMEOUT => Pdo\Dblib::ATTR_CONNECTION_TIMEOUT + PDO::DBLIB_ATTR_QUERY_TIMEOUT => Pdo\Dblib::ATTR_QUERY_TIMEOUT + PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER => Pdo\Dblib::ATTR_STRINGIFY_UNIQUEIDENTIFIER + PDO::DBLIB_ATTR_VERSION => Pdo\Dblib::ATTR_VERSION + PDO::DBLIB_ATTR_TDS_VERSION => Pdo\Dblib::ATTR_TDS_VERSION + PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS => Pdo\Dblib::ATTR_SKIP_EMPTY_ROWSETS + PDO::DBLIB_ATTR_DATETIME_CONVERT => Pdo\Dblib::ATTR_DATETIME_CONVERT + PDO::FB_ATTR_DATE_FORMAT => Pdo\Firebird::ATTR_DATE_FORMAT + PDO::FB_ATTR_TIME_FORMAT => Pdo\Firebird::ATTR_TIME_FORMAT + PDO::FB_ATTR_TIMESTAMP_FORMAT => Pdo\Firebird::ATTR_TIMESTAMP_FORMAT + PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => Pdo\Mysql::ATTR_USE_BUFFERED_QUERY + PDO::MYSQL_ATTR_LOCAL_INFILE => Pdo\Mysql::ATTR_LOCAL_INFILE + PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY => Pdo\Mysql::ATTR_LOCAL_INFILE_DIRECTORY + PDO::MYSQL_ATTR_INIT_COMMAND => Pdo\Mysql::ATTR_INIT_COMMAND + PDO::MYSQL_ATTR_MAX_BUFFER_SIZE => Pdo\Mysql::ATTR_MAX_BUFFER_SIZE + PDO::MYSQL_ATTR_READ_DEFAULT_FILE => Pdo\Mysql::ATTR_READ_DEFAULT_FILE + PDO::MYSQL_ATTR_READ_DEFAULT_GROUP => Pdo\Mysql::ATTR_READ_DEFAULT_GROUP + PDO::MYSQL_ATTR_COMPRESS => Pdo\Mysql::ATTR_COMPRESS + PDO::MYSQL_ATTR_DIRECT_QUERY => Pdo\Mysql::ATTR_DIRECT_QUERY + PDO::MYSQL_ATTR_FOUND_ROWS => Pdo\Mysql::ATTR_FOUND_ROWS + PDO::MYSQL_ATTR_IGNORE_SPACE => Pdo\Mysql::ATTR_IGNORE_SPACE + PDO::MYSQL_ATTR_SSL_KEY => Pdo\Mysql::ATTR_SSL_KEY + PDO::MYSQL_ATTR_SSL_CERT => Pdo\Mysql::ATTR_SSL_CERT + PDO::MYSQL_ATTR_SSL_CA => Pdo\Mysql::ATTR_SSL_CA + PDO::MYSQL_ATTR_SSL_CAPATH => Pdo\Mysql::ATTR_SSL_CAPATH + PDO::MYSQL_ATTR_SSL_CIPHER => Pdo\Mysql::ATTR_SSL_CIPHER + PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => Pdo\Mysql::ATTR_SSL_VERIFY_SERVER_CERT + PDO::MYSQL_ATTR_SERVER_PUBLIC_KEY => Pdo\Mysql::ATTR_SERVER_PUBLIC_KEY + PDO::MYSQL_ATTR_MULTI_STATEMENTS => Pdo\Mysql::ATTR_MULTI_STATEMENTS + PDO::ODBC_ATTR_USE_CURSOR_LIBRARY => Pdo\Odbc::ATTR_USE_CURSOR_LIBRARY + PDO::ODBC_ATTR_ASSUME_UTF8 => Pdo\Odbc::ATTR_ASSUME_UTF8 + PDO::ODBC_SQL_USE_IF_NEEDED => Pdo\Odbc::SQL_USE_IF_NEEDED + PDO::ODBC_SQL_USE_DRIVER => Pdo\Odbc::SQL_USE_DRIVER + PDO::ODBC_SQL_USE_ODBC => Pdo\Odbc::SQL_USE_ODBC + PDO::PGSQL_ATTR_DISABLE_PREPARES => Pdo\Pgsql::ATTR_DISABLE_PREPARES + PDO::SQLITE_ATTR_EXTENDED_RESULT_CODES => Pdo\Sqlite::ATTR_EXTENDED_RESULT_CODES + PDO::SQLITE_ATTR_OPEN_FLAGS => Pdo\Sqlite::OPEN_FLAGS + PDO::SQLITE_ATTR_READONLY_STATEMENT => Pdo\Sqlite::ATTR_READONLY_STATEMENT + PDO::SQLITE_DETERMINISTIC => Pdo\Sqlite::DETERMINISTIC + PDO::SQLITE_OPEN_READONLY => Pdo\Sqlite::OPEN_READONLY + PDO::SQLITE_OPEN_READWRITE => Pdo\Sqlite::OPEN_READWRITE + PDO::SQLITE_OPEN_CREATE => Pdo\Sqlite::OPEN_CREATE + + + + + + PDO クラスのドライバ特有のメソッドは、推奨されなくなりました。 + 影響を受けるメソッドと、代替は以下のとおりです: + + + PDO::pgsqlCopyFromArray => Pdo\Pgsql::copyFromArray + PDO::pgsqlCopyFromFile => Pdo\Pgsql::copyFromFile + PDO::pgsqlCopyToArray => Pdo\Pgsql::copyToArray + PDO::pgsqlCopyToFile => Pdo\Pgsql::copyToFile + PDO::pgsqlGetNotify => Pdo\Pgsql::getNotify + PDO::pgsqlGetPid => Pdo\Pgsql::getPid + PDO::pgsqlLOBCreate => Pdo\Pgsql::lobCreate + PDO::pgsqlLOBOpen => Pdo\Pgsql::lobOpen + PDO::pgsqlLOBUnlink => Pdo\Pgsql::lobUnlink + PDO::sqliteCreateAggregate => Pdo\Sqlite::createAggregate + PDO::sqliteCreateCollation => Pdo\Sqlite::createCollation + PDO::sqliteCreateFunction => Pdo\Sqlite::createFunction + + + + + + + + PDO_PGSQL + + + トランザクションの状態に関連する以下の定数は、推奨されなくなりました。 + この機能は PDO で利用できなくなっているからです: + + + PDO::PGSQL_TRANSACTION_IDLE + PDO::PGSQL_TRANSACTION_ACTIVE + PDO::PGSQL_TRANSACTION_INTRANS + PDO::PGSQL_TRANSACTION_INERROR + PDO::PGSQL_TRANSACTION_UNKNOWN + + + + + + + + Reflection + + + リフレクション関連の様々な setAccessible() メソッドは、 + 推奨されなくなりました。 + 使っても効果がないためです。 + + + + + 存在しない定数に対して、 + ReflectionClass::getConstant + をコールすることは、推奨されなくなりました。 + + + + + デフォルト値が存在しないプロパティに対して、 + ReflectionProperty::getDefaultValue + をコールすることは、推奨されなくなりました。 + + + + + + + SPL + + + spl_autoload_call を + spl_autoload_unregister + のコールバック引数に渡すことで、 + すべての autoload の登録を解除することは、推奨されなくなりました。 + 代わりに、spl_autoload_functions + の戻り値を反復処理し、 + それぞれの値に対して spl_autoload_unregister + をコールする必要があります。 + + + + + SplObjectStorage::contains, + SplObjectStorage::attach, + SplObjectStorage::detach + は、推奨されなくなりました。 + SplObjectStorage::offsetExists, + SplObjectStorage::offsetSet, + SplObjectStorage::offsetUnset + をそれぞれ使ってください。 + + + + + オブジェクトと一緒に + ArrayObject と + ArrayIterator を使うことは、 + 推奨されなくなりました。 + + + + + + + Standard + + + エイリアスとして定義されている + socket_set_timeout 関数は、 + 推奨されなくなりました。 + 代わりに stream_set_timeout を使いましょう。 + + + + + 最後にオープンしたディレクトリを使う目的で、 + readdir, + rewinddir, + closedir に &null; を渡すことは、 + 推奨されなくなりました。 + 最後にオープンしたディレクトリを明示的に指定してください。 + + + + + chr に、 + 区間 [0, 255] の範囲にない数値を指定することは、 + 推奨されなくなりました。 + 1バイトのデータは、この範囲でのみ保持できるからです。 + + + + + シングルバイトでない文字列を ord に渡すことは、 + 推奨されなくなりました。 + こうすることは、バグであることを示唆しています。 + + + + + ローカルで事前に定義済みの変数 + $http_response_header + は、推奨されなくなりました。代わりに、 + http_get_last_response_headers をコールすべきです。 + + + + + + + XML + + + xml_parser_free 関数は、推奨されなくなりました。 + XMLParser オブジェクトが、 + 自動でリソースを開放するためです。 + + + + + + + diff --git a/appendices/migration85/incompatible.xml b/appendices/migration85/incompatible.xml new file mode 100644 index 0000000000..b049ed064e --- /dev/null +++ b/appendices/migration85/incompatible.xml @@ -0,0 +1,657 @@ + + + + + 下位互換性のない変更点 + + + PHP コア + + + クラスの別名に <literal>"array"</literal> と <literal>"callable"</literal> を使う + + + class_alias では、 + クラスのエイリアス名として、"array" + と "callable" を指定できなくなりました。 + + + + + + 比較できないオブジェクトと == で比較する + + + 比較できないオブジェクト + (例: 列挙型, CurlHandle, + その他の内部クラス) を boolean と比較した場合の振る舞いは、 + 以前のバージョンでは一貫性がありませんでした。 + boolean リテラルと $object == true + のように比較した場合、(bool)$object + と同じ振る舞いをしていました。 + 静的に不明な値と $object == $true + のように比較した場合、常に &false; を返していました。 + これらの振る舞いが、常に (bool)$object + に従うように統一されました。 + + + + + + gc_collect_cycles の戻り値 + + + gc_collect_cycles の戻り値には、 + 間接的に収集されたリソースや文字列が含まれなくなりました。 + + + + + + final 指定のサブクラスでの static キーワードの置き換え + + + final を指定したサブクラスにおける、 + メソッドの戻り値 static は、 + self または具象クラスに置き換えられるようになりました。 + + + + + + + + tick ハンドラ + + + tick ハンドラは、 + すべてのシャットダウン関数とデストラクタが実行され、 + 出力ハンドラがクリーンアップされた後に、 + 無効化されるようになりました。 + + + + + + トレイトのバインド + + + トレイトは、親クラスの前にバインドされるようになりました。 + これは微妙な振る舞いの変更ですが、 + ユーザーの期待により一致するはずです。 + + + + + + + コンパイル中やクラスのリンク中に発生したエラー + + + コンパイル中やクラスのリンク中に発生したエラーは、 + 常に処理が遅延されるようになりました。 + これらのエラーは、コンパイルまたはクラスのリンク後に処理されます。 + コンパイル中やクラスのリンク中に致命的なエラーが発生した場合、 + 遅延させられていたエラーがすぐに処理されます。 + この場合、ユーザー定義のエラーハンドラを呼び出しません。 + + + + + + + ユーザー定義のエラーハンドラからスローされた例外 + + + クラスのリンク処理時に、 + ユーザー定義のエラーハンドラからスローされた例外は、 + 致命的なエラーに昇格しなくなり、リンクを妨げなくなりました。 + + + + + + + コンパイル中のアトリビュート適用エラー + + + 抽象クラス、列挙型、インターフェース、 + またはトレイトに #[\Attribute] を適用すると、 + コンパイル時にエラーが発生します。 + 以前のバージョンではアトリビュートを追加できていましたが、 + ReflectionAttribute::newInstance + がコールされた際に Error がスローされていました。 + 新しい #[\DelayedTargetValidation] アトリビュートを使うと、 + このエラーをコンパイル時から実行時に遅延させることできます。 + + + + + + disable_classes INI ディレクティブ + + + さまざまな PHP エンジンの想定を壊してしまうため、 + disable_classes + INI ディレティブは削除されました。 + + + + + + + 配列でない値を分解した場合 + + + 配列でない(但し &null; を除く)値を、 + []list で分解した場合、 + 警告が発生するようになりました。 + + + + + + + キャスト関連の警告 + + + 浮動小数点数(または浮動小数点数のように見える文字列) + を int 型にキャストする際、 + それらが int 型として表現できない場合に警告が発生するようになりました。 + これは明示的な int キャストと暗黙的な int キャストの両方に影響します。 + + + + + NAN を他の型にキャストした場合、警告が発生するようになりました。 + + + + + + + + + Bzip2 + + + $block_size に 1 から 9 の間以外の値を指定した場合、 + bzcompressValueError + をスローするようになりました。 + + + + $work_factor に 0 から 250 の間以外の値を指定した場合、 + bzcompressValueError + をスローするようになりました。 + + + + + + DOM + + + DOMNamedNodeMap, + DOMNodeList, + Dom\NamedNodeMap, + Dom\NodeList, + Dom\HTMLCollection, + Dom\DtdNamedNodeMap を clone すると、 + 失敗するようになりました。 + この変更で、動作しているオブジェクトが実際に失敗することはありません。 + よって、実際の影響はゼロのはずです。 + + + + + + FileInfo + + + $filename に nul バイトが含まれている場合、 + finfo_file と + finfo::file は、 + TypeError ではなく + ValueError をスローするようになりました。 + これにより、スローされるエラーの型が、 + 言語の他の動作と一貫性を保つように調整されます。 + + + + + + Intl + + + この拡張モジュールは、ICU 57.1 以降が必須になりました。 + + + + クラスが初期化されていなかったり、 + clone が失敗した場合に、 + IntlDateFormatter::setTimeZone/datefmt_set_timezone + は IntlException をスローするようになりました。 + + + + Locale クラスの全てのメソッドは、 + ロケールの引数に null バイトが含まれていた場合に + ValueError をスローするようになりました。 + + + + 数値形式の文字列の処理に関する + Collator::SORT_REGULAR の動作が、 + ext/standard の SORT_REGULAR + の動作と同じになるように調整されました。 + + + + + + LDAP + + + 不正なオプションを渡した場合、 + ldap_get_option + と ldap_set_option は + ValueError + をスローするようになりました。 + + + + + + MBString + + + Unicode データテーブルが、Unicode 17.0 に更新されました。 + + + + + + MySQLi + + + 既に構築済みのオブジェクトに対して、 + mysqli のコンストラクタをコールすることはできなくなりました。 + コールした場合、Error がスローされます。 + + + + + + ODBC + + + ODBC は、最低でも ODBC 3.5 の機能が使えると想定するようになりました。 + ODBCVER の定義や、それを制御するビルドシステムフラグは削除されました。 + + + + ODBC は、 + 特定のドライバ向けにビルドするためのビルドフラグを(DB2以外に) + 持たなくなり、 + それらのドライバ向けの特別なケースも削除されました。 + Windows 以外の環境では、 + iODBC や unixODBC のようなドライバマネージャの使用を強く推奨します。 + + + + + + Opcache + + + Opcache 拡張モジュールは、 + 常に PHP バイナリに組み込まれ、ロードされるようになりました。 + opcache.enable + と opcache.enable_cli + の設定はまだ有効です。 + + + + / + configure オプションは削除され、 + ビルドしても opcache.so + や php_opcache.dll はもはや生成されません。 + + + + zend_extension=opcache.so や + zend_extension=php_opcache.dll + INI 設定を使うと、警告が発生するようになりました。 + + + + + + PCNTL + + + pcntl_exec の + $args パラメータのエントリに、 + null バイトが含まれていた場合、 + ValueError がスローされるようになりました。 + + + + pcntl_exec の + $env_vars パラメータのエントリまたはキーに、 + null バイトが含まれていた場合、 + ValueError がスローされるようになりました。 + + + + + + PCRE + + + semi-deprecated 扱いになっていた、 + コンパイルオプション PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK + 抜きでビルドされるようになりました。 + + + + + + + PDO + + + PDO::FETCH_CLASS + と組み合わせて設定されるコンストラクタ引数は、 + 通常の CUFA (call_user_func_array) + の規約に従うようになりました。 + つまり、文字列のキーは名前付き引数のように振る舞うということです。 + さらに、リファレンス渡しのパラメータに渡される、 + 値渡し引数の自動ラップが廃止され、 + 通常の E_WARNING が発生するようになりました。 + コンストラクタ引数に変数をリファレンス渡しするには、 + 配列の値にリファレンスの値を代入します: $ctor_args = [&$valByRef] + + + + PDO::fetch, + PDO::fetchObject, + PDO::fetchAll の呼び出し中に、 + PDOStatement::setFetchMode を呼び出そうとすると、 + Error がスローされるようになりました。 + これはたとえば、 + オブジェクトのフェッチ中に Statement + オブジェクトをコンストラクタの引数として渡す際に、 + PDOStatement::setFetchMode を呼び出す場合が該当します。 + + + + 定数 PDO::FETCH_GROUP, + PDO::FETCH_UNIQUE, + PDO::FETCH_CLASSTYPE, + PDO::FETCH_PROPS_LATE, + PDO::FETCH_SERIALIZE の値が変更されました。 + + + + PDO::FETCH_PROPS_LATE + が PDO::FETCH_CLASS + 以外のフェッチモードと一緒に使われた場合、 + ValueError がスローされるようになりました。 + これは、他のフェッチフラグの動作と一貫性を持たせるためです。 + + + + PDO::fetchAll で、 + PDO::FETCH_INTO をフェッチモードとして使おうとすると、 + PDO::FETCH_LAZY + と同様に ValueError がスローされるようになりました。 + + + + + + PDO_FIREBIRD + + + Firebird ドライバが生成した PDOStatement + に対して、長過ぎるカーソル名を設定しようとすると、 + ValueError がスローされるようになりました。 + + + + + + PDO_SQLITE + + + SQLite の PDO::quote は、 + 文字列に null バイトが含まれていた場合に、 + エラーモードに応じて警告を発生させたり、例外をスローするようになりました。 + + + + PDO::sqliteCreateCollation は、 + コールバック関数の戻り値の型が間違っている場合に、 + 例外をスローするようになりました。 + この変更によって、 + Pdo\Sqlite::createCollation + の動作とより一致するようになります。 + + + + + + POSIX + + + posix_kill は、 + process_id 引数がプラットフォームがサポートする範囲 + (符号付きまたは long)より小さいか大きい場合に + ValueError をスローするようになりました。 + + posix_setpgid は、 + process_id または process_group_id が 0 未満、 + またはプラットフォームがサポートする範囲より大きい場合に + ValueError をスローするようになりました。 + + + + posix_setrlimit は、 + hard_limit または soft_limit 引数が -1 より小さい場合、 + または soft_limit が hard_limit より大きい場合に + ValueError をスローします。 + + + + + + Reflection + + + 無効なターゲットにアトリビュートが適用された場合、 + ReflectionAttribute::newInstance は、 + 内部的なアトリビュート向けに例外をスローするようになりました。 + #[\DelayedTargetValidation] を使うと、 + 発生するエラーがコンパイル時から実行時に遅延されます。 + + + + + + + Session + + + パイプ文字 (|) + が含まれたキーを持つ $_SESSION + にセッションデータを書き込もうとすると、 + 黙って失敗するのではなく、警告が発生するようになりました。 + + + + + session_start は、 + オプション引数をより厳格に扱うようになりました。 + 配列が連想配列でない場合、 + ValueError がスローされるようになりました。 + read_and_close の値が int と互換性のない値の場合、 + TypeError がスローされるようになりました。 + + + + + + SimpleXML + + + ノードの集合以外を返す XPath 式を + SimpleXMLElement::xpath + に渡した場合、警告が発生し、&false; を返すようになりました。 + これより前のバージョンでは、黙って失敗し、 + 空の配列を返していました。 + + + + + + SNMP + + + snmpget, + snmpset, + snmp2_get, + snmp2_set, + snmp3_get, + snmp3_set + SNMP::__construct は、 + ValueError をスローするようになりました。 + スローされるのは、ホスト名が長すぎたり、 + ホスト名が null バイトを含んでいたり、 + 負の値や 65535 を超えるポート番号を指定したり、 + タイムアウトやリトライの値が -1 より小さかったり、大きすぎたりする場合です。 + + + + + + SOAP + + + SoapClient::__doRequest に、 + オプションの $uriParserClass + パラメータが新しく追加されました。 + これは、文字列と &null; を受け入れます。 + &null; を渡すと、オリジナルの parse_url + ベースのメソッドになります。 + Uri\Rfc3986\Uri や + Uri\WhatWg\Url を渡すと、 + 新しいバックエンドを使います。 + + + + + + + Sockets + + + socket_create_listen, + socket_bind, + socket_sendto は、 + ポートが 0 未満または 65535 を超える場合、 + または hints 配列のエントリが数値インデックスの場合に、 + ValueError をスローするようになりました。 + + + + socket_addrinfo_lookup は、 + hints 値のいずれかが int 型にキャストできない場合に、 + TypeError をスローするようになりました。 + また、これらの値のいずれかがオーバーフローした場合、 + ValueError をスローする可能性があります。 + + + + socket_set_option 関数で + MCAST_LEAVE_GROUP/MCAST_LEAVE_SOURCE_GROUP を指定した場合、 + 値が有効なオブジェクトまたは配列でない場合は例外がスローされるようになりました。 + + + + socket_set_option + をマルチキャストコンテキストで呼び出す場合、 + 作成されたソケットが + AF_INET/AF_INET6 + ファミリでない場合、ValueError がスローされるようになりました。 + + + + + + SPL + + + + ArrayObject は 列挙型を受け入れなくなりました。 + 列挙型の $name$value + プロパティが、PHP エンジンの想定を壊す可能性があるからです。 + + + + SplFileObject::fwrite の + $length パラメータは、nullable になりました。 + デフォルト値が 0 から &null; に変更されています。 + + + + + + Standard + + + printf ファミリの関数に精度を指定しないフォーマットを使った場合、 + 精度を 0 として扱うようになりました。 + これより前のバージョンでは、誤って精度をリセットしていました。 + + + + + + Tidy + + + tidy::__construct, + tidy::parseFile, + tidy::parseString は、 + 無効な設定値が含まれていたり、 + 読み取り専用の内部エントリを設定しようとした場合に + ValueError をスローするようになりました。 + 設定キーが文字列でない場合は、 + TypeError がスローされるようになっています。 + + + + + + diff --git a/appendices/migration85/new-classes.xml b/appendices/migration85/new-classes.xml new file mode 100644 index 0000000000..9190ca7579 --- /dev/null +++ b/appendices/migration85/new-classes.xml @@ -0,0 +1,69 @@ + + + + + 新しいクラスとインターフェイス + + + PHP コア + + NoDiscard + DelayedTargetValidation + + + + + + + Curl + + CurlSharePersistentHandle + + + + + + Filter + + Filter\FilterException + Filter\FilterFailedException + + + + + + URI + + Uri\UriException + Uri\InvalidUriException + Uri\UriComparisonMode + Uri\Rfc3986\Uri + Uri\WhatWg\InvalidUrlException + Uri\WhatWg\UrlValidationErrorType + Uri\WhatWg\UrlValidationError + Uri\WhatWg\Url + + + + + + diff --git a/appendices/migration85/new-features.xml b/appendices/migration85/new-features.xml new file mode 100644 index 0000000000..47cd05b11f --- /dev/null +++ b/appendices/migration85/new-features.xml @@ -0,0 +1,546 @@ + + + + + 新機能 + + + PHP コア + + + パイプ演算子 + + + + パイプ演算子(|>) が追加されました。 + + + + + + strlen(...); +print $result . PHP_EOL; // Prints "11" +]]> + + + + + + 定数式にクロージャ + + + 定数式に、クロージャ や + 第一級callable + を指定できるようになりました。 + これらを指定できる箇所として、以下が挙げられます: + + + アトリビュートの引数 + プロパティやパラメーターのデフォルト値 + 定数および、クラス定数 + + + + + + + + + #[\NoDiscard] アトリビュート + + + 関数の戻り値が重要であり、 + その値を使うべきことを示すアトリビュートとして、 + NoDiscard が追加されました。 + + + + + また、値を意図的に使わないことを指示する (void) + キャストが追加されました。 + (void) キャストは、 + プログラムそのものの実行には影響しませんが、 + #[\NoDiscard] アトリビュートが発生させる警告や、 + 外部の IDE や静的解析ツールが発生させる可能性がある、 + 診断メッセージを抑制する目的に使えます。 + + + + + + + + + + + + + 定数に対するアトリビュート + + + クラス定数でないコンパイル時定数 + (例: define('MY_CONST', 1); ではなく、 + const MY_CONST = 1; の形で定義するもの) + に対して、アトリビュートを指定できるようになりました。 + + + + + 定数に対して、Deprecated + アトリビュートを指定できるようになりました。 + + + + + + + <code>#[\DelayedTargetValidation]</code> アトリビュート + + + 無効なターゲットに指定した、 + PHP コア(または拡張モジュール) + のアトリビュートから発生するコンパイル時エラーを抑制する手段として、 + DelayedTargetValidation + アトリビュートが追加されました。 + このアトリビュートが抑制したエラーは代わりに、 + ReflectionAttribute::newInstance + がコールされたタイミングで、実行時に報告されます。 + + + + + + + プロパティに対する <code>#[\Override]</code> 指定 + + + プロパティに、Override + アトリビュートを指定できるようになりました。 + + + + + + + static プロパティに対する、非対称可視性の指定 + + + + 非対称可視性プロパティ が、static プロパティをサポートしました。 + + + + + + + Fatal Error 発生時のバックトレース + + + (Maximum execution time exceeded のような) 致命的なエラーにも、 + バックトレースが含まれるようになりました。 + + + + + + + final プロパティと、コンストラクタのプロモーション + + + final なプロパティも、 + + コンストラクタでプロパティに昇格 させることができるようになりました。 + + + + + + + 定数式をキャスト + + + 定数式をキャストできるようになりました。 + + + + + + + + + + + + Clone キーワードへの変更 + + + clone キーワード + は、関数のように振る舞うようになりました。 + そして、読み取り専用プロパティに clone して値を再代入する際に、 + 新しく $withProperties + パラメータが使えるようになりました + + + + + + + + + + cURL + + + 複数のリクエストにまたがって持続する + CurlSharePersistentHandle + のサポートが追加されました。 + これを使うと、より効率的な接続の再利用が安全にできるようになります。 + + + + + curl_getinfo 関数に、 + CURLINFO_USED_PROXY (libcurl >= 8.7.0), + CURLINFO_HTTPAUTH_USED (libcurl >= 8.12.0), + CURLINFO_PROXYAUTH_USED (libcurl >= 8.12.0) + のサポートが追加されました。 + curl_getinfo が配列を返す場合、 + これらの情報は "used_proxy", + "httpauth_used", + "proxyauth_used" というキーで利用できます。 + + CURLINFO_USED_PROXY は、 + 直近の転送でプロキシを使った場合にゼロでない値を、 + 使わなかった場合にゼロを返します。 + + CURLINFO_HTTPAUTH_USED と + CURLINFO_PROXYAUTH_USED は、 + 直近の転送で HTTP および、プロキシ経由の認証メソッドを示す情報を、 + ビットマスクで返します。利用可能な値は、 + CURLAUTH_* + を参照ください。 + + + + CURLOPT_INFILESIZE を安全に置き換えられる、 + CURLOPT_INFILESIZE_LARGE が追加されました。 + 特定のシステムでは、たとえ 64bit システムであっても、 + CURLOPT_INFILESIZE は 32bit の符号付き整数(2.0 Gib) + しか受け入れない場合があります。 + CURLOPT_INFILESIZE_LARGE は、 + システムが扱える整数の最大値を受け入れます。 + + + + curl_setopt 関数に指定する、 + CURLOPT_FOLLOWLOCATION オプション向けに、 + CURLFOLLOW_OBEYCODE, + CURLFOLLOW_FIRSTONLY, + CURLFOLLOW_ALL が追加されました。 + + CURLFOLLOW_OBEYCODE は、 + 許可されている場合に、より厳密にリダイレクトを行います。 + + CURLFOLLOW_FIRSTONLY は、 + 最初のリダイレクトのみを行います。そのため、 + その後に後続のリダイレクトがあったとしても、それ以上はリダイレクトしません。 + + CURLFOLLOW_ALL は、 + CURLOPT_FOLLOWLOCATION + を &true; に設定することと同じです。 + + + + curl_getinfo 関数に、 + CURLINFO_CONN_ID + のサポートが追加されました (libcurl >= 8.2.0)。 + この定数を使うと、 + cURL の転送で使ったユニークな接続IDを取得できるようになります。 + このIDは、主に PHP レベルでのアプリケーションにおいて、 + 接続の再利用や接続のプーリング処理が必要な場合に役立ちます。 + curl_getinfoが配列を返す場合、 + この値は "conn_id" キーとして利用できます。 + + + + curl_getinfo 関数に、 + CURLINFO_QUEUE_TIME_T + のサポートが追加されました (libcurl >= 8.6.0)。 + この定数を使うと、 + リクエストが送信される前に libcurl + の接続キューで待機した時間(マイクロ秒単位)を取得できます。 + curl_getinfooption + パラメーターに CURLINFO_QUEUE_TIME_T + を渡すことで、値が取得できます。 + + + + TLS で使う署名アルゴリズムを指定する定数として、 + CURLOPT_SSL_SIGNATURE_ALGORITHMS + が追加されました。 + + + + + + DOM + + + Dom\Element::$outerHTML が追加されました。 + + + + Dom\ParentNode の実装に、 + $children プロパティが追加されました。 + + + + + + EXIF + + + OffsetTime* Exif タグが追加されました。 + + + + HEIF/HEIC のサポートが追加されました。 + + + + + + Filter + + + フィルタ関数に渡すと、 + 検証に失敗した際に強制的に例外を発生させる + FILTER_THROW_ON_FAILURE フラグが追加されました。 + この新しいフラグは、 + FILTER_NULL_ON_FAILURE と組み合わせることはできません。 + 組み合わせようとすると、 + ValueError がスローされます。 + + + + + + + Intl + + + 様々な通貨関連の数値フォーマット向けに、 + クラス定数 NumberFormatter::CURRENCY_ISO, + NumberFormatter::CURRENCY_PLURAL, + NumberFormatter::CASH_CURRENCY, + NumberFormatter::CURRENCY_STANDARD が追加されました。 + + + + 指定されたロケールで likely tag を処理するために、 + Locale::addLikelySubtags と + Locale::minimizeSubtags が追加されました。 + + + + IntlListFormatter クラスが追加されました。 + これは、指定されたロケールで項目のリストをフォーマット、順序付け、 + 句読点を付ける操作を行うためのものです。 + クラス定数として、IntlListFormatter::TYPE_AND, + IntlListFormatter::TYPE_OR, + IntlListFormatter::TYPE_UNITS 演算子と、 + IntlListFormatter::WIDTH_WIDE, + IntlListFormatter::WIDTH_SHORT, + IntlListFormatter::WIDTH_NARROW があります。 + このクラスは ICU 67 以降でサポートされます。 + + + + + + PDO_Sqlite + + + クラス定数 + Pdo\Sqlite::ATTR_BUSY_STATEMENT が追加されました。 + + + + クラス定数 + Pdo\Sqlite::ATTR_EXPLAIN_STATEMENT, + Pdo\Sqlite::EXPLAIN_MODE_PREPARED, + Pdo\Sqlite::EXPLAIN_MODE_EXPLAIN, + Pdo\Sqlite::EXPLAIN_MODE_EXPLAIN_QUERY_PLAN が追加されました。 + + + + 接続する際の属性として、 + Pdo\Sqlite::ATTR_TRANSACTION_MODE を追加しました。 + これに指定可能な値は、 + Pdo\Sqlite::TRANSACTION_MODE_DEFERRED, + Pdo\Sqlite::TRANSACTION_MODE_IMMEDIATE, + Pdo\Sqlite::TRANSACTION_MODE_EXCLUSIVE があります。 + これを使うと、beginTransaction() + 呼び出し時に使用するトランザクションモードを構成できます。 + + + + + + Session + + + session_set_cookie_params, + session_get_cookie_params, + session_start 関数は、 + "partitioned" というキー経由で、 + パーティショニングされた Cookie をサポートしました。 + + + + + + + SOAP + + + SoapClient::__getTypes が、 + 列挙型の case をダンプするようになりました。 + + + + Soap 1.2 の Reason テキスト向けに、xml:lang 属性のサポートが追加されました。 + + + + 上記のサポートによって、 + SoapFault::__construct と + SoapServer::fault のシグネチャに、 + オプションの $lang パラメータが追加されました。 + これによって、.NET SOAP クライアントとの互換性問題が解決します。 + + + + + + Standard + + + mail は、sendmail の実際のエラーを返すようになり、 + sendmail プロセスが予期せず終了したかどうかを検出するようになりました。 + 予期せず終了した場合、警告が発生し、この関数は &false; を返します。 + これより前のバージョンでは、こうしたエラーは黙って無視されていました。 + この変更は、sendmail を使ったメール送信にのみ影響します。 + + + + getimagesize が、HEIF/HEIC 画像をサポートしました。 + + + + libxml 拡張モジュールがロードされている場合に、 + getimagesize は SVG 画像もサポートするようになりました。 + 同様に、image_type_to_extension と + image_type_to_mime_type も、 + IMAGETYPE_SVG を処理するようになりました。 + + + + getimagesize が返す配列に、 + 2つエントリが追加されました: "width_unit" と + "height_unit" です。 + これらは、寸法がどの単位で表現されているかを示します。 + これらの単位は px がデフォルトですが、 + 必ずしも同じ単位であるとは限りません + (一例を挙げると、片方が cm で、もう片方が px である場合があります) + + + + setcookiesetrawcookie + 関数が、"partitioned" キーをサポートしました。 + + + + + + URI + + + RFC 3986 と WHATWG URL に従い、 + URI と URL を処理するのに使える拡張モジュールが追加されました。 + これは、常に有効になっています。 + + + + + + + XSL + + + XSLTProcessor::getParameter, + XSLTProcessor::setParameter, + XSLTProcessor::removeParameter の + $namespace 引数は、 + 空でなくても動作するようになりました。 + 動作するのは、$name 引数が Clark 記法でなく、かつ + QName 形式でもない場合です。 + これらの場合は、名前空間が href または prefix からそれぞれ取得されるためです。 + + + + + + Zlib + + + flock が、zlib ストリームをサポートしました。 + これより前のバージョンでは、あらゆるロック操作を行う際に常に失敗していました。 + + + + + + diff --git a/appendices/migration85/new-functions.xml b/appendices/migration85/new-functions.xml new file mode 100644 index 0000000000..62d51b0d1f --- /dev/null +++ b/appendices/migration85/new-functions.xml @@ -0,0 +1,152 @@ + + + + + 新しく追加された関数 + + + PHP コア + + + + + get_error_handler + get_exception_handler + + Closure::getCurrent + + + + + + Curl + + + + curl_multi_get_handles + curl_share_init_persistent + + + + + DOM + + + Dom\Element::getElementsByClassName + + + Dom\Element::insertAdjacentHTML + + + + + + Enchant + + enchant_dict_remove_from_session + enchant_dict_remove + + + + + Intl + + + Locale::isRightToLeft + + locale_is_right_to_left + + grapheme_levenshtein + + + + + Opcache + + + opcache_is_script_cached_in_file_cache + + + + + PDO_SQLITE + + + Pdo\Sqlite::setAuthorizer + + + + + + PGSQL + + + pg_close_stmt + pg_service + + + + + Reflection + + + + ReflectionConstant::getFileName + + + ReflectionConstant::getExtension + + + ReflectionConstant::getExtensionName + + + + ReflectionConstant::getAttributes + + + ReflectionProperty::getMangledName + + + + + + Sqlite + + + + Sqlite3Stmt::busy + + + + + + Standard + + + + array_first + array_last + + + + + diff --git a/appendices/migration85/other-changes.xml b/appendices/migration85/other-changes.xml new file mode 100644 index 0000000000..88fb752a4d --- /dev/null +++ b/appendices/migration85/other-changes.xml @@ -0,0 +1,675 @@ + + + + + その他の変更 + + + PHP コア + + + Core + + + macOS における高精度なタイマー(hrtime) + は、mach_absolute_time() + ではなく、推奨されている + clock_gettime_nsec_np(CLOCK_UPTIME_RAW) + API を使うようになりました。 + + + + + + CGI/CLI + + + や、 + オプションは、 + 機能していないため削除されました。 + を代わりに使ってください。 + + + + + + PDO_ODBC + + + 大きなカラムのフェッチ動作が変更されました。 + 256 バイトのブロックをフェッチする代わりに、 + PDO_ODBC はより大きなブロックサイズをフェッチしようとするようになります。 + 現状このブロックサイズは、 + ページサイズから文字列オーバーヘッドを差し引いたサイズです。 + SQLGetData で SQL_NO_TOTAL を返すドライバも同様に、 + 適切に処理されるようになります。 + この変更で、互換性とパフォーマンスが改善するはずです。 + + + + + + + + + SAPI モジュールへの変更 + + + CLI + + + cli_set_process_title + に長過ぎるタイトルを設定しようとした場合、 + 黙ってタイトルを切り詰めるのではなく、 + 失敗するようになりました。 + + + + ビルトインのデフォルト値から変更されている INI + 設定を出力するオプションとして、 + オプションが追加されました。 + + + + + + FPM + + + httpd ProxyPass を経由した FPM は、 + オプションでスクリプトの完全なパスをデコードします。 + この新しい振る舞いは、 + 追加された fastcgi.script_path_encoded INI ディレクティブで抑止できます。 + + + + FPM のログの長さの上限は、 + log_limit の値を尊重するようになりました。 + + + + + + + + 変更された関数 + + + Intl + + + grapheme_extract は、 + 無効な開始バイトをスキップする際に $next + の値を適切に割り当てるようになりました。 + これより前のバージョンでは、grapheme 境界の終端ではなく、 + 先頭を指すケースがありました。 + + + + transliterator_get_error_code, + transliterator_get_error_message, + TransLiterator::getErrorCode, + TransLiterator::getErrorMessage の戻り値の + union 型から &false; を削除しました。 + &false; を返すことは実際には起こり得なかったからです。 + + + + 以下の関数は、$locale 引数をサポートしました: + grapheme_strpos, + grapheme_stripos, + grapheme_strrpos, + grapheme_strripos, + grapheme_substr, + grapheme_strstr, + grapheme_stristr + + + + + + + LDAP + + + ldap_get_option は、 + ldap_set_option と同様に、 + &null; の接続を受け付けるようになりました。 + これは、グローバルオプションを取得できるようにするためです。 + + + + + + libxml + + + libxml_set_external_entity_loader は、 + 戻り値の型を正式に true としました。 + + + + + + OpenSSL + + + openssl_public_encrypt と + openssl_private_decrypt は、 + OAEP パディング向けのハッシュダイジェストアルゴリズムを指定するために、 + 新しく $digest_algo + パラメータを設定できるようになりました。 + + + + openssl_sign と + openssl_verify は、 + よりセキュアな RSA PSS パディングを使えるようにするために、 + 新しく $padding + パラメータを設定できるようになりました。 + + + + openssl_cms_encrypt$cipher_algo + パラメーターに、暗号名を示す文字列を指定できるようになりました。 + これによって、認証付きのエンベロープデータ向けに、 + AES GCM 暗号アルゴリズムを含むより多くのアルゴリズムを使えるようになります。 + + + + + + PCNTL + + + pcntl_exec は、 + 戻り値の型を正式に false としました。 + + + + pcntl_waitid は、 + 子プロセスに関する様々なプラットフォーム固有のメトリクスを収集するため、 + 追加で resource_usage 引数を受け取るようになりました。 + + + + + + PDO_PGSQL + + + Pdo\Pgsql::copyFromArray は、 + iterable の入力をサポートするようになりました。 + + + + Pdo\Pgsql::setAttribute と + Pdo\Pgsql::prepare は、 + lazy フェッチモードに入ることを示すために、 + PDO::ATTR_PREFETCH に 0 を設定できるようになりました。 + このモードの場合、Statement は並列に実行できません。 + + + + + + PostgreSQL + + + pg_copy_from は、 + Iterable の入力をサポートするようになりました。 + + + + pg_connect は、 + connection_string 引数に null + バイトが含まれているかをチェックするようになりました。 + + + + pg_close_stmt は、 + statement_name 引数に null + バイトが含まれているかをチェックするようになりました。 + + + + + + POSIX + + + posix_ttyname は、 + ファイルディスクリプタが無効な場合に、 + last_error に EBADF を設定するようになりました。 + + + + posix_isatty は、 + ファイルディスクリプタが無効な場合に、 + E_WARNING を発生させるようになりました。 + + + + posix_fpathconf は、 + ファイルディスクリプタが無効かどうかをチェックし、 + 無効な場合に last_error に EBADF を設定しつつ、 + E_WARNING を発生させるようになりました。 + + + + + + Reflection + + + ReflectionClass::__toString + の列挙型の出力について、 + クラスが列挙型であることをより明確に示すように変更されました。 + また、列挙型の case は通常のクラス定数ではなく、 + 列挙型の case であることを示すようになりました。 + + + + ReflectionProperty::__toString の、 + フックを持つプロパティの出力は、プロパティがどのフックを持つか、 + それらのフックが final かどうか、 + およびプロパティが仮想かどうかを示すように変更されました。 + これは、クラスがフックされたプロパティを含む場合の + ReflectionClass::__toStringの出力にも影響します。 + + + + + + Sockets + + + socket_create/socket_bind は、 + AF_PACKET + ファミリのソケットを作成できるようになりました。 + + + + socket_getsockname は、 + AF_PACKET ソケットを指定すると、 + インターフェイスのインデックスとその文字列表現を取得します。 + + + + + + Zlib + + + gzfile, gzopen, + readgzfile 関数の + $use_include_path 引数の型が、 + int から bool に変更されました。 + + + + gzfile, + gzopen, + readgzfile 関数は、 + デフォルトのストリームコンテキストを尊重するようになりました。 + + + + + + + + 拡張モジュールへのその他の変更 + + + cURL + + + curl_setopt に指定する + CURLOPT_FOLLOWLOCATION オプションの値が、 + boolean ではなく数値として扱われるようになりました。 + これは CURLFOLLOW_OBEYCODE と + CURLFOLLOW_FIRSTONLY を処理するためです。 + + + + + + Fileinfo + + + file の magic データベースが、5.45 から 5.46 に更新されました。 + + + + finfo_close の戻り値の型が、 + bool ではなく、true に変更されました。 + + + + + + Intl + + + Intl の内部エラー処理機構がモダンになり、 + どの呼び出しがどのエラーを引き起こしたかを、 + より正確に示せるようになりました。 + さらに、一部の ext/date の例外は、 + IntlException でラップされるようになっています。 + + + + + + Lexbor + + + lexbor 拡張モジュールが追加されました。 + これは常に有効になっています。 + 他の拡張モジュールで再利用できるようにするため、 + ext/dom + から分離された laxbor ライブラリが含まれています。 + この新しい拡張機能は、ユーザーランドに直接公開されません。 + + + + + + Opcache + + + Opcache 拡張モジュール は、 + 常に PHP バイナリに組み込まれ、ロードされるようになりました。 + opcache.enable と + opcache.enable_cli + の設定はまだ有効です。 + + + + + + PCRE + + + pcre2lib が、10.44 から 10.46 に更新されました。 + + + + + + PDO_Sqlite + + + サポートされる最低リリースバージョンが、 + 3.7.7 から 3.7.17 に変更されました。 + + + + + + Readline + + + readline_add_history, + readline_clear_history, + readline_callback_handler_install + の戻り値の型が、 + bool から true に変更されました。 + + + + + + Reflection + + + ReflectionConstant クラスは、 + final ではなくなりました。 + + + + + + + + INI ファイルの扱いの変更 + + + PHP コア + + + 致命的なエラーにバックトレースを含めるかどうかを制御するために、 + fatal_error_backtraces INI ディレクティブが追加されました。 + + + + + 起動時にのみ有効な、max_memory_limit INI ディレクティブが追加されました。 + これは、起動時または実行時に設定可能な memory_limit の最大値を制御するためのものです。 + この値を超えると、-1 を設定しない限り警告が発生します。 + 代わりに、memory_limit の値が、現在の max_memory_limit の値に設定されます。 + + + + + + + Opcache + + + opcache.file_cache + で指定されたディレクトリがが読み取り専用だった場合をサポートするために、 + opcache.file_cache_read_only が追加されました。 + これは、読み取り専用ファイルシステム(例:読み取り専用 Docker コンテナ)向けです。 + opcache.validate_timestamps=0, + opcache.enable_file_override=1, + opcache.file_cache_consistency_checks=0 + の組み合わせで使うことを推奨します。 + + + + + 異なるビルドのPHP、 + 異なるファイルパス、 + 異なる設定(ロードされる拡張機能を含む)で生成されたキャッシュは、 + 無視される可能性があります。 + + + + + opcache.jit_hot_loop + のデフォルト値は、ループ反復回数の倍数にならないように、 + 61 (素数) に設定されました。 + このパラメータには、素数の値を設定することを推奨します。 + + + + OPcache SHM が既にセットアップされている状態で、 + opcache.memory_consumption + の値を変更した場合に、正しく失敗を報告するようになりました。 + これより前のバージョンでは、黙って何もせず、 + PHPInfo で誤解を招く値を表示していました。 + + + + + + OpenSSL + + + OpenSSL のライブラリコンテキストタイプを選択できるようにするため、 + openssl.libctx INI ディレクティブを追加しました。 + スレッドごとにカスタムの libctx を使うか、 + グローバルな、単一の libctx (デフォルト)を使えます。 + + + + + + + + パフォーマンスに関わる変更 + + + PHP コア + + + match(true) パターン向けに、 + boolean 値との同一性の比較に関する OPcode が削除されました。 + + + + === [] と + !== [] による比較について、 + OPcode の特殊化処理が追加されました。 + + + + 例外オブジェクトを生成する速度が向上しました。 + + + + SSE2 を使用していたコードは、 + ARM NEON による SIMD 命令も使うように調整されました。 + + + + x86_64 または aarch64 アーキテクチャで Clang>=19 + を使用してコンパイルする場合、 + デフォルトで有効となる TAILCALL VM を導入しました。 + TAILCALL VM は、 + GCC コンパイル時に使用される HYBRID VM と同等の速度を実現します。 + これにより、Clang>=19 でビルドされた PHP バイナリは、 + GCC でビルドされたバイナリと同等の速度を発揮します。 + 他のコンパイラで使用される CALL VM のパフォーマンスも大幅に改善されました。 + + + + + + Intl + + + collator で文字列変換を行う際、余計な文字列コピーをしなくなりました。 + + + + + + MBString + + + SSE2 を使用していたコードは、 + ARM NEON による SIMD 命令も使うように調整されました。 + + + + + + Opcache + + + Glibc 以外のビルドで JIT コンパイルされたコード中で、 + TLS 変数のフェッチ処理のパフォーマンスが向上しました。 + + + + + + Reflection + + + 以下のメソッドのパフォーマンスが向上しました: + + ReflectionProperty::getValue + ReflectionProperty::getRawValue + ReflectionProperty::isInitialized + ReflectionProperty::isInitialized + ReflectionProperty::setValue + ReflectionProperty::setRawValue + + + + + + + SPL + + + SplFixedArray の、 + 多次元のアクセス処理と、メソッドのパフォーマンスが向上しました。 + + + + + + Standard + + + コールバックを指定した場合の、配列関数 + (array_find, array_filter, + array_map, usort, ...) + のパフォーマンスが向上しました。 + + + + urlencode と + rawurlencode のパフォーマンスが向上しました。 + + + + 一時的な文字列の生成と再パースを回避することで、 + unpack の、 + 名前を付けない反復処理のパフォーマンスが向上しました。 + + + + pack のパフォーマンスが向上しました。 + + + + array_chunk のパフォーマンスが少し向上しました。 + + + + + + XML + + + XMLReader の、 + プロパティアクセスのパフォーマンスが向上しました。 + + + + XMLWriter のパフォーマンスが向上し、 + メモリ使用量が削減されました。 + + + + + + + + diff --git a/appendices/migration85/windows-support.xml b/appendices/migration85/windows-support.xml new file mode 100644 index 0000000000..8b33dcb0be --- /dev/null +++ b/appendices/migration85/windows-support.xml @@ -0,0 +1,105 @@ + + + + + Windows のサポート + + + Core + + + PHP_VERSION, + PHP_MINOR_VERSION, + PHP_RELEASE_VERSION の設定値は、常に数値になりました。 + これより前のバージョンでは、buildconf のビルド設定用の文字列でした。 + + + + phpize ビルドは、 + (in-tree ビルドで既に動作していたかのように) + build dir 内のソースツリーを反映するようになりました。 + 拡張モジュールによっては、 + (特に Makefile.frag.w32 を使う場合) + 調整が必要かもしれません。 + + + + MSVC ビルド向けに、 + + がサポートされるようになりました。 + これによって、ASan とデバッグのアサーションが有効になります。 + このオプションは MSVC 16.10 と Windows 10 以降でサポートされます。 + + + + clang ビルド向けの + + 設定オプションは、サポートされなくなりました。 + CFLAGS 経由で警告を抑制してください。 + + + + + + COM + + + この拡張モジュールは、 + デフォルトで共有ライブラリとしてビルドされるようになりました。 + これより前のバージョンでは、 + デフォルトで static な拡張モジュールとしてビルドされていましたが、 + 公式の Windows 用バイナリは、共有ライブラリとしてビルドされていました。 + + + + + + FFI + + + FFI::cdef と + FFI::load を使う際に、 + ライブラリを指定する必要はなくなりました。 + しかし実運用環境では、この便利機能を使うべきではありません。 + + + + + + Streams + + + パイプストリームが $read + 配列のみに存在し、かつ $write と + $except 配列が空の場合、 + stream_select は、 + POSIX システムと似た振る舞いをするようになりました。 + つまり、少なくとも1つのパイプが読み取り可能になった場合、 + またはタイムアウトした後にのみ、関数から戻ります。 + これより前のバージョンでは、この関数は直ちに返り、 + すべてのストリームが読み取り可能であると報告していました。 + + + + + + diff --git a/appendices/reserved.constants.core.xml b/appendices/reserved.constants.core.xml index 1d2a86af3b..aa661b1b72 100644 --- a/appendices/reserved.constants.core.xml +++ b/appendices/reserved.constants.core.xml @@ -1,699 +1,707 @@ - + - - コアの定義済みの定数 - - これらの定数は PHP のコアで定義済みの定数です。 - PHP, Zend engine, SAPI モジュールも含みます。 - - - - - PHP_VERSION - (string) - - - - 現在の PHP のバージョンを - "major.minor.release[extra]" - 形式の文字列で表したもの。 - - - - - - PHP_MAJOR_VERSION - (integer) - - - - 現在の PHP のメジャーバージョンを整数値で表したもの - (たとえば、バージョンが "5.2.7-extra" の場合は int(5) となる)。 - PHP 5.2.7 以降で利用可能。 - - - - - - PHP_MINOR_VERSION - (integer) - - - - 現在の PHP のマイナーバージョンを整数値で表したもの - (たとえば、バージョンが "5.2.7-extra" の場合は int(2) となる)。 - PHP 5.2.7 以降で利用可能。 - - - - - - PHP_RELEASE_VERSION - (integer) - - - - 現在の PHP のリリースバージョンを整数値で表したもの - (たとえば、バージョンが "5.2.7-extra" の場合は int(7) となる)。 - PHP 5.2.7 以降で利用可能。 - - - - - - PHP_VERSION_ID - (integer) - - - - 現在の PHP のバージョンを整数値で表したもの。バージョンを比較する際に有用 - (たとえば、バージョンが "5.2.7-extra" の場合は int(50207) となる)。 - PHP 5.2.7 以降で利用可能。 - - - - - - PHP_EXTRA_VERSION - (string) - - - - 現在の PHP の追加バージョンを文字列で表したもの - (たとえば、バージョンが "5.2.7-extra" の場合は '-extra' となる)。 - ディストリビューションのベンダーが、パッケージのバージョンを示すために使うことが多い。 - PHP 5.2.7 以降で利用可能。 - - - - - - PHP_ZTS - (integer) - - - - PHP 5.2.7 以降で利用可能。 - - - - - - PHP_DEBUG - (integer) - - - - PHP 5.2.7 以降で利用可能。 - - - - - - PHP_MAXPATHLEN - (integer) - - - - この PHP がサポートする、ファイル名の長さ (パスを含む) の最大値。 - PHP 5.3.0 以降で利用可能。 - - - - - - PHP_OS - (string) - - - - PHP がビルドされた OS。 - - - - - - PHP_OS_FAMILY - (string) - - - - PHP がビルドされたオペレーティングシステムファミリー。 - 以下のうちひとつです。 - 'Windows', 'BSD', - 'Darwin', 'Solaris', - 'Linux' or 'Unknown'. - PHP 7.2.0 以降で利用可能。 - - - - - - PHP_SAPI - (string) - - - - この PHP のサーバー API。 - php_sapi_name も参照ください。 - - - - - - PHP_EOL - (string) - - - - このプラットフォームの行末文字。 - PHP 5.0.2 以降で利用可能。 - - - - - - PHP_INT_MAX - (integer) - - - - この PHP がサポートする整数型の最大値。32bit のシステムでは 通常は int(2147483647)。 - 64bit のシステムでは、int(9223372036854775807)。 - PHP 5.0.5 以降で利用可能。 - - - - - - PHP_INT_MIN - (integer) - - - - この PHP がサポートする整数型の最小値。通常は、32ビットシステムなら int(-2147483648)、 - 64ビットシステムなら int(-9223372036854775808)。 - PHP 7.0.0 以降で利用可能。 - 通常は PHP_INT_MIN === ~PHP_INT_MAX となる。 - - - - - - PHP_INT_SIZE - (integer) - - - - この PHP ビルドにおける整数型のサイズ (バイト数)。 - PHP 5.0.5 以降で利用可能。 - - - - - - PHP_FLOAT_DIG - (integer) - - - - float への丸めやその逆操作の際に精度を維持できる数値の桁数。 - PHP 7.2.0 以降で利用可能。 - - - - - - PHP_FLOAT_EPSILON - (float) - - - - x + 1.0 != 1.0 となる正の数 x のうちで、浮動小数点数値として表せる最小の数。 - PHP 7.2.0 以降で利用可能。 - - - - - - PHP_FLOAT_MIN - (float) - - - - の浮動小数点数値として表せる最小の数。 - 浮動小数点数値として表せる 負の 最小値が必要なら、- PHP_FLOAT_MAX を使って下さい。 - PHP 7.2.0 以降で利用可能。 - - - - - - PHP_FLOAT_MAX - (float) - - - - 浮動小数点数値として表せる最大の数。 - PHP 7.2.0 以降で利用可能。 - - - - - - DEFAULT_INCLUDE_PATH - (string) - - - + + コアの定義済みの定数 + + これらの定数は PHP のコアで定義済みの定数です。 + PHP, Zend engine, SAPI モジュールも含みます。 + + + + + PHP_VERSION + (string) + + + + 現在の PHP のバージョンを + "major.minor.release[extra]" + 形式の文字列で表したもの。 + + + + + + PHP_MAJOR_VERSION + (int) + + + + 現在の PHP のメジャーバージョンを整数値で表したもの + (たとえば、バージョンが "5.2.7-extra" の場合は int(5) となる)。 + + + + + + PHP_MINOR_VERSION + (int) + + + + 現在の PHP のマイナーバージョンを整数値で表したもの + (たとえば、バージョンが "5.2.7-extra" の場合は int(2) となる)。 + + + + + + PHP_RELEASE_VERSION + (int) + + + + 現在の PHP のリリースバージョンを整数値で表したもの + (たとえば、バージョンが "5.2.7-extra" の場合は int(7) となる)。 + + + + + + PHP_VERSION_ID + (int) + + + + 現在の PHP のバージョンを整数値で表したもの。バージョンを比較する際に有用 + (たとえば、バージョンが "5.2.7-extra" の場合は int(50207) となる)。 + + + + + + PHP_EXTRA_VERSION + (string) + + + + 現在の PHP の追加バージョンを文字列で表したもの + (たとえば、バージョンが "5.2.7-extra" の場合は '-extra' となる)。 + ディストリビューションのベンダーが、パッケージのバージョンを示すために使うことが多い。 + + + + + + ZEND_THREAD_SAFE + (bool) + + + + PHP の現状のビルドが、スレッドセーフ版であるかどうかを示す。 + + + + + + ZEND_DEBUG_BUILD + (bool) + + + + PHP の現状のビルドが、デバッグビルド版であるかどうかを示す。 + + + + + + PHP_ZTS + (bool) + ZEND_THREAD_SAFE &Alias; + + + + PHP の現状のビルドが、スレッドセーフ版であるかどうかを示す。 + + + + + + PHP_DEBUG + (bool) + ZEND_DEBUG_BUILD &Alias; + + + + PHP の現状のビルドが、デバッグビルド版であるかどうかを示す。 + + + + + + DEBUG_BACKTRACE_PROVIDE_OBJECT + (int) + + + + "object" のインデックスを収集します。 + + + + + + DEBUG_BACKTRACE_IGNORE_ARGS + (int) + + + + スタックトレース中の関数の情報に、引数の情報を含めません。 + + + + + + PHP_MAXPATHLEN + (int) + + + + この PHP がサポートする、ファイル名の長さ (パスを含む) の最大値。 + PHP 5.3.0 以降で利用可能。 + + + + + + PHP_OS + (string) + + + + PHP がビルドされた OS。 + + + + + + PHP_OS_FAMILY + (string) + + + + PHP がビルドされたオペレーティングシステムファミリー。 + 以下のうちひとつです。 + 'Windows', 'BSD', + 'Darwin', 'Solaris', + 'Linux' or 'Unknown'. + PHP 7.2.0 以降で利用可能。 + + + + + + PHP_SAPI + (string) + + + + この PHP のサーバー API。 + php_sapi_name も参照ください。 + + + + + + PHP_EOL + (string) + + + + このプラットフォームの行末文字。 + + + + + + PHP_INT_MAX + (int) + + + + この PHP がサポートする整数型の最大値。32bit のシステムでは 通常は int(2147483647)。 + 64bit のシステムでは、int(9223372036854775807)。 + + + + + + PHP_INT_MIN + (int) + + + + この PHP がサポートする整数型の最小値。通常は、32ビットシステムなら int(-2147483648)、 + 64ビットシステムなら int(-9223372036854775808)。 + 通常は PHP_INT_MIN === ~PHP_INT_MAX となる。 + + + + + + PHP_INT_SIZE + (int) + + + + この PHP ビルドにおける整数型のサイズ (バイト数)。 + + + + + + PHP_FLOAT_DIG + (int) + + + + float への丸めやその逆操作の際に精度を維持できる数値の桁数。 + PHP 7.2.0 以降で利用可能。 + + + + + + PHP_FLOAT_EPSILON + (float) + + + + x + 1.0 != 1.0 となる正の数 x のうちで、浮動小数点数値として表せる最小の数。 + PHP 7.2.0 以降で利用可能。 + + + + + + PHP_FLOAT_MIN + (float) + + + + の浮動小数点数値として表せる最小の数。 + 浮動小数点数値として表せる 負の 最小値が必要なら、- PHP_FLOAT_MAX を使って下さい。 + PHP 7.2.0 以降で利用可能。 + + + + + + PHP_FLOAT_MAX + (float) + + + + 浮動小数点数値として表せる最大の数。 + PHP 7.2.0 以降で利用可能。 + + + + + + DEFAULT_INCLUDE_PATH + (string) + + + - - - - - - PEAR_INSTALL_DIR - (string) - - - + + + + + + PEAR_INSTALL_DIR + (string) + + + - - - - - - PEAR_EXTENSION_DIR - (string) - - - + + + + + + PEAR_EXTENSION_DIR + (string) + + + - - - - - - PHP_EXTENSION_DIR - (string) - - - + + + + + + PHP_EXTENSION_DIR + (string) + + + + 動的にロード可能な拡張モジュールを探すデフォルトのディレクトリ。 + (但し、extension_dir で上書きされた場合を除きます) + デフォルトは PHP_PREFIX です。 + (Windows では、 PHP_PREFIX . "\\ext" です。) + + + + + + PHP_PREFIX + (string) + + + + configure 時に設定された の値。 + Windows の場合、configure 時に設定された + の値になります。 + + + + + + PHP_BINDIR + (string) + + + + configure 時に設定された の値。 + Windows の場合、configure 時に設定された + の値になります。 + + + + + + PHP_SBINDIR + (string) + + + + configure 時に設定された の値。 + Windows の場合、configure 時に設定された + の値になります。 + PHP 8.4.0 以降で利用可能です。 + + + + + + PHP_BINARY + (string) + + + + スクリプト実行時の PHP バイナリのパス。 + + + + + + PHP_MANDIR + (string) + + + + man ページのインストール先。 + + + + + + PHP_LIBDIR + (string) + + + - - - - - - PHP_PREFIX - (string) - - - - configure 時に設定された "--prefix" の値。 - - - - - - PHP_BINDIR - (string) - - - - バイナリのインストール先。 - - - - - - PHP_BINARY - (string) - - - - スクリプト実行時の PHP バイナリのパス。 - PHP 5.4 以降で利用可能。 - - - - - - PHP_MANDIR - (string) - - - - man ページのインストール先。 - PHP 5.3.7 以降で利用可能。 - - - - - - PHP_LIBDIR - (string) - - - + + + + + + PHP_DATADIR + (string) + + + - - - - - - PHP_DATADIR - (string) - - - + + + + + + PHP_SYSCONFDIR + (string) + + + - - - - - - PHP_SYSCONFDIR - (string) - - - + + + + + + PHP_LOCALSTATEDIR + (string) + + + - - - - - - PHP_LOCALSTATEDIR - (string) - - - + + + + + + PHP_CONFIG_FILE_PATH + (string) + + + - - - - - - PHP_CONFIG_FILE_PATH - (string) - - - + + + + + + PHP_CONFIG_FILE_SCAN_DIR + (string) + + + - - - - - - PHP_CONFIG_FILE_SCAN_DIR - (string) - - - - - - - - - - PHP_SHLIB_SUFFIX - (string) - - - - このプラットフォームの共有ライブラリの拡張子。"so" (多くの Unix 系 OS) - や "dll" (Windows) など。 - - - - - - PHP_FD_SETSIZE - (string) - - - - select システムコール用のファイルディスクリプタの最大数。 - PHP 7.1.0 以降で使用可能です。 - - - - - - E_ERROR - (integer) - - - - エラーを報告する定数 - - - - - - E_WARNING - (integer) - - - - エラーを報告する定数 - - - - - - E_PARSE - (integer) - - - - エラーを報告する定数 - - - - - - E_NOTICE - (integer) - - - - エラーを報告する定数 - - - - - - E_CORE_ERROR - (integer) - - - - エラーを報告する定数 - - - - - - E_CORE_WARNING - (integer) - - - - エラーを報告する定数 - - - - - - E_COMPILE_ERROR - (integer) - - - - エラーを報告する定数 - - - - - - E_COMPILE_WARNING - (integer) - - - - エラーを報告する定数 - - - - - - E_USER_ERROR - (integer) - - - - エラーを報告する定数 - - - - - - E_USER_WARNING - (integer) - - - - エラーを報告する定数 - - - - - - E_USER_NOTICE - (integer) - - - - - - - - - - E_RECOVERABLE_ERROR - (integer) - - - - エラーを報告する定数 - PHP 5.2.0 以降で利用可能 - - - - - - E_DEPRECATED - (integer) - - - - エラーを報告する定数 - PHP 5.3.0 以降で利用可能 - - - - - - E_USER_DEPRECATED - (integer) - - - - エラーを報告する定数 - PHP 5.3.0 以降で利用可能 - - - - - - E_ALL - (integer) - - - - エラーを報告する定数 - - - - - - E_STRICT - (integer) - - - - エラーを報告する定数 - - - - - - __COMPILER_HALT_OFFSET__ - (integer) - - - - PHP 5.1.0 以降で利用可能 - - - - - - &true; - (boolean) - - - - Booleans も参照ください。 - - - - - - &false; - (boolean) - - - - Booleans も参照ください。 - - - - - - &null; - (null) - - - - Null も参照ください。 - - - - - - PHP_WINDOWS_EVENT_CTRL_C - (integer) - - - - Windows の CTRL+C イベント。 - PHP 7.4.0 から利用可能です。(Windows のみ) - - - - - - PHP_WINDOWS_EVENT_CTRL_BREAK - (integer) - - - - Windows の CTRL+BREAK イベント。 - PHP 7.4.0 から利用可能です。(Windows のみ) - - - - - - マジック定数 も参照ください。 - - + + + + + + PHP_SHLIB_SUFFIX + (string) + + + + このプラットフォームの共有ライブラリの拡張子。"so" (多くの Unix 系 OS) + や "dll" (Windows) など。 + + + + + + PHP_FD_SETSIZE + (int) + + + + select システムコール用のファイルディスクリプタの最大数。 + PHP 7.1.0 以降で使用可能です。 + + + + + + E_ERROR + (int) + + + E_WARNING + (int) + + + E_PARSE + (int) + + + E_NOTICE + (int) + + + E_CORE_ERROR + (int) + + + E_CORE_WARNING + (int) + + + E_COMPILE_ERROR + (int) + + + E_COMPILE_WARNING + (int) + + + E_USER_ERROR + (int) + + + E_USER_WARNING + (int) + + + E_USER_NOTICE + (int) + + + E_RECOVERABLE_ERROR + (int) + + + E_DEPRECATED + (int) + + + E_USER_DEPRECATED + (int) + + + E_ALL + (int) + + + E_STRICT + (int) + + + + エラーを報告する定数 + + + + + + __COMPILER_HALT_OFFSET__ + (int) + + + + + + + + + &true; + (bool) + + + + Booleans も参照ください。 + + + + + + &false; + (bool) + + + + Booleans も参照ください。 + + + + + + &null; + (null) + + + + Null も参照ください。 + + + + + + PHP_WINDOWS_EVENT_CTRL_C + (int) + + + + Windows の + + CTRL + C + + イベント。 + PHP 7.4.0 から利用可能です。(Windows のみ) + + + + + + PHP_WINDOWS_EVENT_CTRL_BREAK + (int) + + + + Windows の + + CTRL + BREAK + + イベント。 + PHP 7.4.0 から利用可能です。(Windows のみ) + + + + + + PHP_CLI_PROCESS_TITLE + (bool) + + + + プロセスのタイトルを設定/取得できるかどうかを示します。 + CLI SAPI でのみ利用可能です。 + + + + + + STDERR + (resource) + + + + stderr に対して、 + 既にオープンされているストリーム。 + CLI SAPI でのみ利用可能です。 + + + + + + STDIN + (resource) + + + + stdin に対して、 + 既にオープンされているストリーム。 + CLI SAPI でのみ利用可能です。 + + + + + + STDOUT + (resource) + + + + stdout に対して、 + 既にオープンされているストリーム。 + CLI SAPI でのみ利用可能です。 + + + + + + マジック定数 も参照ください。 + + - + @@ -18,16 +18,12 @@ これらのキーワードは、PHP では特別な意味があります。これらのいくつかは 関数やメソッドのようなものを表し、いくつかは定数のようなものを表す、 といったようになっていますが、実際にはそうではありません。実際には、 - これらは言語を構成するものです。以下のキーワードはいずれも定数、クラス名、 + これらは言語を構成するものです。 + 以下のキーワードはいずれも定数、クラス名、 関数名として使用することはできません。 - これらを変数名として使用することは一般的には可能ですが、 - 混乱を生じる可能性があります。 - - - PHP 7.0.0 以降は、これらのキーワードを - プロパティや定数の名前として使えるようになりました。 - また、クラスやインターフェイスそしてトレイトのメソッド名としても使えるようになりました。 - しかし、class だけは例外で、これを定数名として使うことはできません。 + しかし、クラスやインターフェイス、そしてトレイトの内部では、 + プロパティ、定数、メソッドの名前として使うことができます。 + 但し、class だけは例外で、これを定数名として使うことはできません。 @@ -56,7 +52,7 @@ break - callable (PHP 5.4 以降) + callable case @@ -64,11 +60,11 @@ catch - - class + + clone @@ -141,7 +137,7 @@ final - finally (PHP 5.5 以降) + finally fn (PHP 7.4 以降) @@ -150,7 +146,7 @@ for - &foreach; + foreach @@ -161,7 +157,7 @@ global - goto (PHP 5.3 以降) + goto if @@ -181,7 +177,7 @@ instanceof - insteadof (PHP 5.4 以降) + insteadof interface @@ -195,16 +191,19 @@ list - namespace (PHP 5.3 以降) + &match; (PHP 8.0 以降) - new + namespace - or + new + + or + print @@ -217,11 +216,14 @@ public + + + + readonly (PHP 8.1.0 以降) * + require - - require_once @@ -231,6 +233,8 @@ static + + switch @@ -238,24 +242,22 @@ throw - trait (PHP 5.4 以降) + trait - - try unset + + - use + use var - - while @@ -263,19 +265,25 @@ xor - yield (PHP 5.5 以降) - - - yield from (PHP 7.0 以降) - - + yield + + + yield from + + + +
+ + + * readonly は、関数名として使用できます。 + コンパイル時の定数 @@ -283,30 +291,33 @@ - __CLASS__ + __CLASS__ - __DIR__ (PHP 5.3 以降) - - - __FILE__ + __DIR__ - __FUNCTION__ + __FILE__ - __LINE__ + __FUNCTION__ - __METHOD__ + __LINE__ - __NAMESPACE__ (PHP 5.3 以降) + __METHOD__ + + + __PROPERTY__ - __TRAIT__ (PHP 5.4 以降) + __NAMESPACE__ + + + __TRAIT__ @@ -342,7 +353,7 @@ Directory - dir が作る。 + dir 関数が作成します。 @@ -350,7 +361,8 @@ stdClass - オブジェクトへの型変換 で作られる。 + オブジェクトへの型変換 + や、いろいろな標準の関数によって作られる、汎用的な空のクラスです。 @@ -358,21 +370,10 @@ __PHP_Incomplete_Class - unserialize が作る可能性がある。 + unserialize 関数が作成する可能性があります。 - - - - - PHP 5 以降で定義済みのクラス - - - 以下に PHP 5.0.0 で導入されたその他の定義済みのクラスを示します。 - - - Exception @@ -384,7 +385,7 @@ ErrorException - PHP 5.1.0 以降で利用可能。 + @@ -395,47 +396,28 @@ - - - - - クロージャ - - - Closure - が PHP 5.3.0 で追加されました。このクラスは定義済みの final クラスで、無名関数 - を表すために用いられています。 - - - 詳細な情報は、Closure クラスのページ - を参照ください。 - - - - - Generator - - - 定義済みの final クラス Generator が、 - PHP 5.5.0 で追加されました。ジェネレータ - を表すために用いられています。 - - - 詳細な情報は、クラスのページ - を参照ください。 - - - - - PHP 7 以降で定義済みとなったインターフェイスとクラス - - - PHP 7.0.0 で新たに追加された定義済みインターフェイスとクラスは以下のとおりです。 - - - + + Closure + + + 定義済みの final クラス Closure + は、 + 無名クラス を表現するために使います。 + + + + + Generator + + + 定義済みの final クラス Generator + は、 + ジェネレータ を表現するために使います。 + + + ArithmeticError @@ -529,42 +511,48 @@ その他の予約語の一覧 これらの名前は、クラスやインターフェイスそしてトレイトの名前として使えません。 - 名前空間の中であっても使うことはできません。 + PHP 8.0 より前のバージョンでは、名前空間の中であっても使えませんでした。
予約語 - + - int (PHP 7 以降) + parent - float (PHP 7 以降) + self - bool (PHP 7 以降) + int - string (PHP 7 以降) + float - true (PHP 7 以降) + bool - false (PHP 7 以降) + string - null (PHP 7 以降) + true - void (PHP 7.1 以降) + false + + null + + + void (PHP 7.1 以降) + iterable (PHP 7.1 以降) @@ -572,29 +560,37 @@ object (PHP 7.2 以降) + + + mixed (PHP 8.0 以降) + + + never (PHP 8.1 以降) + +
これらの名前は、弱い予約語として確保されています。 - クラスやインターフェイスそしてトレイトの名前として使えますし、名前空間の中でも同様に使えますが、 + クラスやインターフェイスそしてトレイトの名前として使えますが、 使わないことを強く推奨します。将来のバージョンの PHP で使われる可能性があるためです。 弱い予約語 - + - resource (PHP 7 以降) + enum - mixed (PHP 7 以降) + resource - numeric (PHP 7 以降) + numeric diff --git a/appendices/resources.xml b/appendices/resources.xml index 475eb8540b..418b805d9f 100644 --- a/appendices/resources.xml +++ b/appendices/resources.xml @@ -1,6 +1,6 @@ - + リソース型の一覧 @@ -14,7 +14,7 @@ - + @@ -267,7 +267,39 @@ curl_close - Curl セッション + cURL ハンドル + + + curl_multi + + curl_multi_init + + + curl_multi_errno, + curl_multi_exec, + curl_multi_info_read, + curl_multi_remove_handle, + curl_multi_select, + curl_multi_setopt + + + curl_multi_close + + cURL マルチハンドル + + + curl_share + + curl_share_init + + + curl_share_errno, + curl_share_setopt + + + curl_share_close + + cURL 共有ハンドル dba @@ -332,145 +364,44 @@ Dbaseデータベースへのリンク - dbx_link_object + enchant_broker - dbx_connect + enchant_broker_init - dbx_query + enchant_broker_describe, + enchant_broker_dict_exists, + enchant_broker_get_dict_path, + enchant_broker_get_error, + enchant_broker_list_dicts, + enchant_broker_set_dict_path, + enchant_broker_set_ordering - dbx_close + enchant_broker_free - dbx 接続 + Enchant ブローカー (PHP 8.0.0 より前) - dbx_result_object + enchant_dict - dbx_query + enchant_broker_request_dict + enchant_broker_request_pwl_dict + enchant_dict_add_to_personal, + enchant_dict_add_to_session, + enchant_dict_check, + enchant_dict_describe, + enchant_dict_get_error, + enchant_dict_is_in_session, + enchant_dict_store_replacement, + enchant_dict_suggest - None + enchant_broker_free_dict - dbx 結果 - - - xpath context - - - - - - - xpath object - - - - - - - fbsql link - - fbsql_change_user, - fbsql_connect - - - fbsql_autocommit, - fbsql_blob_size, - fbsql_clob_size, - fbsql_commit, - fbsql_change_user, - fbsql_create_blob, - fbsql_create_db, - fbsql_create_clob, - fbsql_data_seek, - fbsql_database_password, - fbsql_database, - fbsql_db_query, - fbsql_db_status, - fbsql_drop_db, - fbsql_errno, - fbsql_error, - fbsql_get_autostart_info, - fbsql_hostname, - fbsql_insert_id, - fbsql_list_dbs, - fbsql_password, - fbsql_read_blob, - fbsql_read_clob, - fbsql_rollback, - fbsql_select_db, - fbsql_set_password, - fbsql_set_transaction, - fbsql_start_db, - fbsql_stop_db, - fbsql_username - - - fbsql_close - - fbsql データベースへのリンク - - - fbsql plink - - fbsql_change_user, - fbsql_pconnect - - - fbsql_autocommit, - fbsql_change_user, - fbsql_create_db, - fbsql_data_seek, - fbsql_db_query, - fbsql_drop_db, - fbsql_select_db, - fbsql_errno, - fbsql_error, - fbsql_insert_id, - fbsql_list_dbs - - - None - - fbsql 持続的データベースへのリンク - - - fbsql 結果 - - fbsql_db_query, - fbsql_list_dbs, - fbsql_query, - fbsql_list_fields, - fbsql_list_tables, - fbsql_tablename - - - fbsql_affected_rows, - fbsql_fetch_array, - fbsql_fetch_assoc, - fbsql_fetch_field, - fbsql_fetch_lengths, - fbsql_fetch_object, - fbsql_fetch_row, - fbsql_field_flags, - fbsql_field_name, - fbsql_field_len, - fbsql_field_seek, - fbsql_field_table, - fbsql_field_type, - fbsql_next_result, - fbsql_num_fields, - fbsql_num_rows, - fbsql_result, - fbsql_num_rows - - - fbsql_free_result - - fbsql 結果 + Enchant 辞書 (PHP 8.0.0 より前) fdf @@ -539,7 +470,7 @@ ftp_close - FTP ストリーム + FTP 接続 (PHP 8.1.0 より前) gd @@ -587,7 +518,6 @@ imageinterlace, imageline, imagepolygon, - imagepstext, imagerectangle, imagerotate, imagesetpixel, @@ -630,7 +560,7 @@ imagedestroy - GD Image + GD Image (PHP 8.0.0 より前) gd font @@ -645,80 +575,7 @@ None - GD用のフォント - - - gd PS encoding - - - - - - - gd PS font - - imagepsloadfont - - - imagepstext, - imagepsslantfont, - imagepsextendfont, - imagepsencodefont, - imagepsbbox - - - imagepsfreefont - - GD用PSフォント - - - GMP integer - - gmp_init - - - gmp_intval, - gmp_strval, - gmp_add, - gmp_sub, - gmp_mul, - gmp_div_q, - gmp_div_r, - gmp_div_qr, - gmp_div, - gmp_mod, - gmp_divexact, - gmp_cmp, - gmp_neg, - gmp_abs, - gmp_sign, - gmp_fact, - gmp_sqrt, - gmp_sqrtrm, - gmp_perfect_square, - gmp_pow, - gmp_powm, - gmp_prob_prime, - gmp_gcd, - gmp_gcdext, - gmp_invert, - gmp_legendre, - gmp_jacobi, - gmp_random, - gmp_and, - gmp_or, - gmp_xor, - gmp_setbit, - gmp_clrbit, - gmp_scan0, - gmp_scan1, - gmp_popcount, - gmp_hamdist - - - None - - GMP Number + GD用のフォント (PHP 8.1.0 より前) imap @@ -767,67 +624,25 @@ imap_close - Link to IMAP, POP3 server - - - ingres - - ingres_connect - - - ingres_query, - ingres_num_rows, - ingres_num_fields, - ingres_field_name, - ingres_field_type, - ingres_field_nullable, - ingres_field_length, - ingres_field_precision, - ingres_field_scale, - ingres_fetch_array, - ingres_fetch_row, - ingres_fetch_object, - ingres_rollback, - ingres_commit, - ingres_autocommit - - - ingres_close - - Link to ingresII base - - - ingres persistent - - ingres_pconnect - - - ingres_query, - ingres_num_rows, - ingres_num_fields, - ingres_field_name, - ingres_field_type, - ingres_field_nullable, - ingres_field_length, - ingres_field_precision, - ingres_field_scale, - ingres_fetch_array, - ingres_fetch_row, - ingres_fetch_object, - ingres_rollback, - ingres_commit, - ingres_autocommit - - - None - - Persistent link to ingresII base + IMAP, POP3 server への接続リンク(PHP 8.1.0 より前) interbase blob - - - + + ibase_blob_create, + ibase_blob_import, + ibase_blob_open + + + ibase_blob_add, + ibase_blob_cancel, + ibase_blob_echo, + ibase_blob_get, + ibase_blob_info + + + ibase_blob_close + @@ -923,10 +738,10 @@ ldap_close - ldap 接続 + ldap connection (PHP 8.1.0 より前) - ldap 結果 + ldap result ldap_read @@ -959,245 +774,34 @@ ldap_free_result - ldap 検索結果 + ldap search result (PHP 8.1.0 より前) - ldap result entry - - - - - - - SWFAction - - - - - - - SWFBitmap - - - - - - - SWFButton - - - - - - - SWFDisplayItem - - - - - - - SWFFill - - - - - - - SWFFont - - - - - - - SWFGradient - - - - - - - SWFMorph - - - - - - - SWFMovie - - - - - - - SWFShape - - - - - - - SWFSprite - + ldap result entry (PHP 8.1.0 より前) - - - SWFText - - - - - - - SWFTextField - - - - - - mnogosearch agent - - - - - - - mnogosearch 結果 - - - - - - - msql link - - msql_connect - - - msql, - msql_create_db, - msql_createdb, - msql_drop_db, - msql_drop_db, - msql_select_db, - msql_select_db - - - msql_close - - mSQL データベースへのリンク - - - msql link persistent - - msql_pconnect - - - msql, - msql_create_db, - msql_createdb, - msql_drop_db, - msql_drop_db, - msql_select_db, - msql_select_db - - - None - - mSQLデータベースへの持続的なリンク - - - msql query - - msql_db_query, - msql_list_dbs, - msql_list_fields, - msql_list_tables, - msql_query - - - msql, - msql_affected_rows, - msql_data_seek, - msql_dbname, - msql_fetch_array, - msql_fetch_field, - msql_fetch_object, - msql_fetch_row, - msql_field_seek, - msql_field_table, - msql_field_flags, - msql_field_len, - msql_field_name, - msql_field_type, - msql_num_fields, - msql_num_rows, - msql_numfields, - msql_numrows, - msql_result - - - msql_free_result, - msql_free_result - - mSQL 結果 - - - mssql link - - mssql_connect - - - mssql_query, - mssql_select_db - - - mssql_close - - Microsft SQL Server データベースへのリンク - - - mssql link persistent - - mssql_pconnect - - - mssql_query, - mssql_select_db - - - None - - Microsft SQL Server データベースへの持続的なリンク - mssql 結果 + mailparse_mail_structure - mssql_query + mailparse_msg_create + mailparse_msg_parse_file - mssql_data_seek, - mssql_fetch_array, - mssql_fetch_field, - mssql_fetch_object, - mssql_fetch_row, - mssql_field_length, - mssql_field_name, - mssql_field_seek, - mssql_field_type, - mssql_num_fields, - mssql_num_rows, - mssql_result + mailparse_msg_extract_part_file + mailparse_msg_extract_part + mailparse_msg_extract_whole_part_file + mailparse_msg_get_part_data + mailparse_msg_get_part + mailparse_msg_get_structure + mailparse_msg_parse - mssql_free_result + mailparse_msg_free - Microsft SQL Server 結果 + mysql link @@ -1206,7 +810,6 @@ mysql_affected_rows, - mysql_change_user, mysql_create_db, mysql_data_seek, mysql_db_name, @@ -1238,7 +841,6 @@ mysql_affected_rows, - mysql_change_user, mysql_create_db, mysql_data_seek, mysql_db_name, @@ -1510,18 +1112,18 @@ ODBC 結果 - birdstep link + birdstep link(PHP 7.3.0より前) - birdstep 結果 + birdstep 結果(PHP 7.3.0より前) OpenSSL key @@ -1554,134 +1156,6 @@ Public Key - - pdf document - - pdf_new - - - pdf_add_bookmark, - pdf_add_launchlink, - pdf_add_locallink, - pdf_add_note, - pdf_add_pdflink, - pdf_add_weblink, - pdf_arc, - pdf_attach_file, - pdf_begin_page, - pdf_circle, - pdf_clip, - pdf_closepath, - pdf_closepath_fill_stroke, - pdf_closepath_stroke, - pdf_concat, - pdf_continue_text, - pdf_curveto, - pdf_end_page, - pdf_endpath, - pdf_fill, - pdf_fill_stroke, - pdf_findfont, - pdf_get_buffer, - pdf_get_image_height, - pdf_get_image_width, - pdf_get_parameter, - pdf_get_value, - pdf_lineto, - pdf_moveto, - pdf_open_ccitt, - pdf_open_file, - pdf_open_image_file, - pdf_place_image, - pdf_rect, - pdf_restore, - pdf_rotate, - pdf_save, - pdf_scale, - pdf_setdash, - pdf_setflat, - pdf_setfont, - pdf_setgray, - pdf_setgray_fill, - pdf_setgray_stroke, - pdf_setlinecap, - pdf_setlinejoin, - pdf_setlinewidth, - pdf_setmiterlimit, - pdf_setpolydash, - pdf_setrgbcolor, - pdf_setrgbcolor_fill, - pdf_setrgbcolor_stroke, - pdf_set_border_color, - pdf_set_border_dash, - pdf_set_border_style, - pdf_set_char_spacing, - pdf_set_duration, - pdf_set_font, - pdf_set_horiz_scaling, - pdf_set_parameter, - pdf_set_text_pos, - pdf_set_text_rendering, - pdf_set_value, - pdf_set_word_spacing, - pdf_show, - pdf_show_boxed, - pdf_show_xy, - pdf_skew, - pdf_stringwidth, - pdf_stroke, - pdf_translate, - pdf_add_thumbnail, - pdf_arcn, - pdf_begin_pattern, - pdf_begin_template, - pdf_end_pattern, - pdf_end_template, - pdf_initgraphics, - pdf_makespotcolor, - pdf_set_info, - pdf_setcolor, - pdf_setmatrix, - pdf_open_memory_image - - - pdf_close, - pdf_delete - - PDF ドキュメント - - - pdf image - - pdf_open_image, - pdf_open_image_file, - pdf_open_memory_image - - - pdf_get_image_height, - pdf_get_image_width, - pdf_open_CCITT, - pdf_place_image - - - pdf_close_image - - PDF ファイル内の画像 - - - pdf object - - - - - - - pdf outline - - - - - pgsql large object @@ -1700,7 +1174,7 @@ pg_lo_close - PostgreSQL ラージオブジェクト + PostgreSQL ラージオブジェクト (PHP 8.1.0 より前) pgsql link @@ -1735,7 +1209,7 @@ pg_untrace, pg_set_client_encoding, pg_client_encoding, - pg_metadata, + pg_meta_data, pg_convert, pg_insert, pg_select, @@ -1745,7 +1219,7 @@ pg_close - PostgreSQL データベースへのリンク + PostgreSQL データベースへのリンク (PHP 8.1.0 より前) pgsql link persistent @@ -1780,7 +1254,7 @@ pg_untrace, pg_set_client_encoding, pg_client_encoding, - pg_metadata, + pg_meta_data, pg_convert, pg_insert, pg_select, @@ -1820,7 +1294,7 @@ pg_free_result - PostgreSQL 結果 + PostgreSQL 結果 (PHP 8.1.0 より前) pgsql string @@ -1830,33 +1304,19 @@ - printer - - - - - - - printer brush - - - - - - - printer font - - - - - - - printer pen - - - - - + process + proc_open + + proc_get_status + proc_terminate + + + proc_close + + + Process + + pspell @@ -1882,7 +1342,7 @@ None - pspell 辞書 + pspell 辞書 (PHP 8.1.0 より前) pspell config @@ -1895,7 +1355,7 @@ None - pspell 設定 + pspell 設定 (PHP 8.1.0 より前) shmop @@ -1911,7 +1371,7 @@ shmop_close - 共有メモリブロックハンドル (PHP 7.0.0 以降) + 共有メモリブロックハンドル (PHP 8.0.0 より前) ソケット @@ -1955,31 +1415,6 @@ Socket (ソケット拡張モジュール) - - ソケットのファイルディスクリプタ - - socket - - - accept_connect, - bind, - connect, - listen, - read, - write - - - close - - Socket - - - sockets i/o vector - - - - - stream @@ -2069,105 +1504,69 @@ ソケットハンドル - sybase-db link - - sybase_connect - - - sybase_query, - sybase_select_db - - - sybase_close - - DB ライブラリを使用したSybaseデータベースへのリンク - - - sybase-db link persistent + SSH2 セッション - sybase_pconnect + ssh2_connect - sybase_query, - sybase_select_db - None + ssh2_disconnect - DB ライブラリを使用したSybaseデータベースへの持続的なリンク + - sybase-db 結果 + SSH2 リスナー - sybase_query, - sybase_unbuffered_query + ssh2_forward_listen - sybase_data_seek, - sybase_fetch_array, - sybase_fetch_field, - sybase_fetch_object, - sybase_fetch_row, - sybase_field_seek, - sybase_num_fields, - sybase_num_rows, - sybase_result - sybase_free_result + - DB ライブラリを使用した Sybase 結果 + - sybase-ct link + SSH2 SFTP - sybase_connect + ssh2_sftp - sybase_affected_rows, - sybase_query, - sybase_select_db - sybase_close + - CT ライブラリを使用したSybaseデータベースへのリンク + - sybase-ct link persistent + SSH2 公開鍵サブシステム - sybase_pconnect + ssh2_publickey_init - sybase_affected_rows, - sybase_query, - sybase_select_db - None + - CT ライブラリを使用したSybaseデータベースへの持続的なリンク + - sybase-ct 結果 + sysvmsg queue - sybase_query + msg_get_queue - sybase_data_seek, - sybase_fetch_array, - sybase_fetch_field, - sybase_fetch_object, - sybase_fetch_row, - sybase_field_seek, - sybase_num_fields, - sybase_num_rows, - sybase_result + msg_queue_exists, + msg_receive, + msg_send, + msg_set_queue, + msg_stat_queue - sybase_free_result + msg_remove_queue - CT ライブラリを使用した Sybase 結果 + System V メッセージキュー(PHP 8.0.0 より前) sysvsem @@ -2180,7 +1579,7 @@ sem_release - System V セマフォ + System V セマフォ(PHP 8.0.0 より前) sysvshm @@ -2196,7 +1595,7 @@ shm_detach - System V 共有メモリ + System V 共有メモリ(PHP 8.0.0 より前) wddx @@ -2239,7 +1638,7 @@ xml_parser_free - XML パーサ + XML パーサ(PHP 8.0.0 より前) zlib @@ -2273,9 +1672,9 @@ deflate_add - なし + なし - インクリメンタル圧縮コンテキスト + インクリメンタル圧縮コンテキスト(PHP 8.0.0 より前) zlib.inflate @@ -2284,11 +1683,14 @@ inflate_add + inflate_add, + inflate_get_read_len, + inflate_get_status - なし + なし - インクリメンタル伸長コンテキスト + インクリメンタル伸長コンテキスト(PHP 8.0.0 より前) diff --git a/appendices/tokens.xml b/appendices/tokens.xml index 415288601f..a1415c43e5 100644 --- a/appendices/tokens.xml +++ b/appendices/tokens.xml @@ -1,37 +1,45 @@ - + パーサトークンの一覧 - PHP 言語の種々の部分は、内部的に T_SR のように表されています。PHP は、 - パーサエラーが発生した際に、これらの ID を - "Parse error: unexpected T_SR, expecting ',' - or ';' in script.php on line 10." のように出力します。 + PHP 言語の種々の部分は、内部的に トークン で表現されています。 + 不正なトークンのシーケンスが含まれるコードスニペットの場合、 + Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10." のようなエラーが発生します。 + この場合、トークン == が内部的に T_IS_EQUAL として表現されています。 + - ここでは、T_SR が何を意味するのかを知っていることを仮定しています。 - この対応が分からない方のために、以下にこれらの ID、PHP 構文、マニュアルでの - 適当な参照先の一覧を示します。 + 以下の表に、全てのトークンの一覧を示します。 + これらは、全て PHP の定数としても利用できます。 定数 T_* の使いかた - 以下のトークンは、すべて PHP の定数としても定義されています。その値は、 + T_* (T_ で始まる) 定数は、 PHP のベースとなるパーサ基盤に基づいて自動生成されます。 つまり、トークンの具体的な値は、PHP のバージョンが違えば変わる可能性があるということです。 - たとえば T_FILE の値は PHP 5.3 では - 365 ですが、PHP 5.4 ではこの値は - T_TRAIT を表し、T_FILE - の値は 369 となります。 - つまり、コードの中では決して T_* の実際の値を使ってはいけないということです。 - それは PHP X.Y.Z でたまたまその値になっているだけであり、 - その値に依存してしまえば PHP のバージョンが変わったときに互換性がなくなってしまいます。 - その代わりに、コードでは独自の値 (たとえば 10000 のような大きな値) - を使い、PHP のバージョンや T_* の値が変わってもうまく動作するようにしておきましょう。 + つまり、バージョン間で互換性を保つためには、 + コードの中では決して T_* の実際の値を使ってはいけないということです。 + + + + 異なる PHP のバージョン間で互換性を保った形で T_* 定数を使うには、 + PHP の複数のバージョン間で T_* の値が動作するように、 + (10000 のような大きな数を使うなどの) + 適切な戦略を用いて、未定義の定数をユーザが定義するようにします。 + + +]]> + @@ -46,114 +54,123 @@ - + T_ABSTRACT abstract - + + T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG + & + (PHP 8.1.0 以降で利用可能) + + + T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG + & + (PHP 8.1.0 以降で利用可能) + + T_AND_EQUAL &= 代入演算子 - + T_ARRAY array() array, array 構文 - + T_ARRAY_CAST (array) 型キャスト - + T_AS as &foreach; - + + T_ATTRIBUTE + #[ + アトリビュート (PHP 8.0.0 以降で利用可能) + + T_BAD_CHARACTER - ASCII 32以下の全ての文字。\t (0x09), \n (0x0a) , \r (0x0d) は除く - (PHP 7.4.0 以降で利用可能です。PHP 7.0.0 より前のバージョンでも使えましたが、使われていませんでした) + ASCII 32以下の全ての文字。\t (0x09), \n (0x0a) , \r (0x0d) は除く + (PHP 7.4.0 以降で利用可能) - + T_BOOLEAN_AND && 論理演算子 - + T_BOOLEAN_OR || 論理演算子 - + T_BOOL_CAST (bool) or (boolean) 型キャスト - + T_BREAK - break; + break break - + T_CALLABLE callable - callable (PHP 5.4.0 から利用可能) + callable - + T_CASE case switch - + T_CATCH catch - - T_CHARACTER - - 今では使用されていません (PHP 7.0.0 で削除されました) - - + T_CLASS class クラスとオブジェクト - + T_CLASS_C __CLASS__ - マジック定数 + マジック定数 - + T_CLONE clone クラスとオブジェクト - + T_CLOSE_TAG ?> or %> HTML からの脱出 - + T_COALESCE ?? 比較演算子 - (PHP 7.0.0 以降使用可能) - + T_COALESCE_EQUAL ??= @@ -161,210 +178,216 @@ (PHP 7.4.0 以降で利用可能) - + T_COMMENT // or #, and /* */ コメント - + T_CONCAT_EQUAL .= 代入演算子 - + T_CONST const クラス定数 - + T_CONSTANT_ENCAPSED_STRING "foo" or 'bar' 文字列構文 - + T_CONTINUE continue continue - + T_CURLY_OPEN {$ - - 複雑な構文 + + 高度な文字列補間 + - + T_DEC -- 可算/減算演算子 - + T_DECLARE declare declare - + T_DEFAULT default switch - + T_DIR __DIR__ - マジック定数 - (PHP 5.3.0 以降で使用可能) + マジック定数 - + T_DIV_EQUAL /= 代入演算子 - + T_DNUMBER - 0.12, etc + 0.12, etc. 浮動小数点数 - + T_DO do do..while - + T_DOC_COMMENT /** */ PHPDoc 形式のコメント - + T_DOLLAR_OPEN_CURLY_BRACES ${ - complex - variable parsed syntax + + 単純な + 変数の文字列補間 + - + T_DOUBLE_ARROW => array 構文 - + T_DOUBLE_CAST (real), (double) or (float) 型キャスト - + T_DOUBLE_COLON :: - 下の T_PAAMAYIM_NEKUDOTAYIM を参照ください。 + T_PAAMAYIM_NEKUDOTAYIM を参照ください - + T_ECHO echo echo - + T_ELLIPSIS ... - 関数の引数 - (PHP 5.6.0 以降で使用可能) + 関数の引数 - + T_ELSE else else - + T_ELSEIF elseif elseif - + T_EMPTY empty empty - + T_ENCAPSED_AND_WHITESPACE " $a" 文字列のパース - + T_ENDDECLARE enddeclare declare, 別の構文 - + T_ENDFOR endfor for, 別の構文 - + T_ENDFOREACH endforeach &foreach;, 別の構文 - + T_ENDIF endif if, 別の構文 - + T_ENDSWITCH endswitch switch, 別の構文 - + T_ENDWHILE endwhile while, 別の構文 - + + T_ENUM + enum + Enumerations (PHP 8.1.0 以降で利用可能) + + T_END_HEREDOC - heredoc - 構文 + ヒアドキュメント構文 + - + T_EVAL eval() eval - + T_EXIT exit or die exit, die - + T_EXTENDS extends extends, クラスとオブジェクト - + T_FILE __FILE__ - 定数 + マジック定数 - + T_FINAL final - + T_FINALLY finally - (PHP 5.5.0 以降で使用可能) + - + T_FN fn @@ -372,460 +395,524 @@ (PHP 7.4.0 以降で利用可能) - + T_FOR for for - + T_FOREACH foreach &foreach; - + T_FUNCTION function 関数 - + T_FUNC_C __FUNCTION__ - 定数 + マジック定数 - + T_GLOBAL global 変数のスコープ - + T_GOTO goto - goto (PHP 5.3.0 以降で使用可能) + goto - + T_HALT_COMPILER __halt_compiler() - (PHP 5.1.0 以降で使用可能) + - + T_IF if if - + T_IMPLEMENTS implements - + T_INC ++ 加算/減算演算子 + linkend="language.operators.increment">可算/減算演算子 - + T_INCLUDE - include() + include include - + T_INCLUDE_ONCE - include_once() + include_once include_once - + T_INLINE_HTML PHP の外部のテキスト - + T_INSTANCEOF instanceof 型演算子 - + T_INSTEADOF insteadof - (PHP 5.4.0 以降で使用可能) + - + T_INTERFACE interface - + T_INT_CAST (int) or (integer) 型キャスト - + T_ISSET isset() isset - + T_IS_EQUAL == 比較演算子 - + T_IS_GREATER_OR_EQUAL >= 比較演算子 - + T_IS_IDENTICAL === 比較演算子 - + T_IS_NOT_EQUAL != or <> 比較演算子 - + T_IS_NOT_IDENTICAL !== 比較演算子 - + T_IS_SMALLER_OR_EQUAL <= 比較演算子 - + T_LINE __LINE__ - 定数 + マジック定数 - + T_LIST list() list - + T_LNUMBER - 123, 012, 0x1ac, etc + 123, 012, 0x1ac, etc. 整数 - + T_LOGICAL_AND and 論理演算子 - + T_LOGICAL_OR or 論理演算子 - + T_LOGICAL_XOR xor 論理演算子 - + + T_MATCH + match + + &match; (PHP 8.0.0 以降で利用可能) + + + T_METHOD_C __METHOD__ - マジック定数 + マジック定数 - + T_MINUS_EQUAL -= 代入演算子 - + T_MOD_EQUAL %= 代入演算子 - + T_MUL_EQUAL *= 代入演算子 - + T_NAMESPACE namespace 名前空間 - (PHP 5.3.0 以降で使用可能) - + + T_NAME_FULLY_QUALIFIED + \App\Namespace + + 名前空間 (PHP 8.0.0 以降で利用可能) + + + + T_NAME_QUALIFIED + App\Namespace + + 名前空間 (PHP 8.0.0 以降で利用可能) + + + + T_NAME_RELATIVE + namespace\Namespace + + 名前空間 (PHP 8.0.0 以降で利用可能) + + + T_NEW new クラスとオブジェクト - + T_NS_C __NAMESPACE__ 名前空間 - (PHP 5.3.0 以降で使用可能) - + T_NS_SEPARATOR \ 名前空間 - (PHP 5.3.0 以降で使用可能) - + T_NUM_STRING "$a[0]" - - 文字列内の配列の添字 + 文字列内の配列の添字 + - + T_OBJECT_CAST (object) 型キャスト - + T_OBJECT_OPERATOR -> クラスとオブジェクト - + + T_NULLSAFE_OBJECT_OPERATOR + ?-> + クラスとオブジェクト + + T_OPEN_TAG <?php, <? or <% - HTML - からのエスケープ + HTML からのエスケープ + - + T_OPEN_TAG_WITH_ECHO <?= or <%= - HTML - からのエスケープ + escaping + from HTML - + T_OR_EQUAL |= 代入演算子 - + T_PAAMAYIM_NEKUDOTAYIM :: - ::。 - T_DOUBLE_COLON としても定義されています。 + スコープ定義演算子。T_DOUBLE_COLONとしても定義されています。 + - + T_PLUS_EQUAL += 代入演算子 - + T_POW ** - 代数演算子 - (PHP 5.6.0 以降で使用可能) + 算術演算子 - + T_POW_EQUAL **= - 代数演算子 - (PHP 5.6.0 以降で使用可能) + 代入演算子 - + T_PRINT - print() + print print - + T_PRIVATE private クラスとオブジェクト - + + T_PRIVATE_SET + private(set) + + プロパティフック (PHP 8.4.0 以降で利用可能) + + + + T_PROPERTY_C + __PROPERTY__ + + マジック定数 + + + T_PROTECTED protected クラスとオブジェクト - (PHP 5.0.0 以降で使用可能) - + + T_PROTECTED_SET + protected(set) + + プロパティフック (PHP 8.4.0 以降で利用可能) + + + T_PUBLIC public クラスとオブジェクト - + + T_PUBLIC_SET + public(set) + + プロパティフック (PHP 8.4.0 以降で利用可能) + + + + T_READONLY + readonly + + クラスとオブジェクト (PHP 8.1.0 以降で利用可能) + + + T_REQUIRE - require() + require require - + T_REQUIRE_ONCE - require_once() + require_once require_once - + T_RETURN return 値を返す - + T_SL << ビット演算子 - + T_SL_EQUAL <<= 代入演算子 - + T_SPACESHIP <=> 比較演算子 - (PHP 7.0.0 以降で使用可能) - + T_SR >> ビット演算子 - + T_SR_EQUAL >>= 代入演算子 - + T_START_HEREDOC <<< - heredoc - 構文 + ヒアドキュメント構文 + - + T_STATIC static - 変数スコープ + 変数のスコープ - + T_STRING - parent、true など + parent, self, etc. 識別子。たとえば parentself といったオブジェクト指向のキーワード、そして関数名やクラス名などにマッチします。 + T_CONSTANT_ENCAPSED_STRING も参照ください。 - + T_STRING_CAST (string) 型キャスト - + T_STRING_VARNAME "${a - - 複雑な構文 + + 可変変数 + の文字列補間 + - + T_SWITCH switch switch - + T_THROW throw - + T_TRAIT trait - (PHP 5.4.0 以降で使用可能) + - + T_TRAIT_C __TRAIT__ - __TRAIT__ (PHP 5.4.0 以降で使用可能) + __TRAIT__ - + T_TRY try - + T_UNSET unset() unset - + T_UNSET_CAST (unset) 型キャスト - + T_USE use - 名前空間 - (PHP 5.3.0 以降で使用可能) + 名前空間 - + T_VAR var クラスとオブジェクト - + T_VARIABLE $foo 変数 - + T_WHILE while while, do..while - + T_WHITESPACE \t \r\n - + T_XOR_EQUAL ^= - 代入演算子 + 代入演算子 + - + T_YIELD yield - ジェネレータ (PHP 5.5.0 以降で使用可能) + ジェネレータ - + T_YIELD_FROM yield from - ジェネレータ (PHP 7.0.0 以降で使用可能) - - + ジェネレータ + +
diff --git a/appendices/transports.xml b/appendices/transports.xml index 8eb6ee2e0f..8b5df5212d 100644 --- a/appendices/transports.xml +++ b/appendices/transports.xml @@ -1,6 +1,6 @@ - + サポートされるソケットトランスポートのリスト @@ -11,7 +11,7 @@ ストリームに基づくソケットトランスポートとともに使用できる URL 形式のソケットトランスポートのリストです。 これらの転送は - ソケット拡張には + ソケット拡張モジュールの ソケット関数には 適用されません @@ -23,7 +23,8 @@
Internet ドメイン: TCP、UDP、SSL、および TLS - sslv2:// & sslv3:// PHP 5.0.2 以降 + ssl://, tls://, + sslv2:// & sslv3://. @@ -91,7 +92,7 @@ Unix ドメイン: Unix および UDG unix:// および - udg:// (udg:// は PHP 5 以降) + udg:// diff --git a/bookinfo.xml b/bookinfo.xml index ce6ed808bd..9a7805bdfd 100644 --- a/bookinfo.xml +++ b/bookinfo.xml @@ -1,6 +1,6 @@ - + &frontpage.authors; @@ -13,11 +13,6 @@ - - 1997- - the PHP Documentation Group - - 著作権 @@ -31,15 +26,8 @@ &url.cc.by; で入手可能です。 - 修正の有無に関わらず本文書の全体または一部を再配布または再出版したい場合や、 - 質問がある場合には、 - &email.php.doc.license; - 宛で著作権者まで連絡をしてください。 - このアドレスは、一般にアーカイブが公開されているメーリングリストへマップされていることに - 注意して下さい。 - - - (訳注)本日本語訳の記述内容により生じたいかなる損害についても + (訳注)このドキュメントは、オリジナル(英語)の日本語訳です。 + 本日本語訳の記述内容により生じたいかなる損害についても 著作権所有者および翻訳者は責任を負いません。 diff --git a/build/.textlintrc.json b/build/.textlintrc.json new file mode 100644 index 0000000000..d190502e59 --- /dev/null +++ b/build/.textlintrc.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + "html" + ], + "rules": { + "prh": { + "rulePaths" :["prh.yml"] + } + } +} diff --git a/build/package-lock.json b/build/package-lock.json new file mode 100644 index 0000000000..73eac32b95 --- /dev/null +++ b/build/package-lock.json @@ -0,0 +1,3185 @@ +{ + "name": "build", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "textlint": "^14.4.0", + "textlint-plugin-html": "^1.0.1", + "textlint-rule-prh": "^6.0.0" + } + }, + "node_modules/@azu/format-text": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@azu/format-text/-/format-text-1.0.2.tgz", + "integrity": "sha512-Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@azu/style-format": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@azu/style-format/-/style-format-1.0.1.tgz", + "integrity": "sha512-AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "@azu/format-text": "^1.0.1" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@textlint/ast-node-types": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", + "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/ast-tester": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.4.0.tgz", + "integrity": "sha512-pCKEUDaZVvvj/uZOTTUgU1tTkNsK+ufNs4Xx5BsBAqy+E0aAJJ47c8h2WIoL/MJniK6ZLctsDIwaZ4z9rUvrsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0", + "debug": "^4.3.4" + } + }, + "node_modules/@textlint/ast-traverse": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.4.0.tgz", + "integrity": "sha512-P6UrqKlXd9Lm0kJ1O8vyQU0/btXULiUHhE5nLZMnTNfgZYG3VasQ9BUyDHJn19O4PhUrIzZJusMi1XFcb3Y46Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0" + } + }, + "node_modules/@textlint/config-loader": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.4.0.tgz", + "integrity": "sha512-TCYVhQ+wP/Gs7P5BDAfyRpLJ5tohicTSwQapd/xPjByXFtGx8xlsbLQHTWcodFFpty1O57KRPRsRDhvuTAA2bQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/kernel": "^14.4.0", + "@textlint/module-interop": "^14.4.0", + "@textlint/resolver": "^14.4.0", + "@textlint/types": "^14.4.0", + "@textlint/utils": "^14.4.0", + "debug": "^4.3.4", + "rc-config-loader": "^4.1.3" + } + }, + "node_modules/@textlint/feature-flag": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.4.0.tgz", + "integrity": "sha512-aSphE9jw4QTjiCOe1tbtZ2NZpMRbYoUTi2E62KQ/mcVnwGC+Jk671wNSoUJzR/YNaLo63cQ7OKhHrBEb55t+Iw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/fixer-formatter": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.4.0.tgz", + "integrity": "sha512-DijDPVZgHkHKAEsYVXFZaP0TJGLDtirok/hgi1N1N3MW5ZtQpIHOW8DgKaJcmDZvPQjkTxzBaUp8rzBxHG8MaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/module-interop": "^14.4.0", + "@textlint/resolver": "^14.4.0", + "@textlint/types": "^14.4.0", + "chalk": "^4.1.2", + "debug": "^4.3.4", + "diff": "^5.2.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + } + }, + "node_modules/@textlint/kernel": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.4.0.tgz", + "integrity": "sha512-zH19vQ0ns4n8kPr+csjPnV5yPip6gKs08GvDJBQlX3AEbRQkaSw4H5kBCE+R0D9qDkuqt7xe8Z8Tdm7E7aUvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0", + "@textlint/ast-tester": "^14.4.0", + "@textlint/ast-traverse": "^14.4.0", + "@textlint/feature-flag": "^14.4.0", + "@textlint/source-code-fixer": "^14.4.0", + "@textlint/types": "^14.4.0", + "@textlint/utils": "^14.4.0", + "debug": "^4.3.4", + "fast-equals": "^4.0.3", + "structured-source": "^4.0.0" + } + }, + "node_modules/@textlint/linter-formatter": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.4.0.tgz", + "integrity": "sha512-rnFwSSXDdsQHGVaRoJJYocVSYn4ZEPUFj78JYDZcR+TRYVDzRJEblFhwsiXl/gHD3L5g2RnBcLbxwZIW+xwtIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azu/format-text": "^1.0.2", + "@azu/style-format": "^1.0.1", + "@textlint/module-interop": "^14.4.0", + "@textlint/resolver": "^14.4.0", + "@textlint/types": "^14.4.0", + "chalk": "^4.1.2", + "debug": "^4.3.4", + "js-yaml": "^3.14.1", + "lodash": "^4.17.21", + "pluralize": "^2.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "table": "^6.8.1", + "text-table": "^0.2.0" + } + }, + "node_modules/@textlint/markdown-to-ast": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.4.0.tgz", + "integrity": "sha512-y6UxfRZ00w8XQ1jfKhR0jcQd7qbYaQgo3aERWbJR0Gxxl0T+G+TKBS12pdnUFOTshgSTEgqlvrE+Zt3lTl0e1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0", + "debug": "^4.3.4", + "mdast-util-gfm-autolink-literal": "^0.1.3", + "neotraverse": "^0.6.15", + "remark-footnotes": "^3.0.0", + "remark-frontmatter": "^3.0.0", + "remark-gfm": "^1.0.0", + "remark-parse": "^9.0.0", + "unified": "^9.2.2" + } + }, + "node_modules/@textlint/module-interop": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.4.0.tgz", + "integrity": "sha512-QdtNDJc+XqDIbP9bwt7DryqE+vFbbIB28462VFWtXcHCJJoFTlmCJ1133SXLe14IOT9P04T9LMNhgv4d2v31gg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/resolver": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.4.0.tgz", + "integrity": "sha512-4jNO6Lbyiqtf22205XPpSYG4BNCZrvpmLzO2JUpYMe5C5g0z4l06Yqei3gJWYjdBLlL+fIxDcdW0hyIvvSFpUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/source-code-fixer": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.4.0.tgz", + "integrity": "sha512-S2QBZ3pUQQeH01kgfKa1Tmusz0A2/sm3QkW1Uhag9x5v5OKYC4W3070eliY+p0I88nxmqy72M/j+78sDutUcuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/types": "^14.4.0", + "debug": "^4.3.4" + } + }, + "node_modules/@textlint/text-to-ast": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.4.0.tgz", + "integrity": "sha512-MA3z7cksYpjXRPIFFcbB6CM5UbNFD53GJ823qo74ImU2MRlIrs9dcR9yQ76YxbYZ9OazPzUNGg5AS9tbp3Exbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0" + } + }, + "node_modules/@textlint/textlint-plugin-markdown": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.4.0.tgz", + "integrity": "sha512-J6RoZSC7MOr9WYqyG4s1BZxExiHfS6fMmiQuWGJB133vDDrY+wmiaFm/C6Li59YPdPivddxSDo7v8z2zyayW1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/markdown-to-ast": "^14.4.0" + } + }, + "node_modules/@textlint/textlint-plugin-text": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.4.0.tgz", + "integrity": "sha512-ut3+MhOh9taPUKLaTT4nyil3MLnAbo60BYGWIz6cPrv3YMyvN/eCw4jW4VscvV1WTik19lzmDCBfSpfnmz/PiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/text-to-ast": "^14.4.0" + } + }, + "node_modules/@textlint/types": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.4.0.tgz", + "integrity": "sha512-ZxZkiFxaXfjoaa/gzbGyUWR0mSMLChDaQrYJ0sPToCQ0QXUG3w5sIT2hCGZyBfNRc8/g0eH+KbDejD014oBPBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0" + } + }, + "node_modules/@textlint/utils": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.4.0.tgz", + "integrity": "sha512-/5QSdYa042z0SX+10+UPzHlMT2nWuRBkouf90/P60nycpFmWn0waIbVoARDlekzmaqB4BitbP7NGjjPmEju4bA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/boundary": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz", + "integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ccount": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commandpost": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/commandpost/-/commandpost-1.4.0.tgz", + "integrity": "sha512-aE2Y4MTFJ870NuB/+2z1cXBhSBBzRydVVjzhFC4gtenEhpnj15yu0qptWGJsO9YGrcPZ3ezX8AWb1VA391MKpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", + "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/fault": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "dev": true, + "license": "MIT", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true, + "license": "ISC" + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stdin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", + "integrity": "sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz", + "integrity": "sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0", + "hastscript": "^7.0.0", + "property-information": "^6.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz", + "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz", + "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^3.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", + "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/markdown-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", + "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "repeat-string": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz", + "integrity": "sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^4.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-footnote": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/mdast-util-footnote/-/mdast-util-footnote-0.1.7.tgz", + "integrity": "sha512-QxNdO8qSxqbO2e3m09KwDKfWiLgqyCurdWTQ198NpbZ2hxntdc+VKS4fDJCmNWbAroUdYnSthu+XbZ8ovh8C3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-to-markdown": "^0.6.0", + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", + "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-frontmatter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz", + "integrity": "sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark-extension-frontmatter": "^0.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz", + "integrity": "sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-gfm-autolink-literal": "^0.1.0", + "mdast-util-gfm-strikethrough": "^0.2.0", + "mdast-util-gfm-table": "^0.1.0", + "mdast-util-gfm-task-list-item": "^0.1.0", + "mdast-util-to-markdown": "^0.6.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz", + "integrity": "sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ccount": "^1.0.0", + "mdast-util-find-and-replace": "^1.1.0", + "micromark": "^2.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz", + "integrity": "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-to-markdown": "^0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz", + "integrity": "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "markdown-table": "^2.0.0", + "mdast-util-to-markdown": "~0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz", + "integrity": "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-to-markdown": "~0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", + "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "longest-streak": "^2.0.0", + "mdast-util-to-string": "^2.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", + "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "parse-entities": "^2.0.0" + } + }, + "node_modules/micromark-extension-footnote": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/micromark-extension-footnote/-/micromark-extension-footnote-0.3.2.tgz", + "integrity": "sha512-gr/BeIxbIWQoUm02cIfK7mdMZ/fbroRpLsck4kvFtjbzP4yi+OPVbnukTc/zy0i7spC2xYE/dbX1Sur8BEDJsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-frontmatter": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz", + "integrity": "sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fault": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz", + "integrity": "sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0", + "micromark-extension-gfm-autolink-literal": "~0.5.0", + "micromark-extension-gfm-strikethrough": "~0.6.5", + "micromark-extension-gfm-table": "~0.4.0", + "micromark-extension-gfm-tagfilter": "~0.3.0", + "micromark-extension-gfm-task-list-item": "~0.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz", + "integrity": "sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz", + "integrity": "sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz", + "integrity": "sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz", + "integrity": "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz", + "integrity": "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/neotraverse": { + "version": "0.6.18", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", + "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-to-glob-pattern": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-to-glob-pattern/-/path-to-glob-pattern-2.0.1.tgz", + "integrity": "sha512-tmciSlVyHnX0LC86+zSr+0LURw9rDPw8ilhXcmTpVUOnI6OsKdCzXQs5fTG10Bjz26IBdnKL3XIaP+QvGsk5YQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pluralize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-2.0.0.tgz", + "integrity": "sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prh": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/prh/-/prh-5.4.4.tgz", + "integrity": "sha512-UATF+R/2H8owxwPvF12Knihu9aYGTuZttGHrEEq5NBWz38mREh23+WvCVKX3fhnIZIMV7ye6E1fnqAl+V6WYEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "commandpost": "^1.2.1", + "diff": "^4.0.1", + "js-yaml": "^3.9.1" + }, + "bin": { + "prh": "bin/prh" + } + }, + "node_modules/prh/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/rc-config-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.3.tgz", + "integrity": "sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "js-yaml": "^4.1.0", + "json5": "^2.2.2", + "require-from-string": "^2.0.2" + } + }, + "node_modules/rc-config-loader/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/rc-config-loader/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rehype-parse": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-8.0.5.tgz", + "integrity": "sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^7.0.0", + "parse5": "^6.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse/node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/rehype-parse/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rehype-parse/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rehype-parse/node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/rehype-parse/node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-footnotes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-3.0.0.tgz", + "integrity": "sha512-ZssAvH9FjGYlJ/PBVKdSmfyPc3Cz4rTWgZLI4iE/SX8Nt5l3o3oEjv3wwG5VD7xOjktzdwp5coac+kJV9l4jgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-footnote": "^0.1.0", + "micromark-extension-footnote": "^0.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-frontmatter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz", + "integrity": "sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-frontmatter": "^0.2.0", + "micromark-extension-frontmatter": "^0.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", + "integrity": "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-gfm": "^0.1.0", + "micromark-extension-gfm": "^0.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", + "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/structured-source": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz", + "integrity": "sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boundary": "^2.0.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/table": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/textlint": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-14.4.0.tgz", + "integrity": "sha512-OutNGN573fI48bRdikgz+PAjCN/P4DRK9dLGxkNkqBlWmwbxLpvBxw1qspZEFVVLoNH94ra65NDfCwMvCosvdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0", + "@textlint/ast-traverse": "^14.4.0", + "@textlint/config-loader": "^14.4.0", + "@textlint/feature-flag": "^14.4.0", + "@textlint/fixer-formatter": "^14.4.0", + "@textlint/kernel": "^14.4.0", + "@textlint/linter-formatter": "^14.4.0", + "@textlint/module-interop": "^14.4.0", + "@textlint/resolver": "^14.4.0", + "@textlint/textlint-plugin-markdown": "^14.4.0", + "@textlint/textlint-plugin-text": "^14.4.0", + "@textlint/types": "^14.4.0", + "@textlint/utils": "^14.4.0", + "debug": "^4.3.4", + "file-entry-cache": "^5.0.1", + "get-stdin": "^5.0.1", + "glob": "^10.4.5", + "md5": "^2.3.0", + "mkdirp": "^0.5.6", + "optionator": "^0.9.3", + "path-to-glob-pattern": "^2.0.1", + "rc-config-loader": "^4.1.3", + "read-pkg": "^1.1.0", + "read-pkg-up": "^3.0.0", + "structured-source": "^4.0.0", + "unique-concat": "^0.2.2" + }, + "bin": { + "textlint": "bin/textlint.js" + }, + "engines": { + "node": ">=18.14.0" + } + }, + "node_modules/textlint-plugin-html": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/textlint-plugin-html/-/textlint-plugin-html-1.0.1.tgz", + "integrity": "sha512-BsuRnb8G3viZPZsDCplGY0z2LKtV6W517JAJsoJemzAWfvHqg9O2Wz05QZaSFcBF2/KS/A36eeXzviLuarvduA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^13.0.5", + "neotraverse": "^0.6.15", + "rehype-parse": "^8.0.4", + "structured-source": "^4.0.0", + "unified": "^10.1.2" + } + }, + "node_modules/textlint-plugin-html/node_modules/@textlint/ast-node-types": { + "version": "13.4.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-13.4.1.tgz", + "integrity": "sha512-qrZyhCh8Ekk6nwArx3BROybm9BnX6vF7VcZbijetV/OM3yfS4rTYhoMWISmhVEP2H2re0CtWEyMl/XF+WdvVLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/textlint-plugin-html/node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/textlint-plugin-html/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/textlint-plugin-html/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/textlint-plugin-html/node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/textlint-plugin-html/node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/textlint-rule-helper": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/textlint-rule-helper/-/textlint-rule-helper-2.3.1.tgz", + "integrity": "sha512-b1bijvyiUmKinfFE5hkQMSXs3Ky8jyZ3Y6SOoTRJKV9HLL2LWUVFAUezO7z4FpAkVvYruDYWCwA5qWV8GmvyUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^13.4.1", + "structured-source": "^4.0.0", + "unist-util-visit": "^2.0.3" + } + }, + "node_modules/textlint-rule-helper/node_modules/@textlint/ast-node-types": { + "version": "13.4.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-13.4.1.tgz", + "integrity": "sha512-qrZyhCh8Ekk6nwArx3BROybm9BnX6vF7VcZbijetV/OM3yfS4rTYhoMWISmhVEP2H2re0CtWEyMl/XF+WdvVLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/textlint-rule-prh": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/textlint-rule-prh/-/textlint-rule-prh-6.0.0.tgz", + "integrity": "sha512-byU7eUyhabX2FKx3ShOktKkmKLG5dhR0ru+PGllKgafKKWXtzOIAhAaDlqMC5qU6b3Jaz5rKQcnroGVCEjcP1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.23.9", + "prh": "^5.4.4", + "textlint-rule-helper": "^2.3.1" + } + }, + "node_modules/trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/unified": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", + "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified/node_modules/vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unique-concat": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/unique-concat/-/unique-concat-0.2.2.tgz", + "integrity": "sha512-nFT3frbsvTa9rrc71FJApPqXF8oIhVHbX3IWgObQi1mF7WrW48Ys70daL7o4evZUtmUf6Qn6WK0LbHhyO0hpXw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", + "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message/node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/vfile/node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/build/package.json b/build/package.json new file mode 100644 index 0000000000..c00b29f9a0 --- /dev/null +++ b/build/package.json @@ -0,0 +1,7 @@ +{ + "devDependencies": { + "textlint": "^14.4.0", + "textlint-plugin-html": "^1.0.1", + "textlint-rule-prh": "^6.0.0" + } +} diff --git a/build/prh.yml b/build/prh.yml new file mode 100644 index 0000000000..427087e877 --- /dev/null +++ b/build/prh.yml @@ -0,0 +1,53 @@ +version: 1 +rules: + - expected: アンシリアライズ + pattern: + - デシリアライズ + - アンマーシャリング + - expected: シリアライズ + pattern: マーシャリング + - expected: static $1 + pattern: /静的な?(変数|メソッド|プロパティ)/ + specs: + - from: 静的変数 + to: static 変数 + - from: 静的メソッド + to: static メソッド + - from: 静的なプロパティ + to: static プロパティ + - from: 遅延静的束縛 + to: 遅延静的束縛 + - expected: $1スローする + pattern: /((?:例外|Exception|Error|Throwable) ?を)投げる/ + specs: + - from: 例外を投げる + to: 例外をスローする + - from: Exceptionを投げる + to: Exceptionをスローする + - from: TypeError を投げる + to: TypeError をスローする + - expected: $1スローし$2 + pattern: /((?:例外|Exception|Error|Throwable) ?を)投げ(て|た|ま[しすせ])/ + specs: + - from: 例外を投げます + to: 例外をスローします + - from: Exceptionを投げて + to: Exceptionをスローして + - from: TypeError を投げた + to: TypeError をスローした + - expected: $1スローされ + pattern: /((?:例外|Exception|Error|Throwable) ?が)投げられ/ + specs: + - from: 例外が投げられて + to: 例外がスローされて + - from: Exceptionが投げられます + to: Exceptionがスローされます + - from: TypeError が投げられた + to: TypeError がスローされた + - expected: サーバー + pattern: /サーバ(?!ー)/ + specs: + - from: サーバ + to: サーバー + - from: サーバー + to: サーバー diff --git a/chapters/intro.xml b/chapters/intro.xml index 9e0738fae5..53423578b3 100644 --- a/chapters/intro.xml +++ b/chapters/intro.xml @@ -1,14 +1,17 @@ - + - 入門 + + 入門 + PHP は何ができるものですか? + -
+
PHP とはなんでしょう? - PHP (PHP: Hypertext Preprocessor + PHP (PHP: Hypertext Preprocessor を再帰的に略したものです) は、広く使われているオープンソースの汎用スクリプト言語です。 PHP は、特に Web 開発に適しており、HTML に埋め込むことができます。 @@ -40,13 +43,13 @@ HTMLを出力するために多くのコマンドを記述する (C や Perl のように) - 代わりに、PHP のページは "何か" - (この例では、"Hi, I'm a PHP script!" と出力) + 代わりに、PHP のページは 何か + (この例では、Hi, I'm a PHP script! と出力) を行うコードを HTML に埋め込むことになります。 PHP のコードは特別な 開始および終了の処理命令 <?php?> - で囲まれており、これによって "PHP モード" の切り替えを行います。 + で囲まれており、これによって PHP モード の切り替えを行います。 PHP がクライアントサイド JavaScript のようなものと異なっている点は、 @@ -54,15 +57,15 @@ クライアントは、スクリプトを実行した結果を受け取りますが、 その出力を作成したコードがどんなものなのかを知ることはできません。 全てのHTMLファイルをPHPで処理するようにWebサーバー - を設定することさえ可能で、この場合、ユーザーが袖の内に何があるかを - 見分けることは不可能になることでしょう。 + を設定することさえ可能で、この場合、ユーザーはPHPが動いていることすら + 知ることができません。 PHPを使用する上で最も優れている点は、初心者に対しては非常に分かり - 易いと同時に、プロフェッショナルのプログラマに対しては多くの進んだ + やすいと同時に、プロフェッショナルのプログラマに対しては多くの進んだ 機能を提供している点です。PHPの機能を羅列した長い一覧表を読まなけ - ればならないのかと心配する必要はありません。PHPはすぐに始められま - すし、数時間の内に簡単なスクリプトが書けるようになります。 + ればならないのかと心配する必要はありません。PHPは誰でもすぐに始められま + すし、時間を掛けずに簡単なスクリプトが書けるようになります。 PHPを使用した開発ではサーバーサイドでの動作に焦点が当てられますが、 @@ -73,7 +76,7 @@
-
+
PHPにできることは? あらゆることができます。PHPでは主にサーバーサイドでの活用に焦点が @@ -83,18 +86,16 @@ 全てではありません。 - PHPスクリプトが使用される場所は主に3つあります。 + PHPスクリプトが使用される場所は主に2つあります。 - サーバーサイドでのスクリプティング。これは最も古くからあり + サーバーサイドでのスクリプティング。これは幅広く使われていて PHPの中心となる分野です。ここでPHPを動作させるには 3つのものが必要です。PHPパーサ(CGIもしくはサーバーモジュール)、 - ウェブサーバー、そしてブラウザです。ウェブサーバーは - インストールされたPHPと連結して起動されなければなりません。 - ブラウザでウェブサーバーにアクセスし、PHPページを閲覧することで - PHPプログラムの出力を得ることが出来ます。インストール手順の章に詳しい + ウェブサーバー、そしてブラウザです。これらはいずれもローカルマシンで + 実行して PHP プログラミングを試すことができます。 + インストール手順の章に詳しい 情報があります。 @@ -103,26 +104,12 @@ コマンドラインでのスクリプティング。PHPスクリプトは サーバーもブラウザも無しで動作させるようにすることも出来ます。 この場合、PHPパーサだけが必要となります。このタイプは - cron(Windowsではタスクスケジューラ)を使用して一定間隔で - スクリプトを実行したい場合や、ちょっとした文書処理を + cron(Unix および macOS) やタスクスケジューラ(Windows)を使用して + 一定間隔で スクリプトを実行したい場合や、ちょっとした文書処理を 行うのに最適な方法です。 コマンドラインでPHPを使うの章に詳しい情報があります。 - - - クライアントサイドでのGUIアプリケーション。PHPはおそらく - ウィンドウを使用したアプリケーションを書くのに最適な言語 - では無いと思いますが、PHPに非常に慣れている場合には、そして - PHPの進んだ機能をクライアントサイドでのアプリケーションで - 使用した場合にはPHP-GTKを使ってプログラムを書くことが出来ます。 - 同様の方法でクロスプラットフォームなアプリケーションを書く - ことも出来ます。PHP-GTKはPHPを拡張するもので、通常の - ディストリビューションには含まれません。もし興味があるなら - PHP-GTKのサイトを - 訪れてみてください。 - - @@ -136,16 +123,18 @@ CGI としても動作します。 - つまりPHPを使用する場合にはOSとウェブサーバーを自由に選ぶことが出来ます。 - さらに手続き型のプログラミングかオブジェクト指向のプログラミングか、 + つまり、PHPでは開発者が OS とウェブサーバーを自由に選ぶことができます。 + さらには手続き型プログラミングかオブジェクト指向プログラミングか、 もしくはそれらを混在させるかといった選択を行うこともできます。 - PHPはHTMLを出力するだけではありません。PHPはイメージやPDFファイル、 - そして(libswfやMingを使って)Flashムービーまでもをその場で生成する - 機能を備えています。またXHTMLやXMLといったその他の文書も自動的に - 生成することが出来ますし、ファイルシステムに保存したり、印刷したり - サーバー側でキャッシュすることも出来ます。 + PHP は HTML を出力するだけではありません。PHP はリッチなファイルタイプ、 + たとえば 画像やPDFファイルを出力する機能を備えていますし、 + データを暗号化したり、メールを送信することもできます。 + また、JSON や XML のような任意のテキストも簡単に出力できます。 + これらのファイルを自動生成したり、 + 印刷する代わりにファイルシステムに保存したり、 + 動的なコンテンツのためにサーバー側でキャッシュすることも出来ます。 PHP の機能の中で最も強力で優れているのは、 @@ -181,13 +170,13 @@ 他にも興味深い拡張モジュールがあり、 アルファベット順 および カテゴリ別 - のページで調べることができます。またさらに、PECL 拡張モジュールの中には + のページで調べることができます。またさらに、PECL 拡張モジュール の中には XDebug などのように PHP のマニュアルに記載されていないものもあります。 - お分かりの通り、このページではPHPの機能やPHPを使用することの利点を全て - 紹介することは出来ません。PHPのインストール + このページだけではPHPの機能やPHPを使用することの利点を全て + 紹介することはできません。PHPのインストール の章を読んでみてください。紹介された拡張モジュールに関しては関数リファレンスを読んでみてください。 diff --git a/chapters/tutorial.xml b/chapters/tutorial.xml index 88ec48c774..ac9e0ce95b 100644 --- a/chapters/tutorial.xml +++ b/chapters/tutorial.xml @@ -1,6 +1,6 @@ - + 簡易チュートリアル @@ -10,103 +10,88 @@ PHP は Web ページを作成する機能だけを有しているわけではありませんが、 ここでは PHP で動的な Web ページを作成することのみを扱います。詳細は、 PHP でできること - と題するセクションを参照してください。 + と題するセクションを参照ください。 PHP を使用できる Web ページは、通常の HTML ページと全く同様に扱われ、 通常の HTML ページを作成するのと同様の方法で編集することができます。 - - 必要なものは? - - 本チュートリアルでは、使用するサーバーで PHP が使用可能であり、 - .php で終わる全てのファイルが PHP - で処理されることを仮定します。多くのサーバーでは、PHP - ファイルに関してこれがデフォルトの拡張子ですが、 - 確実なのはサーバーの管理者にきいてみることです。サーバーが PHP - をサポートする場合、何もする必要はありません。 - .php ファイルを - 作成して Web ディレクトリに置くだけで、 - サーバーがこれを自動的にパースしてくれます。 - 何もコンパイルする必要はなく、他のツールをインストールする必要もありません。 - PHP のファイルは、あなたが行なう全ての処理を実装した特殊なタグを通常の - HTML ファイルに追加したものと考えると良いでしょう。 - - - ここでは、貴重なネットワーク帯域を節約するために、 - ローカルに開発を行うことにしましょう。この場合、 - Apache のような Web サーバーと、 - 当然、PHP - をインストールすることになります。また、多くの場合には、 - MySQL - のようなデータベースもインストールすることになるでしょう。 - - - これらは個別にインストールすることもできますし、 - より簡単な方法でインストールすることも可能です。 - このマニュアルには、 - PHP のインストール手順 - (Web サーバーが設定済みであると仮定しています) があります。 - PHP 自体をインストールする際に問題が発生した場合、 - インストールに関する - メーリングリストで質問することをお薦めします。 - より簡単にインストールを行いたい場合には、 - 使用するオペレーティングシステム用の - 設定済みのパッケージ - を利用することもできます。これにより、 - 数回のマウスクリックで自動的にこれらをインストールすることができます。 - MacOSX、Linux や Windows を含む、あらゆるオペレーティングシステムにおいて - Web サーバーで PHP を使用できるように設定することは簡単です。 - Linux の場合、RPM の場所を知るために - rpmfind と - PBone が有用でしょう。 - Debian 用パッケージをみつけるには、apt-get にアクセスするとよいでしょう。 - - - - PHP を使用する初めてのページ + PHP を使用する初めてのページ + + このチュートリアルでは、PHP はインストール済みであることを想定しています。 + インストール方法については、 + ダウンロードページ + を参照ください。 + 以下の内容で hello.php - という名前のファイルを作成し、Web サーバーのルートディレクトリ - (DOCUMENT_ROOT) に置いてください。 + という名前のファイルを作成してください: - 初めての PHP スクリプト: <filename>hello.php</filename> + 初めての PHP スクリプト: <filename>hello.php</filename> - - PHP Test - - - Hello World

'; ?> - - + ]]>
- ブラウザを使用して、/hello.php で終わる Web アクセス用 URL を指定し、 + ターミナルを使い、このファイルがあるディレクトリに移動し、 + 以下のコマンドで開発用のサーバーを起動します: + + + + + + ブラウザを使用して、/hello.php + で終わる Web アクセス用 URL を指定し、 このファイルにアクセスしてください。 - ローカルに開発を行っている場合、この URL は - http://localhost/hello.php または - http://127.0.0.1/hello.php のようになります。 - しかし、これは Web サーバーの設定に依存します。 + 先程のコマンドを実行済みの場合、この URL は + http://localhost:8000/hello.php + のようになります。 全てが正しく設定されている場合、 - このファイルは PHP によりパースされ、以下の出力がブラウザに送信されます。 + このファイルは PHP によりパースされ、 + "Hello World" がブラウザで表示されます。 + + + PHP は通常のHTMLの Webページにも埋め込むことができます。 + つまり、HTML ドキュメントを PHP の文を使って書けるということです。 + そのことを示すデモが以下になります: + + + + + + PHP Test + + + Hello World

'; ?> + + +]]> +
+ + 上記の出力は、以下のようになります: - - PHP Test - - - Hello World

- + + PHP Test + + +

Hello World

+ ]]>
@@ -124,19 +109,7 @@ このファイルは、多くの面白いことを可能にする特別なタグを利用できる、 通常の HTML ファイルと考えることができます。
- - この例を試しても何も出力されない場合、または、 - ダウンロード用のプロンプトが表示されるか、 - テキストとしてファイル全体が表示された場合、 - 利用しているサーバーで PHP が利用できない可能性があります。本マニュアルの - インストール の章により - PHP を利用できるようにするよう管理者にきいてみてください。 - ローカルに開発を行っている場合も、 - インストールの章を読んで設定が全て正しく行われていることを確認してください。 - 解決しない問題がある場合は、多くの - PHP サポート - の選択肢のどれかを利用してみてください。 - + この例の目的は、特殊な PHP タグ形式を示すことです。 この例では、<?php が PHP @@ -184,21 +157,6 @@ - - Windows のメモ帳に関する注意 - - Windows のメモ帳を使用して PHP スクリプトを書く場合には、ファイルに - 拡張子 .php を付けて保存したかどうかを確認する必要があります - (メモ帳は、以下の防止策のどらかを適用しない限り、拡張子 .txt - を自動的に付加します)。ファイルを保存する際に、 - ファイル名を入力するプロンプトでファイル名を引用符で括ります - (すなわち、"hello.php" とします)。 - もしくは、保存ダイアログボックスにおいてドロップダウンメニュー - "テキスト文書"をクリックし、"すべてのファイル" に設定を変更します。 - これにより、引用符を付けずにファイル名を入力することができます。 - - - さて、動作する簡単な PHP スクリプトを作成することができましたので、 最も有名な PHP スクリプトを作成してみましょう! @@ -214,7 +172,11 @@ PHP からシステムに関する情報を取得する + ]]> @@ -239,14 +201,7 @@ $_SERVER は、 Web サーバー関連情報を全て保持する PHP の特別な予約変数です。詳細は、 スーパーグローバル - を参照してください。 - これらの特別な変数は、4.1.0 - で導入されました。これ以前は、 - $HTTP_SERVER_VARS のような古い配列 - $HTTP_*_VARS を代わりに使用していました。 - PHP 5.4.0 で、これらの古い変数は削除されました - (古いコードに関する注記も - 参照してください)。 + を参照ください。 @@ -258,14 +213,18 @@ ]]> このスクリプトの出力例は以下のようになります。 -Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) + @@ -287,7 +246,7 @@ Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) PHP タグの中に複数の PHP 命令を置くことができ、echo 文以上のことを行なうコードブロックを作成することができます。 - 例えば、インターネット・エクスプローラかどうかを調べたい場合は、 + 例えば、Firefox かを調べたい場合は、 以下のようにします。 @@ -299,9 +258,11 @@ Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) '; + +if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) { + echo 'あなたはFirefoxを使用しています'; } + ?> ]]> @@ -309,7 +270,7 @@ if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { このスクリプトの出力例は以下のようになります。 +あなたはFirefoxを使用しています ]]> @@ -324,16 +285,16 @@ if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { 言語リファレンスの部分を読むべきです。 - 二番目の新しい概念は、strpos 関数のコールです。 - strpos は PHP に組み込まれた関数で、 - 文字列の中である文字列を探します。この場合、 + 二番目の新しい概念は、str_contains 関数のコールです。 + str_contains は PHP に組み込まれた関数で、 + 指定された文字列が、別の文字列に含まれているかを判定します。この場合、 $_SERVER['HTTP_USER_AGENT'] (いわゆる干し草の山 【haystack】) の中で - "MSIE" (いわゆる針【needle】) を探しています。 + "Firefox" (いわゆる針【needle】) を探しています。 この文字列が見つかった場合、 - この関数はこの関数は文字列の相対的な位置を返し、 + この関数は &true; を返し、 見つからなかった場合には &false; を返します。 - この関数が &false; を返さなければ、 + この関数が &true; を返すと、 if 文は &true; と評価し、その{波括弧}の中のコードが実行されます。 そうでない場合は、実行されません。 @@ -357,15 +318,15 @@ if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { -

strposが非falseを返しました

-
あなたはInternet Explorerを使用しています
+

str_contains() がtrueを返しました

+
あなたはFirefoxを使用しています
-

strposがfalseを返しました

-
あなたはInternet Explorerを使用していません
+

str_contains()がfalseを返しました

+
あなたはFirefoxを使用していません
@@ -375,8 +336,8 @@ if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { この例の出力は以下のようになります。 strposが非falseを返しました -
あなたはInternet Explorerを使用しています
+

str_contains() がtrueを返しました

+
あなたはFirefoxを使用しています
]]>
@@ -386,8 +347,8 @@ if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { 何かを出力する際に PHP の echo 文を使用する代わりに、PHP モードを抜けて通常の HTML を送信しています。ここで注意すべき重要で強力な点は、 スクリプトの論理フローが損なわれないということです。 - strpos が &true; または &false; - のどちらを返すか、言い換えるとMSIE + str_contains が &true; または &false; + のどちらを返すか、言い換えるとFirefox が見つかったかどうかに基づき、HTML ブロックだけが見る側に送信されることになります。 @@ -401,7 +362,7 @@ if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { 自動的に PHP スクリプトで利用可能になるということです。 詳細は、マニュアルのセクション 外部から来る変数 および PHP - でフォームを使用する例を参照してください。以下に HTML フォームの例を示します。 + でフォームを使用する例を参照ください。以下に HTML フォームの例を示します。 @@ -409,9 +370,13 @@ if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { - 名前: - 年齢: - + + + + + + + ]]> @@ -430,7 +395,7 @@ if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { さん。 -あなたは、 歳です。 +あなたは、 歳です。 ]]> @@ -447,9 +412,9 @@ if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { htmlspecialchars および (int) の部分以外は、何を行っているかは明らかでしょう。 htmlspecialchars は、html での特殊な文字を適切にエンコードし、 - HTML タグや Javascript をページ内に仕込めないようにします。 + HTML タグや JavaScript をページ内に仕込めないようにします。 また、age フィールドには数値が入ることがわかっているので、これを - integer 型に 変換 + int 型に 変換 します。これにより、おかしな文字が入力されることを防ぎます。 これらの処理を PHP に自動的に行わせるためには、 filter 拡張モジュールを使用します。 @@ -467,64 +432,6 @@ if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { を使用することもできます。この変数は、GET, POST, COOKIE, FILE データの混ざったものが含まれます。 - - XForms の入力を PHP で扱うことも可能ですが、たいていの場合は - HTML フォームのほうが快適に使用できるでしょう。 - XForms は初心者向けのものではありませんが、気になる人もいるかもしれません。 - 機能概要の節にある - XForm から受信したデータの処理方法 を参照ください。 - -
- - - 新しいバージョンの PHP で古いコードを使用する - - 今や PHP は有名なスクリプト言語となってきており、 - 各自のスクリプトで再利用可能なコードとして、 - 多くのリソースが公開されています。PHP 言語の開発者の大部分は、 - 過去のバージョンとの互換性を保とうとしており、 - 過去のバージョン用に書かれたスクリプトは (理想的には) - より新しいバージョンの PHP で変更せずに動作するはずです。 - しかし、実際には、通常いくつかの変更が必要となります。 - - - 古いコードに影響を与える最近の重要な二つの変更点を以下に示します。 - - - - 古い形式の配列 $HTTP_*_VARS は、PHP 5.4.0 以降使えなくなりました。 - 以下の - スーパーグローバル - 配列が 4.1.0 - で導入されました。これらを以下に示します。 - $_GET, $_POST, - $_COOKIE, $_SERVER, - $_ENV, $_REQUEST, - $_SESSION. - - - - - 外部変数は、もはやデフォルトでグローバルスコープに登録されません。 - 言い換えると、PHP 4.2.0 - 以降、PHP ディレクティブ - register_globals は、 - &php.ini; においてデフォルトで off となっています。 - 外部変数の値にアクセスするときには、 - 先ほど説明したスーパーグローバル配列を使うことを推奨します。 - 古いスクリプトや本、 - チュートリアルはこのディレクティブに依存している可能性があります。 - このディレクティブが on の場合、 - 例えば、URL http://www.example.com/foo.php?id=42 - から $id を使用することができます。 - on、off によらず $_GET['id'] は利用可能です。 - - - - これらの変更に関する詳細は、 - 定義済みの変数 - のセクションおよびそこにあるリンクを参照してください。 - @@ -537,7 +444,7 @@ if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { この他 PHP でできる多くのことを示すスライドプレゼンテーションを見るには、 PHP カンファレンスマテリアルサイト &url.php.talks; - を参照してください。 + を参照ください。 diff --git a/chmonly/aboutchm.xml b/chmonly/aboutchm.xml index 663b043798..7c1be484f0 100644 --- a/chmonly/aboutchm.xml +++ b/chmonly/aboutchm.xml @@ -1,47 +1,48 @@ - - - - このヘルプについて - - - PHPマニュアル の Windowsヘルプ版 は、このマニュアルをいつも手元に置いておきたかったり、Webページをダウンロードするのを待つことなくマニュアルページやユーザーが書き込んだ Note を読みたい開発者を対象にしています。Windowsヘルプ版 は、PHPマニュアルの全ての内容と、ユーザーが書き込んだ Note が全て含まれていますし、このフォーマットを生成するスクリプトや他のコントリビューターがスキンの形で提供したビューアアプリケーションの素晴らしい機能がいくつか付いてきます。 - - - - PHPマニュアル の配布物に多くのファイルが含まれており、それらはメインマニュアルファイルである php_manual_ja.chm に入っています。(既にお察しの通り) あなたは PHPマニュアル をこのファイルをダブルクリックすることで見ることが出来ます。 - - 同じフォルダで php_manual_ja.chw というファイルを見ることがあるかもしれません。これは「キーワード」タブをはじめて使うときに生成され、マニュアルページのインデックスが含まれています。 - - - - Microsoft HTMLヘルプ の技術的な詳細に興味がある方向けの素晴らしいリソースに、&url.chm.helpware; があります。Microsoft ヘルプフォーマットやサービスの歴史における Windows HTMLヘルプの位置付けや、さらに詳しい情報は WinWriters の記事 を参照して下さい。 - - - - - + + + + + このヘルプについて + + + PHPマニュアル の Windowsヘルプ版 は、このマニュアルをいつも手元に置いておきたかったり、Webページをダウンロードするのを待つことなくマニュアルページやユーザーが書き込んだ Note を読みたい開発者を対象にしています。Windowsヘルプ版 は、PHPマニュアルの全ての内容と、ユーザーが書き込んだ Note が全て含まれていますし、このフォーマットを生成するスクリプトや他のコントリビューターがスキンの形で提供したビューアアプリケーションの素晴らしい機能がいくつか付いてきます。 + + + + PHPマニュアル の配布物に多くのファイルが含まれており、それらはメインマニュアルファイルである php_manual_ja.chm に入っています。(既にお察しの通り) あなたは PHPマニュアル をこのファイルをダブルクリックすることで見ることが出来ます。 + + 同じフォルダで php_manual_ja.chw というファイルを見ることがあるかもしれません。これは「キーワード」タブをはじめて使うときに生成され、マニュアルページのインデックスが含まれています。 + + + + Microsoft HTMLヘルプ の技術的な詳細に興味がある方向けの素晴らしいリソースに、&url.chm.helpware; があります。Microsoft ヘルプフォーマットやサービスの歴史における Windows HTMLヘルプの位置付けや、さらに詳しい情報は WinWriters の記事 を参照ください。 + + + + + diff --git a/chmonly/integration.xml b/chmonly/integration.xml index f7b921e350..de1a719eba 100644 --- a/chmonly/integration.xml +++ b/chmonly/integration.xml @@ -1,125 +1,126 @@ - - - - Integrating the PHP Manual - - - - - The information provided here is mainly aimed at IDE authors, or - advanced users who would like to integrate this CHM file to their - favorite IDEs or other production environment components. - - - - - There are several editors out there with support for CHM integration, - but you may need to know a few things about what the CHM contains - to successfully integrate the manual into your environment. - - - The CHM is built using XSL style sheets from XML sources. This is - unique currently in the PHP Manual family, as all other versions are - generated using DSSSL style sheets. This also means, that - non-intentional rendering differences may come up. A special - conversion script is run on the XSLT output, adding several cute - features, and packing up the manual with the preferences files - and skin examples. - - - If you never worked with CHMs, you can think of them as compressed - files with OS supported access for files inside and some added search - and index support. However CHMs can only be viewed using the HTML Help - Viewer, you can directly access files inside them using a special URL - prefix, the CHM file name and the file you request from inside. As all - the help content is stored in HTML files, you can show pages of the CHM - in Internet Explorer. - - - Assume that you placed your php_manual_en.chm to - c:\phpmanual the index file in the manual (which - you see the first time) can be accessed with the following URL: - mk:@MSITStore:C:\phpmanual\php_manual_en.chm::/_index.html. - Here mk:@MSITStore: is the special "protocol", - C:\phpmanual\php_manual_en.chm is the CHM with it's - full path. The /_index.html part is the path to the - index file inside the CHM and :: is just what you need - to put between the CHM path and this file path. - - - - - All files are in the root directory of the CHM, unlike the previous - CHM versions which included a language directory. Images, style sheets - and other supplemental files have names starting with an underscore - (like the main index shown above), to avoid name collisions. - - - - - The names of generated files follow the same rules as the online - manual, except that the extension is .html and - not .php. The most important is that function - documentation files are named function.FUNCNAME.html - where FUNCNAME is the function name, with all - underscores converted to hyphens. Some examples are - function.echo.html, - function.mysql-close.html, - function.imagecopy.html. - - - Using all this information, you can show a manual page for a function - requested by a user. A simple example is included in the distribution, - named php_quickref.hta. This is a - HTML Application to demonstrate the - simple process of showing a manual page for a function. The - quickRef() function defined therein does the job. - - - If you would like to integrate the manual into an IDE without direct - support for the PHP manual (actually the underscore to hyphen conversion), - you can use the included _function.html file to access - a function page. This file is simply a redirector, and can be parameterized via - the URL, as _function.html#mysql_close. This page - will redirect you to the mysql_close function page - (function.mysql-close.html) automatically. You can - provide the full path of this file if your IDE supports context sensitive - help, and provide the IDE specified string as the parameter. An example - for this is the UltraEdit 9 intergation (see the edition's website). - - - The index of the manual (accessible via the index tab on the navigation - pane) can also be used for integrational purposes. All the HTML pages - are included in the index with their titles as index terms (including - function description pages). - - - If you are a desktop application developer and would like to tightly - integrate the CHM into your program (such as displaying the TOC tree - in your IDE's help box), you can find more information at - &url.chm.helpware;, as well as - links to other useful resources. The official site for HTML Help is - at &url.chm;. - - - - + + + + + Integrating the PHP Manual + + + + + The information provided here is mainly aimed at IDE authors, or + advanced users who would like to integrate this CHM file to their + favorite IDEs or other production environment components. + + + + + There are several editors out there with support for CHM integration, + but you may need to know a few things about what the CHM contains + to successfully integrate the manual into your environment. + + + The CHM is built using XSL style sheets from XML sources. This is + unique currently in the PHP Manual family, as all other versions are + generated using DSSSL style sheets. This also means, that + non-intentional rendering differences may come up. A special + conversion script is run on the XSLT output, adding several cute + features, and packing up the manual with the preferences files + and skin examples. + + + If you never worked with CHMs, you can think of them as compressed + files with OS supported access for files inside and some added search + and index support. However CHMs can only be viewed using the HTML Help + Viewer, you can directly access files inside them using a special URL + prefix, the CHM file name and the file you request from inside. As all + the help content is stored in HTML files, you can show pages of the CHM + in Internet Explorer. + + + Assume that you placed your php_manual_en.chm to + c:\phpmanual the index file in the manual (which + you see the first time) can be accessed with the following URL: + mk:@MSITStore:C:\phpmanual\php_manual_en.chm::/_index.html. + Here mk:@MSITStore: is the special "protocol", + C:\phpmanual\php_manual_en.chm is the CHM with it's + full path. The /_index.html part is the path to the + index file inside the CHM and :: is just what you need + to put between the CHM path and this file path. + + + + + All files are in the root directory of the CHM, unlike the previous + CHM versions which included a language directory. Images, style sheets + and other supplemental files have names starting with an underscore + (like the main index shown above), to avoid name collisions. + + + + + The names of generated files follow the same rules as the online + manual, except that the extension is .html and + not .php. The most important is that function + documentation files are named function.FUNCNAME.html + where FUNCNAME is the function name, with all + underscores converted to hyphens. Some examples are + function.echo.html, + function.mysql-close.html, + function.imagecopy.html. + + + Using all this information, you can show a manual page for a function + requested by a user. A simple example is included in the distribution, + named php_quickref.hta. This is a + HTML Application to demonstrate the + simple process of showing a manual page for a function. The + quickRef() function defined therein does the job. + + + If you would like to integrate the manual into an IDE without direct + support for the PHP manual (actually the underscore to hyphen conversion), + you can use the included _function.html file to access + a function page. This file is simply a redirector, and can be parameterized via + the URL, as _function.html#mysql_close. This page + will redirect you to the mysql_close function page + (function.mysql-close.html) automatically. You can + provide the full path of this file if your IDE supports context sensitive + help, and provide the IDE specified string as the parameter. An example + for this is the UltraEdit 9 intergation (see the edition's website). + + + The index of the manual (accessible via the index tab on the navigation + pane) can also be used for integrational purposes. All the HTML pages + are included in the index with their titles as index terms (including + function description pages). + + + If you are a desktop application developer and would like to tightly + integrate the CHM into your program (such as displaying the TOC tree + in your IDE's help box), you can find more information at + &url.chm.helpware;, as well as + links to other useful resources. The official site for HTML Help is + at &url.chm;. + + + + diff --git a/chmonly/search.xml b/chmonly/search.xml index 50d505543d..28e463dff3 100644 --- a/chmonly/search.xml +++ b/chmonly/search.xml @@ -1,314 +1,315 @@ - - - - 全文検索 - - - This edition of the PHP Manual includes an advanced full text - search possibility provided by the viewer application. This enables - users to search through every word in the help file to find a - match. For example, if a user does a full-text search on the word - "Apache", every topic that contains the word "Apache" will be listed. - Advanced full-text search allows a user to search using boolean, - wildcard, and nested expressions. A user can also limit the search - to previous results, match similar words, or search topic titles only. - - - - The usage of the search feature is fairly straightforward. Click on - the search tab, type in the desired words and press ENTER (or click - on "List Topics"). Then you'll receive a list of matches from the - PHP Manual (and the notes). You can use the button with a right - arrow on it to add boolean operators to your search (or you can type - them in). As you see the results, you can use the column headings - (Title, Location and Rank) to sort the topic list. The default order - is by Rank. You can also adjust some parameters at the bottom of this - tab. - - - - The words found are highlighted on the current page in the Topic pane - by default. You can turn off this feature by choosing the "Search - Highlight Off" menu item in the Options menu. To can get this feature - back similarly. If you are viewing a long topic, only the first 500 - instances of a search word or phrase will be highlighted, due to a - limitation of the viewer. - - - - 一般的な検索のルール - - A basic search consists of the word or phrase you want to find. You - can use wildcard expressions, nested expressions, boolean operators, - similar word matches, a previous results list, or topic titles to further - define your search. - - - The basic rules for formulating queries are as follows: - - - Searches are not case-sensitive, so you can type your search in uppercase or lowercase characters. - - - - You may search for any combination of letters (a-z) and numbers (0-9). - You cannot search for single letters (a, b, c, etc.) and common - words, like: an, and, as, at, be, but, by, do, for, from, have, he, - in, it, not, of, on, or, she, that, the, there, they, this, to, we, - which, with, you. - - - - - Punctuation marks such as the period (.), colon (:), semicolon (;), comma (,), - and hyphen (-) are ignored during a search. - - - - Group the elements of your search using double quotes or parentheses to set apart each element. You cannot search for quotation marks. - - - - - - - If you are searching for a file name with an extension, you should group - the entire string in double quotes, ("filename.ext"). Otherwise, the period - will break the file name into two separate terms. The default operation - between terms is AND, so you will create the logical equivalent to - "filename AND ext." - - - - - - - 単語またはフレーズを検索する - - You can search for words or phrases and use wildcard expressions. - Wildcard expressions allow you to search for one or more characters - using a question mark or asterisk. The table below describes the - results of these different kinds of searches. - - Word and phrase searches - - - - Search for - Example - Results - - - - - A single word - select - Topics that contain the word "select". (You will also find its grammatical variations, such as "selector" and "selection".) - - - A phrase - "new operator" or new operator - - - Topics that contain the literal phrase "new operator" and all its grammatical variations. - - - Without the quotation marks, the query is equivalent to specifying "new AND operator," which - will find topics containing both of the individual words, instead of the phrase. - - - - - Wildcard expressions - esc* or HT?? - - - Results for the first example include topics that contain the terms "ESC", - "escape", "escalation", and so on. The asterisk cannot be the only - character in the term. - - - Results for the second example include topics that contain the terms "HTTP", - "HTML" and so on. The question mark cannot be the only character in the - term. - - - - - -
-
- - - - Select the Match similar words check box to include minor grammatical variations - for the phrase you search. This feature only locates variations of the word with - common suffixes. For example, a search on the word "add" will find "added," but - it will not find "additive". This option is independent of other options or syntax. - If you do a titles-only search, variations in titles will be matched. If you use - quotes (or any other query operator) any variation of the word can appear; for - example, "stemmed search" will also match "stemming search". - - - -
- - - 検索後を定義する - - The AND, OR, NOT, and NEAR operators enable you to precisely define your - search by creating a relationship between search terms. The following table - shows how you can use each of these operators. If no operator is specified, - AND is used. For example, the query "server cgi security" is equivalent - to "server AND cgi AND security". - - Search operators - - - - Search for - Example - Results - - - - - Both terms in the same topic - http AND apache - Topics containing both the words "http" and "apache". - - - Either term in a topic - ming OR swflib - Topics containing either the word "ming" or the word "swflib" or both. - - - The first term without the second term - xml NOT expat - Topics containing the word "xml" but not the word "expat". - - - Both terms in the same topic, close together - database NEAR security - Topics containing the word "database" within eight words of the word "security". - - - -
-
- - - - The |, &, and ! characters can also be used in place of OR AND and - NOT respectively. This may not work if you use a very old version of the - viewer. - - - -
- - - 入れ子の検索条件を使う - - Nested expressions allow you to create complex searches for information. - For example, "html AND ((smtp OR pop3) NEAR mail)" finds topics - containing the word "html" along with the words "smtp" and "mail" - close together, or containing "html" along with the words "pop3" and - "mail" close together. - - - The basic rules for searching help topics using nested expressions are - as follows: - - - - You can use parentheses to nest expressions within a query. The - expressions in parentheses are evaluated before the rest of the query. - - - - - If a query does not contain a nested expression, it is evaluated from left to right. - For example: "mail NOT pop3 OR smtp" finds topics containing the word "mail" without - the word "pop3" or topics containing the word "smtp". On the other hand, "mail NOT - (pop3 OR smtp)" finds topics containing the word "mail" without either of the words - "pop3" or "smtp". - - - - You cannot nest expressions more than five levels deep. - - - - - - -
- - + + + + + 全文検索 + + + This edition of the PHP Manual includes an advanced full text + search possibility provided by the viewer application. This enables + users to search through every word in the help file to find a + match. For example, if a user does a full-text search on the word + "Apache", every topic that contains the word "Apache" will be listed. + Advanced full-text search allows a user to search using boolean, + wildcard, and nested expressions. A user can also limit the search + to previous results, match similar words, or search topic titles only. + + + + The usage of the search feature is fairly straightforward. Click on + the search tab, type in the desired words and press ENTER (or click + on "List Topics"). Then you'll receive a list of matches from the + PHP Manual (and the notes). You can use the button with a right + arrow on it to add boolean operators to your search (or you can type + them in). As you see the results, you can use the column headings + (Title, Location and Rank) to sort the topic list. The default order + is by Rank. You can also adjust some parameters at the bottom of this + tab. + + + + The words found are highlighted on the current page in the Topic pane + by default. You can turn off this feature by choosing the "Search + Highlight Off" menu item in the Options menu. To can get this feature + back similarly. If you are viewing a long topic, only the first 500 + instances of a search word or phrase will be highlighted, due to a + limitation of the viewer. + + + + 一般的な検索のルール + + A basic search consists of the word or phrase you want to find. You + can use wildcard expressions, nested expressions, boolean operators, + similar word matches, a previous results list, or topic titles to further + define your search. + + + The basic rules for formulating queries are as follows: + + + Searches are not case-sensitive, so you can type your search in uppercase or lowercase characters. + + + + You may search for any combination of letters (a-z) and numbers (0-9). + You cannot search for single letters (a, b, c, etc.) and common + words, like: an, and, as, at, be, but, by, do, for, from, have, he, + in, it, not, of, on, or, she, that, the, there, they, this, to, we, + which, with, you. + + + + + Punctuation marks such as the period (.), colon (:), semicolon (;), comma (,), + and hyphen (-) are ignored during a search. + + + + Group the elements of your search using double quotes or parentheses to set apart each element. You cannot search for quotation marks. + + + + + + + If you are searching for a file name with an extension, you should group + the entire string in double quotes, ("filename.ext"). Otherwise, the period + will break the file name into two separate terms. The default operation + between terms is AND, so you will create the logical equivalent to + "filename AND ext." + + + + + + + 単語またはフレーズを検索する + + You can search for words or phrases and use wildcard expressions. + Wildcard expressions allow you to search for one or more characters + using a question mark or asterisk. The table below describes the + results of these different kinds of searches. + + Word and phrase searches + + + + Search for + Example + Results + + + + + A single word + select + Topics that contain the word "select". (You will also find its grammatical variations, such as "selector" and "selection".) + + + A phrase + "new operator" or new operator + + + Topics that contain the literal phrase "new operator" and all its grammatical variations. + + + Without the quotation marks, the query is equivalent to specifying "new AND operator," which + will find topics containing both of the individual words, instead of the phrase. + + + + + Wildcard expressions + esc* or HT?? + + + Results for the first example include topics that contain the terms "ESC", + "escape", "escalation", and so on. The asterisk cannot be the only + character in the term. + + + Results for the second example include topics that contain the terms "HTTP", + "HTML" and so on. The question mark cannot be the only character in the + term. + + + + + +
+
+ + + + Select the Match similar words check box to include minor grammatical variations + for the phrase you search. This feature only locates variations of the word with + common suffixes. For example, a search on the word "add" will find "added," but + it will not find "additive". This option is independent of other options or syntax. + If you do a titles-only search, variations in titles will be matched. If you use + quotes (or any other query operator) any variation of the word can appear; for + example, "stemmed search" will also match "stemming search". + + + +
+ + + 検索後を定義する + + The AND, OR, NOT, and NEAR operators enable you to precisely define your + search by creating a relationship between search terms. The following table + shows how you can use each of these operators. If no operator is specified, + AND is used. For example, the query "server cgi security" is equivalent + to "server AND cgi AND security". + + Search operators + + + + Search for + Example + Results + + + + + Both terms in the same topic + http AND apache + Topics containing both the words "http" and "apache". + + + Either term in a topic + ming OR swflib + Topics containing either the word "ming" or the word "swflib" or both. + + + The first term without the second term + xml NOT expat + Topics containing the word "xml" but not the word "expat". + + + Both terms in the same topic, close together + database NEAR security + Topics containing the word "database" within eight words of the word "security". + + + +
+
+ + + + The |, &, and ! characters can also be used in place of OR AND and + NOT respectively. This may not work if you use a very old version of the + viewer. + + + +
+ + + 入れ子の検索条件を使う + + Nested expressions allow you to create complex searches for information. + For example, "html AND ((smtp OR pop3) NEAR mail)" finds topics + containing the word "html" along with the words "smtp" and "mail" + close together, or containing "html" along with the words "pop3" and + "mail" close together. + + + The basic rules for searching help topics using nested expressions are + as follows: + + + + You can use parentheses to nest expressions within a query. The + expressions in parentheses are evaluated before the rest of the query. + + + + + If a query does not contain a nested expression, it is evaluated from left to right. + For example: "mail NOT pop3 OR smtp" finds topics containing the word "mail" without + the word "pop3" or topics containing the word "smtp". On the other hand, "mail NOT + (pop3 OR smtp)" finds topics containing the word "mail" without either of the words + "pop3" or "smtp". + + + + You cannot nest expressions more than five levels deep. + + + + + + +
+ + diff --git a/chmonly/usingchm.xml b/chmonly/usingchm.xml index 72692a370d..98f49742ee 100644 --- a/chmonly/usingchm.xml +++ b/chmonly/usingchm.xml @@ -1,347 +1,498 @@ - - - - CHM版 の PHPマニュアル を使う - - - CHMファイル をダブルクリックすると、HTMLヘルプビューア のウィンドウが起動します。これは3つのペインに分かれています。ウィンドウの左側はナビゲーションペインで、4つのタブがあります。目次、キーワード、検索、そしてお気に入りです。ウィンドウの右側はトピックペインで、選択したヘルプトピックを表示させたり、起動時のデフォルトのヘルプトピックが表示されたりします。ヘルプページは全て別々のHTMLファイルで、Internet Explorer がページをトピックペインに表示します。3つめのペインはツールバーです。これはウィンドウのタイトルバーの下にあります。ナビゲーションペインとトピックペインの境目は、縦方向のバーをドラッグすることでレイアウトを調整できます。 - - - - CHMファイルをはじめて開くとき、ウィンドウの位置とサイズがおかしな状態かもしれません。2回目以降は、Windows が位置とサイズ、そして最後に開いたタブを記憶しています。これら全ての情報とお気に入りに入れた情報は hh.dat に保存されます。このファイルを別の場所に移動すると、これらの情報が(お気に入りの情報も含めて!)失われてしまいます。CHMファイルを新しいものに置き換えるのは、同じファイル名であれば問題ありません。ファイル名とパス名は hh.dat に保存されています。 - - - - HTMLヘルプのツールバー - - PHPマニュアルを表示したとき、HTMLヘルプのツールバーには次のアイコンが表示されます: - - - 表示/非表示 - ナビゲーションペインを表示/非表示 にします。 - - - - 同期 - 目次タブの内容をトピックのペインの内容に合わせます。 - (検索、キーワード、お気に入りからトピックにたどり着いた場合 - や目次にあるツリーの内容を見たくなったりした場合に使います) - - - - 戻る - 履歴のひとつ前に戻ります。 - - - 進む - ひとつ後の履歴に進みます。 - - - 更新 - 現在のページを更新します。 - - - ホーム - CHMのスタートアップページを開きます。 - - - 印刷 - 印刷ダイアログボックスを開きます。 - - - オプション - ドロップダウンで追加のオプションを提供します。 - - - このツールバーは本当に簡単に使えます。多くのツールバーアイコンは Internet Explorer にある同様の機能と強い関連があります。 - - - - - ナビゲーションペイン - - ナビゲーションペインには4つのタブがあります: - 目次、キーワード、検索、そしてお気に入りです。これらのタブはヘルプファイルのトピックにアクセスする異なる方法を提供します。 - - - - 目次タブは目次をツリー状に表示します。ここでは、ツリーの一部分を開いたり閉じたりして望みのトピックに移動することができます。目次を使うとセクションの一番深い部分にさえアクセスできます。見出しの項目を右クリックして「印刷」を選ぶと、選択中のトピックか、選択中のトピックとそのサブトピック全てを印刷するオプションが表示されます。しかし、マニュアルを印刷する機能はこのマニュアルの代表的な機能ではありません。(PDFバージョンの方が印刷に適しています) - - - - - キーワードタブは、莫大な数(マニュアルのタイトル全て)の「キーワード」を一覧にします。 - あなたは表示されているものからひとつ選んだり、キーワードを打ち込んで表示される一覧を調整してトピックをクリックしたり、選択したトピックが見たいものであれば、エンターキーを押してトピックを表示させることも出来ます。 - - - - - 検索タブはHTMLヘルプビューアのもっとも強力な機能、全文検索(FTS=Full Text Search)を提供します。 - ここでは、検索条件を入力し、オプションでそれらの条件を AND/OR/NEAR/NOT で繋ぐこともできます。 - 「検索開始」ボタンをクリックする前に、画面左下にあるオプションをいくつか設定することもできます。 - 検索結果が表示された後、マニュアルの検索結果と User Note の検索結果は別であることに気付くでしょう。 - これらふたつのタイプをソートするには、「場所」カラムヘッダをクリックします。これで、検索結果から - トピックを選び出し、閲覧することが出来ます。検索したキーワードはページ上でハイライトされています。 - - - - - お気に入りタブを使うと、もっともよく使うトピックを一覧にし、簡単にアクセスすることが出来ます。 - お気に入りのリストを見ることも出来ますし、現在表示しているトピックを追加することも出来ます。 - また、お気に入りのうちのひとつを削除することもできますし、お気に入りのうちのひとつをトピックペインに表示させることもできます。 - 「現在のトピック」ボックスにテキストを入力することで、お気に入りに独自のタイトルを付けることも出来ます。 - User Noteのお気に入りページのタイトルには、通常のマニュアルページと後で簡単に区別できるように N: という文字列がはじめにつきます。 - - - - - - - - キーボードショートカット - - 生産性を高めるために、たくさんのキーボードショートカットがあります。 - クリックするかわりに、これらのキーボードショートカットを使う方が - トピックにアクセスするのに適切だと多くの人が気付いています。 - - - - ヘルプビューアの一般的なショートカット - - - - 実行する操作 - ショートカット - - - - - ヘルプビューアを閉じる - ALT+F4 - - - オプションメニューを表示 - ALT+O - - - ナビゲーションペインを表示/非表示にする - ALT+O を押し、Tを押す - - - トピックを印刷 - ALT+O を押し、Pを押す - - - 一つ前のトピックに戻る - ALT+LEFT ARROW - - - ひとつ後のトピックに移動する (以前にトピックを見ていた場合) - ALT+RIGHT ARROW - - - 検索のハイライトを 有効/無効 にする - ALT+O を押し、O を押す - - - ヘルプファイルのホームに戻る - ALT+O を押し、Hを押す - - - ナビゲーションペインとトピックペインを切り替える - F6 - - - ナビゲーションペインのタブにあるオプション、またはトピックペインにある全てのリンクを移動しながらスクロールする - TAB - - - コンテキストメニュー(右クリック) を表示する - SHIFT+F10 - - - -
- - - 目次タブのショートカット - - - - 実行する操作 - ショートカット - - - - - 目次タブを表示する - ALT+C - - - ブックまたはフォルダを開いたり閉じたりする - PLUS SIGN と MINUS SIGN または、LEFT ARROW と RIGHT ARROW - - - トピックを選択する - DOWN ARROW と UP ARROW - - - 選択したトピックを表示する - ENTER - - - -
- - - キーワードタブのショートカット - - - - 実行する操作 - ショートカット - - - - - キーワードタブを表示する - ALT+N - - - 検索するキーワードを入力する - ALT+W を押し、検索語を入力 - - - リスト中のキーワードを選択する - UP ARROW と DOWN ARROW - - - 関連するトピックを表示する - ENTER または ALT+D - - - -
- - - 検索タブのショートカット - - - - 実行する操作 - ショートカット - - - - - 検索タブを表示する - ALT+S - - - 検索するキーワードを入力する - ALT+W を押し、検索語を入力 - - - 検索を開始 - ALT+L - - - 検索結果リストにあるトピックを選択する - ALT+T を押し、UP ARROW と DOWN ARROWを押す - - - 選択したトピックを表示する - ENTER または ALT+D - - - 以前行った検索結果からキーワード検索する - ALT+U - - - キーワードに似た単語で検索する。たとえば、"run" というキーワードに対して、"running" や "runs" のような単語で検索する - ALT+M - - - タイトルのみ検索 - ALT+R - - - -
- - - お気に入りタブのショートカット - - - - 実行する操作 - ショートカット - - - - - お気に入りタブを表示する - ALT+I - - - 現在見ているトピックをお気に入りリストに追加する - ALT+A - - - お気に入りリストにあるトピックを選択する - ALT+P を押し、UP ARROW と DOWN ARROW を押す - - - 選択したトピックを表示する - ENTER または ALT+D - - - お気に入りリストから、選択したトピックを削除する - ALT+R - - - -
- - - トピックペインのショートカット - - - - 実行する操作 - ショートカット - - - - - インデックスを探す - 探したい単語を選択し、F1を押す - - - ページ内検索 - CTRL+F を押し、オプションを調整する - - - ページを更新する - F5 - - - -
-
-
- -
- - + + + + + CHM版 の PHPマニュアル を使う + + + CHMファイル をダブルクリックすると、HTMLヘルプビューア のウィンドウが起動します。これは3つのペインに分かれています。ウィンドウの左側はナビゲーションペインで、4つのタブがあります。目次、キーワード、検索、そしてお気に入りです。ウィンドウの右側はトピックペインで、選択したヘルプトピックを表示させたり、起動時のデフォルトのヘルプトピックが表示されたりします。ヘルプページは全て別々のHTMLファイルで、Internet Explorer がページをトピックペインに表示します。3つめのペインはツールバーです。これはウィンドウのタイトルバーの下にあります。ナビゲーションペインとトピックペインの境目は、縦方向のバーをドラッグすることでレイアウトを調整できます。 + + + + CHMファイルをはじめて開くとき、ウィンドウの位置とサイズがおかしな状態かもしれません。2回目以降は、Windows が位置とサイズ、そして最後に開いたタブを記憶しています。これら全ての情報とお気に入りに入れた情報は hh.dat に保存されます。このファイルを別の場所に移動すると、これらの情報が(お気に入りの情報も含めて!)失われてしまいます。CHMファイルを新しいものに置き換えるのは、同じファイル名であれば問題ありません。ファイル名とパス名は hh.dat に保存されています。 + + + + HTMLヘルプのツールバー + + PHPマニュアルを表示したとき、HTMLヘルプのツールバーには次のアイコンが表示されます: + + + 表示/非表示 - ナビゲーションペインを表示/非表示 にします。 + + + + 同期 - 目次タブの内容をトピックのペインの内容に合わせます。 + (検索、キーワード、お気に入りからトピックにたどり着いた場合 + や目次にあるツリーの内容を見たくなったりした場合に使います) + + + + 戻る - 履歴のひとつ前に戻ります。 + + + 進む - ひとつ後の履歴に進みます。 + + + 更新 - 現在のページを更新します。 + + + ホーム - CHMのスタートアップページを開きます。 + + + 印刷 - 印刷ダイアログボックスを開きます。 + + + オプション - ドロップダウンで追加のオプションを提供します。 + + + このツールバーは本当に簡単に使えます。多くのツールバーアイコンは Internet Explorer にある同様の機能と強い関連があります。 + + + + + ナビゲーションペイン + + ナビゲーションペインには4つのタブがあります: + 目次、キーワード、検索、そしてお気に入りです。これらのタブはヘルプファイルのトピックにアクセスする異なる方法を提供します。 + + + + 目次タブは目次をツリー状に表示します。ここでは、ツリーの一部分を開いたり閉じたりして望みのトピックに移動することができます。目次を使うとセクションの一番深い部分にさえアクセスできます。見出しの項目を右クリックして「印刷」を選ぶと、選択中のトピックか、選択中のトピックとそのサブトピック全てを印刷するオプションが表示されます。しかし、マニュアルを印刷する機能はこのマニュアルの代表的な機能ではありません。(PDFバージョンの方が印刷に適しています) + + + + + キーワードタブは、莫大な数(マニュアルのタイトル全て)の「キーワード」を一覧にします。 + あなたは表示されているものからひとつ選んだり、キーワードを打ち込んで表示される一覧を調整してトピックをクリックしたり、選択したトピックが見たいものであれば、エンターキーを押してトピックを表示させることも出来ます。 + + + + + 検索タブはHTMLヘルプビューアのもっとも強力な機能、全文検索(FTS=Full Text Search)を提供します。 + ここでは、検索条件を入力し、オプションでそれらの条件を AND/OR/NEAR/NOT で繋ぐこともできます。 + 「検索開始」ボタンをクリックする前に、画面左下にあるオプションをいくつか設定することもできます。 + 検索結果が表示された後、マニュアルの検索結果と User Note の検索結果は別であることに気付くでしょう。 + これらふたつのタイプをソートするには、「場所」カラムヘッダをクリックします。これで、検索結果から + トピックを選び出し、閲覧することが出来ます。検索したキーワードはページ上でハイライトされています。 + + + + + お気に入りタブを使うと、もっともよく使うトピックを一覧にし、簡単にアクセスすることが出来ます。 + お気に入りのリストを見ることも出来ますし、現在表示しているトピックを追加することも出来ます。 + また、お気に入りのうちのひとつを削除することもできますし、お気に入りのうちのひとつをトピックペインに表示させることもできます。 + 「現在のトピック」ボックスにテキストを入力することで、お気に入りに独自のタイトルを付けることも出来ます。 + User Noteのお気に入りページのタイトルには、通常のマニュアルページと後で簡単に区別できるように N: という文字列がはじめにつきます。 + + + + + + + + キーボードショートカット + + 生産性を高めるために、たくさんのキーボードショートカットがあります。 + クリックするかわりに、これらのキーボードショートカットを使う方が + トピックにアクセスするのに適切だと多くの人が気付いています。 + + + + ヘルプビューアの一般的なショートカット + + + + 実行する操作 + ショートカット + + + + + ヘルプビューアを閉じる + + + ALT + F4 + + + + + オプションメニューを表示 + + + ALT + O + + + + + ナビゲーションペインを表示/非表示にする + + + ALT + O + を押し、Tを押す + + + + トピックを印刷 + + + ALT + O + , + を押し、P を押す + + + + 一つ前のトピックに戻る + + + ALT + LEFT ARROW + + + + + ひとつ後のトピックに移動する (以前にトピックを見ていた場合) + + + ALT + RIGHT ARROW + + + + + 検索のハイライトを 有効/無効 にする + + + ALT + O + を押し、O を押す + + + + ヘルプファイルのホームに戻る + + + ALT + O + を押し、 + H を押す + + + + ナビゲーションペインとトピックペインを切り替える + F6 + + + ナビゲーションペインのタブにあるオプション、またはトピックペインにある全てのリンクを移動しながらスクロールする + TAB + + + コンテキストメニュー(右クリック) を表示する + + + SHIFT + F10 + + + + + +
+ + + 目次タブのショートカット + + + + 実行する操作 + ショートカット + + + + + 目次タブを表示する + + + ALT + C + + + + + ブックまたはフォルダを開いたり閉じたりする + + +- + または LEFT ARROWRIGHT ARROW + + + + トピックを選択する + + DOWN ARROWUP ARROW + + + + 選択したトピックを表示する + ENTER + + + +
+ + + キーワードタブのショートカット + + + + 実行する操作 + ショートカット + + + + + キーワードタブを表示する + + + ALT + N + + + + + 検索するキーワードを入力する + + + ALT + W + を押し、検索語を入力 + + + + リスト中のキーワードを選択する + UP ARROWDOWN ARROW + + + 関連するトピックを表示する + + ENTER または + + ALT + D + + + + + +
+ + + 検索タブのショートカット + + + + 実行する操作 + ショートカット + + + + + 検索タブを表示する + + + ALT + S + + + + + 検索するキーワードを入力する + + + ALT + W + を押し、検索語を入力 + + + + 検索を開始 + + + ALT + L + + + + + 検索結果リストにあるトピックを選択する + + + ALT + T + + を押し、 + UP ARROWDOWN ARROW を押す + + + + 選択したトピックを表示する + + ENTER または + + ALT + D + + + + + 以前行った検索結果からキーワード検索する + + + ALT + U + + + + + キーワードに似た単語で検索する。たとえば、"run" というキーワードに対して、"running" や "runs" のような単語で検索する + + + ALT + M + + + + + タイトルのみ検索 + + + ALT + R + + + + + +
+ + + お気に入りタブのショートカット + + + + 実行する操作 + ショートカット + + + + + お気に入りタブを表示する + + + ALT + I + + + + + 現在見ているトピックをお気に入りリストに追加する + + + ALT + A + + + + + お気に入りリストにあるトピックを選択する + + + ALT + P + を押し、 + UP ARROWDOWN ARROW + を押す + + + + 選択したトピックを表示する + + ENTER または + + ALT + D + + + + + お気に入りリストから、選択したトピックを削除する + + + ALT + R + + + + + +
+ + + トピックペインのショートカット + + + + 実行する操作 + ショートカット + + + + + インデックスを探す + 探したい単語を選択し、F1 を押す + + + ページ内検索 + + + CTRL + F + + を押し、オプションを調整する + + + + ページを更新する + F5 + + + +
+
+
+ +
+ + diff --git a/extensions.ent b/extensions.ent index 6d0ada6216..febb34939b 100644 --- a/extensions.ent +++ b/extensions.ent @@ -1,6 +1,6 @@ - + diff --git a/faq/build.xml b/faq/build.xml index a7438e24ce..cdb8ac3dbc 100644 --- a/faq/build.xml +++ b/faq/build.xml @@ -1,6 +1,6 @@ - + 構築時の問題 @@ -195,83 +195,10 @@ - - - - PHPをApache 1.3と組み合わせて構築する手法が分かりません。 - - - - - この手順は実際には非常に簡単です。以下の手順に注意深く従って下さ - い。 - - - - &url.apache.source;から最新 - のApache 1.3配布ファイルを取得してください。 - - - - - これをどこか、例えば、 - /usr/local/src/apache-1.3で - ungzip、untarしてください。 - - - - - まず、 - ./configure - --with-apache=/<path>/apache-1.3を実行し、PHP - をコンパイルしてください。 - (<path> の部分は実際のapache-1.3ディレクトリのパスに置 - き換えてください) - - - - - make を実行した後、make - installを実行してください。これにより、PHPが構築され、 - 必要なファイルがApacheのソースツリーにコピーされます。 - - - - - ディレクトリを - /<path>/apache-1.3/srcに移動し、 - Configurationファイルを編集してください。 - このファイルに以下を追加してください。: - AddModule modules/php4/libphp4.a - - - - - ./configure を実行した後、 - makeを実行してください。 - - - - - 以上の手順によりPHP対応のhttpdバイナリが構築できました。 - - - - - - 注意: : Apache の新しい - ./configureスクリプトを使用することも可能です。 - Apache配布ファイルのREADME.configureファイル - の指示を参照ください。また、PHP配布ファイルの - INSTALL ファイルも参照ください。 - - - - - インストール手順に完全に基づきUnix上でApacheモジュール版をインス + インストール手順に完全に従ってUnix上でApacheモジュール版をインス トールしましたが、ブラウザでアクセスするとPHPスクリプトが表示さ れ、ファイルを保存しますかと尋ねられます。 diff --git a/faq/com.xml b/faq/com.xml index 3cdd979b8c..3631c837c8 100644 --- a/faq/com.xml +++ b/faq/com.xml @@ -1,6 +1,6 @@ - + PHP と COM @@ -237,9 +237,7 @@ $word = new COM("C:\docs\word.doc"); この問題に対する答えは、簡単ですが残念なものです。正確には - わかりませんが、おそらく打つ手はありません。もしこの問題に関する - 具体的な情報があったら私 - に教えてください。 + わかりませんが、おそらく打つ手はありません。 diff --git a/faq/databases.xml b/faq/databases.xml index 63b153c479..d97f1a97b1 100644 --- a/faq/databases.xml +++ b/faq/databases.xml @@ -1,6 +1,6 @@ - + データベースに関する問題 @@ -30,7 +30,7 @@ や SQLSRV も使えます。 - 次の質問に対する回答も参照してください。 + 次の質問に対する回答も参照ください。 @@ -40,12 +40,6 @@ Microsoft Access データベースにアクセスできますか? - - はい。もし全て (PHP と Microsoft Access) を Windows9x/Me/NT/2000 - 上で動作させるのであり、ODBC と Microsoft が提供する Microsoft Access 用 - ODBC ドライバ が使用できる状態ならば、 - すべての必要なツールは揃っています。 - Unix で PHP を動作させて Windows マシンで動作する MS Access に接続したい場合には Unix ODBC ドライバが必要です。 - - - - 10 年前からずーっと MySQL 拡張モジュール (ext/mysql) - を使ってきました。なぜ今さら「使ってはいけない」と言われるのですか? - 廃止されちゃうんですか? 私はいったいどうすればいいの? - 今までのコードはどうなるの? - - - - - 現在、MySQL 用の拡張モジュールは 3 種類用意されています。 - MySQL API の選択 にあるとおりです。 - 古い API は使ってはいけません。PHP 5.5.0 以降では非推奨になっており、PHP 7.0.0 から本体に同梱されなくなって PECL に移ります。 - でも、今後新しく書くコードでは mysqli か - PDO_MySQL を使うことを強く推奨します。 - - - 今までのコードの移行用スクリプトは、今のところ用意されていません。 - しかし、mysqli の API には手続き型とオブジェクト指向型の 2 種類が用意されており、 - 手続き型の API は ext/mysql と似ています。 - - - 複数の拡張モジュールを混ぜて使うことはできません。つまり、 - たとえば mysqli のコネクションを - PDO_MySQL や ext/mysql に渡しても動作しないということです。 - - - - - - - - "Warning: 0 is not a MySQL - result index in <file> on line <x>" もしくは "Warning: Supplied argument - is not a valid MySQL result resource in <file> on line <x>" - のようなエラーが出るのはなぜでしょうか? - - - - - あなたは値が 0 である結果(result)ID を指定しようとしています。0 は - あなたのクエリが何らかの理由で失敗したことを示しています。結果 - (result)ID を使用する前に、クエリを送信したあとのエラーをチェック - する必要があります。以下のようなコードが正しい方法です。 - - -]]> - - もしくは - - -]]> - - - - diff --git a/faq/general.xml b/faq/general.xml index 13d512cb96..bcd708a708 100644 --- a/faq/general.xml +++ b/faq/general.xml @@ -1,6 +1,7 @@ - + + 一般的な情報 一般的な情報 @@ -55,7 +56,7 @@ そしてもうすでにサポートされていないバージョンです。 PHP 3 は PHP/FI 2.0 の後継バージョンで、 PHP/FI 2.0 に比べて大きく進歩しています。 - PHP 7 が PHP の最新バージョンです。これは Zend Engine 3 を使用しており、 + PHP 8 が PHP の最新バージョンです。これは Zend Engine 4 を使用しており、 さまざまな OOP 機能を提供します。 diff --git a/faq/html.xml b/faq/html.xml index b4bc7ba752..3c20bbd74b 100644 --- a/faq/html.xml +++ b/faq/html.xml @@ -1,6 +1,6 @@ - + PHP と HTML @@ -284,25 +284,25 @@ variable = document.forms[0].elements['var[]']; - Javascript から PHP に変数を渡すには? + JavaScript から PHP に変数を渡すには? - Javascript は(普通は)クライアントサイド技術であり、一方 PHP は(普通は) + JavaScript は(普通は)クライアントサイド技術であり、一方 PHP は(普通は) サーバーサイド技術です。また HTTP は"ステートレスな"プロトコルです。 そのため、この二つの言語はダイレクトに変数を共有することができません。 しかしながら、この二つの言語の間で変数を渡すことは可能です。 - 一つの方法は PHP と一緒に Javascript のコードを生成し、 + 一つの方法は PHP と一緒に JavaScript のコードを生成し、 ブラウザに自動的にリフレッシュ(再ロード)させることです。 以下の例はまさにそれで、PHP に画面の高さと幅を認識させています。 これは通常はクライアントサイドでしかできないことです。 - PHP による Javascript の生成 + PHP による JavaScript の生成 \n"; - echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}" + echo " location.href=\"{$_SERVER['SCRIPT_NAME']}?{$_SERVER['QUERY_STRING']}" . "&width=\" + screen.width + \"&height=\" + screen.height;\n"; echo "\n"; exit(); diff --git a/faq/installation.xml b/faq/installation.xml index 0d19d6cc5a..f2eeba0c50 100644 --- a/faq/installation.xml +++ b/faq/installation.xml @@ -1,6 +1,6 @@ - + インストール @@ -30,10 +30,9 @@ 直観的で簡単に習得できる言語インターフェイスにより、一つの整合性のある実体として 見せることができます。 PHP の柔軟性と力は、プラットフォームの安定性と堅牢性に基づいています。 - グルーによる結合をするためには、OS や Web サーバー、サードパーティ製のライブラリを - 必要とします。 + グルーによる結合をするためには、OS や Web サーバー、サードパーティ製のライブラリが必要です。 これらの一つの機能が停止した場合、PHP は問題を特定し、速やかに修正する - 手段を必要とします。 + 手段が必要です。 実行スレッドを完全に分離しなかったり、 メモリセグメントを完全に分離しなかったり、 各リクエストで使用される強力なサンドボックスを有さないことで、 @@ -79,7 +78,7 @@ 設定ファイルの章も参照してください。 + linkend="configuration.file">設定ファイルの章も参照ください。 @@ -199,15 +198,15 @@ AddType application/x-httpd-php .php - Unix: Apache に FrontPage エクステンションのパッチを当てたら、突然 + Unix: Apache に FrontPage 拡張モジュールのパッチを当てたら、突然 PHP が動作しなくなってしまいました。PHP は Apache の FrontPage - エクステンションと共存することはできないのですか? + 拡張モジュールと共存することはできないのですか? - いいえ。PHP は FrontPage エクステンションと問題なく共存できます。 - 問題は FrontPage エクステンションのパッチが PHP が依存している Apache の + いいえ。PHP は FrontPage 拡張モジュールと問題なく共存できます。 + 問題は FrontPage 拡張モジュールのパッチが PHP が依存している Apache の 構造の一部を変更してしまうことにあります。パッチを当てた後で PHP を再コンパイル('make clean; make' としてください)すれば問題は 解決されます。 @@ -272,8 +271,8 @@ AddType application/x-httpd-php .php これは、PHP とは関係なく MySQL クライアントライブラリの問題です。 このライブラリのうちある種のものは を必要とし、 - 他のものは必要としません。この問題は MySQL FAQ でも扱われています。 + role="configure">--with-zlib を指定する必要がありますが、 + 他のものは必要ありません。この問題は MySQL FAQ でも扱われています。 @@ -422,7 +421,7 @@ cgi error: - Windows 7, XP, Vista, 2008, 2012 以降では、 + Windows では、以下のようにします。 コントロールパネルのシステムアイコンを選択します(スタート → コントロールパネル)。 @@ -451,39 +450,12 @@ cgi error: - - Windows 98/Me では、autoexec.bat を編集する必要があります。 - - - メモ帳を開きます(スタート → ファイル名を指定して実行 で、 - notepad と入力します)。 - - - C:\autoexec.bat ファイルを開きます。 - - - PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;..... という行を探し、 - その行の最後に ;C:\php を追加します。 - - - ファイルを保存し、コンピュータを再起動します。 - - - 上の作業を行った後は、必ずコンピュータを再起動し、 PATH の変更が適用されていることを確認しましょう。 - - PHP マニュアルでは、これまでファイルを Windows のシステムディレクトリに - コピーするよう推奨してきました。なぜなら、このディレクトリ - (C:\WindowsC:\WINNT、など) - にはデフォルトでシステムの PATH が通っていたからです。ファイルを - Windows のシステムディレクトリにコピーすることはずいぶん昔に非推奨と - なっており、これはさまざまな問題のもととなりえます。 - @@ -495,63 +467,38 @@ cgi error: - いくつかの方法があります。Apache を使用しているのなら、Apache - 固有のインストール手順(Apache 1、Apache 2)を参照ください。 + いくつかの方法があります。Apache を使用しているのなら、 + Apache のドキュメントを参照ください。 それ以外の場合は、環境変数 PHPRC を指定する 必要があります。 - - Windows では、 - - - コントロールパネルのシステムアイコンを選択します(スタート → 設定 - → コントロールパネル → システム、あるいは - 単に スタート → コントロールパネル → システム)。 - - - 詳細設定タブに移動します。 - - - 「環境変数」ボタンを押します。 - - - 「システム環境変数」欄を見ます。 - - - 「新規」ボタンを押し、変数名に 'PHPRC' 、変数値に &php.ini; の - 存在するディレクトリ(例: C:\php)を入力します。 - - - OK を押し、コンピュータを再起動します。 - - - - - Windows 98/Me では、autoexec.bat を編集する必要があります。 - - - メモ帳を開きます(スタート → ファイル名を指定して実行 で、 - notepad と入力します)。 - - - C:\autoexec.bat ファイルを開きます。 - - - ファイルの最後に以下の内容の行を追加します。set - PHPRC=C:\phpC:\php を、実際に - &php.ini; が存在するディレクトリに置き換えます)。パスには空白文字を - 含められないことに注意しましょう。たとえば、もし PHP を - C:\Program Files\PHP にインストールしたのなら、 - その代わりに C:\PROGRA~1\PHP と入力する必要が - あります。 - - - ファイルを保存し、コンピュータを再起動します。 - - - + + + + + + + Windows: PHP が IIS 管理下のテンポラリディレクトリに書き込めるかを、どうやって確認したらよいですか? + + + + + + + テンポラリディレクトリ (%TEMP%) + をファイルエクスプローラーで右クリックし、 + パーミッションの情報を取得します。 + テンポラリディレクトリは、設定または + phpinfo で取得できます。 + + + + + IIS については、IIS_User + が MODIFY パーミッションを持っているかを確認してください。 + + + diff --git a/faq/mailinglist.xml b/faq/mailinglist.xml index e79f048db4..b2b4e14b20 100644 --- a/faq/mailinglist.xml +++ b/faq/mailinglist.xml @@ -1,6 +1,6 @@ - + メーリングリスト @@ -71,28 +71,17 @@ - - もし、メーリングリストへの参加/脱退で問題が起きているなら、 - それはおそらくシステムがあなたのメールアドレスを - 正しく取得できていないからだと思われます。 - 仮にあなたのメールアドレスを joeblow@example.com - とすると、php-general に参加する場合のリクエストは - php-general-subscribe-joeblow=example.com@lists.php.net、 - 脱退のリクエストは - php-general-unsubscribe-joeblow=example.com@lists.php.net - へメールを送信することで行うことができます。 - 他のメーリングリストに関しても同様です。 - メーリングリストからの脱退がうまくいかない原因でもっとも多いのは、 メールの転送処理にからむものです。たとえば、あなたのメールアドレスが - danbrown@example.com であったとしましょう。しかし、メーリングリストへの参加は - php-lists@example.com で行っており、このアドレスは自動的に - danbrown@example.com に転送されるようになっているものとします。 - このとき、danbrown@example.com で脱退処理を行ってもうまくいきません。 + elephpant@example.com であったとしましょう。 + しかし、メーリングリストへの参加は + php-lists@example.com で行っており、このアドレスは自動的に + elephpant@example.com に転送されるようになっているものとします。 + このとき、elephpant@example.com で脱退処理を行ってもうまくいきません。 このアドレスはメーリングリストに登録されていないからです。 この場合は、メールが実際に送信されているアドレス、つまり - php-lists@example.com で脱退処理をしなければなりません。 + php-lists@example.com で脱退処理をしなければなりません。 diff --git a/faq/misc.xml b/faq/misc.xml index 2ea354ebb6..f988b34bc8 100644 --- a/faq/misc.xml +++ b/faq/misc.xml @@ -1,7 +1,7 @@ - - + + その他の質問 その他の質問 @@ -81,128 +81,6 @@ - - - - - asort の定義のように、引数の横に & が - ついているのはどういう意味ですか? - - - - - その引数が - 参照渡し であり、 - ドキュメントに書かれているとおり、関数内でそれが変更される可能性が - あることを示します。変数のみをこの方法で渡すことができ、関数を - コールする際に & を渡す必要はありません(これは - 廃止予定 - の方法です)。 - - - - - - - - 私はどのように register_globals を扱うべきですか? - - - - - register_globals とセキュリティの関連については、 - Using register_globals - を参照ください。 - - - register_globals が On であることに依存するよりも、 - スーパーグローバル - の使用を推奨します。 - - - register_globals が Off になっている共有ホスト上で - 古いアプリケーションを動かす必要があり、アプリケーションがこの設定を - On にすることを要求している場合、 - あるいはこの機能が On になっているホスティングサーバー上でセキュリティの - リスクを抑えたい場合など、PHP でこれらの設定を逆転させる必要が出てきます。 - いちばんいい方法は PHP の設定を変更できないか確認してみることですが、 - もしそれができない場合には、このような方法を使用することができます。 - - - - Register Globals をエミュレートする - - これは register_globals On をエミュレートします。 - variables_order - ディレクティブを変更している場合は、それに応じて - $superglobals を変更してください。 - - - -]]> - - - これは register_globals Off をエミュレートします。 - 注意してほしいのは、このコードはスクリプト内のいちばん最初に - コールされる必要があるということです。ただし、 - セッションを開始するために session_start - を使用する場合は、その後にコールする必要があります。 - - - $v) { - if (!in_array($k, $noUnset) && isset($GLOBALS[$k])) { - unset($GLOBALS[$k]); - } - } -} - -unregister_GLOBALS(); - -?> -]]> - - - - - diff --git a/faq/obtaining.xml b/faq/obtaining.xml index 0fbce4c23a..2f82c003ff 100644 --- a/faq/obtaining.xml +++ b/faq/obtaining.xml @@ -1,6 +1,6 @@ - + PHP を手に入れるには @@ -23,7 +23,7 @@ から見つけることができます。また匿名 Gitを使って最新のソースコードを手に入れることもできます。詳しい情報は、 &url.php.anongit; - を参照してください。 + を参照ください。 @@ -163,7 +163,7 @@ - readline. + libedit. @@ -195,7 +195,7 @@ - 最新情報は、PHP Wiki の Step by Step Build Instructions を参照してください。 + 最新情報は、PHP Wiki の Step by Step Build Instructions を参照ください。 diff --git a/faq/passwords.xml b/faq/passwords.xml index 8fb6ab18ec..8d54f6493e 100644 --- a/faq/passwords.xml +++ b/faq/passwords.xml @@ -1,153 +1,148 @@ - + + - 安全なパスワードハッシュ + 安全に、かつセキュアにパスワードをハッシュする パスワードのハッシュ - + この節では、なぜハッシュ関数を使ってパスワードを守るのかについての理由と、 ハッシュ処理を効率的に行う方法について説明します。 - + - + なぜ、アプリケーションのユーザーが登録したパスワードをハッシュしなければならないのですか? - + - + パスワードのハッシュは、最も基本的なセキュリティ要件のひとつです。 - ユーザーからパスワードを受け取るアプリケーションを設計するときには必ず考慮しなければなりません。 - ハッシュしなければ、パスワードを格納したデータベースが攻撃を受けたときにパスワードを盗まれてしまいます。 - それは即時にアプリケーションが乗っ取られることにつながるし、 + ユーザーからパスワードを受け取るアプリケーションやサービスを設計するときには必ず考慮しなければなりません。 + ハッシュしなければ、パスワードを格納したデータストアが攻撃を受けたときにパスワードを盗まれてしまいます。 + それは即時にアプリケーションやサービスが乗っ取られることにつながるし、 もしそのユーザーが他のサービスでも同じアカウント・同じパスワードを使っていればさらに被害が大きくなります。 - - + + ユーザーのパスワードにハッシュアルゴリズムを適用してからデータベースに格納しておくと、 攻撃者が元のパスワードを知ることが難しくなります。 とはいえ、パスワードのハッシュ結果との比較は可能です。 - - - しかし、ここで注意すべき点は、パスワードのハッシュ処理はあくまでもデータベースへの不正アクセスからの保護にすぎず、 - アプリケーション自体に不正なコードを注入される攻撃からは守れないということです。 - + + + しかし、ここで注意すべき点は、パスワードのハッシュ処理はあくまでもデータストアへの不正アクセスからの保護にすぎず、 + アプリケーションやサービス自体に不正なコードを注入される攻撃からは守れないということです。 + - + よく使われるハッシュ関数である md5sha1 は、なぜパスワードのハッシュに適していないのですか? - + - + MD5 や SHA1 そして SHA256 といったハッシュアルゴリズムは、 高速かつ効率的なハッシュ処理のために設計されたものです。 最近のテクノロジーやハードウェア性能をもってすれば、 - これらのアルゴリズムの出力をブルートフォースで(力ずくで)調べて元の入力を得るのはたやすいことです。 - - - 最近のコンピュータではハッシュアルゴリズムを高速に「逆算」できるので、 + これらのアルゴリズムの出力をブルートフォース で(力ずくで)調べて元の入力を得るのはたやすいことです。 + + + 最近のコンピュータではハッシュアルゴリズムを高速に逆算 できるので、 セキュリティ技術者の多くはこれらの関数をパスワードのハッシュに使わないよう強く推奨しています。 - + - + よく使われるハッシュ関数では不適切だというのなら、 パスワードをどうやってハッシュすればいいのですか? - + - + パスワードをハッシュするときに検討すべき重要な二点は、 その計算量とソルトです。 ハッシュアルゴリズムの計算コストが増えれば増えるほど、 ブルートフォースによる出力の解析に時間を要するようになります。 - - - PHP 5.5 以降には + + + PHP には ネイティブのパスワードハッシュ API が用意されており、これを使えば ハッシュの計算 や パスワードの検証 を安全に行えます。 - PHP だけで書かれた同じ機能のライブラリ - もあって、これは PHP 5.3.7 以降で使えます。 - - - それ以外には、crypt 関数を使う方法もあります。 - この関数は PHP 5.3 以降で使えるもので、いくつかのハッシュアルゴリズムに対応しています。 - この関数を使うときには、指定したアルゴリズムが使えるかどうかを気にする必要はありません。 - 各アルゴリズムが PHP の内部でネイティブに実装されているので、 - ご利用の OS でサポートしていないアルゴリズムでも使うことができます。 - - + + パスワードをハッシュするときのおすすめのアルゴリズムは Blowfish です。 パスワードハッシュ API でも、このアルゴリズムをデフォルトで使っています。 というのも、このアルゴリズムは MD5 や SHA1 と比較して計算コストが高いにもかかわらず、スケーラブルだからです。 - - - crypt でパスワードを検証する場合は、タイミング攻撃に注意が必要です。 - タイミング攻撃を避けるため、処理時間が一定な文字列比較処理を使うようにしましょう。 - PHP の - == 演算子や === 演算子 - も、そして strcmp も、文字列比較の処理時間が一定ではありません。 - その点 password_verify はこの問題を気にしなくて済むので、 + + + crypt 関数もパスワードのハッシュに使えますが、 + 他のシステムとの相互運用性を保つために使うのがおすすめです。 可能な限り ネイティブのパスワードハッシュ API を使うようにしましょう。 - + - + ソルトとは? - + - + 暗号理論におけるソルトとは、ハッシュ処理の際に追加するデータのことです。 事前に計算済みのハッシュとその元入力の対応表 (レインボーテーブル) で出力を解析される可能性を減らすために利用します。 - - + + 端的に言うと、ソルトとはちょっとした追加データです。 これをつけるだけで、ハッシュをクラックするのが劇的に難しくなります。 事前に計算済みのハッシュとその元入力を大量にまとめた表が、オンラインで多数公開されています。 ソルトを使えば、そのハッシュ値がこれらの表に含まれている可能性を大きく減らすことができます。 - - + + password_hash は、ソルトを指定しなかった場合にはランダムなソルトを作ります。 一般に、これがいちばんお手軽で安全なアプローチでしょう。 - + - + ソルトはどのように保存すればいいのですか? - + - + password_hashcrypt を使った場合、戻り値であるパスワードハッシュの中にソルトが含まれています。 このソルトは、そのままの形式でデータベースに格納する必要があります。 というのも、利用したハッシュ関数の情報がそこに含まれており、それを直接 password_verifycrypt に渡せばパスワードの検証ができるからです。 - - + + + + タイミング攻撃を避けるために、保存されたハッシュ結果を比較したり + 再ハッシュを行う代わりに + 常に password_verify を使うべきです。 + + + cryptpassword_hash の戻り値の書式を次の図に示します。 このように、使ったアルゴリズムや検証時に必要なソフトに関する情報もすべて含まれています。 - + diff --git a/faq/using.xml b/faq/using.xml index 086929aa46..da3b259655 100644 --- a/faq/using.xml +++ b/faq/using.xml @@ -1,6 +1,6 @@ - + @@ -15,6 +15,7 @@ + PHP の関数のパラメータの順番を覚えられません。だって関数によってばらばらなんだもん。 @@ -100,97 +101,9 @@ if (empty($empty)) { stripslashes もありますが、 これはさらに古い時代の PHP コードで使われていたものです。 - - ¬e.magicquotes.gpc; - - - - - " は \" に、また ' は \' に全て変換されているのですが、 - これら無用なバックスラッシュを除去するにはどうしたらよいですか? - どうやって、そしてなぜ、こんなことになっているのでしょう? - - - - - なぜかバックスラッシュがついてしまう、という現象の原因のほとんどは、PHP の - magic_quotes_gpc - ディレクティブが On になっていることです。これは古い時代の PHP - の機能であり、現在は無効にしておくべきものです。この仕組みに頼ってはいけません。 - 文字列からバックスラッシュを取り除くために、PHP の - stripslashes を使うことができます。 - - - ¬e.magicquotes.gpc; - - - - - - - - PHP の設定項目 register_globals はどんな影響があるの? - - - - &warn.deprecated.feature-5-3-0.removed-5-4-0; - - まずはじめに、この ini 設定がどういうはたらきをするのかを説明します。 - 例として、次のような URL を使用します。 - http://example.com/foo.php?animal=cat - そして foo.php の中身は次のようなコードが書かれているものとします。 - - - - -]]> - - - - 上のコードでおわかりのように、register_globals を使用すると数多くの変数が作成されます。 - 長年にわたってこの手のコーディングは問題視されており、 - ここ数年 register_globals のデフォルト設定は無効になっています。 - 大半のウェブサーバーは register_globals を無効にしていますが、 - いまだに register_globals が on であることを前提とした記事や書籍が存在します。 - 注意しましょう。 - - - 詳しい情報は、以下のリソースを参照ください。 - - register_globals ディレクティブ - セキュリティに関する章での register_globals の説明 - 外部からくる変数の処理 - スーパーグローバル - - - - - 上の例では、クエリ文字列を含む URL を使用しています。 - このように情報を渡す場合には GET HTTP リクエストを使用するので、 - この場合はスーパーグローバル $_GET を使用します。 - - - - - @@ -294,7 +207,7 @@ foreach ($headers as $name => $content) { apache_lookup_uri, apache_response_headers, - fsockopenも参照してください。 + fsockopenも参照ください。 @@ -312,11 +225,11 @@ foreach ($headers as $name => $content) { 問題です。これを回避策するには、認証のかかったディレクトリに(PHP が解釈しない)HTMLファイルを作成します。そしてMETAタグを使ってPHP を使用したページにリダイレクトするか、リンクを張ります。こうすれ - ばPHPは認証済みかどうかを正しく認識することが出来ます。ISAPIモジュー - ルの場合はこの問題は起きません。また、これは他のNTウェブサーバーに + ばPHPは認証済みかどうかを正しく認識することが出来ます。 + また、これは他のNTウェブサーバーに は影響ありません。詳しくは&url.iis; とHTTP 認証を - 参照してください。 + 参照ください。 @@ -385,9 +298,6 @@ foreach ($headers as $name => $content) { のセクションも読んでください。HTMLフォームやCookie、URL等から 来る外部変数に関するシナリオが説明されています。 - - ¬e.registerglobals; - @@ -395,10 +305,9 @@ foreach ($headers as $name => $content) { フリーではない商用ライブラリである - PDFLibを使わずに + PDFLib を使わずに PDFファイルを生成するにはどうしたらよいでしょうか? - フリーのもので、外部のPDFライブラリを必要としない - ものがいいのです。 + フリーのもので、外部のPDFライブラリが不要なものがいいのですが。 @@ -407,54 +316,26 @@ foreach ($headers as $name => $content) { FPDF や TCPDF などです。 - - また、Haru 拡張モジュールもあります。 - これは、フリーな外部ライブラリ libHaru を使用しています。 - - - - - - - - ユーザー定義関数の中で、標準的な - ($DOCUMENT_ROOT$HTTP_REFERER のような) - CGI変数にアクセスしたいのですが、PHPはそれらの変数を見つけること - ができていないようです。何がおかしいのですか? - - - - - PHPディレクティブの - register_globals - がサーバーと環境変数に与える影響を認識することは重要なことです。 - register_globals = off (PHP4.2.0以降デフォルトでoff)の場合、 - $DOCUMENT_ROOTは存在しません。代わりに - $_SERVER['DOCUMENT_ROOT']を使用してください。 - register_globals = on の場合は $DOCUMENT_ROOTも - $GLOBALS['DOCUMENT_ROOT']も存在します。 - - - いくつかの PHP ディレクティブでは、バイト値を integer + いくつかの PHP ディレクティブでは、バイト値を int ではなく省略形で設定できます。この省略形で使えるオプションを教えてください。 - 有効なオプションは K(キロバイト)、M(メガバイト)および G(ギガバイト: - PHP 5.1.0 以降で有効)です。これらはすべて、大文字小文字を区別しません。 + 有効なオプションは K(キロバイト)、M(メガバイト)および G(ギガバイト) + です。これらはすべて、大文字小文字を区別しません。 これ以外の文字はバイト値と判断されます。 1M は、1 メガバイトあるいは 1048576 バイトと等しくなります。1K は、1 キロバイトあるいは 1024 バイトです。この表記法は、 &php.ini; や ini_set 関数で使えます。 - ここで、数値の値は、integer + ここで、数値の値は、int 型にキャストされることに注意して下さい。 たとえば、0.5M0 と解釈されます。 @@ -471,26 +352,6 @@ foreach ($headers as $name => $content) { - - - - Windows で、 - "127.0.0.1" だと動作するのに - localhost - を使うと接続がタイムアウトします。 - - - - - PHP 5.3.4 を使っている場合、その原因は PHP のネットワーク解決に関するコードのバグです。 - IPv6 が有効になっている環境では、ストリーム関連のすべての場面で - localhost への接続に失敗していました。 - 回避策は、 "127.0.0.1" を使うようにするか - IPv6 の名前解決を hosts ファイルで無効にするかのいずれかです。 - - - - diff --git a/features/commandline.xml b/features/commandline.xml index ab6297cedc..53389ae077 100644 --- a/features/commandline.xml +++ b/features/commandline.xml @@ -1,13 +1,13 @@ - + PHP をコマンドラインから使用する コマンドラインの使用法 -
+
はじめに @@ -61,12 +61,12 @@ - PHP 5 以降、Windows 版の &cli; はメインフォルダ内で php.exe + Windows 版の &cli; はメインフォルダ内で php.exe という名前で配布されます。CGI バージョンは、php-cgi.exe として配布されます。さらに - PHP 5 では、configure で + configure で を指定すると、新しく php-win.exe というファイルが配布されます。 - これは &cli; バージョンとほぼ同じですが、何も出力しないため、コンソールを必要としません。 + これは &cli; バージョンとほぼ同じですが、何も出力しないため、コンソールは必要ありません。 @@ -75,7 +75,7 @@ シェルで php -v をタイプすると、 phpCGI なのか &cli; なのかわかります。 php_sapi_name と定数 PHP_SAPI - も参照してください。 + も参照ください。 @@ -149,9 +149,10 @@ implicit_flush &true; + シェル環境では、 print, echo および 関連するものによる全ての出力は、直ちに出力され、バッファに - キャッシュされないことが望ましいと言えます。この場合でも、 + 保持されないことが望ましいと言えます。この場合でも、 標準出力を保留または操作したい場合には、 出力バッファリング を使用することが可能です。 @@ -185,6 +186,26 @@ あるいは $_SERVER$_SERVER['argv'] を使うこともできます。 + + + $argv$_SERVER['argv'] + が存在することは、PHPスクリプトがコマンドラインから実行されていることを示す信頼できる根拠にはなりません。 + なぜなら、register_argc_argv + が有効になっている場合に、他のコンテキストで設定されている可能性があるからです。 + コマンドラインから実行されていることを確認するには、代わりに php_sapi_name の返り値をチェックすべきです。 + + + + + + + @@ -469,6 +490,7 @@ $ php -c /custom/directory/custom-file.ini my_script.php + INI 設定に <literal>-d</literal> を使って値を設定する例 - - - 引数をスクリプトに渡すには、最初の引数を - -- としなければなりません。 - そうしないと、PHP は渡された内容を PHP のオプションとみなしてしまいます。 - - @@ -547,21 +562,30 @@ string(15) "doesntmakesense" --syntax-check - このオプションにより、指定した PHP コードの - 構文チェックのみを簡単に行なうことができます。成功した場合、 + 構文チェックを行いますが、指定された PHP コードは実行しません。 + ファイル名が指定されない場合、標準出力の入力をチェックしますが、 + 指定された場合、それぞれのファイルがチェックされます。 + 成功した場合、 テキスト No syntax errors detected in <filename> が標準出力に書き込まれ、リターンコードは 0 - となります。失敗した場合、テキスト Errors parsing + になります。失敗した場合は + テキスト Errors parsing <filename> に加え、内部パーサエラーメッセージ が標準出力に書き込まれ、シェルリターンコードは、 -1 となります。 このオプションは、(未定義の関数のような)致命的なエラー(fatal error) - はみつけません。致命的なエラーについても調べたい場合は、 - を使用してください。 + を見つけることはありません。そうするためには、 + コード全体を実行する必要があるからです。 + + + PHP 8.3.0 より前のバージョンでは、 + 構文チェックできるファイルの数は一つだけでした。 + + このオプションは、オプション と共に使用することは @@ -696,7 +720,6 @@ array(370) { 標準入力を処理する前に実行する PHP コードを指定します。 - PHP 5 で追加されました。 @@ -706,7 +729,6 @@ array(370) { それぞれの入力行に対して実行する PHP コードを指定します。 - PHP 5 で追加されました。 このモードには 2 つの特別な変数 @@ -723,7 +745,6 @@ array(370) { 全ての入力行に対して実行する PHP ファイルを指定します。 - PHP 5 で追加されました。 @@ -733,7 +754,6 @@ array(370) { 入力を処理した後に実行する PHP コードを指定します。 - PHP 5 で追加されました。 とあるプロジェクトの行数をカウントするための @@ -755,7 +775,7 @@ Total Lines: 37328 <entry> <para> <link linkend="features.commandline.webserver">ビルトインウェブサーバー</link> - を開始させます。PHP 5.4.0 以降で利用可能です。 + を開始させます。 </para> </entry> </row> @@ -764,7 +784,7 @@ Total Lines: 37328 <entry>--docroot</entry> <entry> <link linkend="features.commandline.webserver">ビルトインウェブサーバー</link> - のドキュメントルートを指定します。PHP 5.4.0 以降で利用可能です。 + のドキュメントルートを指定します。 </entry> </row> <row> @@ -828,7 +848,7 @@ Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies <entry>--zend-extension</entry> <entry> <para> - Zend エクステンションをロードします。ファイル名のみが指定された場合、 + Zend 拡張モジュールをロードします。ファイル名のみが指定された場合、 PHP はこの拡張をカレントのシステムのデフォルトライブラリパスから ロードしようとします (Linux システムの場合は <filename>/etc/ld.so.conf</filename> で @@ -847,7 +867,6 @@ Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies <entry> <para> 設定ファイルの名前、設定ファイルを検索するディレクトリを表示します。 - PHP 5.2.3 以降で使用可能です。 <example> <title><literal>--ini</literal> の例 @@ -870,7 +889,6 @@ Additional .ini files parsed: (none) 指定した関数あるいはクラスメソッドについての情報 (たとえばパラメータの数と名前など) を表示します。 - PHP 5.1.2 以降で使用可能です。 このオプションは、PHP が @@ -902,7 +920,7 @@ Function [ public function var_dump ] { 指定したクラスについての情報 (定数、プロパティおよびメソッドの一覧) - を表示します。PHP 5.1.2 以降で使用可能です。 + を表示します。 このオプションは、PHP が @@ -953,7 +971,6 @@ Class [ class Directory ] { 指定した拡張モジュールについての情報 (&php.ini; オプション、 定義されている関数、定数およびクラスの一覧) を表示します。 - PHP 5.1.2 以降で使用可能です。 このオプションは、PHP が @@ -989,7 +1006,6 @@ Extension [ extension #19 json version 1.2.1 ] { 指定した Zend 拡張モジュールについての情報 (phpinfo が返す情報と同じもの) を表示します。 - PHP 5.4.0 以降で使用可能です。 @@ -1000,7 +1016,7 @@ Extension [ extension #19 json version 1.2.1 ] { 指定した拡張モジュールについての設定情報 (phpinfo が返す情報と同じもの) を表示します。 - PHP 5.2.2 以降で使用可能です。コア機能に関する設定情報は、 + コア機能に関する設定情報は、 "main" というモジュール名で取得できます。 @@ -1046,7 +1062,7 @@ date.sunrise_zenith => 90.583333 => 90.583333
PHP ファイルの実行 - Usage + PHP ファイルの実行 &cli.sapi; は、実行する PHP コードを @@ -1073,12 +1089,6 @@ $ php -f my_script.php .php で終わる必要がなく、任意の名前や拡張子を 使用することができます。 - - - スイッチを使用している時にスクリプトに引数を渡したい場合は、 - 最初の引数として -- を渡す必要があります。 - - @@ -1136,8 +1146,11 @@ $ some_application | some_filter | php | sort -u > final_output.txt コマンドラインからコールしたスクリプト名が含まれています。 コマンドラインスイッチ を使ってインラインでコードを実行した場合は、 - $argv[0] の値はダッシュ (-) - となることに注意しましょう。STDIN + $argv[0] の値は "Standard input code" + となることに注意しましょう。 + PHP 7.2.0 より前のバージョンでは、 + ダッシュ (-) でした。 + STDIN の内容をパイプ経由で実行した場合も同じです。 @@ -1300,7 +1313,7 @@ if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) { コマンドライン PHP スクリプトを実行するバッチファイル(script.bat) - + PHP のコマンドラインアプリケーションを拡張するために使用できるその他の関数については、 拡張モジュール - Readline に関するドキュメントも参照してください。 + Readline に関するドキュメントも参照ください。 Windows 環境で使用している場合、PHP の設定によって C:\php\php.exe や拡張子 .php - の指定を不要にすることもできます。Micosoft + の指定を不要にすることもできます。Micosoft Windows コマンドラインでの PHP を参照ください。 @@ -1447,12 +1460,12 @@ php -r 'fwrite(STDERR, "stderr\n");' 対話シェル - PHP 5.1.0 以降では、 オプションつきで PHP をコンパイルした場合に &cli.sapi; で対話シェルが使えるようになりました。 対話シェルは、 オプションで使うことができます。 PHP 7.1.0 以降では、readline エクステンション が有効であれば + linkend="book.readline">readline 拡張モジュール が有効であれば 対話シェルは Windows 上でも使用可能です。 @@ -1482,7 +1495,8 @@ php > 対話シェル上では、タブ補完機能を使って - 関数や定数、クラス名、変数名、静的なメソッドコール、そしてクラス定数を補完することができます。 + 関数や定数、クラス名、変数名、static メソッドの呼び出し、 + そしてクラス定数を補完することができます。 @@ -1517,14 +1531,16 @@ php > $foo[TAB]ThisIsAReallyLongVariableName - + 対話シェル上では操作履歴が保存され、上矢印キーと下矢印キーで履歴にアクセスすることができます。 履歴の保存先は ~/.php_history ファイルです。 - + PHP 8.4.0 以降では、環境変数 PHP_HISTFILE を使って + 履歴ファイルのパスを設定できます。 + - PHP 5.4.0 以降、&cli.sapi; に二つの新たな - &php.ini; 設定が追加されました。cli.pager と + &cli.sapi; では、二つの + &php.ini; 設定が使えます。cli.pagercli.prompt です。cli.pager は、外部のプログラム (less など) を出力のページャとして指定することができます。 @@ -1534,8 +1550,8 @@ php > $foo[TAB]ThisIsAReallyLongVariableName - また、PHP 5.4.0 以降では、対話シェルの中で - &php.ini; 項目を設定する際に短縮記法が使えるようにもなりました。 + また、対話シェルの中では、 + &php.ini; 項目を設定する際に短縮記法が使えます。 @@ -1631,12 +1647,36 @@ php > - +
+ インタラクティブモード - オートローディング - は、PHP を &cli; の対話モードで実行している場合は使用できません。 + PHP 8.1.0 より前のバージョンでは、readline 拡張モジュールが利用できない場合に、 + &cli.sapi; を + オプション付きで呼び出すとインタラクティブモードになっていました。 + このモードでは、 + 完全な PHP スクリプトを標準入力(STDIN)から与えなければいけません。 + スクリプトを入力後、 + + CTRL + D + + (POSIXの場合) や + + CTRL + Z + + の後に ENTER (Windows) + を続けると、その PHP スクリプトが評価されていました。 + &cli.sapi; を + なしで呼び出しても基本的に同じ動きをします。 - + + PHP 8.1.0 以降では、 + readline 拡張モジュールが利用できない場合、 + &cli.sapi; に + オプションを付けた呼び出しは失敗します。 + +
@@ -1654,7 +1694,7 @@ php > - PHP 5.4.0 から、&cli.sapi; にはウェブサーバーの機能が組み込まれるようになりました。 + &cli.sapi; にはウェブサーバーの機能が組み込まれています。 @@ -1683,94 +1723,79 @@ php > - 以下にあげる拡張子のファイルについては、標準の MIME タイプを返します。 - .3gp, - .apk, .avi, .bmp, .css, .csv, .doc, .docx, .flac, .gif, .gz, - .gzip, .htm, .html, .ics, .jpe, .jpeg, .jpg, .js, .kml, .kmz, - .m4a, .mov, .mp3, .mp4, .mpeg, .mpg, .odp, .ods, .odt, .oga, .ogg, - .ogv, .pdf, .pdf, .png, .pps, .pptx, .qt, .svg, .swf, .tar, .text, - .tif, .txt, .wav, .webm, .wmv, .xls, .xlsx, .xml, .xsl, .xsd, そして .zip. + 以下にあげる拡張子のファイルについては、標準の MIME タイプを返します: + + .3gp + .apk + .avi + .bmp + .css + .csv + .doc + .docx + .flac + .gif + .gz + .gzip + .htm + .html + .ics + .jpe + .jpeg + .jpg + .js + .kml + .kmz + .m4a + .mov + .mp3 + .mp4 + .mpeg + .mpg + .odp + .ods + .odt + .oga + .ogg + .ogv + .pdf + .png + .pps + .pptx + .qt + .svg + .swf + .tar + .text + .tif + .txt + .wav + .webm + .wmv + .xls + .xlsx + .xml + .xsl + .xsd + .zip + - - - 変更履歴: サポートする MIME タイプ (ファイル拡張子) - - - - &Version; - &Description; - - - - - 5.5.12 - - .xml, .xsl, および .xsd - - - - 5.5.7 - - .3gp, .apk, .avi, .bmp, .csv, .doc, .docx, .flac, .gz, .gzip, - .ics, .kml, .kmz, .m4a, .mp3, .mp4, .mpg, .mpeg, .mov, .odp, .ods, - .odt, .oga, .pdf, .pptx, .pps, .qt, .swf, .tar, .text, .tif, .wav, - .wmv, .xls, .xlsx, および .zip - - - - 5.5.5 - - .pdf - - - - 5.4.11 - - .ogg, .ogv, および .webm - - - - 5.4.4 - - .htm および .svg - - - - -
- - - - 変更履歴 - - - - &Version; - &Description; - - - - - 7.4.0 - - ビルトインウェブサーバに対して複数のリクエストを並列で投げる必要があるテストコードのために、 - 複数のワーカーをフォークさせるよう設定できるようになりました。 - サーバを起動する前に欲しいワーカーの数を PHP_CLI_SERVER_WORKERS 環境変数に設定してください。 - この機能は Windows ではサポートされていません。 - - - この機能は 実験的なもの であり、 - 本番環境で使うことを意図した機能では ありません。 - ビルトインウェブサーバは本番環境で使うものではありません。 - - - - - - -
- + + PHP 7.4.0 以降では、ビルトインウェブサーバーに対して複数のリクエストを並列で投げる必要があるテストコードのために、 + 複数のワーカーをフォークさせるよう設定できるようになりました。 + サーバーを起動する前に欲しいワーカーの数を PHP_CLI_SERVER_WORKERS 環境変数に設定してください。 + + + この機能は Windows ではサポートされていません。 + + + + この機能は 実験的なもの であり、 + 本番環境で使うことを意図した機能では ありません。 + ビルトインウェブサーバーは本番環境で使うものではありません。 + + ウェブサーバーの起動 @@ -1921,7 +1946,7 @@ $ php -S 0.0.0.0:8000
- ビルトインウェブサーバは、公開ネットワークで使うべきではありません。 + ビルトインウェブサーバーは、公開ネットワークで使うべきではありません。
@@ -1943,12 +1968,12 @@ $ php -S 0.0.0.0:8000 &Changelog; - + cli_server.color "0" - PHP_INI_ALL - PHP 5.4.0 以降で利用可能。 + INI_ALL + @@ -1962,7 +1987,7 @@ $ php -S 0.0.0.0:8000 cli_server.color - boolean + bool diff --git a/features/cookies.xml b/features/cookies.xml index 6de37017ce..8227344168 100644 --- a/features/cookies.xml +++ b/features/cookies.xml @@ -1,6 +1,6 @@ - + @@ -30,18 +30,10 @@ をクッキー名に加えてください。 - - 古いシステム (PHP 5.3 以前) では、 - register_globals - が有効になっているかもしれませんが、 - これは望ましくないセキュリティ上問題のある操作を引き起こす可能性があります。 - 仮に有効になっている場合、クッキーはグローバル変数として登録されます。 - - ちょっとした注意やブラウザのバグといった詳細に関しては、 setcookiesetrawcookie - を参照してください。 + を参照ください。 diff --git a/features/dtrace.xml b/features/dtrace.xml index 28ea9f8f89..21788773bd 100644 --- a/features/dtrace.xml +++ b/features/dtrace.xml @@ -1,580 +1,575 @@ - - - - - DTrace 動的トレーシング - - - PHP および DTrace への入門 - - - DTrace は、常に使用可能で、オーバーヘッドが少なく、 - Solaris、macOS、Oracle Linux および BSD を含む - 多数のプラットフォーム上で使用可能なトレーシング・フレームワークです。 - DTrace は、OS の挙動およびユーザー・プログラムの実行を追跡できます。 - それは、引数の値を表示したり、パフォーマンス統計を推定することに使用できます。 - プローブは、DTrace D スクリプト言語で書かれた - ユーザー作成のスクリプトによりモニターされます。 - これにより、データ・ポイントの効率的な分析が可能になります。 - - - - ユーザーの DTrace D スクリプトによりアクティブにモニターされていない - PHP プローブには計装化コードを含みません。 - それは、通常のアプリケーション実行中は、パフォーマンス低下がないからです。 - モニターされているプローブのオーバーヘッド負荷は、 - 一般的に作業中の本番システム上で DTrace をモニターしてもよいほど十分な低さです。 - - - - PHP は、ランタイムで駆動された - "User-level Statically Defined Tracing (USDT。ユーザーレベルの静的に定義されたトレーシング)" - プローブを組み入れます。 - 例えば、D スクリプトが PHP の function-entry プローブをモニター中の場合、 - PHP スクリプトの関数が呼ばれるたびにこのプローブは発射され、 - 関連付けられた D スクリプトの実行コードが実行されます。 - この実行コードは、例えば PHP 関数のソースファイルの場所のような、 - プローブの引数を印刷したり、 - 各関数が呼ばれる回数のようなデータを集計できるでしょう。 - - - - PHP USDT プローブの記述はここだけです。 - 任意の関数をトレースするために DTrace を使用する方法、 - および OS の挙動をトレースするための使用方法については、 - 外部の一般および OS 固有の DTrace の文献を参照ください。 - すべての DTrace の機能がすべての DTrace 実装で使用可能とは - 限らないことに注意してください。 - - - - DTrace 静的プローブは、PHP 5.4 で含まれます。 - これより前は、PECL 拡張モジュールを通じて使用可能でした。 - これは現在では廃止されました。 - - - - PHP での静的な DTrace プローブは、 - 一部の Linux ディストリビューションの SystemTap 機能に対して - 代わりに使用できます。 - - - - - PHP および DTrace の使用 - - DTrace 動的トレーシングをサポートするプラットフォームでは、 - DTrace 静的プローブ付きで PHP を構成できます。 - - - - DTrace 静的プローブのために PHP を構成 - - - OS の DTrace サポートを有効にするには、 - プラットフォーム固有の外部のドキュメントを参照してください。 - 例えば、Oracle Linux では UEK3 を起動して下記を行います。 - - - - - - - - chmod を使用する代わりに、 - デバイスのアクセスを特定のユーザーに制限するために - ACL パッケージ・ルールを使用できるでしょう。 - - - - --enable-dtrace 構成パラメータとともに PHP をビルドします。 - - - - - - - - これは、 コア PHP で静的プローブを有効にします。 - それら自身のプローブを提供するどの PHP 拡張モジュールも、 - 共用拡張モジュールとして別々にビルドするべきです。 - - - - - コア PHP の DTrace 静的プローブ - - PHP では、以下の静的プローブが使用できます - - - - プローブ名 - プローブの説明 - プローブの引数 - - - - - request-startup - リクエスト開始時に発射されます。 - char *file, char *request_uri, char *request_method - - - request-shutdown - リクエスト・シャットダウン時に発射されます。 - char *file, char *request_uri, char *request_method - - - compile-file-entry - スクリプトのコンパイル開始時に発射されます。 - char *compile_file, char *compile_file_translated - - - compile-file-return - スクリプトのコンパイル終了時に発射されます。 - char *compile_file, char *compile_file_translated - - - execute-entry - op コードの配列が実行される際に発射されます。 - 例えば、関数の呼び出し、インクルードおよびジェネレータ続行時に発射されます。 - char *request_file, int lineno - - - execute-return - op コードの配列の実行後に発射されます。 - char *request_file, int lineno - - - function-entry - PHP エンジンが、PHP の関数またはメソッドの呼び出しに入り込む際に発射されます。 - char *function_name, char *request_file, int lineno, char *classname, char *scope - - - function-return - PHP エンジンが、PHP の関数またはメソッドの呼び出しから戻る際に発射されます。 - char *function_name, char *request_file, int lineno, char *classname, char *scope - - - exception-thrown - 例外がスローされる際に発射されます。 - char *classname - - - exception-caught - 例外が捕捉される際に発射されます。 - char *classname - - - error - error_reporting レベルにかかわらず、 - エラー発生時に発射されます。 - char *errormsg, char *request_file, int lineno - - - -
- - PHP 拡張モジュールには、追加の静的プローブもあるかもしれません。 - -
- - - PHP の DTrace 静的プローブ一覧 - - 使用できるプローブを一覧表示するには、 - PHP プロセスを開始して以下のように実行します。 - - - - - - - - - 出力は以下のようになります。 - - - - - - - - - PROVIDER 列の値は、php および - 現在実行中の PHP プロセスのプロセス ID から構成されます。 - - - - Apache Web サーバーが実行中の場合、モジュール名は、例えば - libphp5.so かもしれません。 - そして、実行中の Apache プロセスごとに 1 つ、 - 一覧表の複数のブロックが存在するかもしれません。 - - - - FUNCTION 列は、各プロバイダが配置された PHP 内部の C 実装関数名を参照します。 - - - - PHP プロセスが実行されていない場合、PHP プローブは表示されません。 - - - - - PHP についての DTrace の例 - - この例では、DTrace の D スクリプト言語の基本を示します。 - - - DTrace を使用してすべての PHP 静的プローブをトレースするための<filename>all_probes.d</filename> - - - - - - - - - このスクリプトは、dtrace に対して - -Z オプションを使用します。 - それにより、実行中の PHP プロセスがない場合に実行できるようになります。 - もしこのオプションが書き落とされた場合、 - モニターされているプローブがどれも存在しないことがわかっているので、 - スクリプトは即座に終了します。 - - - - スクリプトは、PHP スクリプト実行中の期間全体にわたって、 - すべてのコア PHP 静的プローブ・ポイントをトレースします。 - D スクリプトを実行します。 - - - - - - - - - PHP スクリプトまたはアプリケーションを実行します。 - モニタリングの D スクリプトは、各プローブが発射されるたびに - その引数を出力します。 - - - - モニタリングが完了した際には、^Cを使用して - D スクリプトを終わらせることができます。 - - - - マルチ CPU マシンでは、プローブの順序は規則的に連続して表示されないことがあります。 - これは、どの CPU がプローブを処理し、 - CPU の間をスレッドがどのように移動したかに依存します。 - プローブのタイムスタンプを表示すると、 - 混乱を減らすことができます。 - その例です。 - - - - - - - - - - 関連項目 - - OCI8 および DTrace 動的トレーシング - - -
- - - PHP DTrace 静的プローブとともに SystemTap を使用 - - 一部の Linux ディストリビューションでは、 - PHP の静的な DTrace プローブをトレースするために - SystemTap トレーシング・ユーティリティを使用できます。 - これは、PHP 5.4.20 および PHP 5.5 で使用できます。 - - - - SystemTap とともに PHP をインストール - - - SystemTap SDT 開発パッケージをインストールします。 - - - - - - - - - DTrace プローブが有効化された状態で PHP をインストールします。 - - - - - - - - - - SystemTap による静的プローブ一覧 - - - stap を使用して PHP の静的プローブを一覧表示できます。 - - - - - - - - - この出力です。 - - - - - - - - - - PHP についての SystemTap の例 - - - - SystemTap を使用してすべての PHP 静的プローブをトレースするための<filename>all_probes.stp</filename> - - - - - - - 上記のスクリプトは、PHP スクリプト実行中の期間全体にわたって、 - すべてのコア PHP 静的プローブ・ポイントをトレースします。 - - - - - - - - -
- - + + + + + DTrace 動的トレーシング + + + PHP および DTrace への入門 + + + DTrace は、常に使用可能で、オーバーヘッドが少なく、 + Solaris、macOS、Oracle Linux および BSD を含む + 多数のプラットフォーム上で使用可能なトレーシング・フレームワークです。 + DTrace は、OS の挙動およびユーザー・プログラムの実行を追跡できます。 + それは、引数の値を表示したり、パフォーマンス統計を推定することに使用できます。 + プローブは、DTrace D スクリプト言語で書かれた + ユーザー作成のスクリプトによりモニターされます。 + これにより、データ・ポイントの効率的な分析が可能になります。 + + + + ユーザーの DTrace D スクリプトによりアクティブにモニターされていない + PHP プローブには計装化コードを含みません。 + それは、通常のアプリケーション実行中は、パフォーマンス低下がないからです。 + モニターされているプローブのオーバーヘッド負荷は、 + 一般的に作業中の本番システム上で DTrace をモニターしてもよいほど十分な低さです。 + + + + PHP は、ランタイムで駆動された + "User-level Statically Defined Tracing (USDT。ユーザーレベルの静的に定義されたトレーシング)" + プローブを組み入れます。 + 例えば、D スクリプトが PHP の function-entry プローブをモニター中の場合、 + PHP スクリプトの関数が呼ばれるたびにこのプローブは発射され、 + 関連付けられた D スクリプトの実行コードが実行されます。 + この実行コードは、例えば PHP 関数のソースファイルの場所のような、 + プローブの引数を印刷したり、 + 各関数が呼ばれる回数のようなデータを集計できるでしょう。 + + + + PHP USDT プローブの記述はここだけです。 + 任意の関数をトレースするために DTrace を使用する方法、 + および OS の挙動をトレースするための使用方法については、 + 外部の一般および OS 固有の DTrace の文献を参照ください。 + すべての DTrace の機能がすべての DTrace 実装で使用可能とは + 限らないことに注意してください。 + + + + PHP での静的な DTrace プローブは、 + 一部の Linux ディストリビューションの SystemTap 機能に対して + 代わりに使用できます。 + + + + + PHP および DTrace の使用 + + DTrace 動的トレーシングをサポートするプラットフォームでは、 + DTrace 静的プローブ付きで PHP を構成できます。 + + + + DTrace 静的プローブのために PHP を構成 + + + OS の DTrace サポートを有効にするには、 + プラットフォーム固有の外部のドキュメントを参照ください。 + 例えば、Oracle Linux では UEK3 を起動して下記を行います。 + + + + + + + + chmod を使用する代わりに、 + デバイスのアクセスを特定のユーザーに制限するために + ACL パッケージ・ルールを使用できるでしょう。 + + + + --enable-dtrace 構成パラメータとともに PHP をビルドします。 + + + + + + + + これは、 コア PHP で静的プローブを利用可能にします。 + それら自身のプローブを提供するどの PHP 拡張モジュールも、 + 共用拡張モジュールとして別々にビルドするべきです。 + + + 静的プローブを有効にするには、環境変数を対象となるPHPプロセスにセットします。 + + + + + コア PHP の DTrace 静的プローブ + + PHP では、以下の静的プローブが使用できます + + + + プローブ名 + プローブの説明 + プローブの引数 + + + + + request-startup + リクエスト開始時に発射されます。 + char *file, char *request_uri, char *request_method + + + request-shutdown + リクエスト・シャットダウン時に発射されます。 + char *file, char *request_uri, char *request_method + + + compile-file-entry + スクリプトのコンパイル開始時に発射されます。 + char *compile_file, char *compile_file_translated + + + compile-file-return + スクリプトのコンパイル終了時に発射されます。 + char *compile_file, char *compile_file_translated + + + execute-entry + op コードの配列が実行される際に発射されます。 + 例えば、関数の呼び出し、インクルードおよびジェネレータ続行時に発射されます。 + char *request_file, int lineno + + + execute-return + op コードの配列の実行後に発射されます。 + char *request_file, int lineno + + + function-entry + PHP エンジンが、PHP の関数またはメソッドの呼び出しに入り込む際に発射されます。 + char *function_name, char *request_file, int lineno, char *classname, char *scope + + + function-return + PHP エンジンが、PHP の関数またはメソッドの呼び出しから戻る際に発射されます。 + char *function_name, char *request_file, int lineno, char *classname, char *scope + + + exception-thrown + 例外がスローされる際に発射されます。 + char *classname + + + exception-caught + 例外が捕捉される際に発射されます。 + char *classname + + + error + error_reporting レベルにかかわらず、 + エラー発生時に発射されます。 + char *errormsg, char *request_file, int lineno + + + +
+ + PHP 拡張モジュールには、追加の静的プローブもあるかもしれません。 + +
+ + + PHP の DTrace 静的プローブ一覧 + + 使用できるプローブを一覧表示するには、 + PHP プロセスを開始して以下のように実行します。 + + + + + + + + + 出力は以下のようになります。 + + + + + + + + + PROVIDER 列の値は、php および + 現在実行中の PHP プロセスのプロセス ID から構成されます。 + + + + Apache Web サーバーが実行中の場合、モジュール名は、例えば + libphp5.so かもしれません。 + そして、実行中の Apache プロセスごとに 1 つ、 + 一覧表の複数のブロックが存在するかもしれません。 + + + + FUNCTION 列は、各プロバイダが配置された PHP 内部の C 実装関数名を参照します。 + + + + PHP プロセスが実行されていない場合、PHP プローブは表示されません。 + + + + + PHP についての DTrace の例 + + この例では、DTrace の D スクリプト言語の基本を示します。 + + + DTrace を使用してすべての PHP 静的プローブをトレースするための<filename>all_probes.d</filename> + + + + + + + + + このスクリプトは、dtrace に対して + -Z オプションを使用します。 + それにより、実行中の PHP プロセスがない場合に実行できるようになります。 + もしこのオプションが書き落とされた場合、 + モニターされているプローブがどれも存在しないことがわかっているので、 + スクリプトは即座に終了します。 + + + + スクリプトは、PHP スクリプト実行中の期間全体にわたって、 + すべてのコア PHP 静的プローブ・ポイントをトレースします。 + D スクリプトを実行します。 + + + + + + + + + PHP スクリプトまたはアプリケーションを実行します。 + モニタリングの D スクリプトは、各プローブが発射されるたびに + その引数を出力します。 + + + + モニタリングが完了した際には、CTRLC を使用して + D スクリプトを終わらせることができます。 + + + + マルチ CPU マシンでは、プローブの順序は規則的に連続して表示されないことがあります。 + これは、どの CPU がプローブを処理し、 + CPU の間をスレッドがどのように移動したかに依存します。 + プローブのタイムスタンプを表示すると、 + 混乱を減らすことができます。 + その例です。 + + + + + + + + + + &reftitle.seealso; + + OCI8 および DTrace 動的トレーシング + + +
+ + + PHP DTrace 静的プローブとともに SystemTap を使用 + + 一部の Linux ディストリビューションでは、 + PHP の静的な DTrace プローブをトレースするために + SystemTap トレーシング・ユーティリティを使用できます。 + これは、PHP 5.4.20 および PHP 5.5 で使用できます。 + + + + SystemTap とともに PHP をインストール + + + SystemTap SDT 開発パッケージをインストールします。 + + + + + + + + + DTrace プローブが有効化された状態で PHP をインストールします。 + + + + + + + + + + SystemTap による静的プローブ一覧 + + + stap を使用して PHP の静的プローブを一覧表示できます。 + + + + + + + + + この出力です。 + + + + + + + + + + PHP についての SystemTap の例 + + + + SystemTap を使用してすべての PHP 静的プローブをトレースするための<filename>all_probes.stp</filename> + + + + + + + 上記のスクリプトは、PHP スクリプト実行中の期間全体にわたって、 + すべてのコア PHP 静的プローブ・ポイントをトレースします。 + + + + + + + + +
+ + diff --git a/features/file-upload.xml b/features/file-upload.xml index 8608e08718..91132c5082 100644 --- a/features/file-upload.xml +++ b/features/file-upload.xml @@ -1,7 +1,7 @@ - - + + ファイルアップロードの処理 @@ -137,6 +137,17 @@
+ + $_FILES['userfile']['full_path'] + + + ブラウザからアップロードされたファイルのフルパス。 + この値は実際のディレクトリ構造を反映しているとは必ずしも言えないため、 + 信用できません。 + PHP 8.1.0 以降で利用可能です。 + + +
@@ -257,84 +268,13 @@ foreach ($_FILES["pictures"]["error"] as $key => $error) { エラーコードは、PHP によるファイルアップロードの間に生成され、 ファイル配列の['error'] 要素で アクセス可能です。言い換えると、エラーは、 - $_FILES['userfile']['error'] でアクセス可能でしょう。 + $_FILES['userfile']['error'] で見つかるかもしれません。 + + + このエラーコードは + UPLOAD_ERR_* + 定数のひとつです。 - - - - UPLOAD_ERR_OK - - - 値: 0; エラーはなく、ファイルアップロードは成功しています。 - - - - - UPLOAD_ERR_INI_SIZE - - - 値: 1; アップロードされたファイルは、&php.ini; の - upload_max_filesize - ディレクティブの値を超えています。 - - - - - UPLOAD_ERR_FORM_SIZE - - - 値: 2; アップロードされたファイルは、HTML フォームで指定された - MAX_FILE_SIZE を超えています。 - - - - - UPLOAD_ERR_PARTIAL - - - 値: 3; アップロードされたファイルは一部のみしかアップロードされていません。 - - - - - UPLOAD_ERR_NO_FILE - - - 値: 4; ファイルはアップロードされませんでした。 - - - - - UPLOAD_ERR_NO_TMP_DIR - - - 値: 6; テンポラリフォルダがありません。PHP 5.0.3 - で導入されました。 - - - - - UPLOAD_ERR_CANT_WRITE - - - 値: 7; ディスクへの書き込みに失敗しました。PHP 5.1.0 - で導入されました。 - - - - - UPLOAD_ERR_EXTENSION - - - 値: 8; PHP の拡張モジュールがファイルのアップロードを中止しました。 - どの拡張モジュールがファイルアップロードを中止させたのかを突き止めることはできません。 - 読み込まれている拡張モジュールの一覧を phpinfo で取得すれば参考になるでしょう。 - PHP 5.2.0 で導入されました。 - - - - - @@ -376,7 +316,7 @@ foreach ($_FILES["pictures"]["error"] as $key => $error) { は、スクリプトで入力を受け付けることができる最大秒数を設定します。 この秒数には、ファイルアップロードの時間も含まれます。 大きなファイルや複数のファイルをアップロードしたり接続に時間を要したりする場合は、 - デフォルト値の 60 seconds を増やしましょう。 + デフォルト値の 60 秒を増やしましょう。 @@ -386,7 +326,6 @@ foreach ($_FILES["pictures"]["error"] as $key => $error) { してください。 - PHP 5.2.12 以降、 max_file_uploads は一回のリクエストあたりでアップロードできるファイルの数の制限値となります。 この制限を超える数のファイルをアップロードしようとすると、制限に達した時点で @@ -399,12 +338,6 @@ foreach ($_FILES["pictures"]["error"] as $key => $error) { 処理するファイルを検証しない場合、ユーザーが他のディレクトリにある 非公開情報にアクセスできる可能性を生じます。 - - CERN httpd は、クライアントから得た - content-type MIME ヘッダにおいて最初が空白文字で始まるものを切り捨てるようですので注意してください。 - このような動作をする限り、CERN httpdは、 - ファイルアップロード機能をサポートしないでしょう。 - 大量のディレクトリ一覧のスタイルのせいで、 風変わりな名前(空白を含んでいるとか)のファイルを適切に扱えることは @@ -450,10 +383,6 @@ foreach ($_FILES["pictures"]["error"] as $key => $error) { $_FILES['userfile']['name'], $_FILES['userfile']['size'] が設定されます。 - register_globals が on の場合、 - アップロードファイルに関してグローバル変数も設定されます。 - これらの各々は、投稿されたファイルに - 関する適当な値を有する数値を添字とする配列となります。 例えば、ファイル名が /home/test/review.html @@ -475,13 +404,55 @@ foreach ($_FILES["pictures"]["error"] as $key => $error) { - PHP 5.2.12 以降、 max_file_uploads は一回のリクエストあたりでアップロードできるファイルの数の制限値となります。 フォームからの一回のリクエストで、 これを超える数のファイルをアップロードしてしまわないようにしましょう。 + + + ディレクトリ全体をアップロードする + + HTML のファイルアップロードフィールド中に、 + webkitdirectory 属性を指定することで + ディレクトリ全体をアップロードすることができます。 + この機能はほとんどのモダンなブラウザでサポートされています。 + + + full_path の情報を使うと、 + 相対パスを保存することもできますし、 + サーバー上で同じディレクトリを再構築することもできます。 + + + + Send this directory:
+ + + +]]> +
+
+ + + + webkitdirectory 属性は標準ではありませんし、 + 標準化の過程にも入っていません。 + この属性を Web 上の本番環境で使わないで下さい: + なぜなら、この属性を全ユーザーが使えるとは限らないからです。 + また、この属性はクライアントの実装に非互換がある可能性もありますし、 + 振る舞いが将来変更される可能性もあります。 + + + PHP は ブラウザ/ユーザーエージェントから送られてきた相対パスの情報をパースし、 + その情報を $_FILES 配列に渡すことだけを行います。 + full_path 配列中の値が、 + 実際のディレクトリ構造を含んでいるという保証はありません。 + よって、PHP アプリケーションはこの情報を信用してはいけません。 + + +
@@ -521,7 +492,7 @@ Script PUT /put.php これにより、この行を指定したコンテキストにマッチする URI を有する すべての PUT リクエストが put.php スクリプトに送られるよう Apache に - 指定します。 もちろん、拡張子 .php により PHP が実行されるよう設定され、 + 指定します。 もちろん、拡張子 .php により PHP が実行されるよう設定され、 PHP がアクティブであることが必要です。 このスクリプトに対するすべての PUT リクエストの対象リソースは、 スクリプト自身とします。アップロードされるファイルのファイル名ではありません。 diff --git a/features/gc.xml b/features/gc.xml index 2b07853aad..0ef9fb2442 100644 --- a/features/gc.xml +++ b/features/gc.xml @@ -1,6 +1,6 @@ - + ガベージコレクション @@ -10,15 +10,15 @@ - 参照カウント法の原理 + リファレンスカウントの原理 PHP 変数は「zval」と呼ばれるコンテナに保管されます。 zval コンテナには、変数の型と値の他に、情報の追加ビットを2つ含みます。 1つ目は「is_ref」と呼ばれ、変数が「参照集合」の一部かどうかを示すブール値 です。 このビットによって、通常の変数と参照を区別する方法を PHP エンジンが知ります。 - &演算子によって作成されるように、PHP ではユーザーランドを参照できるので、 - zval コンテナもメモリー使用状況を最適化するための内部的な参照カウント機構を + &演算子によって作成されるように、PHP ではユーザーランドで参照を使えるので、 + zval コンテナもメモリー使用状況を最適化するための内部的なリファレンスカウント機構を 持ちます。 追加情報の2つ目は「refcount」と呼ばれ、この1つの zval コンテナをどれだけ多くの 変数名(シンボルとも呼ばれます)が指すかを含みます。 @@ -46,11 +46,14 @@ $a = "new string"; 新しい変数コンテナが string 型と値 new string で作成されます。 「is_ref」ビットはデフォルトで &false; にセットされます。なぜなら、ユーザーランド - 参照が作成されないからです。 + 参照が作成されたことがないからです。 この変数コンテナを利用するシンボルが1つだけあるので、「refcount」は 1 に設定されます。 - 「refcount」が 1 ならば、is_ref が常に &false; である点に - 注意してください。 + 「refcount」を持つ参照 ("is_ref" ビットが &true; の場合) が + 1 の場合、 + 参照されていないかのように + (つまり、is_ref が常に &false; であったかのように) + 扱われる点に注意してください。 もし Xdebug をインストール済みなら、 xdebug_debug_zvalを呼ぶと、この情報を表示できます。 @@ -293,9 +296,9 @@ a: (refcount=2, is_ref=1)=array ( ちょうど前のように、変数をアンセットするとシンボルが除去されます。 - そして指す変数コンテナの参照カウントがアンセットにより減少します。 + そして指す変数コンテナのリファレンスカウントがアンセットにより減少します。 従って、上記のコードを実行した後に変数 $a をアンセットすると、 - $a と要素「1」を指す変数コンテナの参照カウントは、 + $a と要素「1」を指す変数コンテナのリファレンスカウントは、 アンセットにより「2」から「1」に減少します。これは次のように表現されます。 @@ -332,7 +335,7 @@ a: (refcount=2, is_ref=1)=array ( この状態は、「親」要素に再帰する「子」を持つ構文解析アルゴリズムなどの実装中に しばしば発生します。 もちろんオブジェクトでも同じ状態が起こり得ます。オブジェクトは常に暗黙のうちに - 参照によって使われるので、実はその状態がより起こりそうです。 + リファレンス によって使われるので、実はその状態がより起こりそうです。 これが 1、2 回起こるだけであるならば、これは問題でないかもしれません。しかし、 @@ -341,7 +344,7 @@ a: (refcount=2, is_ref=1)=array ( 実行中のスクリプトや、単体テストの大規模な集合で特に問題があります。 後者は、eZ コンポーネント・ライブラリのテンプレート・コンポーネントに対して 単体テストを実行中に問題を引き起こしました。 - いくらかの事例で、それは 2GB 以上のメモリを必要とします。そしてテストサーバーは全く + 事例によっては、2GB 以上のメモリが必要でしたが、テストサーバーは全く 持っていませんでした。 @@ -350,7 +353,7 @@ a: (refcount=2, is_ref=1)=array ( 循環の収集 - 伝統的に、PHP で以前使われていたような参照カウント法記憶機構では、 + 伝統的に、PHP で以前使われていたようなリファレンスカウント記憶機構では、 循環参照メモリ・リークに対処できません。 しかしながら、5.3.0 現在、PHP ではその問題に焦点を当てた Concurrent Cycle Collection in Reference Counted Systems @@ -364,9 +367,8 @@ a: (refcount=2, is_ref=1)=array ( refcount が減少して、ゼロに達したら、zvalは解放可能です。 refcount 引数がゼロ以外の値に減少する場合、これは、ガベージサイクルを作成できる だけであることを意味します。 - 第2に、ガベージサイクルで、それらの refcount を減少させられるかどうかチェック - することによって、どの部分がゴミか発見できます。 - 可能です、そして、zval のうちいずれがゼロの refcountを持つか調べます。 + 第2に、ガベージサイクルで、それらの refcount を減少させられるかどうかチェックし、 + それからzval のうちいずれがゼロの refcount を持つか調べることによって、どの部分がゴミか発見できます。 @@ -408,9 +410,9 @@ a: (refcount=2, is_ref=1)=array ( ガベージコレクタがオンの場合、 ルート・バッファが満杯になるといつでも、先に述べたように循環検出法が実行されます。 - ルート・バッファでは、可能性があるルートのサイズが一万件に固定されています。 + ルート・バッファでは、可能性があるルートのサイズが10000件に固定されています。 (PHP のソースコードの Zend/zend_gc.c で - GC_ROOT_BUFFER_MAX_ENTRIES 定数を変更して、PHP を再コンパイルすると変更できます) + GC_THRESHOLD_DEFAULT 定数を変更して、PHP を再コンパイルすると変更できます) ガベージコレクタをオフにすると、循環検出法は実行されなくなります。 しかしながら、可能性があるルートはルート・バッファに常に記録されます。 ガベージコレクション機構がこの構成設定値で起動したかどうかは問題ではありません。 @@ -487,6 +489,7 @@ a: (refcount=2, is_ref=1)=array ( class Foo { public $var = '3.14159265359'; + public $self; } $baseMemory = memory_get_usage(); @@ -548,6 +551,7 @@ for ( $i = 0; $i <= 100000; $i++ ) class Foo { public $var = '3.14159265359'; + public $self; } for ( $i = 0; $i <= 1000000; $i++ ) diff --git a/features/http-auth.xml b/features/http-auth.xml index 8076fe9c6d..417c5fe826 100644 --- a/features/http-auth.xml +++ b/features/http-auth.xml @@ -1,7 +1,7 @@ - - + + PHP による HTTP 認証 @@ -18,8 +18,7 @@ パスワード、認証型が代入された状態で呼ばれます。 定義済みの変数は、配列 $_SERVER でアクセス可能です。 - "Basic" 認証および "Digest" 認証 (PHP 5.1.0 以降) - の両者がサポートされています。詳細は、 + "Basic" 認証 のみ がサポートされています。詳細は、 headerを参照ください。 @@ -45,73 +44,6 @@ if (!isset($_SERVER['PHP_AUTH_USER'])) { - - - Digest HTTP 認証の例 - - この例は、シンプルな Digest HTTP 認証スクリプトをどの様に実装するか - を示しています。 - その他情報については、RFC 2617 - を読んでください。 - - - password -$users = array('admin' => 'mypass', 'guest' => 'guest'); - - -if (empty($_SERVER['PHP_AUTH_DIGEST'])) { - header('HTTP/1.1 401 Unauthorized'); - header('WWW-Authenticate: Digest realm="'.$realm. - '",qop="auth",nonce="'.uniqid().'",opaque="'.md5($realm).'"'); - - die('ユーザーがキャンセルボタンを押した時に送信されるテキスト'); -} - - -// PHP_AUTH_DIGEST 変数を精査する -if (!($data = http_digest_parse($_SERVER['PHP_AUTH_DIGEST'])) || - !isset($users[$data['username']])) - die('誤った証明書です!'); - - -// 有効なレスポンスを生成する -$A1 = md5($data['username'] . ':' . $realm . ':' . $users[$data['username']]); -$A2 = md5($_SERVER['REQUEST_METHOD'].':'.$data['uri']); -$valid_response = md5($A1.':'.$data['nonce'].':'.$data['nc'].':'.$data['cnonce'].':'.$data['qop'].':'.$A2); - -if ($data['response'] != $valid_response) - die('誤った証明書です!'); - -// OK, 有効なユーザー名とパスワードだ -echo 'あなたは次のユーザーとしてログインしています: ' . $data['username']; - -// http auth ヘッダをパースする関数 -function http_digest_parse($txt) -{ - // データが失われている場合への対応 - $needed_parts = array('nonce'=>1, 'nc'=>1, 'cnonce'=>1, 'qop'=>1, 'username'=>1, 'uri'=>1, 'response'=>1); - $data = array(); - $keys = implode('|', array_keys($needed_parts)); - - preg_match_all('@(' . $keys . ')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@', $txt, $matches, PREG_SET_ORDER); - - foreach ($matches as $m) { - $data[$m[1]] = $m[3] ? $m[3] : $m[4]; - unset($needed_parts[$m[1]]); - } - - return $needed_parts ? false : $data; -} -?> -]]> - - - - 互換性に関する注意 @@ -121,7 +53,7 @@ function http_digest_parse($txt) 二重引用符で括る必要があります。また、HTTP/1.0 401 ヘッダ行のコード 401 の前には、 1つだけ空白を置く必要があります。 - 認証パラメータは、上のダイジェスト認証の例にあるように + 認証パラメータは、 カンマ区切りで指定しなければなりません。 @@ -141,16 +73,6 @@ function http_digest_parse($txt) WWW-Authenticate ヘッダを送るのが効果があるようです。 - - 誰かが従来の外部機構による認証を行ってきたページの - パスワードを暴くようなスクリプトを書くことを防ぐために、 - 特定のページに関して外部認証が可能でかつ &safemode; が有効の場合、 - PHP_AUTH 変数はセットされません。 - この場合、外部認証されたユーザーかどうかを確認するために - REMOTE_USER 変数、すなわち、 - $_SERVER['REMOTE_USER'] を使用することができます。 - - 設定上の注意 @@ -223,14 +145,6 @@ if (!isset($_SERVER['PHP_AUTH_USER']) || - - - セーフモード が有効の場合、 - WWW-Authenticateヘッダの - realm部にスクリプトの uid が追加されます。 - - - - - - - 持続的データベース接続 + + + 持続的データベース接続 + + 持続的データベース接続って何? 持続的接続は、スクリプトの実行終了時にも閉じられないリンクです。 - 持続的接続が要求された時、PHPは(前もってオープンされたままになって - いる)同じ持続的接続が既にオープンされていないかどうかを確認します。 - そして、存在する場合には、それを使用します。存在しない場合には、そ - のリンクを作成します。'同じ'接続とは、同じホスト、同じユーザー名、 - 同じパスワード(利用可能な場合)でオープンされた接続のことを意味しま - す。 - - - Webサーバーの動作及び負荷の分散に関して熟知していない人は、持続的接 - 続において何が行われないかに関してミスを犯す可能性があります。特に、 - 持続的接続は、同じリンクで'ユーザーセッション'をオープンする機能 - やトランザクションを効率的に確立する機能やその他のあらゆる機能を提 - 供しません。つまり、言いたいことを極めて簡単に述べると、持続的接続 - は非持続的接続で使用できない いかなる 機能も提 - 供しません。 - - - なぜ? - - - これは、Webサーバーの動作により行われるべきものです。Webページを生 - 成するためにPHPを利用するWebサーバーには、3種類の方法があります。 - - - 最初は、CGI "ラッパー"としてPHPを使用する方法です。このように実行し - た場合、PHPインタプリタのインスタンスは、Webサーバーに(PHPページに - 関する)ページがリクエストされる度に生成され、破棄されます。リクエス - ト毎に破棄されるために、(SQLデータベースサーバーへのリンクのような) - 必要な全てのリソースは破棄される際にクローズされます。この場合、持 - 続的接続を使用することから得るものは何もありません。持続的接続は持 - 続しないのです。 - - - 2番目は、最も一般的ですが、PHPをマルチプロセスWebサーバー(現在は - Apacheのみが含まれます)のモジュールとして実行する方法です。マルチプ - ロセスサーバーは、通常、実際にWebページを送信する複数のプロセス(子) - を管理するプロセス(親)を有しています。リクエストがクライアントから - 来ると、親プロセスは、他のクライアントにすでに送信を行っていないク - ライアントの一つに渡します。このため、同じクライアントが2番目のリク - エストをサーバーに送信した際に最初のではなく他の子プロセスにより送 - 信が行われる可能性があります。 - 持続的接続がオープンされているとき、SQL サービスにリクエストを行う - それぞれのページは SQL サーバーへの確立された接続を再利用することが - できます。 - - - 最後の方法は、PHPをマルチスレッドWebサーバーのプラグインとして使用する - 方法です。現在、PHP 4 は、ISAPI, WSAPI, NSAPI を(Windows上で)サポー - トしており、Netscape FastTrack、Microsoftの Internet Information - Server (IIS)、O'Reillyの WebSite Proのようなマルチスレッド型サーバー - のプラグインとしてPHPを使用することが可能です。この場合の動作は前記 - のマルチプロセス型モデルと同様です。 - - - 持続的接続が機能を全く付加しないとしたら、優れている点はなんでしょう? - - - 答えはかなり簡単です。効率です。持続的接続は、SQLサーバーへ接続する - オーバーヘッドが大きい場合には有効です。このオーバーヘッドが実際に - 大きいがどうかは様々な要因に依存します。例えば、データベースの種類、 - Webサーバーが動作するのと同じコンピューターで動作しているか、SQLサー - バーを動作させているマシンの負荷、等となります。肝心なのは、接続の - オーバーヘッドが高い場合、持続的接続は著しいということです。持続的 - 接続は、SQLサーバーへの接続を要求するページをリクエスト毎に処理する - 代わりに子プロセスが動作中の間一回しかサーバーへの接続を行わないよ - うにします。このことは、持続的接続をオープンしたプロセス毎にサーバー - への持続的接続をオープンするということになります。例えば、20の異なっ - た子プロセスがSQLサーバーへの持続的接続を行うスクリプトを実行した場 - 合、各子プロセス毎にSQLサーバーへの20の異なった接続が行われます。 - - - しかし、気をつけなければならないことが一つあります。それはデータ - ベースへの接続数を制限して使用している場合に、持続的な子プロセスの - 接続数がその数を超えると問題が発生し得ることです。もしデータベース - の同時接続数の制限が16だとして、サーバーに多くのアクセスがあったため - 17個の子プロセスが接続しようとするとそのうちの一つは接続に失敗しま - す。もしスクリプトにコネクションをシャットダウンしないようなバグ( - 例えば無限ループ)があると16程度の同時接続しか許容しないデータベース - はすぐにダメになってしまいます。使用しているデータベースが、中断さ - れた、もしくは使用されていないコネクションをどのように扱うかを確認 - してみてください。 - - - - 持続的接続を使用する際にはまだいくつか心に留めておく必要がある注意 - 点があります。一つは持続的接続でテーブルをロックする場合にスクリプト - が何らかの理由でロックを外し損ねると、それ以降に実行されるスクリプト - がその接続を使用すると永久にブロックしつづけてしまい、ウェブサーバーか - データベースサーバーを再起動しなければならなくなるということです。もう - 一つはトランザクションを使用している場合に、トランザクションブロック - が終了する前にスクリプトが終了してしまうと、そのブロックは次に同じ接 - 続を使用して実行されるスクリプトに引き継がれる、ということです。 - どちらの場合でも - register_shutdown_functionを使用してテーブルの - ロックを解除したりトランザクションをロールバックする簡単なクリーン - アップ関数を登録することができます。しかしそれよりも良い方法は、テー - ブルロックやトランザクションを使用するスクリプトでは持続的接続を使用 - せず、問題を完全に避けて通ることです(他の箇所で使用する分には問題あ - りません)。 - - - - 重要なことをまとめます。持続的接続は、標準的な接続に1対1の割りつけ - を行うように設計されています。このことは、常に - 持続的接続を非持続的接続で置きかえ、かつ動作を変更しないということ - ができることを意味します。持続的接続は、スクリプトの効率を変える - かもしれません(おそらく変えます)が、動作は変更しません! - - - fbsql_pconnect, - ibase_pconnect, ifx_pconnect, - ingres_pconnect, - msql_pconnect, mssql_pconnect, - mysql_pconnect, ociplogon, - odbc_pconnect, oci_pconnect, - pfsockopen, pg_pconnect, - sybase_pconnectも参照してください。 - + 持続的接続が要求された時、 + PHP は(前もってオープンされたままになっている) + 同じ持続的接続が既にオープンされていないかどうかを確認します。 + そして、存在する場合には、それを使用します。存在しない場合には、 + そのリンクを作成します。'同じ'接続とは、同じホスト、同じユーザー名、 + 同じパスワード(利用可能な場合)でオープンされた接続のことを意味します。 + + + 特定の接続を要求する方法はありませんし、 + 既存の接続と新しい接続のどちらを取得できるかを保証する方法もありません。 + (すべての接続が使用中の場合や、 + リクエストが別の接続プールを持つ、 + 別のワーカーによって処理される場合があります) + + + つまり、PHP の持続的接続が使えない場合があるということです。 + たとえば以下の場合です: + + + 特定のデータベースセッションを、特定のWebユーザーに割り当てる場合 + 複数のリクエストにまたがる、巨大なトランザクションを生成する場合 + あるリクエストでクエリを発行し、クエリの結果を別のリクエストで収集する場合 + + + 持続的接続は、 + 持続的でない接続にできない機能は 全く + 提供しません。 + + + + + Webリクエスト + + Webサーバーを PHP と統合し、Webページを生成させる方法はふたつあります: + + + 最初は、CGI "ラッパー"としてPHPを使用する方法です。このように実行した場合、 + PHP インタプリタのインスタンスは、Webサーバーに(PHPページに関する) + ページがリクエストされる度に生成され、破棄されます。 + リクエスト毎に破棄されるために、(SQLデータベースサーバーへのリンクのような) + 必要な全てのリソースは破棄される際にクローズされます。この場合、 + 持続的接続を使用することから得るものは何もありません。 + 持続的接続は持続しないのです。 + + + 2番目は、最も一般的ですが、PHP を PHP-FPM か、 + マルチプロセスWebサーバー(現在はApacheのみが含まれます)のモジュールとして実行する方法です。 + マルチプロセスサーバーは、通常、 + 実際にWebページを送信する複数のプロセス(子)を管理するプロセス(親)を有しています。 + リクエストがクライアントから来ると、 + 親プロセスは、 + 他のクライアントにすでに送信を行っていないクライアントの一つに渡します。 + このため、 + 同じクライアントが2番目のリクエストをサーバーに送信した際に最初のではなく他の子プロセスにより送信が行われる可能性があります。 + 持続的接続がオープンされているとき、 + SQL サービスにリクエストを行うそれぞれのページは、 + SQL サーバーへの確立された接続を再利用することができます。 + + + + Webリクエスト で使用されているメソッドを確認するには、 + phpinfo の出力における "Server API" の値、 + または Webリクエスト から実行した PHP_SAPI + の値を確認してください。 + + + サーバーAPI が "Apache 2 Handler" や "FPM/FastCGI" の場合、 + 持続的接続は同じワーカーで処理されるリクエスト間で使われます。 + これら以外の値の場合、 + 持続的接続はそれぞれのリクエストを処理したあとは持続しません。 + + + + + + コマンドラインのプロセス + + コマンドラインから実行する PHP は、 + スクリプトごとに新しいプロセスを使います。 + 持続的接続は、コマンドラインから実行するスクリプト間では共有されません。 + よって、cron やコマンドからのような一時的なスクリプトから、 + 持続的接続を使ってもなんの役にも立ちません。 + とはいっても、役に立つ場面はあるかもしれません。 + たとえば、たくさんのリクエストや、 + 個別のタスクがそれぞれのデータベース接続を必要とする多数のタスクを処理する + アプリケーションサーバーを書いている場合が挙げられます。 + + + + + 持続的接続をなぜ使うのか? + + 持続的接続は、SQLサーバーへ接続するオーバーヘッドが大きい場合には有効です。 + このオーバーヘッドが実際に大きいがどうかは様々な要因に依存します。 + 例えば、データベースの種類、 + Webサーバーが動作するのと同じコンピューターで動作しているか、 + SQLサーバーを動作させているマシンの負荷、等となります。 + 肝心なのは、接続のオーバーヘッドが高い場合、 + 持続的接続は著しく効果があるということです。 + 持続的接続は、 + SQLサーバーへの接続を要求するページをリクエスト毎に処理する代わりに、 + 子プロセスが動作中の間一回しかサーバーへの接続を行わないようにします。 + このことは、 + 持続的接続をオープンしたプロセス毎に、 + サーバーへの持続的接続をオープンするということになります。 + 例えば、 + 20の異なった子プロセスがSQLサーバーへの持続的接続を行うスクリプトを実行した場合、 + 各子プロセス毎にSQLサーバーへの20の異なった接続が行われます。 + + + + + ありうる欠点: 接続数の上限 + + しかし、データベースへの接続数を制限して使用している場合に、 + 持続的な子プロセスの接続数がその数を超える場合は、 + 持続的接続には気をつけたほうが良い欠点がいくつかあります。 + もしデータベースの同時接続数の制限が16だとして、 + サーバーに多くのアクセスがあったため、 + 17個の子プロセスが接続しようとするとそのうちの一つは接続に失敗します。 + もしスクリプトにコネクションをシャットダウンしないようなバグ(例えば無限ループ)があると、 + 16程度の同時接続しか許容しないデータベースはすぐにダメになってしまいます。 + + + 持続的接続は通常、特定の時点で開く接続数を増加させます。 + これはアイドル状態のワーカーが、 + 以前処理したリクエスト用の接続を保持し続けるためです。 + リクエストの急増に対応するために多数のワーカーが起動された場合、 + それらのワーカーが開いた接続は、 + ワーカーが終了するかデータベースサーバーが接続を閉じるまで残ります。 + + + データベースサーバーが許可する最大接続数が、 + Webリクエストワーカーの最大数(それに cronジョブや、 + 管理接続などのその他の使用分を加えた数)よりも大きいことを確認してください。 + + + 放棄された接続や、アイドル状態の接続(タイムアウト)の処理方法について、 + データベースのドキュメントで確認してください。 + タイムアウトを長く設定すると、 + 同時に開かれる持続的接続の数が大幅に増加する可能性があります。 + + + + + ありうる欠点: 接続の状態管理 + + 一部のデータベース拡張モジュールは、 + 接続が再利用される際にクリーンアップを自動的に実行します。 + このクリーンアップのタスクを、 + アプリケーション開発者の裁量に委ねる拡張モジュールもあります。 + 選択したデータベース拡張モジュールとアプリケーション設計によっては、 + スクリプト終了前に手動でのクリーンアップが必要になる場合があります。 + 接続を予期しない状態に陥らせる可能性のある変更には以下が含まれます: + + + データベースの選択 / デフォルトのデータベース + テーブルロック + 未コミットのトランザクション + 一時テーブル + プロファイリングのような、特定の設定や機能を有効にした接続 + + + クリーンアップが行われていない、 + または閉じられていないテーブルロックやトランザクションは、 + 他のクエリが無限にブロックされる原因となるほか、 + その後の接続の再利用によって予期しない変更が生じる可能性があります。 + + + 誤ったデータベースが選択されている場合、 + その後の接続の再利用ではクエリが期待通りに実行できなくなります + (スキーマが十分に類似している場合、 + 誤ったデータベース上でクエリが実行される可能性があります)。 + + + 一時テーブルがクリーンアップされない場合、 + 後続のリクエストでは同じテーブルを再作成できません。 + + + クリーンアップは、クラスのデストラクタまたは + register_shutdown_functionを使用して実装できます。 + また、クリーンアップの機能を組み込んだ、 + 専用の接続プールプロキシの使用も検討するとよいでしょう。 + + + + + おわりに + + 既に述べた持続的接続の振る舞いと、あり得る欠点を考慮すると、 + 持続的接続を使う場合は、必ず慎重に検討を行うべきです。 + 持続的接続を使う場合は、 + アプリケーションを追加で変更し、 + データベースサーバーとWebサーバーおよび/またはPHP-FPMを慎重に設定すべきです。 + + + サーバーへ接続するオーバーヘッドの原因を調査・修正する別の代替案 + (例:データベースサーバーへのDNS逆引きの無効化)や、 + 専用の接続プールプロキシを検討してください。 + + + 高トラフィックのWeb APIについては、代替のランタイムや、 + 長時間実行可能なアプリケーションサーバーの使用を検討してください。 + + - + + &reftitle.seealso; + + ibase_pconnect + oci_pconnect + odbc_pconnect + pfsockopen + pg_connect + MySQLi and Persistent Connections + PDO Connection Management + + + diff --git a/features/remote-files.xml b/features/remote-files.xml index 3fbcf504bf..4aefcc893f 100644 --- a/features/remote-files.xml +++ b/features/remote-files.xml @@ -1,6 +1,6 @@ - + リモートファイルの使用 @@ -14,10 +14,10 @@ require および require_once 命令でURLを使用することができます - (PHP 5.2.0 以降では、これらで使用するためには + (これらで使用するためには を有効にする必要があります)。 PHPがサポートしているプロトコルに関する詳細は - を参照してください。 + を参照ください。 例えば、リモートWebサーバーにファイルをオープンし、データを出力、デー diff --git a/features/safe-mode.xml b/features/safe-mode.xml deleted file mode 100644 index 28b15d871d..0000000000 --- a/features/safe-mode.xml +++ /dev/null @@ -1,620 +0,0 @@ - - - - - - セーフモード - - - PHP のセーフモードは、共有サーバーでのセキュリティの問題を解決するための試みです。 - この問題を PHP のレベルで解決しようとするのはアーキテクチャ上正しくありません。 - しかし、Web サーバーや OS レベルでの代替策はあまり現実的ではないため、 - 多くのユーザー、特に ISP ではセーフモードが現在使用されています。 - - - &warn.deprecated.feature-5-3-0.removed-5-4-0; - - - - <literal>セーフモード</literal>の変更履歴 - - - - &Version; - &Description; - - - - - 5.4.0 - - PHP から削除され、E_CORE_ERROR - レベルのエラーが発生するようになりました。 - - - - 5.3.0 - - 非推奨となり、E_DEPRECATED エラーが発生するようになりました。 - - - - -
-
- - - セキュリティとセーフモード - - - セキュリティとセーフモード設定ディレクティブ - - - - &Name; - &Default; - &Changeable; - &Changelog; - - - - - safe_mode - "0" - PHP_INI_SYSTEM - PHP 5.4.0 で削除されました。 - - - safe_mode_gid - "0" - PHP_INI_SYSTEM - PHP 5.4.0 で削除されました。 - - - safe_mode_include_dir - NULL - PHP_INI_SYSTEM - PHP 5.4.0 で削除されました。 - - - safe_mode_exec_dir - "" - PHP_INI_SYSTEM - PHP 5.4.0 で削除されました。 - - - safe_mode_allowed_env_vars - "PHP_" - PHP_INI_SYSTEM - PHP 5.4.0 で削除されました。 - - - safe_mode_protected_env_vars - "LD_LIBRARY_PATH" - PHP_INI_SYSTEM - PHP 5.4.0 で削除されました。 - - - -
- &ini.php.constants; -
- - &ini.descriptions.title; - - - セーフモードの設定ディレクティブの簡単な説明を以下に示します。 - - - - safe_mode - boolean - - - - セーフモードを有効にするか否か。 - PHP が --enable-safe-mode でコンパイルされている場合のデフォルトは - On、そうでないときのデフォルトは Off です。 - - &warn.deprecated.feature-5-3-0.removed-5-4-0; - - - - - safe_mode_gid - boolean - - - - デフォルトでは、セーフモードはオープンしようとするファイルの - UIDの比較チェックを行います。GIDの比較にすることでこのチェックを - 緩やかなものにしたい場合、safe_mode_gidをオンにしてください。 - ファイルにアクセスする際にUID (&false;)を使用するか - GID (&true;)を使用するか制御できます。 - - - - - - safe_mode_include_dir - string - - - - このディレクトリ(そのサブディレクトリも含む)の配下のファイルが - インクルードされる場合、UID/GID - のチェックはバイパスされます。(ディレクトリは - include_pathの配下であるか - あるいはフルパスで記述される必要があります) - - - このディレクティブは - include_pathと同様に - コロン(Windowsではセミコロン)で分けた形式で複数のパスを書くことができます。 - - - ここで指定される制限は実はプレフィックスでありディレクトリ名ではありません。 - つまり、"safe_mode_include_dir = /dir/incl" と書くと - "/dir/include" と "/dir/incls" - の両方へのアクセスが許可されます(もしディレクトリが存在すれば)。 - 指定したディレクトリのみを許可したい場合には、最後にスラッシュを追加してください。 - 例:"safe_mode_include_dir = /dir/incl/" - - - ディレクティブの値が空の場合、 - 異なる UID/GID を持つファイルを - インクルードすることはできません。 - - - - - - safe_mode_exec_dir - string - - - - PHPがセーフモードで動作する場合、systemや - その他のプログラム実行関数を、 - このディレクトリ以外で起動することは拒否されます。 - Windowsを含む全ての環境において - ディレクトリのセパレータとして/を使用する必要があります。 - - - - - - safe_mode_allowed_env_vars - string - - - - ある種の環境変数の設定はセキュリティ上の潜在的な欠陥となりえます。 - このディレクティブにはプレフィックスをカンマで区切って書くことができます。 - セーフモードでは、ここに書かれたプレフィックスで始まる環境変数だけを - ユーザーが変更できるようになります。デフォルトでは、ユーザーは - PHP_ で始まる名前の環境変数 - (PHP_FOO=BAR など) だけをセットすることができます。 - - - - このディレクティブが空の場合、PHPは全ての環境変数について - ユーザーが変更することを許可してしまいます。 - - - - - - - safe_mode_protected_env_vars - string - - - - putenvを使ってエンドユーザーが変更するのを - 防ぎたい環境変数をカンマ区切りで記述します。ここで設定された環境変数は - もしもsafe_mode_allowed_env_varsでは許可されているものであっても - 保護されます。 - - - - - - - open_basedir, - disable_functions, - disable_classes, - register_globals, - display_errors, - log_errorsも参照してください。 - - - - セーフモードがonの場合、PHPは、 - 現在のスクリプトの所有者がファイル関数により処理されているファイルまたはディレクトリ - の所有者に一致するかどうかを調べます。例えば、 - - - - script.php を実行すると、 - - -]]> - - セーフモードが有効な場合、以下のようなエラーが出力されます。 - - - - - - UID checking. - しかし、多くの環境において、厳密なUIDチェックは - 適切ではなく、より緩やかなGIDチェックで十分です。 - これはsafe_mode_gidスイッチで - サポートされます。これをOnにすると制限の緩い - GIDチェックに、Off(デフォルト) - にするとUIDチェックになります。 - - - safe_modeの代わりに、 - open_basedirディレクトリを - セットすると、全てのファイル操作は特定のディレクトリ配下のみに制限されます。 - 例えば(Apacheのhttpd.confの例): - - - php_admin_value open_basedir /docroot - -]]> - - open_basedirでセットしたのと - 同じ script.php を実行すると、以下のような結果になります: - - - - - - 特定の関数を無効にすることもできます。 - disable_functionsディレクティブは - &php.ini;以外では使用できないことに注意してください。 - つまり、&httpd.conf;上のバーチャルホスト毎あるいはディレクトリ毎に - 関数を無効にすることはできない、ということになります。 - もし&php.ini;ファイルに以下を追加した場合: - - - - 以下のような結果になります: - - - - - - - もちろん、これらの PHP の制限はバイナリを実行した場合は有効になりません。 - - -
- - - セーフモードにより制限を受けるか無効となる関数 - - safe-modeにより制限される - 関数のリストを示します。ただし、まだ、不完全で、不正確である可能性 - があります。 - - - セーフモードで制限される関数 - - - - 関数 - 制限 - - - - - dbmopen - &sm.uidcheck; - - - dbase_open - &sm.uidcheck; - - - filepro - &sm.uidcheck; - - - filepro_rowcount - &sm.uidcheck; - - - filepro_retrieve - &sm.uidcheck; - - - ifx_* - sql_safe_mode restrictions, (!= safe mode) - - - - ingres_* - sql_safe_mode restrictions, (!= safe mode) - - - - mysql_* - sql_safe_mode restrictions, (!= safe mode) - - - - pg_lo_import - &sm.uidcheck; - - - - posix_mkfifo - &sm.uidcheck.dir; - - - putenv - - iniディレクティブのsafe_mode_protected_env_vars および - safe_mode_allowed_env_varsに依存します。 - putenvのドキュメントも参照ください。 - - - - - move_uploaded_file - &sm.uidcheck; - - - - - - chdir - &sm.uidcheck.dir; - - - dl - &sm.disabled; - - - backtick operator - &sm.disabled; - - - shell_exec (functional equivalent - of backticks) - &sm.disabled; - - - exec - - safe_mode_exec_dir - の中でのみ実行可能です。現実的な理由により、現在、実行パスに - ..を含めることは許可されていません。 - escapeshellcmdはこの関数の引数にたいして - 実行できます。 - - - - system - - safe_mode_exec_dir - の中でのみ実行可能です。現実的な理由により、現在、実行パスに - ..を含めることは許可されていません。 - escapeshellcmdはこの関数の引数にたいして - 実行できます。 - - - - passthru - - safe_mode_exec_dir - の中でのみ実行可能です。現実的な理由により、現在、実行パスに - ..を含めることは許可されていません。 - escapeshellcmdはこの関数の引数にたいして - 実行できます。 - - - - popen - - safe_mode_exec_dir - の中でのみ実行可能です。現実的な理由により、現在、実行パスに - ..を含めることは許可されていません。 - escapeshellcmdはこの関数の引数にたいして - 実行できます。 - - - - - fopen - &sm.uidcheck.dir; - - - mkdir - &sm.uidcheck.dir; - - - rmdir - &sm.uidcheck.dir; - - - rename - &sm.uidcheck; &sm.uidcheck.dir; - - - unlink - &sm.uidcheck; &sm.uidcheck.dir; - - - copy - &sm.uidcheck; &sm.uidcheck.dir; ( - sourceおよび - targetにおいて) - - - chgrp - &sm.uidcheck; - - - chown - &sm.uidcheck; - - - chmod - - &sm.uidcheck; 加えて、SUID, SGID, スティキービットを設定する - ことはできません - - - - touch - &sm.uidcheck; &sm.uidcheck.dir; - - - symlink - &sm.uidcheck; &sm.uidcheck.dir; (注意: ターゲットのみが - 確認されます) - - - link - &sm.uidcheck; &sm.uidcheck.dir; (注意: ターゲットのみが - 確認されます) - - - apache_request_headers - - セーフモードでは、authorization で始まるヘッダ(大文字小文字は - 区別されません)は返されません。 - - - - header - - セーフモードでは、WWW-Authenticate - (HTTP認証)ヘッダをセットする場合に - realmパートに - スクリプトのUIDがセットされます。 - - - - PHP_AUTH variables - - セーフモードでは、PHP_AUTH_USER, - PHP_AUTH_PW, AUTH_TYPEは - $_SERVERに含まれません。 - にも関わらず、USERにREMOTE_USERを使うことは未だ可能です。 - (PHP4.3.0以降でのみ影響) - - - - - highlight_file, - show_source - - - &sm.uidcheck; &sm.uidcheck.dir; - - - - - parse_ini_file - - - &sm.uidcheck; &sm.uidcheck.dir; - - - - - set_time_limit - - - PHPが&safemode;で実行されている場合は影響を受けません。 - - - - - max_execution_time - - - PHPが&safemode;で実行されている場合は影響を受けません。 - - - - - mail - - - セーフモードでは、5番目のパラメータが無効となります。 - - - - - session_start - - - デフォルトの files session.save_handler - を使う場合は、スクリプトのオーナーが session.save_path - ディレクトリのオーナーと同じでなければなりません。 - - - - - すべてのファイルシステム関数およびストリーム関数 - - - &sm.uidcheck; &sm.uidcheck.dir; (&php.ini; オプション safe_mode_include_dir - を参照ください)。 - - - - -
-
-
- -
- - diff --git a/features/xforms.xml b/features/xforms.xml deleted file mode 100644 index aa2a137311..0000000000 --- a/features/xforms.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - XFormsの処理 - - XForms は、従来のWebフォームから - 派生したもので、広範なプラットフォームやブラウザそしてPDFドキュメントのような - 従来のメディア以外のものにすら使用することができます。 - - - xformsのまず第一の違いは、クライアントへフォームを送信する方法です。 - HTML作成者のためのXForms - には、XFormsの作成方法の詳細な解説がありますが、この手引きの趣旨に沿って、 - ここでは簡単な例のみ示すことにします。 - - - 簡単なXForms検索フォーム - - - - Search - - - - - - - - - - - -]]> - - - - 上のフォームは、(qという名前の),テキスト入力ボックス - と投稿ボタンを表示します。投稿ボタンがクリックされた時、このフォームは - actionが参照するページに送信されます。 - - - ここからが、Webアプリケーションの視点から異なって見え始めるところです。 - 通常のHTMLフォームでは、データは、 - application/x-www-form-urlencoded - で送信されますが、XFormsでは、この情報は XML 形式のデータで送信されます。 - - - XFormsで処理することを選択した場合には、おそらくデータを XML - 形式で取得したいはずで、この場合、$HTTP_RAW_POST_DATA により、 - ブラウザが生成した XML - ドキュメントにアクセスすることができます。このデータは、使用する XSLT - エンジンやドキュメントパーサに渡すことができます。 - - - データ形式には関心がなく、データを従来の - データ形式には関心がなく、データを従来の $_POST変数に - ロードしたいだけの場合、 - method 属性を - urlencoded-post に変更することにより、 - クライアントブラウザに - application/x-www-form-urlencoded - としてデータを送信するよう指示することができます。 - - - XFormにより<varname>$_POST</varname>を送信する - - - - Search - - - - - - - - - - - -]]> - - - - - 本稿執筆時点で、多くのブラウザはXFormsをサポートしていません。 - 上の例が失敗する場合、ブラウザのバージョンを確認してください。 - - - - - diff --git a/install/cloud/azure.xml b/install/cloud/azure.xml index df037f5e1b..c03609bba7 100644 --- a/install/cloud/azure.xml +++ b/install/cloud/azure.xml @@ -1,30 +1,41 @@ - + Azure App Services PHP は、Azure App Services (aka Microsoft Azure, Windows Azure, Azure Web Apps) 上でもよく使われています。 - Azure App Services は、ウェブアプリケーションをホストする Windows Web Servers のプールを管理します。自前の Azure Compute VM などで自前のウェブサーバーを管理する方法の代替となるものです。 + + Azure App Services は、 + ウェブアプリケーションをホストする + Windows Web Servers のプールを管理します。 + これは 自前の Azure Compute VM + などで自前のウェブサーバーを管理する方法の代替となるものです。 - Azure App Services のウェブサイトでは、PHP がはじめから有効になっています。Azure Portal でウェブサイトを選択すると、どのバージョンの PHP を使うかを選ぶことができます。デフォルトよりも新しいバージョンを使うこともできます。 + + Azure App Services のウェブサイトでは、 + PHP が自動的に有効になっています。 + Azure Portal でウェブサイトを選択すると、 + どのバージョンの PHP を使うかを選ぶことができます。 + デフォルトよりも新しいバージョンを選ぶこともできます。 - つまり Azure App Services 上では、その他の Windows サーバー上と同様に PHP や拡張モジュールが動くということです。 - - Windows 上での知識の多くがそのまま使えるので、Windows のトラブルシューティングページ も参照ください。 + + つまり Azure App Services 上では、 + その他の Windows サーバー上と同様に PHP や拡張モジュールが動くということです。 - しかし、Azure App Services の管理インターフェイスは、Windows サーバーとは少し異なります。 + しかし、Azure App Services の管理インターフェイスは、 + Windows サーバーとは少し異なります。 - Azure portal: ウェブサイトの作成や設定変更、削除を行います。Azure Portal + Azure portal: ウェブサイトの作成や設定変更、削除を行います。Azure Portal - Kudu Dashboard: [your web site name].azurewebsites.net の Kudu dashboard は https://[your web site name].scm.azurewebsites.net/ です。このダッシュボードには、デバッグやファイル管理そしてサイト拡張といった機能があります。サイト拡張とは、PHP のプレビュー版などの追加プログラムをウェブサイトに追加するための Azure の機構のことです。 + Kudu Dashboard: site_name.azurewebsites.net の Kudu dashboard は https://site_name.scm.azurewebsites.net/ です。このダッシュボードには、デバッグやファイル管理そしてサイト拡張といった機能があります。サイト拡張とは、PHP のプレビュー版などの追加プログラムをウェブサイトに追加するための Azure の機構のことです。 @@ -32,24 +43,27 @@ - PHP SDK も用意されていて、自分の PHP コードからさまざまな Azure Service を使うことができます。Azure SDK for PHP を参照ください。 + PHP SDK も用意されていて、自分の PHP コードからさまざまな Azure Service を使うことができます。Azure SDK for PHP を参照ください。 - 詳細な情報は Azure PHP Developer Center を参照ください。 + 詳細な情報は Azure PHP Developer Center を参照ください。 WinCache - WinCache は Azure App Services でデフォルトで有効になっています。そのままにしておくことを推奨します。 - - もし PHP を自分でビルドするなら、WinCache も有効にしておくべきです。 - + + WinCache は Azure App Services でデフォルトで有効になっています。そのままにしておくことを推奨します。 + もし PHP を自分でビルドするなら、WinCache も有効にしておくべきです。 + カスタム PHP ビルド - 自分でビルドした PHP を D:\Home にアップロードします (C:\ への書き込み権限はありません)。そして、Azure Portal で、.php の SCRIPT_PROCESSOR に php-cgi.exe への絶対パスを設定します。 - + + 自分でビルドした PHP を D:\Home + にアップロードします (C:\ への書き込み権限はありません)。 + そして、Azure Portal で、.php の SCRIPT_PROCESSOR に php-cgi.exe への絶対パスを設定します。 + diff --git a/install/cloud/digitalocean.xml b/install/cloud/digitalocean.xml new file mode 100644 index 0000000000..27aed3d645 --- /dev/null +++ b/install/cloud/digitalocean.xml @@ -0,0 +1,68 @@ + + + + + DigitalOcean + + DigitalOcean は、PHP をインストールし、クラウドをホスティングするインフラ上でWebアプリケーションを動作させるために、以下のプラットフォームを提供しています。 + + + + + Cloudways: + 以下のような、主要なPHPアプリケーションをワンクリックでデプロイできます: + WordPress, Magento, Drupal, Laravel など + + + + + Droplet: + 仮想マシンのボックスで、 + + Lamp スタックをLinuxサーバー上にインストールできます + 。 + + + + + App Platform: + アプリを素早くビルド、デプロイし、スケールさせるための + マネージドなインフラストラクチャです。 + + how to run PHP application on the App Platform + を参照ください。 + + + + + Functions: + 開発者がサーバーのプロビジョニングや管理を行うことなく、コードを実行できるサーバースプラットフォームです。 + PHP をネイティブでサポートしています。 + + how to create serverless functions in PHP + を参照ください。 + + + + + + diff --git a/install/cloud/index.xml b/install/cloud/index.xml index 3a1a44eca5..4c7aff6aaa 100644 --- a/install/cloud/index.xml +++ b/install/cloud/index.xml @@ -1,6 +1,6 @@ - + クラウドコンピューティングプラットフォームへのインストール @@ -8,6 +8,7 @@ &install.cloud.azure; &install.cloud.ec2; + &install.cloud.digitalocean; - - - Rackspace クラウド - - PHP を Rackspace クラウドプラットフォームにインストールします。 - - - Rackspace SDK for PHPもご覧ください。 - - - - diff --git a/install/composer.xml b/install/composer.xml new file mode 100644 index 0000000000..9a49c9dbff --- /dev/null +++ b/install/composer.xml @@ -0,0 +1,49 @@ + + + + + + Composer とサードパーティパッケージのインストール + + + Composer 入門 + + &link.composer; は PHP + 用の依存管理ツールで、プロジェクトで利用するサードパーティのパッケージを定義し、 + そのインストールと更新が簡単に行えるようになります。 + Composer は PHP 組み込みの + クラスのオートロード機能 + と、 Packagist のような PHP + パッケージのリポジトリ、そして共通のプロジェクト構造とコーディング規約を利用しています。 + + + 例えば、PHP アプリケーションやウェブサイトで UUID + を利用する必要がある場合、RFC 4122 + で定義された、広く知られていて使われている UUID の形式を実装した + Ben Ramsey の + ramsey/uuid パッケージ を利用することができます。 + + + 簡単に言うと、composer.json + をプロジェクトに作成し、Composer を使って最新バージョンのパッケージをインストールし、 + Composer のオートロードスクリプトを読み込むことでパッケージがコード内で利用可能となります。 + 詳細は Composer の + "Basic Usage" ドキュメント を参照してください。 + + + + 一つのパッケージを依存に持つ <literal>composer.json</literal> + + + + + + + + diff --git a/install/fpm/configuration.xml b/install/fpm/configuration.xml index 93b624e0fb..c418b64a76 100644 --- a/install/fpm/configuration.xml +++ b/install/fpm/configuration.xml @@ -1,6 +1,6 @@ - + @@ -50,7 +50,7 @@ log_limit - integer + int @@ -64,7 +64,7 @@ log_buffering - boolean + bool @@ -170,7 +170,7 @@ daemonize - boolean + bool @@ -187,7 +187,8 @@ - マスタープロセス用の、オープン時のファイル記述子の rlimit。デフォルト値: システムで定義されている値 + マスタープロセス用の、オープン時のファイル記述子の rlimit。 + デフォルト値: システムで定義されている値 @@ -211,8 +212,8 @@ FPM が利用するイベントメカニズム。 - select、pool、epoll、kqueue (*BSD)、port (Solaris) が利用可能。 - デフォルト値: 未設定 (自動検出) + epoll、kqueue (*BSD)、port (Solaris)、poll、select が利用可能です。 + デフォルト値: 未設定 (自動検出。epoll または kqueue が優先的に使用されます) @@ -261,8 +262,10 @@ - listen(2) のバックログを設定します。'-1' は無制限を意味します。 - デフォルト値: -1 + listen(2) のバックログを設定します。 + -1 はBSD 系のシステムでは最大値を意味します。 + デフォルト値: -1 (FreeBSD や OpenBSD) + または 511 (Linux やその他のプラットフォーム) @@ -273,12 +276,11 @@ - 接続を許可されている FastCGI クライアントの ipv4 アドレス一覧。オリジナル版 PHP FastCGI (5.2.2+) + 接続を許可されている FastCGI クライアントの IPv4 または IPv6 アドレス一覧。オリジナル版 PHP FastCGI (5.2.2+) における環境変数 FCGI_WEB_SERVER_ADDRS と同じです。 tcp でリスンするソケットに対してのみ意味をなします。 書くアドレスはカンマ区切りで指定します。この値を空にしておくと、任意の ip アドレスからの接続を許可します。 デフォルト値: 任意の ip アドレスを許可。 - 5.5.20 および 5.6.4 以降は、IPv6 アドレスも指定できるようになりました。 @@ -327,7 +329,7 @@ POSIX の Access Control List をサポートしている場合は、このオプションでそれを指定できます。 これを設定した場合は、listen.owner および listen.group は無視されます。 - 値には、ユーザー名をカンマ区切りのリスト形式で指定します。PHP 5.6.5 以降で利用可能です。 + 値には、ユーザー名をカンマ区切りのリスト形式で指定します。 @@ -339,10 +341,24 @@ listen.acl_users を参照。 - グループ名を、カンマ区切りのリスト形式で指定します。PHP 5.6.5 以降で利用可能です。 + グループ名を、カンマ区切りのリスト形式で指定します。 + + + listen.setfib + int + + + + associated the route table (FIB) を設定します。 + FreeBSD でのみ有効です。 + デフォルト: -1。 + PHP 8.2.0 以降で利用可能です。 + + + user @@ -419,8 +435,7 @@ 起動時に作成される子プロセスの数。pmdynamic - の場合にのみ使います。デフォルト値: min_spare_servers + (max_spare_servers - - min_spare_servers) / 2 + の場合にのみ使います。デフォルト値: (min_spare_servers + max_spare_servers) / 2 @@ -450,6 +465,20 @@
+ + + pm.max_spawn_rate + int + + + + 一度に子プロセスを生成する数。 + pm の値が + dynamic である場合にのみ使えます。 + デフォルト値: 32 + + + pm.process_idle_timeout @@ -478,6 +507,27 @@ + + + pm.status_listen + string + + + + FastCGI の statusリクエスト を受け付けるアドレス。 + これを設定すると、独自にリクエストを処理する新しい、 + 外からは見えないプールが作られます。 + これは、長時間実行されるリクエストによって + メインプールがビジーである場合に役立ちます。 + なぜなら、そうした処理に長時間かかるリクエストが終わる前であっても、 + FPM の情報ページ + を見ることが出来るからです。 + listen + ディレクティブと設定できる内容は同じです。 + デフォルト値: 未設定。 + + + pm.status_path @@ -485,8 +535,10 @@ - FPM の情報ページを見るための URI。この値を省略した場合は、どの URI - も情報ページとは見なされません。デフォルト値: なし + FPM の情報ページ + を見るための URI。この値は、スラッシュ (/) で始めなければいけません。 + この値を省略した場合は、どの URI も情報ページとは見なされません。 + デフォルト値: なし @@ -535,7 +587,7 @@ process.dumpable - boolean + bool @@ -576,6 +628,23 @@ + + + request_terminate_timeout_track_finished + bool + + + + fastcgi_finish_request がコールされた後や、 + アプリケーションが終了し、 + 内部的なシャットダウン関数がコールされているときには適用されない + request_terminate_timeout を有効にするかどうか。 + このディレクティブを有効にすると、 + そのような適用されないケースでもタイムアウトを無条件に有効にします。 + デフォルト値: no。PHP 7.3.0 以降で利用可能。 + + + request_slowlog_timeout @@ -591,6 +660,18 @@ + + + request_slowlog_trace_depth + int + + + + slowlog に吐き出されるログのスタックトレースの深さ。 + デフォルト値: 20。PHP 7.2.0 以降で利用可能。 + + + slowlog @@ -654,7 +735,7 @@ catch_workers_output - boolean + bool @@ -668,7 +749,7 @@ decorate_workers_output - boolean + bool @@ -684,14 +765,13 @@ clear_env - boolean + bool FPM ワーカー内の環境をクリアする。 任意の環境変数が FPM ワーカープロセスに到達してしまうことを防ぐために、 ワーカー内の環境をいったんクリアしてから、このプールの設定で指定された環境変数を追加します。 - PHP 5.4.27、PHP 5.5.11、PHP 5.6.0 以降で利用可能です。 デフォルト値: Yes @@ -711,6 +791,19 @@ + + + apparmor_hat + string + + + + AppArmor が有効になっている場合に、 + ハット変更を許可します。 + デフォルト値: 未設定。 + + + access.log @@ -731,7 +824,213 @@ アクセス・ログ形式。 - デフォルト値: "%R - %u %t \"%m %r\" %s" + デフォルト値: "%R - %u %t \"%m %r\" %s": + + 有効なオプション + + + + プレースホルダ + 説明 + + + + + + %% + + % 文字 + + + + %C + + + リクエストが使う %CPU。 + 以下のフォーマットが使えます: + %{user}C user CPU のみ。 + %{system}C system CPU のみ。 + %{total}C user + system CPU (デフォルト) + + + + + %d + + + リクエストの処理に掛かる時間。 + 精度について、以下のフォーマットが許可されています: + %{seconds}d (デフォルト), %{milliseconds}d, + %{microseconds}d. + + + + + %e + + + 環境変数 ($_ENV$_SERVER と同じ)。 + 変数の名前は、指定する環境変数の名前を中括弧で囲んだものでなければなりません。 + たとえば、サーバーの変数として + %{REQUEST_METHOD}e や + %{SERVER_PROTOCOL}e、 + HTTP ヘッダの変数として + %{HTTP_HOST}e や + %{HTTP_USER_AGENT}e が挙げられます。 + + + + + %f + + script のファイル名 + + + + %l + + + リクエストの Content-Length (HTTP POST のみ) + + + + + %m + + HTTP リクエストの method + + + + %M + + + PHP によって確保されたメモリのピーク値。 + 以下のフォーマットが使えます: + %{bytes}M (デフォルト), + %{kilobytes}M, + %{kilo}M, %{megabytes}M, + %{mega}M + + + + + %n + + Pool name + + + + %{name}o + + + 出力ヘッダ。 + ヘッダ名は、中括弧で囲んで指定しなければいけません。 + 例: %{Content-Type}o, + %{X-Powered-By}o, + %{Transfer-Encoding}o + + + + + %p + + リクエストを処理した子プロセスの PID + + + + %P + + リクエストを処理した子の親のPID + + + + %q + + query string + + + + %Q + + + '?' 文字、または + クエリストリングが存在した場合、 + %q%r, + の間の glue + + + + + %r + + + クエリストリングを除いたリクエストURI。 + %q%Q + も参照ください。 + + + + + %R + + remote IP address + + + + %s + + Status (response code) + + + + %t + + + リクエストを受け取ったサーバー側の時刻。 + strftime(3) のフォーマットを指定でき、デフォルトは + %d/%b/%Y:%H:%M:%S %z です。 + strftime(3) のフォーマットは + %{<strftime_format>}t タグで囲む必要があります。 + 例えば、ISO8601 形式でフォーマットするには + %{%Y-%m-%dT%H:%M:%S%z}t を使ってください。 + + + + + %T + + + ログが書き込まれた時間 (リクエストが終了した時間)。 + strftime(3) のフォーマットを指定でき、デフォルトは + %d/%b/%Y:%H:%M:%S %z です。 + strftime(3) のフォーマットは + %{<strftime_format>}T タグで囲む必要があります。 + 例えば、ISO8601 形式でフォーマットするには + %{%Y-%m-%dT%H:%M:%S%z}T を使ってください。 + + + + + %u + + Authorization ヘッダーで Basic 認証が指定されていれば、そのユーザー名 + + + +
+
+
+
+ + + access.suppress_path + array + + + + アクセスログからフィルタすべき request_uri のリスト。 + デフォルト: 未設定。 + PHP 8.2.0 以降で利用可能です。 @@ -770,17 +1069,17 @@ php_admin_value[memory_limit] = 32M で設定した値を ini_set で上書きすることはできません。
- PHP 5.3.3 以降は、PHP の設定をウェブサーバーでも設定できるようになりました。 + PHP の設定は、ウェブサーバーでも設定できます。 PHP の設定を nginx.conf で行う例 - +]]> @@ -791,6 +1090,13 @@ fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs"; listen.allowed_clients も参照ください。 + + + プールはセキュリティを考慮した仕組みではありません。 + なぜなら、完全な分離を提供しないからです。 + たとえば、FPM のプールは、単一の OPcache のインスタンスを使います。 + + diff --git a/install/fpm/index.xml b/install/fpm/index.xml index e3e660977c..5ca179d681 100644 --- a/install/fpm/index.xml +++ b/install/fpm/index.xml @@ -1,12 +1,9 @@ - + FastCGI Process Manager (FPM) - - FPM (FastCGI Process Manager) は PHP の FastCGI 実装のひとつで、 - 主に高負荷のサイトで有用な追加機能を用意しています。 - + &fpm.intro; 以下のような機能があります。 @@ -17,12 +14,14 @@
- 異なる uid/gid/chroot/environment でのワーカーの開始、 - 異なるポートでのリスン、異なる php.ini の使用 (safe_mode の代替) + 異なる uid/gid/chroot/environment でワーカーが開始でき、 + 異なるポートで Listen でき、異なる php.ini が適用できる + (safe_mode の代替) プールのサポート。 + 設定が変更可能な、 標準出力および標準エラー出力へのログ出力 @@ -51,12 +50,13 @@ - 動的/静的 な子プロセスの起動 + 動的/オンデマンド/静的 な子プロセスの起動 - 基本的な SAPI の動作状況 (Apache の mod_status と同等) + 基本的な SAPI の動作状況 (Apache の mod_status と同等) を、 + json, xml, openmetrics のようなフォーマットで提供 diff --git a/install/fpm/install.xml b/install/fpm/install.xml index 087b9a4898..02fd8cf03f 100644 --- a/install/fpm/install.xml +++ b/install/fpm/install.xml @@ -1,6 +1,6 @@ - + インストール @@ -30,11 +30,51 @@ - --with-fpm-acl - POSIX アクセス制御リストを使用します (デフォルトは no)。PHP 5.6.5 以降。 + --with-fpm-acl - POSIX アクセス制御リストを使用します (デフォルトは no)。 + + + + + --with-fpm-apparmor - AppArmor との統合を有効にします (デフォルトは no)。 + + + + + --with-fpm-selinux - SELinux との統合を有効にします (デフォルトは no)。 + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.2.0 + + --with-fpm-selinux が追加されました。 + + + + 8.0.0 + + --with-fpm-apparmor が追加されました。 + + + + + + +
- + - + 実行時設定 @@ -22,20 +22,17 @@ SAPI モジュール特有の場所 (Apache 2 における PHPIniDir ディレクティブ、 - CGI/CLI 版における -c コマンドラインオプション、 - NSAPI における php_ini パラメータ、 - THTTPD における PHP_INI_PATH 環境変数) + CGI/CLI 版における -c コマンドラインオプション) - PHPRC 環境変数。PHP 5.2.0 より前では、 - これは、次に挙げるレジストリキーの後にチェックされていました。 + PHPRC 環境変数。 - PHP 5.2.0 以降では、PHP のバージョンごとに別の場所の php.ini + PHP のバージョンごとに別の場所の php.ini を使用することができます。レジストリキーの root は、 インストールされたOS や PHP が 32bit や 64bit どちらのビルドかによって変わります。 32bit OS 上の 32bit ビルドの PHP、 @@ -104,20 +101,22 @@ が存在する場合、PHP はそれを読もうとします。 - - &php.ini; の中で環境変数を使うには、次のようにします。 - - - - &php.ini; での環境変数 - + + &php.ini; の中で環境変数を参照するには、次のようにします。 + PHP 8.3.0 以降では、参照する変数が未定義の場合にフォールバックする値を + 指定できるようになりました。 + + + &php.ini; での環境変数 + - - - + + 拡張モジュールに対する &php.ini; ディレクティブは、 各拡張モジュールのドキュメントで解説されています。 @@ -126,7 +125,7 @@ memory_limit = ${PHP_MEMORY_LIMIT} ただし、(更新の都合上)すべての PHP ディレクティブが 本マニュアル中で解説されている訳ではありません。 使っているバージョンの PHP で指定可能なすべてのディレクティブについては、 - &php.ini; ファイル内に詳細なコメントが記されていますので、参照してください。 + &php.ini; ファイル内に詳細なコメントが記されていますので、参照ください。 もしくは、Git から入手可能な 最新の &php.ini; も有用でしょう。 @@ -154,7 +153,7 @@ include_path = ".;c:\php\lib" - PHP 5.1.0 以降、ini ファイル内で既存の ini 変数を参照することが可能です。 + ini ファイル内で既存の ini 変数を参照することが可能です。 例: open_basedir = ${open_basedir} ":/new/dir" @@ -165,7 +164,7 @@ include_path = ".;c:\php\lib" PHP の設定で、&php.ini; を読んだ後に .ini ファイルを探すディレクトリを指定できます。 これは、コンパイル時のオプション で設定します。 - PHP 5.2.0 以降では、このスキャンディレクトリを実行時に上書きできるようになりました。 + このスキャンディレクトリは実行時に上書きできます。 環境変数 PHP_INI_SCAN_DIR で指定します。 @@ -211,58 +210,14 @@ $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php - - &reftitle.changelog; - - - - - - - &Version; - &Description; - - - - - 7.0.0 - - ハッシュ記号 (#) をコメントとみなさないようになりました。 - - - - 5.3.0 - - ハッシュ記号 (#) をコメントとして使ってはいけないようになりました。 - もし使うと、廃止予定だという警告を発します。 - - - - 5.2.0 - - 環境変数 PHP_INI_SCAN_DIR によって、 - configure 時に指定したスキャンディレクトリを上書きできるようになりました。 - - - - 5.1.0 - - .ini ファイル内で既存の .ini 変数を参照できるようになりました。 - - - - - - - .user.ini ファイル - PHP 5.3.0 以降、PHP はディレクトリ単位での - INI ファイルをサポートするようになりました。 + PHP はディレクトリ単位での + INI ファイルをサポートしています。 このファイルは、CGI/FastCGI SAPI の場合にのみ処理されます。 この機能は、PECL htscanner 拡張モジュールを置き換えるものです。 Apache モジュールとして PHP を実行している場合は &htaccess; ファイルを使えば同じ機能を実現できます。 @@ -277,8 +232,8 @@ $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php .user.ini 形式の INI ファイルがサポートするのは、 - モードが PHP_INI_PERDIR および - PHP_INI_USER の項目のみです。 + モードが INI_PERDIR および + INI_USER の項目のみです。 @@ -315,51 +270,70 @@ $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php たとえば output_buffering は - PHP_INI_PERDIR なので、 + INI_PERDIR なので、 ini_set で設定することはできません。 一方 display_errors は - PHP_INI_ALL なのでどこででも設定でき、当然 + INI_ALL なのでどこででも設定でき、当然 ini_set ででも設定できます。 - - PHP_INI_* モードの定義 - - - - モード - 意味 - - - - - PHP_INI_USER - - ユーザースクリプト (ini_set などで) - または Windows レジストリ - で設定可能なエントリ。 - PHP 5.3 以降では、&user-ini; でも設定可能 - - - - PHP_INI_PERDIR - - &php.ini;、&htaccess;、&httpd.conf; あるいは &user-ini; - (PHP 5.3 以降の場合) で設定可能なエントリ - - - - PHP_INI_SYSTEM - &php.ini; または &httpd.conf;で設定可能なエントリ - - - PHP_INI_ALL - どこでも設定可能なエントリ - - - -
+ + + INI モードの定数 + + + INI_USER + (int) + + + + エントリはユーザー定義のスクリプト(ini_set) + や Windows レジストリ を使って) で設定できます。 + &user-ini; でも設定できます + + + + + + INI_PERDIR + (int) + + + + エントリは &php.ini;, &htaccess;, &httpd.conf;, &user-ini; で設定できます + + + + + + INI_SYSTEM + (int) + + + + エントリは &php.ini; または &httpd.conf; で設定できます + + + + + + INI_ALL + (int) + + + + エントリはどこでも設定できます + + + +
@@ -378,11 +352,11 @@ $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php Apache 設定ファイルから PHP の設定を変更するには、 以下に示す Apache ディレクティブを使用します。 - 各設定オプションの変更の可否 (PHP_INI_ALL, - PHP_INI_PERDIR, または PHP_INI_SYSTEM) + 各設定オプションの変更の可否 (INI_ALL, + INI_PERDIR, または INI_SYSTEM) については、付録 php.ini ディレクティブのリスト - を参照してください。 + を参照ください。 @@ -396,8 +370,8 @@ $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php 指定した設定オプションに値を設定します。変更の可否が、 - PHP_INI_ALL もしくは - PHP_INI_PERDIR である設定オプションに対し利用できます。 + INI_ALL もしくは + INI_PERDIR である設定オプションに対し利用できます。 セット済みの値をクリアしたい場合は、none を 値として使用してください。 @@ -419,8 +393,8 @@ $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php 設定オプションに論理値を設定するために使用します。変更の可否が、 - PHP_INI_ALL もしくは - PHP_INI_PERDIR である設定オプションで利用できます。 + INI_ALL もしくは + INI_PERDIR である設定オプションで利用できます。 @@ -504,9 +478,9 @@ $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php およびそのサブディレクトリで実行されるすべてのスクリプトで有効となります。 PHP 設定オプションのディレクティブを名前とする文字列値をキーに登録してください。 また、値のデータに PHP 定数を記述しても解釈されませんので、注意してください。 - しかし、PHP_INI_USER + しかし、INI_USER で変更可能な設定値はこの方法で設定することが可能ですが、 - PHP_INI_PERDIR である設定値は設定できません。 + INI_PERDIR である設定値は設定できません。 なぜなら、これらの設定値はリクエストがあるたびに読み直されるからです。 @@ -516,11 +490,11 @@ $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php どのように PHP を実行しているかに係わらず、ini_set 関数を 用いて、スクリプトの実行時に一部のオプションの設定値を変更することができます。詳細は、 - ini_set 関数のリファレンスを参照してください。 + ini_set 関数のリファレンスを参照ください。 使用しているシステムにおける現在のオプション設定値の完全なリストを得たい場合は、 - phpinfo 関数を実行し、出力された結果を参照してください。 + phpinfo 関数を実行し、出力された結果を参照ください。 また、ini_get 関数または get_cfg_var 関数を用いて、個々のオプションの設定値にアクセスすることも可能です。 diff --git a/install/intro.xml b/install/intro.xml index 3422bcfd5f..0890085b15 100644 --- a/install/intro.xml +++ b/install/intro.xml @@ -1,18 +1,17 @@ - - + + インストールにあたっての一般的な注意事項 インストールを行う前に、PHP を使用する用途を明確にしておく必要があります。 PHP を適用可能な分野としては、 「PHP にできることは?」 - のセクションに記述されている通り、主に次の 3 つがあります。 + のセクションに記述されている通り、主に次の 2 つがあります。 Web サイトや Web アプリケーション (サーバーサイドのスクリプト) コマンドラインのスクリプト - デスクトップ (GUI) アプリケーション @@ -32,8 +31,6 @@ (SAPI とも呼ばれます) を通じて、ダイレクトに PHP を動作させることができます。 Apache、Microsoft Internet Information Server、 Netscape、iPlanet サーバーなどがサポートされています。 - ISAPI と呼ばれるマイクロソフト互換のモジュールインターフェイスを - 持つ Web サーバー(OmniHTTPd など)もサポートされます。 PHP がモジュールのサポートをしていない Web サーバーに対しては、 CGI もしくは FastCGI プロセサとして PHP を使用することができます。 つまり、PHP ファイルへのリクエストの処理を、 @@ -47,17 +44,8 @@ 場合は、コマンドライン版の実行ファイルが必要となります。 詳細な情報については、 「PHP をコマンドラインから使用する」 - の章を参照してください。この場合、サーバーとブラウザは不要です。 + の章を参照ください。この場合、サーバーとブラウザは不要です。 - - PHP-GTK 拡張モジュールを使って、PHP でクライアントサイドの GUI - アプリケーションを作成することも可能です。この場合のアプローチは Web ページの - 作成とは完全に異なり、HTML を出力するのではなく、 - ウインドウやその中のオブジェクトの管理を行うことになります。PHP-GTK に関する - より詳細な情報については、 - PHP-GTK 拡張モジュールのサイト - を参照してください。PHP-GTK は、PHP の公式アーカイブには含まれていません。 - 以降、この節では Unix や Windows 上の Web サーバーに サーバーモジュールインターフェイスおよび CGI 実行ファイルとして diff --git a/install/macos/bundled.xml b/install/macos/bundled.xml index d565641c92..a9b0a966bd 100644 --- a/install/macos/bundled.xml +++ b/install/macos/bundled.xml @@ -1,10 +1,11 @@ - + - バンドルされている PHP の使用法 + macOS Monterey より前のバージョンにバンドルされている、PHP の使用法 - PHP は、Mac OS X バージョン 10.0.0 以降の Mac に標準添付されています。 + PHP は、Mac OS X バージョン 10.0.0 以降、 + macOS Monterey (12.0.0) より前の MacOS に標準添付されています。 デフォルトのウェブサーバーで PHP を有効にするには、Apache 設定ファイル httpd.conf で数行のコメントを解除する必要があります。 一方、CGICLI @@ -81,13 +82,16 @@ - 指定した拡張子 (例: .php .html および .inc) + 指定した拡張子 (例: .php + .html + および + .inc が PHP でパースされるようにします。 以下のような行が httpd.conf にあれば (Mac Panther 以降にはあります)、 - PHP を有効にするだけで .php + PHP を有効にするだけで .php ファイルが自動的に PHP で処理されます。 - + macOS へのインストール - - 本章では、PHP を macOS にインストールする際の注意事項とコツを説明します。 - PHP は Mac にバンドルされています。また、コンパイルの手順は - Unix へのインストールガイド - と同じです。 - + + PHP は macOS バージョン10 および 11 に標準添付されていましたが、 + macOS Monterey (12.0.0) 以降には含まれていません。 + 最近のバージョンにインストールするには、サードパーティーのパッケージを使用するか、 + ソースコードからコンパイルする必要があります。 + &install.macos.packages; - &install.macos.bundled; &install.macos.compile; + &install.macos.bundled; - + + - パッケージの使用 + サードパーティパッケージによる macOS へのインストール macOS 用にコンパイルされた PHP パッケージがいくつか存在します。 一般的なセットアップを行うにあたって、利用することができます。ただし、 @@ -13,37 +14,33 @@ 誰か他の人が作成済みでないかを調べてみると良いでしょう。 - 以下の場所に、簡単にインストールできる + macOS に PHP をインストールするには、 + Homebrew + パッケージマネージャを使用すると簡単です。 + + + + + Web サイトの指示に従って Homebrew をインストールしてください。 + + + + + brew install php + + + + 以下の場所にも、簡単にインストールできる macOS 用のコンパイル済み PHP パッケージがあります。 - - - - - MacPorts: - &url.mac.macports; - - - - - Liip: - &url.mac.liip; - - - - - Fink: - &url.mac.fink; - - - - - Homebrew: - &url.mac.homebrew; - - - - + + + MacPorts + + + Fink + + - + @@ -8,13 +8,14 @@ PECL インストール入門 + &pecl.moving.to.pie; - PECL は PHP 拡張モジュールのリポジトリで、 + &link.pecl; は PHP 拡張モジュールのリポジトリで、 PEAR パッケージシステムを経由して使用可能です。 ここでは PECL 拡張モジュールを取得してインストールする方法を解説します。 - 以下に示す手順では、PHP のソース配布物へのパスが /your/phpsrcdir/ + 以下に示す手順では、PHP のソース配布物へのパスが /path/to/php/src/dir/ であり、PECL 拡張モジュールの名前が extname であると仮定しています。適切に変更してください。また、 pear コマンド @@ -34,19 +35,20 @@ 拡張モジュールのビルドにあたっては、適切なバージョンのツール (autoconf, automake, libtool など) を使用することが重要です。 必要なツールとそのバージョンについては、 - Anonymous Git の手順 を参照してください。 + Anonymous Git の手順 を参照ください。 PECL 拡張モジュールをダウンロードする + &pecl.moving.to.pie; PECL 拡張モジュールをダウンロードするには、以下に示す通り、いくつかの方法があります。 - pecl install extname コマンドで、 + pecl install extname コマンドで、 拡張モジュールのコードを自動的にダウンロードします。 この場合は、個別にダウンロードする必要はありません。 @@ -58,12 +60,12 @@ PECL のウェブサイトでは、PHP 開発チームが提供する さまざまな拡張モジュールについての情報が公開されています。 - ChangeLog やリリース情報、必要な要件、リビジョンといった情報が参照可能です。 + ChangeLog やリリースノート、必要な要件、リビジョンといった情報が参照可能です。 - pecl download extname + pecl download extname PECL のウェブサイトで公開されている PECL 拡張モジュールは、 @@ -72,22 +74,31 @@ 特定のバージョンを指定可能です。 + + + git + + + 多くの PECL 拡張モジュールは Github に置かれています。 + + + SVN - 大半の PECL 拡張モジュールは SVN にも収められています。 + SVN にも収められている PECL 拡張モジュールもあります。 &url.php.svn;pecl/ で、 ウェブから参照することができます。 SVN から直接ダウンロードする場合は、 以下の一連のコマンドを使用します。 - - -$ svn checkout http://svn.php.net/repository/pecl/extname/trunk extname - - + + + @@ -115,12 +126,12 @@ $ svn checkout http://svn.php.net/repository/pecl/extname/trunk extname コンパイル時に拡張モジュールを PHP に組み込む方法については、 - ソースからのビルド + ソースからのビルド に関するドキュメントを参照ください。 単体の拡張モジュール (DLL ファイル) をコンパイルする方法については - ソースからのビルド + ソースからのビルド に関するドキュメントを参照ください。 PHP の配布パッケージにも PECL にも DLL ファイルが存在しなければ、 まずコンパイルをしないとその拡張モジュールは使えないでしょう。 @@ -134,11 +145,11 @@ $ svn checkout http://svn.php.net/repository/pecl/extname/trunk extname PHP には、大半の開発者にとって有用である拡張モジュールが同梱されています。 - これらは "コア" 拡張モジュールと呼ばれます。 + これらは "コア" 拡張モジュールと呼ばれます。 しかし、コア拡張モジュールに含まれない機能が必要となった場合はそのモジュールを - PECL で探す必要があります。 + &link.pecl; で探す必要があります。 The PHP Extension Community Library (PECL) は PHP 拡張モジュール用のリポジトリで、すべての拡張モジュールの一覧機能や PHP 拡張モジュールの開発やダウンロードをホスティングする仕組みを提供します。 @@ -157,7 +168,9 @@ $ svn checkout http://svn.php.net/repository/pecl/extname/trunk extname どれをダウンロードすればいいの? - 各 DLL について、いくつかのバージョンが見つかることがあります。 + + 各 DLL について、いくつかのバージョンが見つかることがあります。 + @@ -194,7 +207,10 @@ $ svn checkout http://svn.php.net/repository/pecl/extname/trunk extname - <function>phpinfo</function> のコール + + <function>phpinfo</function> + のコール + @@ -218,22 +234,22 @@ drive:\\path\to\php\executable\php.exe -i 拡張モジュールの読み込み PHP の拡張モジュールを読み込む方法として最も一般的なのは、設定ファイル - php.ini に書き込むことです。多くの拡張モジュールはすでに - php.ini 上に存在し、 + &php.ini; に書き込むことです。多くの拡張モジュールはすでに + &php.ini; 上に存在し、 あとはセミコロンを取り除くだけで有効にできるようになっています。 - PHP 7.2.0 以降では、拡張機能の名前が、拡張機能のファイル名の代わりに使えるようになりました。 + PHP 7.2.0 以降では、拡張モジュールの名前が、拡張モジュールのファイル名の代わりに使えるようになりました。 これは OS に依存せず、特に初心者に簡単な仕組みです。 - これは、読み込む拡張機能を指定する推奨できるやり方になっています。 + これは、読み込む拡張モジュールを指定する推奨できるやり方になっています。 それより前のバージョンとの互換性を確保するため、ファイル名の指定もまだサポートされています。 - + - - + + @@ -244,25 +260,25 @@ extension=php_extname.dll extension=extname zend_extension=another_extension ]]> - + しかし、ウェブサーバーによっては少し迷うことがあるかもしれません。 - というのも、php.ini が PHP 実行ファイルとは別の場所にあることもあるからです。 - 実際に使われている php.ini の場所を見つけるには、 + というのも、&php.ini; が PHP 実行ファイルとは別の場所にあることもあるからです。 + 実際に使われている &php.ini; の場所を見つけるには、 phpinfo で次のような行を探します。 - + - - + + - + - 拡張モジュールを有効にしたら、php.ini + 拡張モジュールを有効にしたら、&php.ini; を保存してウェブサーバーを再起動し、もういちど phpinfo を確認します。 新しい拡張モジュールについての情報がそこに追加されているはずです。 @@ -285,7 +301,8 @@ Loaded Configuration File C:\Program Files\PHP\5.2\php.ini ログの場所については、PHP 自体とは特に関係のないことです。 - DLL の場所がおかしい、php.ini の + DLL そのものや、それが依存している DLL の場所がおかしい、 + &php.ini; の "extension_dir" がおかしい、 コンパイル時の設定が違うなどが、よくある問題です。 @@ -306,11 +323,11 @@ Loaded Configuration File C:\Program Files\PHP\5.2\php.ini PECL を用いると、共有 PECL 拡張モジュールを容易に作成することができます。 以下のように pecl コマンド を用います。 - - + + - +]]> + extname のソースがダウンロードされ、 コンパイルおよび extension_dir @@ -318,25 +335,25 @@ $ pecl install extname extname.so は、&php.ini; 経由で読み込まれます。 - デフォルトでは、pecl コマンドは + デフォルトでは、pecl コマンドは 状態が alpha あるいは beta のパッケージをインストールしません。stable なパッケージが存在しない場合は、以下のコマンドを使用して beta パッケージをインストールします。 - - + + - +]]> + 特定のバージョンをインストールするには、次のような変化形を使用します。 - - + + - +]]> + 拡張モジュールを &php.ini; で有効にしたら、 @@ -348,16 +365,16 @@ $ pecl install extname-0.1 phpize で共有 PECL 拡張モジュールをコンパイルする方法 - 時には pecl インストーラを使用するという選択肢が使えない場合もあります。 + 時には pecl インストーラを使用するという選択肢が使えない場合もあります。 たとえばファイアウォールの内部で作業をしている場合がそうですし、 - まだリリースされていない SVN 版のように + まだリリースされていない git 版のように PECL パッケージ形式になっていないものをインストールする場合も それにあてはまります。このようなモジュールをビルドする必要がある場合は、 より低レベルなビルドツールを使用して手動でビルドします。 PHP 拡張モジュールのビルド環境を準備するために、 - phpize コマンドを使用します。以下の例では、 + phpize コマンドを使用します。以下の例では、 拡張モジュールのソースが extname というディレクトリにあると仮定します。 @@ -382,10 +399,10 @@ $ make コンパイル済みのパッケージ (RPM など) を使用している場合などで、もし - phpize コマンドが見つからない場合は、適切な + phpize コマンドが見つからない場合は、適切な 開発版の PHP パッケージをインストールしましょう。 PHP や拡張モジュールをビルドするために必要なヘッダファイルや - phpize コマンドは、このパッケージに含まれます。 + phpize コマンドは、このパッケージに含まれます。 使用法についての詳細な情報を表示するには、 @@ -394,23 +411,25 @@ $ make - php-config + + <command>php-config</command> + - php-config はシンプルなシェルスクリプトで、 + php-config はシンプルなシェルスクリプトで、 インストールされている PHP の設定情報を取得します。 - + 拡張モジュールをコンパイルするときに、もし複数のバージョンの PHP がインストールされている場合は、どちらを使ってコンパイルするのかを指定できます。 - configure の --with-php-config オプションで、 - 対応する php-config スクリプトのパスを指定します。 + configure の オプションで、 + 対応する php-config スクリプトのパスを指定します。 - php-config スクリプトのコマンドラインオプション一覧は、 - php-config に スイッチをつけて実行すれば見られます。 + php-config スクリプトのコマンドラインオプション一覧は、 + php-config スイッチをつけて実行すれば見られます。 --includes - -I オプションとインクルードしたファイルの一覧 + + -I オプションとインクルードしたファイルの一覧 + --ldflags - PHP をコンパイルしたときの LD フラグ + + PHP をコンパイルしたときの LD フラグ + --libs @@ -463,7 +486,9 @@ Options: --include-dir - ヘッダファイルのデフォルトのインストール先ディレクトリのプレフィックス + + ヘッダファイルのデフォルトのインストール先ディレクトリのプレフィックス + --php-binary @@ -475,7 +500,9 @@ Options: --configure-options - 現在インストールされている PHP の再作成するための configure オプション + + 現在インストールされている PHP の再作成するための configure オプション + --version @@ -495,13 +522,13 @@ Options: PECL 拡張モジュールを PHP に静的に組み込む PECL 拡張モジュールを PHP に静的に組み込みたいと思うこともあるでしょう。 - そのためには、拡張モジュールのソースを /your/phpsrcdir/ext/ + そのためには、拡張モジュールのソースを /path/to/php/src/dir/ext/ ディレクトリに置き、PHP にその設定スクリプトを生成させる必要があります。 上記を行うと、以下のディレクトリが作成されます。 - - - /your/phpsrcdir/ext/extname - - + + + これ以降、PHP に configure スクリプトを再実行させ、通常通りに PHP をビルドします。 - - -$ cd /your/phpsrcdir + + - +]]> + - 'buildconf' スクリプトを実行するためには、autoconf 2.13 と automake 1.4+ + buildconf スクリプトを実行するためには、autoconf 2.68automake 1.4+ が必要です - (新しいバージョンの autoconf では動作するかも知れませんが、 + (新しいバージョンの autoconf でも動作するかも知れませんが、 サポートされていません)。 - 拡張モジュールによって、--enable-extname - もしくは --with-extname オプションを指定します。 + 拡張モジュールによって、 + もしくは オプションを指定します。 外部ライブラリを使用しない拡張モジュールについては、 - --enable が使われるのが一般的です。 - buildconf の後で、以下を行うと確認できます。 + が使われるのが一般的です。 + buildconf の後で、以下を行うと確認できます。 - - + + - +]]> +
diff --git a/install/pie.xml b/install/pie.xml new file mode 100644 index 0000000000..4bfe765b7f --- /dev/null +++ b/install/pie.xml @@ -0,0 +1,43 @@ + + + + + + PIE と サードパーティ拡張モジュールのインストール + + + PIE の紹介 + + &link.pie; は PHP のためのインストーラーです。 + これを使うと、サードパーティの PHP 拡張モジュールをインストールできます。 + しかもインストールや更新が簡単にできます。 + PIE は PHP 拡張モジュールのリポジトリとして、 + Packagist を利用しており、 + それを用いてソースコードを探し、拡張機能をビルドしています。 + さらに存在する場合には、 + Packagist 経由で Windows バイナリもダウンロードします。 + ソースコードをダウンロードした場合、 + そのビルドの仕方やインストール方法も PIE は把握しています。 + + + PIE とその動作に必要なものをインストール した後は、 + コマンドラインから以下を実行することで、 + MongoDB 拡張モジュール + をインストールできます。 + + + MongoDB 拡張モジュール を PIE を使ってインストールする + + + + + + さらに詳しいことは、 + "PIE + Usage" documentation が説明しています。 + + + + diff --git a/install/problems.xml b/install/problems.xml index 3604bfe080..13ca230a9d 100644 --- a/install/problems.xml +++ b/install/problems.xml @@ -1,6 +1,7 @@ - + + 問題が起きた場合 @@ -31,7 +32,7 @@ メーリングリストにおいて質問をする場合は、正確さを心がけ、 解答に必要な使用環境に関する事項(オペレーティングシステムの種類、 PHP のバージョン、Web サーバーの種類、PHP を CGI として使用しているのか - サーバーモジュールとして使用しているのか、&safemode; 等)を明らかにするように + サーバーモジュールとして使用しているのか、等)を明らかにするように してください。他の人が問題を再現し、テストできるのに充分なコードを 示すことが望まれます。 diff --git a/install/unix/apache1.xml b/install/unix/apache1.xml deleted file mode 100644 index b3e7eedd42..0000000000 --- a/install/unix/apache1.xml +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - Apache 1.3.x (Unix システム用) - - このセクションでは、PHP を Unix プラットフォームの Apache 1.3.x にインストールする際の - 手引きと注意事項について説明します。Apache 2 に関する手引きと注意 は - 別のセクションにあります。 - - - 以下の説明では、バージョン番号が意図的に省略されています。 - 'xxx' の部分を使用するファイルに対応する番号に置き換えてください。 - また、手順 10 で configure に与える引数は、 - configure のすべてのオプション - から選択できます。 - - - - - PHP インストール 手順 (Apache 共有モジュール版) - - - - - - - - PHP を静的オブジェクトとしてインストールすることも可能です。 - - - - - PHP インストール手順 (Apache 静的モジュール) - - - - - - - - インストールされている Apache や UNIX の種類によりますが、サーバーの停止・再起動の - 方法はいくつもあります。いろいろな Apache/UNIX の組合せを想定して、 - サーバーを再起動する典型的な方法を以下に示します。 - /path/to/ を使用するシステムのアプリケーション - へのパスに置き換えてください。 - - - - Apache を再起動するためのコマンドの例 - - - - - - - apachectl および http(s)dctl の実行ファイルの位置は、システムにより - 異なります。システムが locate、 - whereis または which コマンドを - サポートしているなら、これらサーバー制御用プログラムを見つけるために使用すると - 便利でしょう。 - - - - PHP を Apache 用にコンパイルするには、いくつかの方法があります。以下に例を示します。 - - - - - - - - この例では、Apache がロードする共有モジュールのライブラリ libphp5.so - が作成されます。この共有ライブラリの読み込みは、Apache の設定ファイル &httpd.conf; の LoadModule - の行にて設定します。また、このライブラリには、 - PostgreSQL サポートが埋め込まれます。 - - - - - - - - - - この例でも Apache 用 libphp5.so 共有ライブラリ - が作成されます。加えて、(PHP 拡張モジュールの)共有ライブラリ - pgsql.so も作成されます。この共有ライブラリ - は、PHP 設定ファイル &php.ini; の extension ディレクティブにより、 - もしくは PHP スクリプト内で明示的に dl 関数により - ロードされます。 - - - - - - - - - - この例では、libmodphp5.a ライブラリと - mod_php5.c およびいくつかの付属ファイルが - 作成され、Apache のソースツリーのディレクトリ - src/modules/php5 にコピーされます。続いて、 - --activate-module=src/modules/php5/libphp5.a - と指定して Apache をコンパイルしてください。Apache - のビルドシステムにより、libphp5.a が作成され、 - httpd バイナリに静的にリンクされます。 - PostgreSQL サポートはこの httpd バイナリに - 直接埋め込まれるため、最終的な結果としては、Apache 全体と PHP 全体を含む - 単一の httpd バイナリが出来上がります。 - - - - - - - - - - この例は、上と同様ですが、最終的な httpd バイナリに - PostgreSQL サポートは直接埋め込まれません。共有ライブラリ - pgsql.so が作成され、PHP 設定ファイル - &php.ini;、もしくは dl 関数により明示的に - PHP にロードすることができます。 - - - PHP のビルド方法を選択する際には、各方法の利点と欠点を考慮する必要 - があります。共有モジュールのオブジェクトとしてビルドすると、Apache とは別に - コンパイルすることができ、PHP を追加または変更する際に全体を - 再コンパイルする必要がありません。PHP を Apache に(静的に)組み込むと、 - PHP はより高速にロード・実行されます。詳細な情報については、 - Apache の Web ページ - 「動的共有オブジェクト (DSO) サポート」 - を参照してください。 - - - - Apache のデフォルトの &httpd.conf; には、次のように記述されたセクションがあります。 - - - - - - これを "Group nogroup" (や "Group daemon")等に変更しないと、 - PHP はファイルをオープンすることができません。 - - - - - オプションを - 指定する場合には実際にシステムにインストールされている apxs を指定してください。 - Apache のソースディレクトリ内にある apxs を指定してはいけません。 - - - - - diff --git a/install/unix/apache2.xml b/install/unix/apache2.xml index 270cfcbe16..847d7e0473 100644 --- a/install/unix/apache2.xml +++ b/install/unix/apache2.xml @@ -1,356 +1,360 @@ - + Apache 2.x (Unixシステム用) + このセクションでは、PHPを Unix システム上の Apache 2.x にインストールする際の 手引きと注意事項について説明します。 - + &warn.apache2.compat; - + Apache ドキュメンテーション を参照し、Apache 2.x の基本的な事項について理解しておくことを強く推奨します。 Apache のインストールオプションについてのより詳しい情報が得られます。 - + 最新バージョンの Apache HTTP Server を Apache ダウンロードサイト からダウンロードし、上述のいずれかのバージョンの PHP を用意してください。 この手引きでは Apache 2.x で PHP を動作させるための 基本的な部分しかカバーしていません。さらに詳しい情報については、Apache ドキュメンテーション を参照してください。 + xlink:href="&url.apache2.docs;">Apache ドキュメンテーション を参照ください。 情報が古く不正確になってしまうため、以下では詳細なバージョン番号は 記述されていません。'NN' という文字列をご使用のバージョンに適宜置き換えて ください。 - - 現在、Apache 2.x には 2.4 と 2.2 の二種類があります。 - どちらを選ぶにしてもそれなりの理由があるでしょうが、 - 2.4 が現在の最新版です。もし選択の余地があるのなら - 2.4 を使うことを推奨します。しかし、この例では 2.4 と 2.2 - のどちらでも使えるようにしています。 - Apache httpd 2.2 は正式には廃止予定で、新しい開発やパッチが - 発行されないことに注意してください。 - + + 現在、Apache 2.x には 2.4 と 2.2 の二種類があります。 + どちらを選ぶにしてもそれなりの理由があるでしょうが、 + 2.4 が現在の最新版です。もし選択の余地があるのなら + 2.4 を使うことを推奨します。しかし、この例では 2.4 と 2.2 + のどちらでも使えるようにしています。 + Apache httpd 2.2 は正式には廃止予定で、新しい開発やパッチが + 発行されないことに注意してください。 + - - - Apache HTTP server を上のサイトから取得して展開します。 + + + + Apache HTTP server を上のサイトから取得して展開します。 + - - + + - - - + + + - - 同じく、PHP のソースを取得して展開します。 + + + 同じく、PHP のソースを取得して展開します。 + - - + + - - - + + + - - - Apache をビルドしてインストールします。Apache のビルドに関する詳細は - Apache のドキュメントを参照ください。 - + + + Apache をビルドしてインストールします。Apache のビルドに関する詳細は + Apache のドキュメントを参照ください。 + - - + + - - - + + + - - + + 以上で Apache 2.x.NN が、モジュールの動的ロードとデフォルトの MPM(マルチプロセッシングモジュール)である prefork が有効になった 状態で、/usr/local/apache2 にインストールされます。 インストールが正常か調べるには、以下のようにして Apache サーバーを立ち上げます。 - + - + サーバーを止めて、PHP 用の設定を進めましょう。 - + - + - - - - - - -PHP の configure を行います。ここでは、様々なオプションを指定し、 -特定の拡張モジュールを有効にするといったカスタマイズを行います。 -指定可能なオプションの一覧は、./configure --help を実行すると得られます。 -以下に、Apache 2 と MySQL のサポートを有効にする、簡単な設定例を示します。 - - - -上で説明したように Apache をソースからビルドした場合は、 -apxs のパスも下の例のとおりになっているでしょう。しかし、 -もし別の方法で Apache をインストールした場合は apxs -のパスを適切に変更しなければなりません。 -ディストリビューションによっては、apxs の名前が -apxs2 と変更されていることもあるので注意しましょう。 - - - + + + + + + PHP の configure を行います。ここでは、様々なオプションを指定し、 + 特定の拡張モジュールを有効にするといったカスタマイズを行います。 + 指定可能なオプションの一覧は、./configure --help を実行すると得られます。 + 以下に、Apache 2 と MySQL のサポートを有効にする、簡単な設定例を示します。 + + + + 上で説明したように Apache をソースからビルドした場合は、 + apxs のパスも下の例のとおりになっているでしょう。しかし、 + もし別の方法で Apache をインストールした場合は apxs + のパスを適切に変更しなければなりません。 + ディストリビューションによっては、apxs の名前が + apxs2 と変更されていることもあるので注意しましょう。 + + + + - - + + - + configure オプションを変更して再インストールする場合は、 - configure, make, make install の手順を繰り返さなければなりません。 + configure, make, + make install の手順を繰り返さなければなりません。 共有モジュールとしてコンパイルされた PHP を有効にするには Apache を再起動するだけです。Apache の再コンパイルは不要です。 - + - - 特に断りがない限り、'make install' は、PEAR、phpize のような様々な + + 特に断りがない限り、make install は、PEAR, phpize のような様々な 関連ツール、CLI 版 PHP などもインストールすることに注意してください。 - - - + + - - php.ini ファイルを設定する - + + php.ini ファイルを設定する + - - + + - - + + - - PHP の実行時設定を変更するには、.ini ファイルを編集します。 - このファイルを他の場所に置きたい場合は、手順 5 で、 - オプション --with-config-file-path=/path を使用します。 - + + PHP の実行時設定を変更するには、.ini ファイルを編集します。 + php.ini ファイルを他の場所に置きたい場合は、手順 5 で、 + オプション --with-config-file-path=/some/path を使用します。 + - - php.ini-development ではなく、php.ini-production を使用する場合は、PHP の + + php.ini-developmentent ではなく、php.ini-production を使用する場合は、PHP の 動作が変化しますので、ファイル中に記載されている変更点の一覧を確認する ようにしてください。 - - - - - + + - - httpd.conf を編集し、PHP の共有モジュールをロードするよう設定します。 - LoadModule 命令の右側に記述するパスは、システムの PHP 共有モジュール - を指している必要があります。上記の make install により既にこの設定は + + + httpd.conf を編集し、PHP の共有モジュールをロードするよう設定します。 + LoadModule 命令の右側に記述するパスは、システムの PHP 共有モジュール + を指している必要があります。上記の make install により既にこの設定は 追加されている場合もありますが、確認が必要です。 - + - - - PHP 7: - - - - - - - - - PHP 5: - - + + + PHP 8 向けの設定は以下のようになります: + + + - - + + - + + + PHP 7 向けの設定は以下のようになります: + - + + + + + - + + Apache が特定の拡張子のファイルを PHP としてパースするよう設定します。 - たとえば、Apache が拡張子 .php のファイルを PHP としてパースするようにします。 - 単に Apache の AddType ディレクティブを使うだけではなく、 - 悪意を持ってアップロード (あるいは作成) された exploit.php.jpg + たとえば、Apache が拡張子 .php のファイルを PHP としてパースするようにします。 + 単に Apache の AddType ディレクティブを使うだけではなく、 + 悪意を持ってアップロード (あるいは作成) された exploit.php.jpg のようなファイルが PHP として実行されてしまわないようにしたいものです。 この例では、PHP としてパースさせたい任意の拡張子を追加していくだけです。 - ためしに .php を追加してみましょう。 - - + ためしに .php を追加してみましょう。 + - - + + SetHandler application/x-httpd-php ]]> - - + + - - あるいは、拡張子 .php, .php2, .php3, .php4, .php5, .php6, そして - .phtml のファイルだけを PHP として実行したいは、このようにします。 - + + あるいは、拡張子 .php, .php2, + .php3, .php4, .php5, + .php6, .phtml + のファイルだけを PHP として実行したい場合は、以下のようにします。 + - - + + SetHandler application/x-httpd-php ]]> - - + + - - 拡張子 .phps のファイルを php ソースフィルタに処理させて + + 拡張子 .phps のファイルを php ソースフィルタに処理させて 構文ハイライトつきのソースコードとして表示させるには、このようにします。 - + - - + + SetHandler application/x-httpd-php-source ]]> - - + + - - mod_rewrite を使うと、.phps ファイルに名前を変えたりコピーしたりしなくても - 任意の .php ファイルを構文ハイライトつきのソースコードとして表示させることができます。 + + mod_rewrite を使うと、.php ファイルに名前を変えたりコピーしたりしなくても + 任意の .phps ファイルを構文ハイライトつきのソースコードとして表示させることができます。 - - + + - - + + - + php ソースフィルタは、実運用環境では無効にしておかなければなりません。 有効にしてしまうと、ソースコードに埋め込まれた機密情報や重要情報が漏れてしまう危険があります。 - - - + + - + Apache サーバーを、通常の手順通り、起動させます。 - + - - + + - OR + または、以下の手順でも起動できます。 - + - - + + + + - - + + 上記の手順で、Apache2 ウェブサーバー上で + SAPI モジュールとして PHP を動作させることができます。もちろん、Apache と PHP の双方とも、もっと多くの configure オプションを指定することが出来ます。 + 詳しい情報を得るには、ソースツリーディレクトリで ./configure --help を実行してください。 + - - 上記の手順で、Apache2 ウェブサーバー上で - SAPI モジュールとして PHP を動作させることができます。もちろん、Apacheと - PHP の双方とも、もっと多くの configure オプションを指定することが出来ます。 - 詳しい情報を得るには、ソースツリーディレクトリで ./configure - --help を実行してください。 + + マルチスレッド版の Apache をビルドするには、Apache のビルド時に標準の + prefork MPM ではなく worker MPM を選択します。 + そのためには、先ほどの手順 3 のところで ./configure の引数に次のオプションを追加します。 - - マルチスレッド版の Apache をビルドするには、Apache のビルド時に標準の - prefork MPM ではなく worker MPM を選択します。 - そのためには、先ほどの手順 3 のところで ./configure の引数に次のオプションを追加します。 - - - + + + - - - - そうすることで何がどのようになるのかをきちんと認識したうえで、これを行わなければなりません。 - 詳細については Apacheドキュメントの - マルチプロセッシングモジュール (MPM) - を参照してください。 - - - - Apache MultiViews - FAQ では、PHP でマルチビューを使う方法について解説しています。 - - - - - マルチスレッド版の Apache をビルドするには、ターゲットシステムがスレッドに対応していなければなりません。 - その場合は、PHP についても実験的な Zend Thread Safety (ZTS) でビルドしなければなりません。 - この構成では使用できない拡張モジュールもあります。推奨される方法は、Apache をデフォルトの - prefork MPM モジュールでビルドすることです。 - - - + + + + + そうすることで何がどのようになるのかをきちんと認識したうえで、これを行わなければなりません。 + 詳細については Apacheドキュメントの + マルチプロセッシングモジュール (MPM) + を参照ください。 + + + + + Apache MultiViews FAQ では、PHP でマルチビューを使う方法について解説しています。 + + + + + + マルチスレッド版の Apache をビルドするには、ターゲットシステムがスレッドに対応していなければなりません。 + その場合は、PHP についても Zend Thread Safety (ZTS) でビルドしなければなりません。 + この構成では使用できない拡張モジュールもあります。推奨される方法は、Apache をデフォルトの + prefork MPM モジュールでビルドすることです。 + + + - + - Debian GNU/Linux へのインストール + Debian GNU/Linux および関連ディストリビューションのパッケージからのインストール - このセクションでは、Debian GNU/Linux に - PHP をインストールする際の注意事項とヒントについて説明します。 + PHP はソースコードからもインストールできますが、 + Debian GNU/Linux + パッケージからもインストール可能です。これは、Ubuntu、Kali Linux、Linux Mint + のような Debian ベースの他のディストリビューションにも当てはまります。 - - - サードパーティが作った非公式のビルドについてはここではサポートしていません。 - 何かバグを見つけた場合は、 - ダウンロードページ - から取得した最新のビルドでそれが再現するかを確認し、 - 再現しない場合は Debian チームにバグ報告をお願いします。 - - + &warn.install.third-party-support; - Unix 上で PHP をビルドする方法は Debian でもそのまま使えます。 - しかし、このページではもうひとつの方法として Debian 固有の情報を扱います。 - apt-getaptitude - といったコマンドの使い方です。 - このマニュアルページでの説明は、これらふたつのコマンドのどちらを使っても実行できます。 + パッケージは、 apt または aptitude + コマンドを使用してインストールできます。 + このマニュアルでは、どちらのコマンドも同じ意味で使用します。 APT の使用 まず、Apache 2 と統合する場合は - libapache2-mod-php5、PEAR を使う場合は + libapache2-mod-php、PEAR を使う場合は php-pear などの関連パッケージが必要となることを知っておきましょう。 次に、パッケージをインストールする前にはパッケージ一覧を最新に更新しておくようにしましょう。 - これは、apt-get update コマンドで行います。 + これは、apt update コマンドで行います。 Debian で Apache 2 と組み合わせるインストール例 - APT により、Apache 2 用の PHP 5 モジュールとその依存モジュールが自動的にインストールされます。 + APT により、Apache 2 用の PHP モジュールとその依存モジュールが自動的にインストールされます。 インストール中に Apache を再起動する旨が表示されなかった場合は、手動で再起動する必要があります。 @@ -66,38 +58,37 @@ cURL、 GD などの追加モジュールもインストールしたくなることでしょう。 - これらも apt-get コマンドでインストールすることができます。 + これらも apt コマンドでインストールすることができます。 - 追加の PHP 5 パッケージを探す方法 + 追加の PHP パッケージを探す方法 - 上記の出力を見てわかるとおり、(php5-cgi や php5-cli, php5-dev といった - 特別なパッケージのほかにも) さまざまなパッケージがあり、インストールすることが可能です。 - 必要なものを見定めて、apt-get か - aptitude でインストールしましょう。 - Debian は依存性のチェックを行うので、たとえば MySQL と cURL - をインストールする場合はこのようになります。 + パッケージのリストには、php-cgiphp-cli、 + php-dev などの基本的な PHP コンポーネントと多くの + PHP 拡張モジュールを含む多数のパッケージが含まれます。 + 拡張モジュールがインストールされると、それらのパッケージの依存関係を満たすために、 + 必要に応じて追加のパッケージが自動的にインストールされます。 PHP と MySQL、cURL のインストール APT は自動的に、 - /etc/php5/apache2/php.ini や - /etc/php5/conf.d/pdo.ini + /etc/php/7.4/php.ini や + /etc/php/7.4/conf.d/*.ini などの &php.ini; に適切な行を追加し、extension=foo.so といった内容が書き込まれます。しかし、これらの変更を有効にするにはウェブサーバー (Apache など) を再起動しなければなりません。 @@ -121,13 +112,6 @@ インストール後にウェブサーバーを再起動したかどうかを確認しましょう。 - - - Debian (およびその派生物) でパッケージをインストールする基本的なコマンドは - apt-getaptitude のふたつです。 - しかし、これらのコマンドの微妙な違いについての説明は、このマニュアルでは行いません。 - - diff --git a/install/unix/dnf.xml b/install/unix/dnf.xml new file mode 100644 index 0000000000..145bd0ce56 --- /dev/null +++ b/install/unix/dnf.xml @@ -0,0 +1,110 @@ + + + + + DNF を使用する GNU/Linux ディストリビューションでのパッケージからのインストール + + PHP はソースコードからインストールできますが、Red Hat Enterprise Linux、 + OpenSUSE、Fedora、CentOS、Rocky Linux、Oracle Enterprise Linux のような + DNF を使用するシステム上のパッケージからインストールすることもできます。 + + &warn.install.third-party-support; + + パッケージは dnf コマンドでインストールできます。 + + + Installing packages + + まず、PEAR には php-pear、 + MySQL 拡張 には php-mysqlnd + など、 他の関連パッケージが必要になる場合があることに気をつけてください。 + + + 次に、パッケージをインストールする前に、パッケージリストが最新であることを確認するのが賢明です。 + 通常、これは dnf update コマンドを実行して行います。 + + + DNF インストールの例 + + + + + + DNF は Web サーバー に自動的に PHP のための設定をインストールしますが、 + 変更を有効化するには、以下のようなコマンドでサーバーの再起動が必要になる場合があります。 + + + Restarting Apache once PHP is installed + + + + + + + 設定のよりよい管理方法 + + これまでのセクションでは、PHP はコアモジュールのみをインストールしました。 + 次のような追加モジュールが必要になる可能性が非常に高くなります。 + + MySQL + cURL + GD + などなど… + + これらのモジュールも dnf コマンドでインストールできます。 + + + 追加の PHP パッケージを一覧する方法 + + + + + + パッケージのリストには、php-cliphp-fpm、 + php-devel などの基本的な PHP コンポーネントや、多くの PHP + 拡張モジュールを含む数多くのパッケージが含まれています。拡張モジュールがインストールされると、 + それらのパッケージの依存関係を満たすために、 + 必要に応じて追加のパッケージが自動的にインストールされます。 + + + Install PHP with MySQL, GD + + + + + + DNF は、/etc/php/8.3/php.ini/etc/php/8.3/conf.d/*.ini + などのさまざまな &php.ini; 関連ファイルに適切な行を自動的に追加し、 + 拡張モジュールに応じて extension=foo.so のようなエントリを追加します。 + ただし、これらの変更の有効化するには、Web サーバー (Apache など) を再起動しなければなりません。 + + + + diff --git a/install/unix/hpux.xml b/install/unix/hpux.xml deleted file mode 100644 index 04bd95c383..0000000000 --- a/install/unix/hpux.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - HP-UX へのインストール - - このセクションでは、HP-UX へインストールする場合特有の注意とコツについて説明します - - - PHP を HP-UX にインストールするには、二通りの方法があります。 - 自分でコンパイルするか、あるいはコンパイル済みのバイナリを使用するかのどちらかです。 - - - 公式のコンパイル済みパッケージは、こちらにあります。 - &url.hp.software; - - - このセクションをきちんと書き直すまで、PHP (および拡張モジュール) - を HP-UX でコンパイルする方法についてのドキュメントをいったん削除します。 - 当面は、以下のドキュメントを参照ください。 - Building Apache and PHP on HP-UX 11.11 - - - - diff --git a/install/unix/index.xml b/install/unix/index.xml index af7eb50aae..1a5bd97071 100644 --- a/install/unix/index.xml +++ b/install/unix/index.xml @@ -1,180 +1,45 @@ - + - - Unix システムへのインストール - - 本章では、UNIX 系のシステムへの PHP のインストールと設定に関する - 手引きを示します。使用するプラットフォームや Web サーバーについての - セクションを参照して、インストールを行ってください。 - - - このマニュアルでは、 - 「インストールにあたっての一般的な注意事項」 - の章で述べたように、Web 用のセットアップを主に扱います。加えて、 - コマンドラインから PHP を使うためのセットアップについても扱います。 - - - Unix プラットホームに PHP をインストールする方法はいくつかあり、 - コンパイルして設定するやり方と(コンパイル済みの)パッケージを使う方法とに - 別けられます。この手引きでは、コンパイルして設定する方法を主に取り上げます。 - Unix 系システムには、パッケージを用いるインストールシステムを持つものも多く、 - 一般的なセットアップを行うには、パッケージが役に立つでしょう。ただし、 - (セキュアサーバーや様々なデータベースドライバなど)少々特殊な機能が必要な場合、 - PHP や Web サーバーをビルドする必要が有るかもしれません。ソフトウエアの - ビルドに不慣れな場合は、必要な機能を含めてビルドされたパッケージを - 誰か他の人が作成済みでないかを調べてみると良いでしょう。 - - - コンパイルにあたって必要な知識とソフトウエアを以下に示します。 - - - - UNIX に関する基本的な知識 ("make" および C コンパイラを使える程度) - - - - - ANSI C コンパイラ - - - - - Web サーバー - - - - - 個別のモジュール関連のコンポーネント (GD や - PDF ライブラリなど) - - - - - - - Git から取得したソースや、自分でカスタマイズしたソースをビルドするには - さらにこれらが必要です。 - - - - autoconf: 2.13+ (PHP < 5.4.0), 2.59+ (PHP >= 5.4.0), 2.64+ (PHP >= 7.2.0) - - - - - automake: 1.4+ - - - - - libtool: 1.4.x+ (ただし 1.4.2 は除く) - - - - - re2c: バージョン 0.13.4 以降 - - - - - flex: バージョン 2.5.4 (PHP <= 5.2 の場合) - - - - - bison: - - - - - PHP 5.4: 1.28, 1.35, 1.75, 1.875, 2.0, 2.1, 2.2, 2.3, 2.4, 2.4.1, - 2.4.2, 2.4.3, 2.5, 2.5.1, 2.6, 2.6.1, 2.6.2, 2.6.4 - - - - - PHP 5.5: 2.4, 2.4.1, 2.4.2, 2.4.3, 2.5, 2.5.1, 2.6, 2.6.1, 2.6.2, - 2.6.3, 2.6.4, 2.6.5, 2.7 - - - - - PHP 5.6: >= 2.4, < 3.0 - - - - - PHP 7.0 - 7.3: 2.4 以降 (Bison 3.x を含む) - - - - - PHP 7.4: > 3.0 - - - - - - - - - PHP の初期設定および設定プロセスは、configure - スクリプトに与えられたコマンドラインオプションによりコントロールされます。 - ./configure --help とすると、 - オプションの一覧と簡単な解説が表示されます。 - 本マニュアルでは、オプションの種類ごとに別けて解説されています。 - PHP 本体のオプションの一覧は 付録 にまとめられています。 - 各拡張モジュール特有のオプションは、関数リファレンスのページに記述されています。 - - - - PHP の configure が完了していないと、 - 拡張モジュールや本体の実行ファイルのビルドができません。 - make コマンドの実行にあたっては、注意してください。 - configure がうまく行かず原因もよくわからない場合は、 - 問題が起きた場合 - についての章を参照してください。 - - - - - Unixシステム (OpenBSD や SELinux のような) によっては、 - セキュリティ上の理由で、 - メモリ上のページに書き込み可能属性と実行可能属性の両方を付与することを - 許可しないかもしれません。 - これは PaX MPROTECT とか W^X (Write XOR Execute) 防御と呼ばれています。 - しかしながら、この手のメモリマッピングは PCRE の JIT サポートに必要なので、 - PHP を PCRE の JIT サポート抜きでビルドする か、 - 何とかしてシステムが提供するホワイトリストに PHP のバイナリを入れなければならないでしょう。 - - - - - - Android ツール群を使った ARM 向けのクロスコンパイルには、今のところ対応していません。 - - - - - &install.unix.apache1; - &install.unix.apache2; - &install.unix.nginx; - &install.unix.lighttpd-14; - &install.unix.sun; - &install.unix.litespeed; - &install.unix.commandline; - - &install.unix.hpux; - &install.unix.openbsd; - &install.unix.solaris; - - &install.unix.debian; - - - + + Unix システムへのインストール + + ほとんどの Unix (および Linux) オペレーティングシステムとディストリビューションには、 + パッケージシステムを通じて利用できるパッケージされたバージョンの PHP と拡張モジュールがあります。 + これらのシステムを使用して PHP をインストールするための基本情報を記載したセクションがあります。 + + + 一部のディストリビューションには、バージョンや拡張モジュールなどの幅広い選択肢があるパッケージを + 提供しているサードパーティのリポジトリもあります。 + + + PHP は、一部のアプリケーションサーバーのコンポーネントとしてインストールすることもできます。 + + + + 最後に、PHP は常にソースコードからインストールできます。 + これによって、どの機能や拡張モジュール、SAPI を有効にするかについて、 + 最も大きな柔軟性を得ることができます。 + 異なる SAPI を使って PHP を設定し、コンパイルすることに関するセクションもあります。 + + + + &install.unix.debian; + &install.unix.dnf; + &install.unix.openbsd; + + &install.unix.source; + + &install.unix.commandline; + &install.unix.apache2; + &install.unix.nginx; + &install.unix.lighttpd-14; + &install.unix.litespeed; + + &install.unix.solaris; + + - + Lighttpd 1.4 (Unix システム用) @@ -15,23 +15,18 @@ - PHP と Lighttpd を組み合わせる際におすすめの SAPI は fastcgi です。 - fastcgi は PHP 5.3 以降の php-cgi では自動的に有効になりますが、 - それより前のバージョンの場合は php の configure 時に - --enable-fastcgi を指定しなければなりません。 - PHP で fastcgi が有効になっているかどうかを調べるには、 - php -v の結果が PHP 5.2.5 (cgi-fcgi) - のようになっているかどうかを確認します。 - PHP 5.2.3 以前の場合は、(php-cgi ではなく) php バイナリで - fastcgi が使えるようになります。 + PHP と Lighttpd を組み合わせる際におすすめの SAPI は FastCGI です。 + FastCGI は、php-cgi では自動的に有効になります。 Lighttpd に php プロセスを起動させる - Lighttpd から php に接続して fastcgi プロセスを立ち上げさせるよう設定するには、 - lighttpd.conf を編集します。ローカルシステムの fastcgi + Lighttpd から php に接続して FastCGI + プロセスを立ち上げさせるように設定するには、 + lighttpd.conf を編集します。 + ローカルシステムの FastCGI プロセスに接続するにはソケットの使用をおすすめします。 @@ -60,17 +55,17 @@ fastcgi.server = ( ".php" => - bin-path ディレクティブにより、lighttpd - が fastcgi プロセスを動的に起動できるようになります。 - PHP は、環境変数 PHP_FCGI_CHILDREN の内容に応じて子プロセスを起動します。 - "bin-environment" ディレクティブは、起動するプロセスの環境を設定します。 - リクエストの数が PHP_FCGI_MAX_REQUESTS の値に達すると、 + bin-path ディレクティブにより、lighttpd + が FastCGI プロセスを動的に起動できるようになります。 + PHP は、環境変数 PHP_FCGI_CHILDREN の内容に応じて子プロセスを起動します。 + bin-environment ディレクティブは、起動するプロセスの環境を設定します。 + リクエストの数が PHP_FCGI_MAX_REQUESTS の値に達すると、 PHP は子プロセスを kill します。ディレクティブ - "min-procs" および "max-procs" は、PHP での使用は避けるべきです。 + min-procs および max-procs は、PHP での使用は避けるべきです。 PHP は自身の子プロセスを自前で管理しますし、 APC のような opcode キャッシュは PHP が管理する子プロセスしか共有しません。 - "min-procs" を 1 より大きい値に設定すると、 - PHP レスポンダの数が PHP_FCGI_CHILDREN にその値をかけたものとなります + min-procs1 より大きい値に設定すると、 + PHP レスポンダの数が PHP_FCGI_CHILDREN にその値をかけたものとなります (2 min-procs * 16 子プロセスで 32 のレスポンダとなります)。 @@ -80,7 +75,7 @@ fastcgi.server = ( ".php" => Lighttpd には spawn-fcgi というプログラムが含まれており、 - fastcgi プロセスの起動を簡単に行えるようになっています。 + FastCGI プロセスの起動を簡単に行えるようになっています。 @@ -89,8 +84,8 @@ fastcgi.server = ( ".php" => spawn-fcgi なしでプロセスを起動することもできますが、多少難易度が上がります。 - 環境変数 PHP_FCGI_CHILDREN で、PHP がリクエストの処理用に起動する子の数を設定します。 - PHP_FCGI_MAX_REQUESTS は、各子プロセスの生存期間 (リクエスト数) + 環境変数 PHP_FCGI_CHILDREN で、PHP がリクエストの処理用に起動する子の数を設定します。 + PHP_FCGI_MAX_REQUESTS は、各子プロセスの生存期間 (リクエスト数) を設定します。php レスポンダを起動するシンプルな bash スクリプトの例を以下に示します。 @@ -129,7 +124,7 @@ echo $! > "$PHP_PID" リモートの FCGI インスタンスへの接続 - fastcgi インスタンスを複数のリモートマシンで起動して、 + FastCGI インスタンスを複数のリモートマシンで起動して、 アプリケーションの規模を拡大することができます。 diff --git a/install/unix/litespeed.xml b/install/unix/litespeed.xml index 8711e30e0f..265a52ccb1 100644 --- a/install/unix/litespeed.xml +++ b/install/unix/litespeed.xml @@ -1,9 +1,9 @@ - - + + - LiteSpeed/OpenLiteSpeed Webサーバ(Unixシステム用) + LiteSpeed/OpenLiteSpeed Webサーバー(Unixシステム用) LiteSpeed PHP は、LiteSpeed SAPI を通じて LiteSpeed プロダクトと動作させるための @@ -21,14 +21,14 @@ このドキュメントは、 - LiteSpeed/OpenLiteSpeed Webサーバのために、PHP を LSAPI とともに + LiteSpeed/OpenLiteSpeed Webサーバーのために、PHP を LSAPI とともに インストールし、設定する方法を示します。 このガイドは、LSWS または OLS が それぞれのデフォルトの path とフラグを使ってインストールされていると想定しています。 - それぞれの Webサーバのデフォルトのインストールディレクトリは /usr/local/lsws であり、 + それぞれの Webサーバーのデフォルトのインストールディレクトリは /usr/local/lsws であり、 bin サブディレクトリから実行できます。 @@ -42,12 +42,12 @@ - LiteSpeed//OpenLiteSpeed Web サーバを取得し、インストールするには、 - LiteSpeed Web サーバの wiki - install page - または OpenLiteSpeed wiki - install page. - を参照してください。 + LiteSpeed/OpenLiteSpeed Web サーバーを取得し、インストールするには、 + LiteSpeed Web サーバーの ドキュメント + install page + または OpenLiteSpeed のドキュメント + install page + を参照ください。 @@ -73,10 +73,10 @@ cd php-x.x.x PHP を configure し、ビルドします。 ここで PHP を様々なオプションを使ってカスタマイズできます。 - たとえば、どの拡張機能を有効にするか、のようなものです。 + たとえば、どの拡張モジュールを有効にするか、のようなものです。 利用できるオプションの一覧については、 ./configure --help を - 参照してください。 - 私達の例では、LiteSpeed Webサーバで推奨されているデフォルトの設定オプションを使うことにします: + 参照ください。 + 私達の例では、LiteSpeed Webサーバーで推奨されているデフォルトの設定オプションを使うことにします: @@ -130,13 +130,13 @@ Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies 上のステップに従えば、 - LiteSpeed / OpenLiteSpeed Webサーバが + LiteSpeed / OpenLiteSpeed Webサーバーが SAPI 拡張としての PHP サポートを有効にした状態で実行できるようになっているはずです。 - LSWS / OLS と PHP で利用可能なせっていおぷしょんはもっとたくさんあります。 + LSWS / OLS と PHP で利用可能な設定オプションはもっとたくさんあります。 さらに詳しい情報は、 - LiteSpeed wiki の - PHP - のページを参照してください。 + LiteSpeed ドキュメント の + PHP + のページを参照ください。 @@ -145,16 +145,16 @@ Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies LSPHP(LSAPI + PHP) コマンドラインモードは、 - 必ずしも Web サーバが実行されていないリモートサーバ上で + 必ずしも Web サーバーが実行されていないリモートサーバー上で PHPスクリプトを実行するために使います。 - (別にある)ローカルの Webサーバのそばで、 + (別にある)ローカルの Webサーバーのそばで、 PHPスクリプトを実行するために使われます。 - PHP の実行がリモートサーバにオフロードされるので、 + PHP の実行がリモートサーバーにオフロードされるので、 このセットアップはサービスのスケールさせる目的にも合っています。 - リモートサーバ上でのコマンドラインから lsphp を起動します: + リモートサーバー上でのコマンドラインから lsphp を起動します: LSPHP は実行可能であり、-b socket_address オプションを使えば、 IPv4/IPv6/Unixドメインソケットアドレスに bindした状態で手動で起動できます。 @@ -226,13 +226,14 @@ PHP_LSAPI_MAX_REQUESTS=500 PHP_LSAPI_CHILDREN=35 /path/to/lsphp -b IP_address:po - LiteSpeed PHP は、 LiteSpeed/OpenLiteSpeed Web サーバ、 + LiteSpeed PHP は、 LiteSpeed/OpenLiteSpeed Web サーバー、 および Apache の mod_lsapi とともに使えます。 - サーバサイドの設定のさらなるステップについては、 - wiki ページ - LiteSpeed Webサーバ - および OpenLiteSpeed - を参照してください。 + サーバーサイドの設定のさらなるステップについては、 + ドキュメントの + LiteSpeed Web Server + および + OpenLiteSpeed + を参照ください。 @@ -243,14 +244,14 @@ PHP_LSAPI_MAX_REQUESTS=500 PHP_LSAPI_CHILDREN=35 /path/to/lsphp -b IP_address:po CentOS: CentOS では、LSPHP は LiteSpeed リポジトリ または Remi リポジトリ から、 - RPM + RPM を使ってインストールできます。 Debian: Debian では、LSPHP は LiteSpeed リポジトを経由で、 - apt + apt を使ってインストールできます。 @@ -258,8 +259,8 @@ PHP_LSAPI_MAX_REQUESTS=500 PHP_LSAPI_CHILDREN=35 /path/to/lsphp -b IP_address:po cPanel: CPanel と EashApache 4 を使って、LSWS/OLS と CPanel とともに LSPHP をインストールする方法については、 それぞれの - wiki ページ - を参照してください。 + documentation page + を参照ください。 @@ -267,8 +268,8 @@ PHP_LSAPI_MAX_REQUESTS=500 PHP_LSAPI_CHILDREN=35 /path/to/lsphp -b IP_address:po Plesk は、CentOS, CloudLinux, Debian, および Ubuntu 上の LSPHP ともに利用できます。 これに関するさらなる情報は、 それぞれの - wiki ページ - を参照してください。 + documentation page + を参照ください。 diff --git a/install/unix/nginx.xml b/install/unix/nginx.xml index dbf1ae93fe..a7d80e266a 100644 --- a/install/unix/nginx.xml +++ b/install/unix/nginx.xml @@ -1,12 +1,12 @@ - - + + Nginx 1.4.x (Unix システム用) - このドキュメントは、Nginx 1.4.x HTTPサーバ 向けに PHP を + このドキュメントは、Nginx 1.4.x HTTPサーバー 向けに PHP を PHP-FPM とともにインストールし、設定する方法を示します。 @@ -20,7 +20,7 @@ - このガイドは、Nginx サーバが PHP アプリケーションを実行できるように設定し、 + このガイドは、Nginx サーバーが PHP アプリケーションを実行できるように設定し、 それを port 80 で公開するための基本的な設定を示します。 あなたのセットアップを最適化したい場合、Nginx と PHP-FPM のドキュメント を調べることを推奨します。セットアップの最適化は、このガイドの範囲外です。 @@ -60,9 +60,9 @@ tar zxf php-x.x.x PHP を configure し、ビルドします。 ここで PHP を様々なオプションを使ってカスタマイズできます。 - たとえば、どの拡張機能を有効にするか、のようなものです。 + たとえば、どの拡張モジュールを有効にするか、のようなものです。 利用できるオプションの一覧については、 ./configure --help を - 参照してください。 + 参照ください。 私達の例では、PHP-FPM を MySQLi のサポートを有効にして シンプルに configure することにします。 @@ -175,7 +175,7 @@ group = www-data このガイドでは php-fpm をこれ以上設定しませんが、 - php-fpm のさらなる設定に興味がある場合、ドキュメントを参照してください。 + php-fpm のさらなる設定に興味がある場合、ドキュメントを参照ください。 @@ -266,7 +266,7 @@ echo "" >> /usr/local/nginx/html/index.php 上のステップに従うことで、 FPM SAPI モジュールとして - PHP をサポートした Nginx Web サーバを実行できるでしょう。 + PHP をサポートした Nginx Web サーバーを実行できるでしょう。 もちろん、さらに沢山の設定オプションが Nginx と PHP では利用可能です。 さらに多くの情報を得るには、対応するソースツリーで、 ./configure --help とタイプしてみてください。 diff --git a/install/unix/openbsd.xml b/install/unix/openbsd.xml index 70f8aca05c..fcec63a6e0 100644 --- a/install/unix/openbsd.xml +++ b/install/unix/openbsd.xml @@ -1,11 +1,11 @@ - + - OpenBSD へのインストール + OpenBSD パッケージまたは ports からのインストール - このセクションでは、PHP を OpenBSD 5.8 に + このセクションでは、PHP を OpenBSD に インストールする場合に固有の注意事項とヒントについて説明します。 @@ -13,13 +13,14 @@ OpenBSD に PHP をインストールするには、バイナリパッケージを使用することが もっとも簡単で、また推奨される方法です。 - コアパッケージは他のモジュールと分けられており、別個に + コアパッケージは他のモジュールと分離されており、別個に インストールしたり、削除したりすることができます。OpenBSD の CD や FTP サイトから 必要なファイルを見つけることができます。 インストールに必要なメインのパッケージは php - です。これには基本エンジン (と gettext と iconv) が含まれています。次に、 + です。これには基本エンジン (と fpm と gettext と iconv) が含まれていますし、 + 複数のバージョンが選べるかもしれません。次に、 php-mysqlphp-imap のようなモジュールパッケージを 探してください。これらのモジュールを &php.ini; 上で有効/無効にするには @@ -30,8 +31,8 @@ @@ -48,7 +49,7 @@ Follow the instructions shown with each package! OpenBSD のバイナリパッケージに関する詳細は、man ページの packages(7) を - 参照してください。 + 参照ください。 @@ -56,8 +57,8 @@ Follow the instructions shown with each package! ports ツリー を使って PHP のソースを コンパイルすることもできます。ただし、この方法は OpenBSD に詳しいユーザーにのみ - 推奨されます。PHP 4 ポートは core, extensions の 2 つのサブディレクトリに - 分割されています。extensions ディレクトリはサポートされているすべての PHP + 推奨されます。PHP port は core と extensions に + 分割されています。extensions はサポートされているすべての PHP モジュールのサブパッケージを生成します。 これらのうちのいずれかのモジュールを生成したくない場合には、 no_* FLAVOR を使用してください。例えば、imap モジュール @@ -92,28 +93,15 @@ Follow the instructions shown with each package! - OpenBSD 5.7+ においては、gd 拡張モジュールのパッケージは - XFree86 のインストールを必要とします。これは、 - post-installation (OpenBSD FAQ#4 を参照ください) で追加できます。 - xbase.tgz ファイルを指定しましょう。 + OpenBSD のgd 拡張モジュールのパッケージは + Xorg のインストールが必要です。ベースインストール時に + xbase.tgz を追加していない場合、 + post-installation (OpenBSD FAQ#4 を参照ください) で追加できます。 - - 過去のリリース - - OpenBSD の過去のリリースは、静的にリンクされた PHP をコンパイルするために - FLAVORS システムを使用していました。 - この方法でバイナリパッケージを作成することは困難なため、 - この方法は現在は使用されていません。 - 古い安定版の ports ツリーを使用することもできますが、 - これらは OpenBSD チームによりサポートされていません。 - これに関するコメントがある場合、port の現在の管理者は - Anil Madhavapeddy (avsm at openbsd dot org) です。 - - - + <productname>Solaris</productname> へのインストール @@ -57,11 +57,6 @@ 別の拡張モジュールをビルドしたり PHP のコードをハックしたりするためには、これらも必要になるでしょう。 - - - flex (PHP 5.2 まで) - - re2c diff --git a/install/unix/source.xml b/install/unix/source.xml new file mode 100644 index 0000000000..7ce05a2614 --- /dev/null +++ b/install/unix/source.xml @@ -0,0 +1,117 @@ + + + + + Unix および macOS システムでのソースコードからのインストール + + コンパイルに必要なソフトウェア: + + + GNU make + + + C コンパイラ (PHP 8.0.0 以降は C99、PHP 8.4.0 以降は C11 互換性が必須) + + + Web サーバー + + + モジュールごとに必要なコンポーネント + (GDPDF ライブラリなど) + + + + + + Git ソースから直接ビルドする場合や、PHP のソースコードをカスタムしてビルドする場合、 + 以下の追加ツールが必要になる場合があります。 + + + + autoconf: + + + + PHP 7.3 以降: バージョン 2.68 以上 + + + PHP 7.2: バージョン 2.64 以上 + + + PHP 7.1 以前: バージョン 2.59 以上 + + + + + + re2c: + + + + PHP 8.3 以降: バージョン 1.0.3 以上 + + + PHP 8.2 以前: バージョン 0.13.4 以上 + + + + + + bison: + + + + PHP 7.4 以降: バージョン 3.0.0 以上 + + + PHP 7.3 以前: バージョン 2.4+ 以上 (3.x を含む) + + + + + + + + PHP をソースコードからコンパイルする、さらに詳細なステップについては、 + ソースの tar ボールに入っている + README.md + を参照ください。 + + + + PHP の初期セットアップと構成プロセスは、configure + スクリプトのコマンドライン オプションを使用して制御されます。 + ./configure --help を実行すると、 + 使用可能なオプションの一覧と簡単な説明が表示されます。 + このマニュアルでは、さまざまなオプションを個別に説明しています。 + 中心となる configure オプションのリストはこちら + にありますが、さまざまな拡張モジュールごとに固有のオプションについては + リファレンスページで説明されています。 + + + + 構成スクリプトが実行された後、make コマンドを使用して PHP + をビルドできます。マニュアルのインストールについてのよくある質問 + のページには、ビルドの問題の対処方法についての詳細情報があります。 + + + + + 一部の Unix システム (OpenBSD や SELinux など) では、 + PaX MPROTECT + または W^X violation + protection と呼ばれるセキュリティ上の理由から、書き込み可能ページ + と実行可能ページの両方のマッピングを禁止する場合があります。この種のメモリ + マッピングは PCRE の JIT サポートに必要であるため、PHP を + PCRE の JIT サポートなし + でビルドするか、システムが提供する何らかの手段でバイナリを + ホワイトリストに登録する必要があります。 + + + + + + いまのところ、Android ツールチェーンを使用した ARM のクロスコンパイルはサポートされていません。 + + + diff --git a/install/unix/sun.xml b/install/unix/sun.xml deleted file mode 100644 index 2648f8ef32..0000000000 --- a/install/unix/sun.xml +++ /dev/null @@ -1,347 +0,0 @@ - - - - - - Sun, iPlanet, Netscape サーバー(Sun Solaris 用) - - このセクションでは、Sun Solaris 上の Sun Java System Web Server, Sun ONE Web Server, - iPlanet and Netscape server に PHP をインストールする際の - 手引きと注意事項について説明します。 - - - PHP 4.3.3 より、NSAPI モジュール を使って - 独自エラーページ および - ファイル一覧表示ページの生成 が可能です。 Apache 互換の関数も追加されています。 - また、これらの Web サーバーについての - サブリクエストに関する注意 も参照してください。 - - - Netscape Enterprise Server (NES) への PHP のインストールに関しては - &url.netscape.nsapi; にも情報があります。 - - - - Sun JSWS/Sun ONE WS/iPlanet/Netscape Web サーバー用に PHP をビルド - するには、--with-nsapi=[DIR] - オプションに適切なインストールディレクトリを指定してください。 - デフォルトのディレクトリは、通常、/opt/netscape/suitespot/ - です。 - /php-xxx-version/sapi/nsapi/nsapi-readme.txt も参照してください。 - - - - - - 以下のパッケージを、 - &url.sun.freeware; や他のダウンロードサイトから取得し、 - インストールします。 - - autoconf-2.13 - automake-1.4 - bison-1_25-sol26-sparc-local - flex-2_5_4a-sol26-sparc-local - gcc-2_95_2-sol26-sparc-local - gzip-1.2.4-sol26-sparc-local - m4-1_4-sol26-sparc-local - make-3_76_1-sol26-sparc-local - - mysql-3.23.24-beta (mysql サポートが必要な場合) - - perl-5_005_03-sol26-sparc-local - tar-1.13 (GNU tar) - - - - - - パスを適切に設定します - ( PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin )。 - そして、export PATHとし、パスを有効にします。 - - - - - gunzip php-x.x.x.tar.gz (.gz 配布の場合のみ) - - - - - tar xvf php-x.x.x.tar - - - - - PHP を展開したディレクトリに移動します - cd ../php-x.x.x - - - - - 以下のステップを実施します。 - /opt/netscape/suitespot/ は - netscape サーバーがインストールされている場所です。 - 異なる場合は、適切なパスに変更してください。 - - - - - - - - make を実行し、その後 make install - を実行します。 - - - - - - 基本インストールを実行したら、適当な readme ファイルを参照してください。 - いくつかの追加インストール手順を実行する必要があるかもしれません。 - - - Sun/iPlanet/Netscape の設定手順 - - まず、共有ライブラリの探索のために、環境変数 - LD_LIBRARY_PATH にパスをいくつか追加する必要があります。 - Webサーバーの開始スクリプトで行うのが最善でしょう。 - 開始スクリプトは、通常 - /path/to/server/https-servername/start - にあります。 - また、/path/to/server/https-servername/config/ - にある設定ファイルの編集も必要です。 - - - - mime.typesに次の行を追加します - (administration server で行えます。) - - - - - - - - magnus.conf (サーバー>= 6の場合) または - obj.conf (サーバー< 6の場合) を編集し、 - 以下の行を追加します。 - ここで、shlib はシステムにより異なります。 - /opt/netscape/suitespot/bin/libphp4.so - 等となるでしょう。 - mime types init の後に置いてください。 - - - - (PHP >= 4.3.3) php_ini パラメータはオプションですが、 - これを指定することにより、Web サーバーの設定ファイルがあるフォルダに - &php.ini; を置くことが可能になります。 - - - - - obj.conf のデフォルトオブジェクトを設定します - (バージョン 6 以降の仮想サーバーの場合は - vserver.obj.conf。) - - -. -. -. -.#NOTE this next line should happen after all 'ObjectType' and before all 'AddLog' lines -Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...] -. -. - -]]> - - (PHP >= 4.3.3) 追加のパラメータとして、いくつかの特別な &php.ini; 値を - 追加することができます。例えば、コンテキスト php4_execute に対して - docroot="/path/to/docroot" を設定するなどです。 - また、論理値の場合、0/1 を値として使用してください。 - "On","Off",... では正しく動作しません。 - 例えば、zlib.output_compression="On" ではなく、 - zlib.output_compression=1 とします。 - - - - - 以下は、(cgi-bin ディレクトリ のように) - PHP スクリプトだけが置かれるディレクトリを設定したい場合にのみ必要です。 - - -ObjectType fn="force-type" type="magnus-internal/x-httpd-php" -Service fn=php4_execute [inikey=value inikey=value ...] - -]]> - - こうしておくと、Administration Server に特定のディレクトリを設定し、 - これをスタイル x-httpd-php に割り付けることができます。 - このディレクトリの中にあるすべてのファイルは PHP スクリプト として実行されます。 - これは、ファイルの拡張子を .html に変更し、 - PHP が使用されている事を隠したい場合に有用です。 - - - - - 認証を設定します。PHP による認証は他の認証と併用することはできません。 - すべての認証は、PHP スクリプトに渡されます。 - サーバー全体に対して PHP 認証を設定する場合は、以下の行を追加してください。 - - -AuthTrans fn=php4_auth_trans -. -. -. - -]]> - - - - - - 単一のディレクトリでのみ PHP による認証を行う場合は、次の行を追加します。 - - -AuthTrans fn=php4_auth_trans - -]]> - - - - - - - - - PHP が使用するスタックサイズは Web サーバーの設定に依存します。 - 非常に大きい PHP スクリプトを実行させた際にクラッシュが発生する場合は、 - Administration Server でスタックサイズ("MAGNUS EDITOR") を大きくすると良いでしょう。 - - - - - CGI 環境変数と &php.ini; の変更 - - Sun JSWS/Sun ONE WS/iPlanet/Netscape がマルチスレッドの Web サーバーだという事が - PHP スクリプトを書く際に重要になります。すべてのリクエストは同一の - (Web サーバー自体の)プロセス空間で実行され、そのプロセス空間は 1 つの環境変数しか - 持っていません。PATH_INFOHTTP_HOST - CGI 変数を取得する場合、 - 古い PHP で行っていたような方法、つまり getenv 関数を使用する方法や他の同等な方法 - (グローバル変数の登録機能、 $_ENV 等)を使うのは正しい方法ではありません。 - Web サーバーの環境変数をただ単に取得するだけと、 - 正しい CGI 変数は得られないのです。 - - - - なぜ正しくない CGI 変数が登録されているのでしょうか? - - - それは、Web サーバーのプロセスを Administration Server から起動させる際、 - Web サーバーの起動スクリプトが CGI スクリプトとして実行されるためです。したがって、 - 起動された Web サーバーの環境変数には CGI 変数も含まれることになります。 - Administration Server 以外から Web サーバーを起動してみればこのことをテストできるでしょう。 - ルートユーザーでコマンドラインを使って、手動で起動してみると、CGI 変数らしき - 環境変数が登録されないことが確認できるでしょう。 - - - - PHP 4.x のスクリプトで CGI 変数を取得する場合は、スーパーグローバル - $_SERVER を用いるのが正しい方法です。また、$HTTP_HOST - などを使う古いスクリプトを使用する場合は、&php.ini; で register_globals - をオンにし、変数のパースの順番 (variables_order) を変更してください - ("E" を削除。環境変数を読み込む必要は無いため。) - - - - - - - - 独自エラーページおよびファイル一覧表示ページ (PHP >= 4.3.3) - - PHP を使って、"404 Not Found" などに対するエラーページを生成することが - できます。オーバーライドしたいすべてのエラーページ対して、以下の行を - obj.conf 中のオブジェクトに追加してください。 - - - - ここで、XXX は HTTP のエラーコードです。 - 追加したものと干渉する Error ディレクティブは削除してください。 - 発生するすべてのエラーに対応するページを設定したい場合は、 - code パラメータを省略してください。スクリプトで HTTP ステータス - コードを取得するには、 $_SERVER['ERROR_TYPE'] を使用します。 - - - 独自のファイル一覧表示ページを PHP を使って生成することも可能です。 - ファイル一覧表示を行う PHP スクリプトを作成し、obj.conf の - type="magnus-internal/directory" の行に - 書かれているデフォルトの Service 行を以下のように置き換えます。 - - - - エラーページ、ファイル一覧表示ページのいずれでも、元の URI および - 変換後の URI は、それぞれ、$_SERVER['PATH_INFO'] および - $_SERVER['PATH_TRANSLATED'] に格納されます。 - - - - - <function>nsapi_virtual</function> および サブリクエストに関する注意 (PHP >= 4.3.3) - - NSAPI モジュールは、現在、nsapi_virtual 関数 - (エイリアス: virtual) をサポートしており、 - Web サーバーへサブリクエストを行い、結果を Web ページへ挿入することができます。 - ただし、この関数は NSAPI ライブラリの文書化されていない機能を若干使用しています。 - モジュールは、自動的に必要な関数群を探し、可能であればそれらの関数を - 使用ます。もし使用可能でなければ、nsapi_virtual 関数は - 使用不可となります。 - - - - nsapi_virtual サポートは「実験的」な機能です。 - - - - - - diff --git a/install/windows/apache2.xml b/install/windows/apache2.xml new file mode 100644 index 0000000000..5658bec497 --- /dev/null +++ b/install/windows/apache2.xml @@ -0,0 +1,164 @@ + + + + + + Apache 2.x (Microsoft Windows 用) + + このセクションでは、Microsoft Windows 上の Apache 2.x で PHP + をインストールする場合の説明とヒントを記しています。 + + + + まず始めに、 + マニュアルインストールの手順 + をお読みください。 + + + + + Apache ドキュメンテーション + を参照し、Apache 2.x サーバーの基本を理解しておくことを強く推奨します。 + また、以下の解説を読む前に、Apache 2.x に関する + Windows 固有の情報 + についても参照するとよいでしょう。 + + + + 最新の Apache 2.x と、 + 対応するバージョンの PHP をダウンロードしてください。 + マニュアルインストールの手順 + を実施したら、引き続き以下のとおり PHP と Apache の設定を行ってください。 + + + + PHP を Windows 上の Apache 2.x で動かすには三通りの方法があります。 + PHP をハンドラとして動かす方法、CGI として動かす方法、そして + FastCGI で動かす方法です。 + + + ¬e.apache.slashes; + + + Apache ハンドラとしてインストール + + Apache 2.x 用の PHP モジュールを読み込むには、 + 以下の行を Apache 設定ファイル &httpd.conf; に追加しなければいけません: + + PHP を Apache 2.x ハンドラとして使う設定 + + + SetHandler application/x-httpd-php + +# configure the path to php.ini +PHPIniDir "C:/php" +]]> + + + + + + 上の例の C:/php/ + は実際のパスにあわせて修正してください。 + LoadModule ディレクティブで + PHP 7 の場合 php7apache2_4.dll を、 + PHP 8 の場合 php8apache2_4.dll を使うことに注意し、 + 指定したファイルが実際にその場所にあるかどうかを忘れずに確認しましょう。 + + + + + + CGI として PHP を実行させる + + + Apache CGI + ドキュメント を読み、Apache 上の CGI について理解しておきましょう。 + + + + PHP を CGI として実行するには、ScriptAlias + ディレクティブで CGI ディレクトリとして指定した場所に + php-cgi ファイルを置かなければなりません。 + + + + さらに、PHP ファイルに #! の行を追加して + PHP バイナリの場所を指定しなければなりません: + + + PHP を Apache 2.x 上で CGI として動かす例 + + +]]> + + + + &warn.install.cgi; + + + + PHP を FastCGI で実行する + + + PHP を FastCGI で動かすことは、 + CGI として動かすのにくらべると多くの利点があります。 + 設定方法は単純明快です。 + + + まず mod_fcgid を + &url.apachelounge; + から取得します。Win32 用のバイナリがこのサイトからダウンロードできます。 + そして、説明に従ってモジュールをインストールしましょう。 + + + 次にウェブサーバーを以下のように設定します。 + パスの部分は適切に変更し、インストールするシステム上の環境にあわせましょう: + + + PHP を FastCGI として動かす Apache の設定 + + + SetHandler fcgid-script + +FcgidWrapper "c:/php/php-cgi.exe" .php +]]> + + + + これで、拡張子 .php のファイルは PHP FastCGI + ラッパーが処理するようになります。 + + + + diff --git a/install/windows/building.xml b/install/windows/building.xml new file mode 100644 index 0000000000..b85f4ce719 --- /dev/null +++ b/install/windows/building.xml @@ -0,0 +1,34 @@ + + + + + + ソースからのビルド + + + Visual Studio を使ってビルドするには、 + step-by-step + build instructions を参照ください。 + + + + diff --git a/install/windows/commandline.xml b/install/windows/commandline.xml new file mode 100644 index 0000000000..66b9b08cc1 --- /dev/null +++ b/install/windows/commandline.xml @@ -0,0 +1,217 @@ + + + + + + Windows で PHP をコマンドラインで動かす + + この節では、PHP を Windows のコマンドラインで実行するときの注意点やヒントを説明します。 + + + + まず最初に + 手動でのインストールの手順 を読みましょう! + + + + 特に Windows に手を加えなくても、PHP をコマンドラインから実行することはできます。 + + + + + + + しかし、次の手順に従えば、さらにシンプルに実行することができます。 + この中にはすでに実行済みのものがあるかもしれませんが、 + 順を追って進めていくために + もう一度ここで説明しておきます。 + + + + + PATHPATHEXT は + Windows で重要な働きをするシステム変数です。 + 既存の変数の値を上書きしないように注意しましょう。 + あくまでも追記するだけにします。 + + + + + + PHP の実行ファイル (php.exe、 + php-win.exe あるいは + php-cli.exe。 + PHP のバージョンや設定によって変わります) + がある場所を環境変数 PATH の最後に追加します。 + PHP のディレクトリを PATH に追加する方法は、FAQ の項目 + を参照ください。 + + + + + + 拡張子 .PHP を、環境変数 + PATHEXT の最後に追加します。これは、環境変数 + PATH の変更と同時に行うこともできます。 + FAQ + に書かれている手順に従いましょう。ただし、環境変数 + PATH の部分は + PATHEXT に変更します。 + + + .PHP をどの位置に書くかによって、 + ファイル名がマッチしたときに実行されるスクリプトあるいはプログラムが決まります。 + たとえば .PHP を + .BAT より前に書くと、 + 同じ名前のバッチファイルがあってもスクリプトのほうを優先して実行します。 + + + + + + + + 拡張子 .PHP をファイル形式と関連づけます。 + これは、次のコマンドで行います: + + + + + + + + + ファイル形式 phpfile を適切な PHP 実行ファイルと関連づけます。 + これは、次のコマンドで行います。 + + + + + + + + + + + このようにしておくと、どのディレクトリにあるスクリプトを実行するときにも + PHP 実行ファイルのパスや拡張子 .PHP をタイプしなくて済むようになります。 + また、スクリプトに渡すパラメータを指定することもできます。 + + + + 次の例は、レジストリの変更の一部を示したものです。これらは手動で行うこともできます。 + + Registry changes + + + + + + + + これらの変更をすれば、同じコマンドを次のように書くことができます: + + + + また、"C:\PHP Scripts" が環境変数 + PATH に含まれていれば、次のように書くこともできます: + + + + + + + + これらのテクニックを使って + PHP スクリプトをコマンドラインフィルタとして使おうとすると、 + ちょっとした問題が発生します。 + 「コマンドラインフィルタとして使う」とは、たとえば + + + + あるいは + + + + のように使うということです。 + このようにすると、スクリプトがハングして何も出力されなくなります。 + これをうまく動作させるには、さらにレジストリを変更しなければなりません。 + + + + + この件に関する詳細な情報は Microsoft + Knowledgebase Article : 321788 を参照ください。 + Windows 10 ではこの設定が変更されたようです。Windows 10 をインストールしたデフォルトの状態で、 + コンソールのハンドルが自動的に引き継がれるようになります。この件に関しては、 + + Microsoft のフォーラムへの投稿 に説明があります。 + + + + diff --git a/install/windows/iis.xml b/install/windows/iis.xml new file mode 100644 index 0000000000..93c0a2cf38 --- /dev/null +++ b/install/windows/iis.xml @@ -0,0 +1,95 @@ + + + + + Windows の IIS と一緒にインストール + + + IIS のインストール + + Internet Information Services (IIS) は、 + Windows に標準で組み込まれています。 + Windows サーバーの場合は、 + サーバーマネージャーを使って IIS ロールを追加します。 + CGI ロールを含める必要があります。 + Windows デスクトップの場合は、 + コントロールパネルの「プログラムの追加と削除」を使って IIS を追加します。 + Microsoft のドキュメントに 詳細な手順があります。 + デスクトップウェブアプリケーションやウェブ開発の場合は、IIS/Express や PHP Desktop も使えます。 + + + + IIS と一緒に FastCGI ハンドラを使えば、 + Non-Thread Safe (NTS) 版の PHP のビルドがインストールされるはずです。 + + + + + IIS と PHP を設定する + + + IIS マネージャー内で、FastCGI モジュールをインストールし、 + .php のハンドラマッピングを + php-cgi.exe に対して追加します。 + (php.exe ではありません) + + + + IIS の設定をスクリプト化するには、 + APPCMD コマンドラインツールが使えます。 + + + + サンプルのバッチスクリプト + + IIS と PHP の設定をするためのコマンドライン + + + + + + + diff --git a/install/windows/index.xml b/install/windows/index.xml index 3d1d7b0c82..df08d985b7 100644 --- a/install/windows/index.xml +++ b/install/windows/index.xml @@ -1,100 +1,36 @@ - + - - + - Windows システムへのインストール - - 最近の Microsoft Windows システムへのインストール方法と、一般的なウェブサーバー用の推奨構成を説明します。 - - - - Windows XP, 2003, 98 や Apache 1.x などの古いバージョンに関する情報は、旧バージョンの情報 を参照ください。 - - - - - Windows 版の PHP の公式リリースは、実運用環境でも使えるものです。しかし、PHP をソースからビルドすることもできます。 - そのためには Visual Studio の環境が必要です。詳細は Step by Step Build Instructions を参照ください。 - - - - - - Windows コマンドラインでの PHP の使用法 - - - - - Azure App Services (aka Microsoft Azure, Windows Azure, (Windows) Azure Web Apps) 上での PHP のインストール - - - - - - - インストール要件 - - - PHP 5.5+ は、Windows 2008/Vista, or 2008r2, 2012, 2012r2, 2016 or 7, 8, 8.1, 10 で動きます。32ビット (x86) と64ビット (x64) のどちらでも動きます。PHP は Windows RT/WOA/ARM 上では動きません。 - PHP 7.2.0 以降、Windows 2008 および Vista はもはやサポートされません。 - - - - PHP は Visual C ランタイム (CRT) を必要とします。これを必要とするアプリケーションは多いので、おそらく既にインストールされているでしょう。 - - - - PHP 5.5 および 5.6 が必要とするのは VC CRT 11 (Visual Studio 2012) です。https://www.microsoft.com/en-us/download/details.aspx?id=30679 を参照ください。 - - - - PHP 7.0 と 7.1 が必要とするのは VC CRT 14 (Visual Studio 2015) です。 - PHP 7.2, 7.3 および 7.4 が必要とするのは VC CRT 15 (Visual Studio 2017) です。 - Microsoft Visual C++ Redistributable for Visual Studio 2019 はこれら全ての PHP バージョンに適合します。 - https://visualstudio.microsoft.com/downloads/ - を参照してください。 - - - - x86 版のビルドには x86 版の CRT を、そして x64 版のビルドには x64 版の CRT が必要です。 - - - - CRT が既にインストール済みである場合はインストーラがそれを検出して通知してくれます。この場合、インストーラは何も手を加えません。 - - - - CRT のインストーラはコマンドラインオプション /quiet および /norestart に対応しているので、スクリプトで自動実行させることもできます。 - - - - VC11 CRT は、DLL をローカルマシンからリモートマシンにコピーすることもできます (`コピーデプロイメント` 方式のインストール)。そうすれば、リモートマシン (アクセス権限が制限されているウェブサーバーなど) でインストーラを実行する必要がなくなります。 - - - - VC14 CRT は、`コピーデプロイメント` 方式のインストールに対応していません。VC14 CRT は大量の DLL で構成されています (その多くは api-* で始まるファイル名です)。これらすべてのファイルをコピーしても、さらに作業が必要となるでしょう (リソースハッカーなどのツールを使って、コピーする DLL の一覧を取得してみましょう)。 - - - - - - PECL - - PECL 拡張モジュールは、Windows 用にビルド済みのものがこちらからダウンロードできます。http://windows.php.net/downloads/pecl/releases/ - - - Unix システム固有の機能を使っている拡張モジュールは Windows 版が存在しませんが、それ以外についてはすべて Windows 版が用意されています。 - - - - - &install.windows.tools; - &install.windows.recommended; - &install.windows.manual; - &install.windows.troubleshooting; - &install.windows.legacy.index; + Windows システムへのインストール + + + Windows 版の PHP の公式リリースは、実運用環境でも使えるものです。 + しかし、PHP を + ソースコードからビルド + することもできます。 + + + + PHP は + Azure App Services + (aka Microsoft Azure, Windows Azure, (Windows) Azure Web Apps) + 上でもインストールできます。 + + + + インストールに関する FAQ + のページは、発生する可能性のある一般的なインストール上の問題や、 + 設定の問題を扱っています。 + + + &install.windows.recommended; + &install.windows.manual; + &install.windows.apache2; + &install.windows.iis; + &install.windows.tools; + &install.windows.building; + &install.windows.commandline; - - - - Apache 1.3.x (Microsoft Windows 用) - - このセクションでは、Microsoft Windows 上の Apache 1.3.x で PHP - を使用する場合について説明します。 - - - - - まず始めに、マニュアルインストールの手順 - をお読みください。 - - - - - PHP を Windows 上の Apache 1.3.x で動作させるには、2種類の方法が - あります。一つは、CGI バイナリ (PHP 4 の場合 php.exe、 - PHP 5 の場合 php-cgi.exe) を使用する方法、もう一つ - は Apache モジュール DLL を使用する方法です。どちらの場合も - &httpd.conf; を編集して Apache が PHP を利用できるようにした後、 - Apache サーバーを再起動する必要があります。 - - - - Windwos 環境向けの SAPI モジュールはかなり安定してきているため、 - 透過性と安全性の面からも CGI バイナリより SAPI モジュールの - 使用を推奨します。 - - - - Apache で PHP を使うように設定する手順にはいくつかのバリエーションがありますが、 - いずれも入門者にもできるほど簡単です。設定ディレクティブに関する詳細については、 - Apache のドキュメントも参照してください。 - - - - 設定ファイルを変更した後、サーバーの再起動を忘れずに行ってください。 - Apache を Windows サービスとして実行しているなら、NET STOP APACHE - とした後 NET START APACHE とします。 - もしくは、スタートメニューのショートカットからも再起動できる場合もあります。 - - - ¬e.apache.slashes; - - - Apache モジュールの使用 - - 以下の行を Apache の &httpd.conf; ファイルに追加してください。 - - - - Apache 1.3.x でモジュール版の PHP を使用する場合の設定 - - 以下では、PHP は c:\php にインストールされていると仮定します。 - そうでない場合はパスを適当に修正してください。 - - - PHP 4 の場合 - - - - - - PHP 5 の場合 - - - - - - 共通 - - - 条件節の内部に追加 -AddType application/x-httpd-php .php - -# .phps ファイルを構文ハイライト表示する場合に追加 -AddType application/x-httpd-php-source .phps -]]> - - - - - - - CGI バイナリの使用 - - - マニュアルインストールの手順 - のセクションにある通り、PHP パッケージを C:\php\ - に展開したならば、以下を Apache の設定ファイルに追加すれば - CGI バイナリを利用可能にできます。 - - Apache 1.3.x で CGI 版の PHP を使用する場合の設定 - - - - - 上記の 2 行目は、コメントアウトされた状態で &httpd.conf; - に記載されている場合があります。また、c:/php/ - は、実際のパスにあわせて修正してください。 - - &warn.install.cgi; - - PHP ソースの構文ハイライト表示については、モジュール版にあるような便利な - オプションはありません。Apache で CGI 版の PHP を使用している場合、 - highlight_file 関数を使用してください。 - 普通に PHP スクリプトを作成し、次のようにコードを記述すれば、構文ハイライト表示が可能です。 - <?php highlight_file('ハイライト表示するファイル'); ?> - - - - - - diff --git a/install/windows/legacy/apache2.xml b/install/windows/legacy/apache2.xml deleted file mode 100644 index 4bc96d6e21..0000000000 --- a/install/windows/legacy/apache2.xml +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - Apache 2.x (Microsoft Windows 用) - - このセクションでは、Microsoft Windows 上の Apache 2.x で PHP - を使用する場合について説明します。 - - - - - まず始めに、マニュアルインストールの手順 - をお読みください。 - - - - Apache 2.2 のサポート - - Apache 2.2 を利用している方は、Apache 2.2 用の DLL ファイルの名前が - php5apache2.dll ではなく - php5apache2_2.dll であることに注意しましょう。 - このファイルは PHP 5.2.0 以降にしか含まれません。 - - - - - Apache ドキュメンテーション - を参照し、Apache 2.x サーバーの基本を理解しておくことを強く推奨します。 - また、以下の解説を読む前に、Apache 2.x に関する - Windows 固有の情報 - についても参照するとよいでしょう。 - - - - Apache 2.x は、サーバープラットフォーム用の Windows、 - つまり Windows NT 4.0, Windows 2000, Windows XP および - Windows 7 で動作するように設計されています。Apache 2.x - は Windows 9x でもそれなりに動作しますが、サポートは不完全です。 - また、一部うまく動作しない機能もあります。 - この問題の解決策はありません。 - - - - 最新の Apache 2.x と、 - 対応するバージョンの PHP をダウンロードしてください。 - マニュアルインストールの手順 - を実施したら、引き続き以下のとおり PHP と Apache の設定を行ってください。 - - - - PHP を Windows 上の Apache 2.x で動かすには三通りの方法があります。 - PHP をハンドラとして動かす方法、CGI として動かす方法、そして - FastCGI で動かす方法です。 - - - ¬e.apache.slashes; - - - Apache ハンドラとしてのインストール - - 以下の行を Apache 設定ファイル &httpd.conf; に追加して - Apache 2.x 用の PHP モジュールを読み込まなければなりません。 - - PHP を Apache 2.x ハンドラとして使う設定 - - - - - - - - 上の例の C:/php/ は実際のパスにあわせて修正してください。 - LoadModule ディレクティブで php5apache2.dll と - php5apache2_2.dll のどちらを使うのかに注意し、 - 指定したファイルが実際にその場所にあるかどうかを忘れずに確認しましょう。 - - - - 上の設定は、拡張子 .php を含むすべてのファイルを PHP で処理するようにします。 - たとえそれ以外の拡張子が含まれていたとしてもです。たとえば - example.php.txt という名前のファイルも - PHP ハンドラが処理します。ファイル名の 最後が - .php であるものだけを処理させたい場合は、次のように設定します。 - - - - - - SetHandler application/x-httpd-php - -]]> - - - - - - CGI としての PHP の実行 - - - Apache CGI - ドキュメント を読み、Apache 上の CGI について理解しておきましょう。 - - - - PHP を CGI として実行するには、ScriptAlias - ディレクティブで CGI ディレクトリとして指定した場所に - php-cgi ファイルを置かなければなりません。 - - - - さらに、PHP ファイルに #! の行を追加して PHP バイナリの場所を指定しなければなりません。 - - - PHP を Apache 2.x 上で CGI として動かす例 - - -]]> - - - - &warn.install.cgi; - - - - PHP を FastCGI で実行する - - - PHP を FastCGI で動かすのには、CGI として動かすのにくらべると多くの利点があります。 - 設定方法は単純明快です。 - - - まず mod_fcgid を - &url.apache.fcgid; - から取得します。Win32 用のバイナリがこのサイトからダウンロードできます。 - そして、説明に従ってモジュールをインストールしましょう。 - - - 次にウェブサーバーを以下のように設定します。 - パスの部分は適切に変更し、インストールするシステム上の環境にあわせましょう。 - - - PHP を FastCGI として動かす Apache の設定 - - - - - - これで、拡張子 .php のファイルは PHP FastCGI - ラッパーが処理するようになります。 - - - - - - - diff --git a/install/windows/legacy/building.xml b/install/windows/legacy/building.xml deleted file mode 100644 index 4504332c36..0000000000 --- a/install/windows/legacy/building.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - ソースからのビルド - - この章では、Windows 上でマイクロソフトのツールを用いて PHP をソースから - コンパイルする方法を説明します。PHP を cygwin でコンパイルする場合は - を参照ください。 - - - Wiki のドキュメント - &url.wiki.windows.build.howto; - を参照ください。 - - - - diff --git a/install/windows/legacy/commandline.xml b/install/windows/legacy/commandline.xml deleted file mode 100644 index 1e3ce774bf..0000000000 --- a/install/windows/legacy/commandline.xml +++ /dev/null @@ -1,213 +0,0 @@ - - - - - Microsoft Windows のコマンドラインでの PHP - - この節では、PHP を Windows のコマンドラインで実行するときの注意点やヒントを説明します。 - - - - まず最初に - 手動でのインストールの手順 を読みましょう! - - - - 特に Windows に手を加えなくても、PHP をコマンドラインから実行することはできます。 - - - - - - - しかし、次の手順に従えば、さらにシンプルに実行することができます。 - この中にはすでに実行済みのものがあるかもしれませんが、順を追って進めていくために - もう一度ここで説明しておきます。 - - - - - - - PATHPATHEXT は - Windows で重要な働きをするシステム変数です。 - 既存の変数の値を上書きしないように注意しましょう。あくまでも追記するだけにします。 - - - - - - PHP の実行ファイル (php.exe、 - php-win.exe あるいは php-cli.exe。 - PHP のバージョンや設定によって変わります) - がある場所を環境変数 PATH の最後に追加します。 - PHP のディレクトリを PATH に追加する方法は、FAQ の項目 - を参照ください。 - - - - - - 拡張子 .PHP を、環境変数 - PATHEXT の最後に追加します。これは、環境変数 - PATH の変更と同時に行うこともできます。 - FAQ - に書かれている手順に従いましょう。ただし、環境変数 - PATH の部分は - PATHEXT に変更します。 - - - .PHP をどの位置に書くかによって、 - ファイル名がマッチしたときに実行されるスクリプトあるいはプログラムが決まります。 - たとえば .PHP を - .BAT より前に書くと、 - 同じ名前のバッチファイルがあってもスクリプトのほうを優先して実行します。 - - - - - - - - 拡張子 .PHP をファイル形式と関連づけます。 - これは、次のコマンドで行います。 - - - - - - - - - ファイル形式 phpfile を適切な PHP 実行ファイルと関連づけます。 - これは、次のコマンドで行います。 - - - - - - - - - - - このようにしておくと、どのディレクトリにあるスクリプトを実行するときにも - PHP 実行ファイルのパスや拡張子 .PHP をタイプしなくて済むようになります。 - また、スクリプトに渡すパラメータを指定することもできます。 - - - - 次の例は、レジストリの変更の一部を示したものです。これらは手動で行うこともできます。 - - レジストリの変更 - - - - - - - - これらの変更をすれば、同じコマンドを次のように書くことができます。 - - - - また、"C:\PHP Scripts" が環境変数 - PATH に含まれていれば、次のように書くこともできます。 - - - - - - - - これらのテクニックを使って PHP スクリプトをコマンドラインフィルタとして使おうとすると、 - ちょっとした問題が発生します。「コマンドラインフィルタとして使う」とは、たとえば - - - - あるいは - - - - のように使うということです。 - このようにすると、スクリプトがハングして何も出力されなくなります。 - これをうまく動作させるには、さらにレジストリを変更しなければなりません。 - - - - この件に関する詳細な情報は Microsoft - Knowledgebase Article : 321788 を参照ください。 - Windows 10 ではこの設定が変更されたようです。Windows 10 をインストールしたデフォルトの状態で、 - コンソールのハンドルが自動的に引き継がれるようになります。この件に関しては、 - - Microsoft のフォーラムへの投稿 に説明があります。 - - - - - diff --git a/install/windows/legacy/extensions.xml b/install/windows/legacy/extensions.xml deleted file mode 100644 index 8cf2f645d1..0000000000 --- a/install/windows/legacy/extensions.xml +++ /dev/null @@ -1,430 +0,0 @@ - - - - - - Windows 用 PHP 拡張モジュール - - Windows に PHP を インストールし、Web サーバーの設定ができたら、 - 次は PHP 拡張モジュールを使うための設定です。 - &php.ini; を使って - PHP が起動時にロードする拡張モジュールを設定することができます。 - もしくは、スクリプトの中で dl 関数を使用することにより、 - 拡張モジュールを動的にロードすることも可能です。 - - - PHP 拡張モジュールの DLL には、ファイル名の前に 'php_' が付いています。 - - - Windows 版の PHP には、多くの拡張モジュールが - 組み込まれています。これらの関数を使用する際には、 - 追加の DLL ファイルや - extension - ディレクティブの設定は不要です。 - 追加の DLL が必要となる (あるいはかつて必要だった) 拡張モジュールについては、 - Windows 版 - PHP 拡張モジュール - の表にまとめてあります。以下にあげられている拡張モジュールは、すでに - PHP に組み込まれています (PHP 5.0.4 時点): - BCMath, - Calendar, - COM, - Ctype, - DOM, - FTP, - LibXML, - Iconv, - ODBC, - PCRE, - Session, - SimpleXML, - SPL, - SQLite, - WDDX, - XML&listendand; - Zlib. - - - PHP が拡張モジュールを探すデフォルトの場所は - C:\php5 です。 - 変更するには &php.ini; ファイルを編集してください。 - - - - extension_dir を拡張モジュール - があるフォルダに変更する必要があります。 - php_*.dllファイルをそこに置いてください。 - 例えば次のようになります。 - - - - - - - - - - &php.ini; には、多くの拡張モジュール名がコメントアウトされた状態で記載済みです。 - それらの拡張モジュールを有効にするには、&php.ini; 上の - extension=php_*.dll - の行をアンコメント(行頭の ; を削除する)してください。 - - Windows 版の PHP で <link linkend="book.bzip2">Bzip2</link> 拡張モジュールを有効にする - - - - - - - - - 拡張モジュールによっては、その動作に外部 DLL が必要な場合があります。 - 配布パッケージには、一部の外部 DLL がバンドルされています。 - 親フォルダを参照ください。ただし、必要な外部 DLL - がバンドルされていないモジュールもあり、たとえば、Oracle モジュール - (php_oci8.dll) は、非バンドルの DLL を必要とします。 - また、忘れずに C:\php をシステムパスに - 追加してください(その方法は、別途 FAQ に記載されています。) - - - - - これらの DLLs の中には、PHP の配布ファイルに含まれていないものもあります。 - 詳細は、それぞれの拡張モジュールのドキュメントを参照ください。 - また、PECL についての詳細は、マニュアルの - PECL 拡張モジュールのインストール - という節を参照ください。多くの PHP 拡張モジュールが - PECL に移行しつつあり、これらは - 個別にダウンロード - しなければなりません。 - - - - - - PHP をサーバーモジュールとして実行している場合は、Webサーバーを再起動しないと、 - &php.ini; の設定が反映されません。Web サーバーの再起動を忘れずに行ってください。 - - - - - - 以下の表は、使用可能な拡張モジュールと - それらの実行に別途必要な DLL のリストです。 - - PHP 拡張モジュール - - - - 拡張モジュール - 説明 - 備考 - - - - - php_bz2.dll - bzip2 圧縮関数 - - - - php_calendar.dll - カレンダー 関数 - - - - php_crack.dll - Crack 関数 - - - - php_ctype.dll - 文字型(ctype) 関数 - - - - php_curl.dll - CURL, Client URL Library 関数 - libeay32.dll および - ssleay32.dll (バンドル), - OpenSSL 1.1 の場合、 - libcrypto-*.dll および - libssl-*.dll が必要 (バンドル) - - - php_dba.dll - DBA: (dbm 型の) データベース・アブストラクション レイヤー関数 - - - - php_dbase.dll - dBase 関数 - - - - php_dbx.dll - dbx 関数 - - - - php_exif.dll - EXIF 関数 - - php_mbstring.dll。&php.ini; で - php_exif.dll は - php_mbstring.dll の後で読み込まれる必要がある。 - - - - php_fbsql.dll - FrontBase 関数 - - - - php_fdf.dll - FDF: Forms Data Format 関数 - fdftk.dll が必要 (バンドル) - - - php_filepro.dll - filePro 関数 - 読み込みのみ - - - php_ftp.dll - FTP 関数 - - - - php_gd2.dll - イメージ 関数 (GD2 ライブラリ) - GD2 - - - php_gettext.dll - Gettext 関数 - - PHP <= 4.2.0 では gnu_gettext.dll が必要 (バンドル), - PHP >= 4.2.3 では libintl-1.dll および - iconv.dll が必要(バンドル) - - - - php_hyperwave.dll - HyperWave 関数 - - - - php_iconv.dll - ICONV 関数 - iconv-1.3.dll が必要(バンドル)、 - iconv.dll - - - php_ifx.dll - Informix 関数 - Informix ライブラリが必要 - - - php_iisfunc.dll - IIS management 関数 - - - - php_imap.dll - IMAP,POP3,NNTP 関数 - - - - php_ingres.dll - Ingres 関数 - Ingres ライブラリが必要 - - - php_interbase.dll - InterBase 関数 - gds32.dll が必要(バンドル) - - - php_ldap.dll - LDAP 関数 - - libeay32.dll と - ssleay32.dll (バンドル)、 - OpenSSL 1.1 以降の場合 - libcrypto-*.dlllibssl-*.dll - が必要 (バンドル) - - - - php_mbstring.dll - マルチバイト文字列 関数 - - - - php_mcrypt.dll - Mcrypt 暗号化 関数 - libmcrypt.dll が必要 - - - php_mhash.dll - Mhash 関数 - libmhash.dll が必要(バンドル) - - - php_mime_magic.dll - Mimetype 関数 - magic.mime が必要(バンドル) - - - php_ming.dll - Ming 関数 (Flash 用) - - - - php_msql.dll - mSQL 関数 - msql.dll が必要(バンドル) - - - php_mssql.dll - MSSQL 関数 - ntwdblib.dll が必要(バンドル) - - - php_mysql.dll - MySQL 関数 - libmysql.dll - が必要(バンドル) - - - php_mysqli.dll - MySQLi 関数 - libmysql.dll - (PHP <= 5.0.2 では libmysqli.dll) が必要(バンドル) - - - php_oci8.dll - Oracle 8 関数 - Oracle 8.1+ クライアントライブラリが必要 - - - php_openssl.dll - OpenSSL 関数 - libeay32.dll(バンドル)、 - OpenSSL 1.1 以降の場合は、liblibcrypto-*.dll が必要 - (バンドル) - - - php_pdf.dll - PDF 関数 - - - - php_pgsql.dll - PostgreSQL 関数 - - - - php_shmop.dll - 共有メモリ 関数 (shmop) - - - - php_snmp.dll - SNMP 関数 - NT のみ - - - php_soap.dll - SOAP 関数 - - - - php_sockets.dll - ソケット 関数 - - - - php_sybase_ct.dll - Sybase 関数 - Sybase クライアントライブラリが必要 - - - php_tidy.dll - Tidy 関数 - - - - php_tokenizer.dll - Tokenizer 関数 - - - - php_w32api.dll - W32api 関数 - - - - php_xmlrpc.dll - XML-RPC 関数 - iconv.dll が必要(バンドル) - - - php_xslt.dll - XSLT 関数 - - sablot.dll, expat.dll および - iconv.dll が必要(バンドル) - - - - php_yaz.dll - YAZ 関数 - yaz.dll が必要(バンドル) - - - php_zip.dll - Zip ファイル 関数 - 読込のみ - - - php_zlib.dll - ZLib 圧縮関数 - - - - -
-
-
- - diff --git a/install/windows/legacy/iis.xml b/install/windows/legacy/iis.xml deleted file mode 100644 index 6a7fe99c40..0000000000 --- a/install/windows/legacy/iis.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - Microsoft IIS - - この節では、Microsoft Internet Information Services (IIS) への PHP のインストール手順について扱います。 - - - - - Microsoft IIS 5.1 および IIS 6.0 への PHP の手動インストール - - - - - Microsoft IIS 7.0 以降への PHP の手動インストール - - - - - - diff --git a/install/windows/legacy/iis6.xml b/install/windows/legacy/iis6.xml deleted file mode 100644 index ce2a56bef6..0000000000 --- a/install/windows/legacy/iis6.xml +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - Microsoft IIS 5.1 および IIS 6.0 - - この節では、Internet Information - Services (IIS) 5.1 および IIS 6.0 を手動で設定して、PHP を - Microsoft Windows XP および Windows Server 2003 で動かす方法を説明します。 - IIS 7.0 以降のバージョンを Windows - Vista, Windows Server 2008, Windows 7 そして Windows Server 2008 R2 - で動かす方法については - Microsoft IIS 7.0 以降 - を参照ください。 - - - IIS で PHP リクエストを処理するための設定 - - 手動インストールの手順 - での説明にしたがって、PHP をダウンロードしてインストールします。 - - - IIS を使う場合は、非スレッドセーフ版の PHP を推奨します。非スレッドセーフ版は - PHP for Windows: - Binaries and Sources Releases. で取得できます。 - - - - - CGI や FastCGI 固有の設定を、php.ini で以下のように行います。 - - <filename>php.ini</filename> での CGI および FastCGI 用の設定 - - - - - - - Microsoft FastCGI Extension for IIS 5.1 and 6.0 - をダウンロードしてインストールします。32 ビット版と 64 ビット版があるので、 - 環境にあわせて適切なパッケージを選びましょう。 - - - FastCGI エクステンションを設定し、PHP のリクエストを処理できるようにするには - 以下のコマンドを実行します。"-path" パラメータの値は、 - php-cgi.exe の絶対パスに置き換えましょう。 - - FastCGI エクステンションで PHP リクエストを処理するための設定 - - - - - - - このコマンドは、拡張子 *.php 用の IIS スクリプトマッピングを作成します。 - .php で終わるすべての URL を FastCGI エクステンションで処理するようになります。 - また、FastCGI エクステンションでの PHP リクエストの処理に - php-cgi.exe を使うよう設定しています。 - - - この時点で、最低限必要なインストールと設定は完了しました。 - これ以降の手順は必須ではありませんが、IIS 上で PHP - を効果的に動かすために強く推奨するものです。 - - - - - - 匿名化およびファイルシステムへのアクセス - - PHP を IIS で使う場合は、FastCGI の匿名化を有効にしておくことを推奨します。 - これは、php.ini ファイルの - fastcgi.impersonate ディレクティブで設定します。 - 匿名化を有効にすると、PHP はすべてのファイルシステム操作を - IIS 認証で定義したユーザーアカウントで行います。 - こうしておけば、同じ PHP プロセスを異なる IIS ウェブサイトで共有している場合でも - (各サイトで IIS 認証のユーザーアカウントを分けておけば) - 一方の PHP スクリプトからもう一方のファイルはアクセスできなくなります。 - - - IIS 5.1 や IIS 6.0 のデフォルト設定では組み込みのユーザーアカウント - IUSR_<MACHINE_NAME> による匿名認証が有効になっています。 - つまり、IIS で PHP スクリプトを実行する場合は IUSR_<MACHINE_NAME> - アカウントにスクリプトの読み込み権限を付与しなければならないということです。 - PHP のアプリケーションからファイルへの書き込みやフォルダ内でのファイルの作成などをする場合は、 - IUSR_<MACHINE_NAME> アカウントに書き込み権限が必要となります。 - - - IIS 匿名認証で使うユーザーアカウントを設定するには、次のようにします。 - - - Windows のスタートメニューで "ファイル名を指定して実行" を選び、"inetmgr" - と入力して "Ok" をクリックする - - - ツリービューの "Web Sites" ノードにあるウェブサイトの一覧を展開し、 - 使うウェブサイトの上で右クリックして "プロパティ" を選択する - - - - "ディレクトリセキュリティ" タブを選択する - - - "Authentication Methods" ダイアログの "User name:" フィールドで設定 - - - - IIS 5.1 および IIS 6.0 の匿名認証 - - - - - - - ファイルやフォルダのパーミッションを変更するには、エクスプローラあるいは - icacls コマンドを使います。 - - ファイルのアクセス権の設定 - - - - - - - - IIS のデフォルトドキュメントを <filename>index.php</filename> にする - - ドキュメント名を指定しない HTTP リクエストを受け取ったときには、 - IIS のデフォルトドキュメントが使われます。PHP アプリケーションでは、通常は - index.php をデフォルトドキュメントとします。 - index.php を IIS のデフォルトドキュメントに追加するには、 - 次のようにします。 - - - Windows のスタートメニューで "ファイル名を指定して実行" を選び、"inetmgr" - と入力して "Ok" をクリックする - - - ツリービューの "Web Sites" ノードを右クリックして "プロパティ" を選択する - - - "Documents" タブをクリックする - - - "Add..." ボタンをクリックし、"Default content page:" に "index.php" を入力する - - - - index.php を IIS のデフォルトドキュメントにする - - - - - - - - FastCGI および PHP の再利用設定 - - IIS FastCGI エクステンションで PHP プロセスの再利用を設定するには以下のコマンドを使います。 - FastCGI の設定項目 instanceMaxRequests は、 - ひとつの php-cgi.exe が何回リクエストを処理すると - FastCGI エクステンションがシャットダウンさせるかを表します。 - PHP の環境変数 PHP_FCGI_MAX_REQUESTS は、 - ひとつの php-cgi.exe プロセスが何回リクエストを処理すると - 自分をリサイクルするかを表します。 - FastCGI の InstanceMaxRequests - で設定した値が PHP_FCGI_MAX_REQUESTS - 以下になるようにしましょう。 - - FastCGI と PHP の再利用設定 - - - - - - - - FastCGI のタイムアウト設定 - - 実行時間が長くなる PHP スクリプトがある場合は、FastCGI - エクステンションのタイムアウト設定を増やします。タイムアウトに関連する設定項目は - ActivityTimeoutRequestTimeout です。 - これらの設定に関する詳細は - Configuring FastCGI Extension for IIS 6.0 - を参照ください。 - - FastCGI のタイムアウト設定 - - - - - - - - <filename>php.ini</filename> ファイルの場所の変更 - - PHP が php.ini ファイルを探す場所は - いくつかあり、 - php.ini ファイルのデフォルトの場所を - 環境変数 PHPRC で変更することができます。 - 特定の場所においた設定ファイルを PHP に読み込ませたい場合は、 - 以下のコマンドを実行します。環境変数 PHPRC - には、php.ini - ファイルがあるディレクトリへの絶対パスを指定しなければなりません。 - - <filename>php.ini</filename> ファイルの場所の変更 - - - - - - - - - diff --git a/install/windows/legacy/iis7.xml b/install/windows/legacy/iis7.xml deleted file mode 100644 index fe389f733d..0000000000 --- a/install/windows/legacy/iis7.xml +++ /dev/null @@ -1,404 +0,0 @@ - - - - - - - Microsoft IIS 7.0 以降 - - このセクションでは、Internet Information - Services (IIS) 7.0 以降を設定して、PHP を Microsoft Windows Vista SP1, - Windows 7, Windows Server 2008 および Windows Server 2008 R2 で動かす方法を説明します。 - IIS 5.1 や IIS 6.0 を Windows XP および Windows Server 2003 で動かす方法については - Microsoft IIS 5.1 および IIS 6.0 - を参照ください。 - - - IIS での FastCGI サポートの有効化 - - FastCGI モジュールは、IIS のデフォルトでは無効になっています。 - 有効化する手順は、Windows のバージョンによって異なります。 - - - Windows Vista SP1 および Windows 7 で FastCGI サポートを有効化する方法 - - - - Windows のスタートメニューで "ファイル名を指定して実行" を選び、 - "optionalfeatures.exe" と入力して "Ok" をクリックする - - - - - "Windows Features" ダイアログで "Internet Information - Services"、"World Wide Web Services"、"Application Development - Features" を展開し、"CGI" チェックボックスを有効にする - - - - - OK をクリックし、インストールが完了するまで待つ - - - - - Windows Vista SP1 および Windows 7 での FastCGI サポートの有効化 - - - - - - - Windows Server 2008 および Windows Server 2008 R2 で FastCGI サポートを有効化する方法 - - - - Windows のスタートメニューで "ファイル名を指定して実行" を選び、 - "CompMgmtLauncher" と入力して "Ok" をクリックする - - - - - "Web Server (IIS)" ロールが "Roles" ノードの下に存在しない場合は - "Add Roles" をクリックして追加する - - - - - "Web Server (IIS)" ロールが存在する場合は、"Add Role Services" - をクリックして "Application Development" グループの - "CGI" チェックボックスを有効にする - - - - - "Next"、そして "Install" をクリックし、 - インストールが完了するまで待つ - - - - - Windows Server 2008 および Windows Server 2008 R2 での FastCGI サポートの有効化 - - - - - - - - IIS で PHP リクエストを処理するための設定 - - 手動インストールの手順 - での説明にしたがって、PHP をダウンロードしてインストールします。 - - - IIS を使う場合は、非スレッドセーフ版の PHP を推奨します。非スレッドセーフ版は - PHP for Windows: - Binaries and Sources Releases. で取得できます。 - - - - - CGI や FastCGI 固有の設定を、php.ini で以下のように行います。 - - <filename>php.ini</filename> での CGI および FastCGI 用の設定 - - - - - - - PHP 用の IIS ハンドラマッピングを設定するには IIS マネージャのユーザーインターフェイス - あるいはコマンドラインツールを使います。 - - - IIS マネージャのユーザーインターフェイスを使った PHP 用ハンドラマッピングの作成 - - PHP 用の IIS ハンドラマッピングを - IIS マネージャのユーザーインターフェイスで設定する手順は次のとおりです。 - - - Windows のスタートメニューで "ファイル名を指定して実行" を選び、"inetmgr" と入力して "Ok" をクリックする - - - IIS マネージャのユーザーインターフェイスで、"Connections" ツリービューのサーバーノードを選ぶ - - - - "Features View" ページで "Handler Mappings" を開く - - PHP 用の IIS ハンドラマッピングの作成 : ハンドラマッピングの場所 - - - - - - - - "Actions" ペインで "Add Module Mapping..." をクリックする - - - - "Add Module Mapping" ダイアログで次のように入力する - - - Request path: *.php - - - Module: FastCgiModule - - - Executable: C:\[PHP をインストールしたパス]\php-cgi.exe - - - Name: PHP_via_FastCGI - - - - - - - "Request Restrictions" ボタンをクリックし、 - リクエストがファイルあるいはフォルダにマップされたときだけハンドラが起動するように設定する - - - - すべてのダイアログで OK をクリックし、設定を保存する - - - - PHP 用の IIS ハンドラマッピングの作成 : ハンドラマッピングの追加 - - - - - - - - コマンドラインツールによる PHP 用ハンドラマッピングの作成 - - 次のコマンドを使うと、IIS FastCGI プロセスプールを作ることができます。 - PHP リクエストの処理には php-cgi.exe を使います。 - fullPath パラメータの値は - php-cgi.exe への絶対パスで置き換えてください。 - - IIS FastCGI プロセスプールの作成 - - - - - - - IIS に PHP のリクエストを処理させるには、以下のコマンドを実行します。 - scriptProcessor パラメータの値は - php-cgi.exe への絶対パスで置き換えてください。 - - PHP リクエスト用のハンドラマッピングの作成 - - - - - - - このコマンドは、拡張子 *.php 用の IIS ハンドラマッピングを作成します。 - .php で終わるすべての URL を FastCGI モジュールで処理するようになります。 - - - この時点で、最低限必要なインストールと設定は完了しました。 - これ以降の手順は必須ではありませんが、IIS 上で PHP - を効果的に動かすために強く推奨するものです。 - - - - - - - 匿名化およびファイルシステムへのアクセス - - PHP を IIS で使う場合は、FastCGI の匿名化を有効にしておくことを推奨します。 - これは、php.ini ファイルの - fastcgi.impersonate ディレクティブで設定します。 - 匿名化を有効にすると、PHP はすべてのファイルシステム操作を - IIS 認証で定義したユーザーアカウントで行います。 - こうしておけば、同じ PHP プロセスを異なる IIS ウェブサイトで共有している場合でも - (各サイトで IIS 認証のユーザーアカウントを分けておけば) - 一方の PHP スクリプトからもう一方のファイルはアクセスできなくなります。 - - - IIS 7 のデフォルト設定では組み込みのユーザーアカウント - IUSR による匿名認証が有効になっています。 - つまり、IIS で PHP スクリプトを実行する場合は IUSR - アカウントにスクリプトの読み込み権限を付与しなければならないということです。 - PHP のアプリケーションからファイルへの書き込みやフォルダ内でのファイルの作成などをする場合は、 - IUSR アカウントに書き込み権限が必要となります。 - - - IIS 7 の匿名認証で使うユーザーアカウントを設定するには、次のコマンドを実行します。 - "Default Web Site" の部分は、使用する IIS ウェブサイト名に置き換えてください。 - 出力される XML 設定要素の中から userName 属性を探します。 - - IIS 匿名認証で使うアカウントの設定 - - - - - - - - -]]> - - - - - userName 属性が anonymousAuthentication - 要素になかったり、あるいは属性の値が空の文字列になっている場合は、 - アプリケーションプールの認証情報をそのウェブサイトの匿名認証で使います。 - - - - - ファイルやフォルダのパーミッションを変更するには、エクスプローラあるいは - icacls コマンドを使います。 - - ファイルのアクセス権の設定 - - - - - - - - IIS のデフォルトドキュメントを <filename>index.php</filename> にする - - ドキュメント名を指定しない HTTP リクエストを受け取ったときには、 - IIS のデフォルトドキュメントが使われます。PHP アプリケーションでは、通常は - index.php をデフォルトドキュメントとします。 - index.php を IIS のデフォルトドキュメントに追加するには、 - 次のようにします。 - - <filename>index.php</filename> を IIS のデフォルトドキュメントにする - - - - - - - - FastCGI および PHP の再利用設定 - - IIS FastCGI で PHP プロセスの再利用を設定するには以下のコマンドを使います。 - FastCGI の設定項目 instanceMaxRequests は、 - ひとつの php-cgi.exe が何回リクエストを処理すると - FastCGI エクステンションがシャットダウンさせるかを表します。 - PHP の環境変数 PHP_FCGI_MAX_REQUESTS は、 - ひとつの php-cgi.exe プロセスが何回リクエストを処理すると - 自分をリサイクルするかを表します。 - FastCGI の InstanceMaxRequests - で設定した値が PHP_FCGI_MAX_REQUESTS - 以下になるようにしましょう。 - - FastCGI と PHP の再利用設定 - - - - - - - - FastCGI のタイムアウト設定 - - 実行時間が長くなる PHP スクリプトがある場合は、FastCGI - のタイムアウト設定を増やします。タイムアウトに関連する設定項目は - activityTimeoutrequestTimeout です。 - タイムアウト設定を変更するには以下のコマンドを使います。 - fullPath パラメータの値を - php-cgi.exe ファイルへの絶対パスに置き換えてください。 - - FastCGI のタイムアウト設定 - - - - - - - - <filename>php.ini</filename> ファイルの場所の変更 - - PHP が php.ini ファイルを探す場所は - いくつかあり、 - php.ini ファイルのデフォルトの場所を - 環境変数 PHPRC で変更することができます。 - 特定の場所においた設定ファイルを PHP に読み込ませたい場合は、 - 以下のコマンドを実行します。環境変数 PHPRC - には、php.ini - ファイルがあるディレクトリへの絶対パスを指定しなければなりません。 - - <filename>php.ini</filename> ファイルの場所の変更 - - - - - - - - - diff --git a/install/windows/legacy/index.xml b/install/windows/legacy/index.xml deleted file mode 100644 index fb24ddeea2..0000000000 --- a/install/windows/legacy/index.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - 古い Windows システムへのインストール - - 本章は、Windows 98/Me および Windows NT/2000/XP/2003 に適用されます。 - PHP は、Windows 3.1 などの 16 ビットのプラットフォームでは動作しません。 - PHP がサポートする Windows プラットフォーム を Win32 と呼ぶことがあります。 - - - - Windows XP/2003 は、PHP 5.5.0 以降サポートされなくなりました。 - - - - - Windows 98/Me/NT4/2000 は、PHP 5.3.0 以降サポートされなくなりました。 - - - - - Windows 95 は、PHP 4.3.0 以降サポートされなくなりました。 - - - - Microsoft Visual Studio などの開発環境を持っていれば、オリジナルのソースコードから - PHP を ビルドすることも可能です。 - - - Windows システムに PHP をインストールした後、機能を追加するために - 拡張モジュールのロード - が必要な場合があります。 - - - &install.windows.legacy.manual; - &install.windows.legacy.iis; - &install.windows.legacy.iis6; - &install.windows.legacy.iis7; - &install.windows.legacy.apache1; - &install.windows.legacy.apache2; - &install.windows.legacy.sun; - &install.windows.legacy.sambar; - &install.windows.legacy.xitami; - &install.windows.legacy.building; - &install.windows.legacy.extensions; - &install.windows.legacy.commandline; - - - diff --git a/install/windows/legacy/manual.xml b/install/windows/legacy/manual.xml deleted file mode 100644 index 54596e33fb..0000000000 --- a/install/windows/legacy/manual.xml +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - 手動でのインストール - - この節では、Microsoft Windows 環境に - PHP を手動でインストールして設定する方法を説明します。 - - - PHP 配布パッケージの選択とダウンロード - - PHP バイナリの zip 版を - PHP for Windows: Binaries and Sources - からダウンロードします。zip パッケージにはいくつかのバージョンがあります。 - 適切なバージョンを選ぶための詳細な指針が、 - ダウンロードページ にあるので、それに従いましょう。 - - - - PHP パッケージの構造と内容 - - zip パッケージを、たとえば C:\PHP\ などのお好みの場所に展開しましょう。 - zip を展開した中身は、次のようになります。 - - PHP 5 パッケージ構造 - - - - - - - PHP の zip 版に含まれているモジュールや実行ファイルの一覧をまとめました。 - - - - go-pear.bat - PEAR セットアップスクリプト。詳細は Installation (PEAR) を参照ください。 - - - - - php-cgi.exe - CGI 実行ファイル。PHP を IIS 上で CGI あるいは FastCGI として実行するときに使います。 - - - - - php-win.exe - PHP 実行ファイル。コマンドプロンプトを開かずに PHP スクリプトを実行します (Windows GUI を使う PHP アプリケーションなどに使います)。 - - - - - php.exe - PHP 実行ファイル。PHP スクリプトをコマンドラインインターフェイス (CLI) で実行します。 - - - - - php5apache2_2.dll - Apache 2.2.X モジュール。 - - - - - php5apache2_2_filter.dll - Apache 2.2.X フィルタ。 - - - - - - - <filename>php.ini</filename> ファイルの変更 - - php パッケージを展開したら、php.ini-production を - php.ini という名前で同じフォルダにコピーします。 - 必要に応じて php.ini を別の場所に置くこともできますが、 - その場合は PHP 設定ファイル - にあるような設定が別途必要となります。 - - - php.ini ファイルには、PHP の設定や動作環境についての情報を記述します。 - php.ini ファイルには - PHP を Windows 上で動かすための設定項目が数多く用意されています。 - その中には必須でないものもあります。 - また、環境に合わせて指定するディレクティブも数多くあります。詳細は - php.ini ディレクティブのリスト を参照ください。 - - - 必須項目 - - - - extension_dir = <拡張モジュールのディレクトリへのパス> - - extension_dir には、 - PHP の拡張モジュールがあるディレクトリを指定しなければなりません。 - 絶対パス ("C:\PHP\ext") あるいは相対パス (i.e. ".\ext") - のどちらでもかまいません。php.ini ファイルに書かれている拡張モジュールは、 - extension_dir に置かなければなりません。 - - - - - extension = xxxxx.dll - - 使いたい拡張モジュールがある場合は、それに対応する "extension=" - を書かなければなりません。extension_dir - にある拡張モジュールのうち、ここで指定したものが起動時に読み込まれます。 - - - - - log_errors = On - - PHP のログ出力機能を使うと、エラーをファイルに記録したり - (syslog などの) サービスに渡したりすることができます。これは - 次の error_log ディレクティブと組み合わせて使います。 - IIS で実行している場合は、log_errors - を有効にして error_log を正しく設定しておく必要があります。 - - - - - error_log = <エラーログファイルへのパス> - - error_log には、PHP のエラーを記録するファイルを絶対パスあるいは相対パスで指定しなければなりません。 - このファイルは、ウェブサーバーから書き込み可能でなければなりません。 - このファイルを置く場所として一般的なのは、たとえば - "C:\inetpub\temp\php-errors.log" のような TEMP ディレクトリです。 - - - - - cgi.force_redirect = 0 - - このディレクティブは、IIS で動かす際に必須となります。 - 他の多くのウェブサーバーではディレクトリセキュリティ機能を必要としますが、 - これを IIS で有効にすると、Windows 上での PHP エンジンの実行に失敗します。 - - - - - cgi.fix_pathinfo = 1 - - これは、CGI 仕様に従った path info に PHP からアクセスできるようにします。 - IIS の FastCGI 実装では、これを設定しておく必要があります。 - - - - - fastcgi.impersonate = 1 - - IIS での FastCGI には、呼び出し元のクライアントのセキュリティトークンをまねる機能があります。 - これを指定すると、IIS にリクエストのセキュリティコンテキストを定義します。 - - - - - fastcgi.logging = 0 - - FastCGI のログ機能は、IIS では無効にしておかねばなりません。 - 有効にしたままだと、すべてのクラスから発せられるあらゆるメッセージが - FastCGI のエラーとみなされ、IIS が HTTP 500 を返すようになってしまいます。 - - - - - - オプションの項目 - - - - max_execution_time = ## - - このディレクティブでは、スクリプトの実行に費やすことのできる最大時間を - PHP に伝えます。デフォルトは 30 秒です。 - もし PHP アプリケーションの実行時間が長くなるのなら、このディレクティブの値を増やします。 - - - - - memory_limit = ###M - - PHP プロセスが使えるメモリの量をメガバイト単位で指定します。 - デフォルトは 128 で、たいていの PHP アプリケーションではこれで十分です。 - 複雑なアプリケーションではもう少し必要となるかもしれません。 - - - - - display_errors = Off - - このディレクティブは、ウェブサーバーに返すストリームに - エラーメッセージを含めるかどうかを指定します。 - これを "On" にすると、error_reporting - で設定したすべてのレベルのエラーを - エラーストリームの一部としてウェブサーバーに返します。 - セキュリティ上の理由で、実運用環境ではこれを "Off" - にしておくことを推奨します。 - エラーメッセージにはセキュリティ的に問題となる情報が含まれていることが多く、 - それが外部に漏れることを防げます。 - - - - - open_basedir = <ディレクトリへのパス、セミコロン区切り>、 - たとえば openbasedir="C:\inetpub\wwwroot;C:\inetpub\temp" - - このディレクティブは、PHP からのファイルシステムの操作を許可するディレクトリのパスを指定します。 - 指定したパス以外でのファイル操作はすべてエラーとなります。 - このディレクティブは、共用ホスティング環境に PHP を導入するときに特に有用です。 - ウェブサイトのルートディレクトリ以外のファイルを操作させないようにすることができます。 - - - - - upload_max_filesize = ###M および post_max_size = ###M - - ファイルのアップロードおよび POST するデータの最大サイズを指定します。 - PHP のアプリケーションで写真や動画などの大きなファイルをアップロードさせたい場合は、 - これらの値を増やさなければなりません。 - - - - - - 以上で、Windows への PHP のインストールが完了しました。ついで、 - 使用する WEB サーバー にあわせて、PHP を利用可能とするための設定を行います。 - 目次から使用する WEB サーバーを選択し、該当するセクションを参照してください。 - - - PHP をウェブサーバー経由で実行するだけでなく、 - .BAT スクリプトなどでコマンドラインから実行することもできます。 - - - - - - diff --git a/install/windows/legacy/sambar.xml b/install/windows/legacy/sambar.xml deleted file mode 100644 index 855e3e689f..0000000000 --- a/install/windows/legacy/sambar.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - Sambar サーバー(Microsoft Windows 用) - - このセクションでは、Windows 上の Sambar Server - で PHP を使用する場合について説明します。 - - - - まず始めに、マニュアルインストールの手順 - をお読みください。 - - - - 以下の手順は、Windows上 の Sambar サーバーで ISAPI モジュール版の PHP を使うように - 設定する方法を解説するものです。 - - - - - - - Sambar をインストールしたフォルダ (の config フォルダ)にある - mappings.ini という名前のファイルを探します。 - - - - - mappings.ini を開き、以下の行を - [ISAPI] の下に追加します。 - - Sambar での ISAPI の設定 - - - - - (PHP が c:\php にインストールされていると - 仮定しています。) - - - - - 変更を有効にするために Sambar サーバーを再起動します。 - - - - - - - - PHP で - ネットワーク上の他のコンピュータにあるリソースと通信したい場合は、 - Sambar Server サービスが使用するアカウントを変更する必要があります。 - Sambar Server サービスが使用しているデフォルトのアカウントは - LocalSystem で、これはリモートのリソースにアクセスできません。 - アカウントを変更するには、コントロールパネルの管理ツールから - 「サービス」を使用します。 - - - - - diff --git a/install/windows/legacy/sun.xml b/install/windows/legacy/sun.xml deleted file mode 100644 index b8e73151d7..0000000000 --- a/install/windows/legacy/sun.xml +++ /dev/null @@ -1,335 +0,0 @@ - - - - - - Sun, iPlanet, Netscape サーバー(Microsoft Windows 用) - - このセクションでは、Windows 上の Sun Java System Web Server, - Sun ONE Web Server, iPlanet and Netscape server で PHP - を使用する場合について説明します。 - - - PHP 4.3.3 より、NSAPI モジュール を使うことが可能です。 - - - - - Sun, iPlanet, Netscape サーバー で CGI 版の PHP を使用する - - CGI 版の PHP を使用する場合は、以下のようにしてください。 - - - - - php4ts.dll をシステムルート - (Windows がインストールされているフォルダ)にコピーします。 - - - - - コマンドラインからファイルの関連付けを行います。 - 次の 2 行をタイプしてください。 - - - - - - - - Netscape Enterprise Administration Server で、ダミーの shellcgi - ディレクトリを作成し、その後すぐに削除します - (このステップにより 5 つの重要な行が obj.conf に作成され、 - Web サーバーが shellcgi スクリプトを扱えるようになります。) - - - - - Netscape Enterprise Administration Server で - 新しい mime type を作成します。(Category: type, - Content-Type: magnus-internal/shellcgi, File Suffix:php) - - - - - PHP を実行するすべての Web サーバーインスタンスで上記を実行してください。 - - - - - CGI 版の PHP を使用する場合の詳細な説明は - &url.netscape.cgi; - を参照してください。 - - - - - Sun, iPlanet, Netscape サーバー で NSAPI 版の PHP を使用する - - NSAPI 版の PHP を使用する場合は、以下のようにしてください。 - - - - - php4ts.dll をシステムルート - (Windows がインストールされているディレクトリ)にコピーする。 - - - - - コマンドラインからファイルの関連付けを行います。 - 次の 2 行をタイプしてください。 - - - - - - - - Netscape Enterprise Administration Server において - 新しい mime type を作成します。 (Category: type, - Content-Type: magnus-internal/shellcgi, File Suffix:php) - - - - - magnus.conf (サーバー>= 6の場合) または - obj.conf (サーバー< 6の場合)を編集し、 - 以下の行を追加します。 - この行は mime types init の後に記述する必要があります。 - - - - (PHP >= 4.3.3) - php_ini パラメータはオプションですが、 - これを指定することにより、Web サーバーの設定ファイルがあるフォルダに - &php.ini; を置くことが可能になります。 - - - - - obj.conf のデフォルトオブジェクトを設定します - (仮想サーバーの場合、vserver.obj.conf - のクラス [SunONE 6.0]。) - < Object name="default" > セクションに - 次の行を追加してください。この行は、 - 'ObjectType' の後、'AddLog' の前に記述してください。 - - - - (PHP >= 4.3.3) - 追加のパラメータとして、いくつかの特別な &php.ini; 値を - 追加することができます。例えば、コンテキスト - php4_execute をコールする時に - docroot="/path/to/docroot" - を設定することができます。 - 論理値の場合、 - "On","Off",...(これは正 - しく動作しません)ではなく、0/1 を値として使用してください。 - 例えば、 - zlib.output_compression="On" ではなく、 - zlib.output_compression=1 とします。 - - - - - 以下は、(cgi-bin ディレクトリ - のように)PHP スクリプトのみからなるディレクトリを設定したい場合にだけ必要です。 - - -ObjectType fn="force-type" type="magnus-internal/x-httpd-php" -Service fn=php4_execute [inikey=value inikey=value ...] - -]]> - - これにより、Administration Server に特定のディレクトリを設定し、 - これをスタイル x-httpd-php に割り付けることができ - ます。このディレクトリの中にあるすべてのファイルは PHP スクリプト - として実行されます。 - これは、ファイルの名前を .html に変更し、PHP - が使用されている事を隠したい場合に有用です。 - - - - - Web サービスを再起動して設定を反映させます。 - - - - - PHP を実行するすべての Web サーバーインスタンスで上記を行ってください。 - - - - - - NSAPI 版の PHP の使用についてのより詳細な説明は - &url.netscape.nsapi; - をご覧ください。 - - - - - PHP が使用するスタックサイズは WEB サーバーの設定に依存します。 - 非常に大きい PHP スクリプトを実行させた際にクラッシュする場合は、 - Administration Server でスタックサイズ("MAGNUS EDITOR") - を大きくすると良いでしょう。 - - - - - - CGI 環境変数と &php.ini; の変更 - - Sun JSWS/Sun ONE WS/iPlanet/Netscape がマルチスレッドの WEB サーバーだという事が - PHP スクリプトを書く際に重要になります。すべてのリクエストは同一の - (WEB サーバー自体の)プロセス空間で実行されます。PATH_INFO - や HTTP_HOST などの CGI 変数を取得する場合、 - 古い PHP で行っていたような方法、つまり getenv - 関数を使用する方法や他の同等な方法(グローバル変数の登録機能、 $_ENV - 等)を使うのは正しい方法ではありません。WEB サーバーの環境変数をただ単に取得すると、 - 正しい CGI 変数は得られません。 - - - - なぜ正しくない CGI 変数が登録されているのでしょうか? - - - それは、WEB サーバーのプロセスを Administration Server から起動させる際、 - WEB サーバーの起動スクリプトが CGI スクリプトとして実行されるためです。したがって、 - 起動された WEB サーバーの環境変数には CGI 変数も含まれることになります。 - Administration Server 以外から WEB サーバーを起動してみればこのことをテストできるでしょう。 - ルートユーザーでコマンドラインを使って、手動で起動してみると、CGI 変数らしき - 環境変数が登録されないことが確認できると思います。 - - - - PHP 4.x のスクリプトで CGI 変数を取得する場合は、スーパーグローバル - $_SERVER を用いるのが正しい方法です。また、$HTTP_HOST - などを使う古いスクリプトを使用する場合は、&php.ini; で register_globals - をオンにし、変数のパースの順番 (variables_order) を変更してください - ("E" を削除。環境変数を読み込む必要は無いため。) - - - - - - - - 独自エラーページおよびファイル一覧表示ページ (PHP >= 4.3.3) - - PHP を使って、"404 Not Found" などに対するエラーページを生成することが - できます。オーバーライドしたいエラーページすべてに対して、以下の行を - obj.conf 中のオブジェクトに追加してください。 - - - - ここで、XXX は HTTP のエラーコードです。 - 追加したものと干渉する Error ディレクティブは削除してください。 - 発生するすべてのエラーに対応するページを設定したい場合は、 - code パラメータを省略してください。スクリプトで HTTP ステータス - コードを取得するには、$_SERVER['ERROR_TYPE'] を使用します。 - - - 独自のファイル一覧表示ページを PHP を使って生成することも可能です。 - ファイル一覧表示を行う PHP スクリプトを作成し、obj.conf の - type="magnus-internal/directory" の行に - 書かれているデフォルトのサービスを以下のように置き換えます。 - - - - エラーページ、ファイル一覧表示ページのどちらでも、元の URI および - 変換後の URI は、それぞれ、$_SERVER['PATH_INFO'] および - $_SERVER['PATH_TRANSLATED'] に格納されています。 - - - - - <function>nsapi_virtual</function> およびサブリクエストに関する注意 (PHP >= 4.3.3) - - NSAPI モジュールは、現在、nsapi_virtual 関数 - (エイリアス: virtual) をサポートしており、 - WEB サーバーへサブリクエストを行い、結果を WEB ページへ挿入することができます。 - 問題としては、この関数は 文書化されていない NSAPI ライブラリの機能を使用して - いることにあります。 - - - Unix では、モジュールは自動的に必要な関数群を探し、可能であればそれらの関数を - 使用するため、特に問題はありません。もし使用可能でなければ、nsapi_virtual は - 使用不可となります。 - - - Windows では、DLL の扱いに制限があるため、自動認識の使用には - 最新の ns-httpdXX.dll ファイルが必要です。 - バージョン 6.1 までテストが行われています。もし、より新しい Sun サーバーを使う場合は、 - 自動認識が動作せず、nsapi_virtual が使用不可となる可能性が - あります。 - - - もしそういった事になった場合は、 - magnus.conf/obj.conf - の php4_init へ以下のパラメータを追加してください。 - - - - ここで、XX は接続する DLL のバージョン番号です。 - 番号を調べるには、サーバーのルートで、対応する名前のファイルを探してください。 - おそらく、最もファイルサイズの大きい DLL が探しているファイルでしょう。 - - - ステータスは phpinfo 関数を使って確認できます。 - - - - nsapi_virtual サポートは「実験的」な機能です。 - - - - - - diff --git a/install/windows/legacy/xitami.xml b/install/windows/legacy/xitami.xml deleted file mode 100644 index 24bd51432c..0000000000 --- a/install/windows/legacy/xitami.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - Xitami(Microsoft Windows 用) - - このセクションでは、Windows 上の Xitami - で PHP を使用する場合について説明します。 - - - - まず始めに、マニュアルインストールの手順 - をお読みください。 - - - - 以下の手順は、Windows 上の Xitami でPHP の CGI 版バイナリを動作させる際の - 設定方法です。 - - - - CGI 版 PHP を使用する場合 - - cgi.force_redirectに関するFAQ - に重要な情報がありますのでお読みください。このディレクティブが 0 - にセットされている必要があります。 - $_SERVER['PHP_SELF'] を使用する場合は、 - cgi.fix_pathinfo - をオンにする必要があります。 - - - &warn.install.cgi; - - - - - Web サーバーが正常に動作していることを確認し、 - ブラウザで Xitami 管理用コンソール(通常は - http://127.0.0.1/admin)を参照して、「Configuration」を - クリックします。 - - - - - 「Filters」を選択し、php にパースさせるファイルの拡張子 (.php など) を - 「File extensions (.xxx) 」フィールドに入力します。 - - - - - 「Filter command or script」に、CGI 版 PHP バイナリのパスと名前 - (たとえば、c:\php\php.exe) を入力します。 - - - - - 「Save」アイコンを押します。 - - - - - 変更点を反映するためにサーバーを再起動します。 - - - - - - - diff --git a/install/windows/manual.xml b/install/windows/manual.xml index 18b2a856d6..4f13466139 100644 --- a/install/windows/manual.xml +++ b/install/windows/manual.xml @@ -1,96 +1,88 @@ - + - Windows 上での PHP の手動インストール - - ウェブサーバーの選択 - - IIS - - IIS は Windows に標準で組み込まれています。 - Windows サーバーの場合は、サーバーマネージャーを使って IIS ロールを追加します。CGI ロールを含める必要があります。 - Windows デスクトップの場合は、コントロールパネルの「プログラムの追加と削除」を使って IIS を追加します。 - Microsoft のドキュメントに 詳細な手順があります。 - デスクトップウェブアプリケーションやウェブ開発の場合は、IIS/Express や PHP Desktop も使えます。 - - - IIS と PHP の設定をするためのコマンドライン - - - - - - 古い IIS のインストール方法 も参照して下さい。 - - - - - Apache - - Windows 用の Apache2 のビルドには、いくつかの種類があります。 - - ApacheLounge がおすすめですが、それ以外にも XAMPP や WampServer や BitNami といったものがあり、これらはインストーラがついています。 - - Apache で PHP を使うには、mod_php あるいは mod_fastcgi を用います。 - - mod_php を使う場合は、スレッドセーフ版の Apache を使う必要があります。また、同じバージョンの Visual C、同じ CPU (x86 あるいは x64) のビルドでなければいけません。 - - 古いApache のインストール手順 も参照して下さい。 - - - - - - ビルド方法の選択 + ビルド済みバイナリの手動インストール + + + インストールに必要なもの + + PHP は 32bit x86 または 64bit x64 システムでだけ利用できます。 + そして、現状では ARM で動作する Windows RT では利用できません。 + PHP 8.3.0 以降では、Windows 8 または Windows Server 2012 が必要です。 + PHP 7.2.0 以降では、Windows 7 または Windows Server 2008 R2 が必要です。 + PHP 7.2.0 より前のバージョンでは、Windows 2008 や Vista がサポートしていました。 + + + + PHP は Visual C runtime(CRT) を必要とします。 + 他の多くのアプリケーションも CRT を必要としているので、 + CRT は既にインストールされていそうではあります。 + しかし、仮にインストールされていない場合は + Microsoft Visual C++ Redistributable for Visual Studio 2022 + が全ての PHP バージョンに適合しており、 + Microsoft のページ + からダウンロードできます。 + + + + x86 版の PHP をビルドするには、x86 版の CRT が必要ですし、 + x64 版の PHP をビルドするには、x64 版の CRT が必要です。 + CRT が既にインストールされている場合は、 + インストーラーは「既にインストールされている」旨を表示し、 + システムを何も変更しません。 + CRT のインストーラーは と + コマンドラインオプションをサポートしているので、 + インストール自体はスクリプトで自動化できます。 + + + + + どこから PHP バイナリをダウンロードするか + + Windows 向けのビルドは + PHP Windows website + からダウンロードできます。 + 全てのバイナリは最適化(PGO)されており、 + QA が通されています。 + そして、GA リリースは十分にテストされています。 + + + + + ビルド済みのPECL拡張モジュール - Windows 向けのビルドは http://windows.php.net/download/ からダウンロードできます。 - - 全てのビルドは最適化(PGO) されており、 QA や GA リリースで数多くのテストがなされています。 + Windows 版のビルド済みPECL拡張モジュールは、 + 拡張モジュールのPECLページで DLL として配布されています。 + + + Unix のような、Windows 以外のシステムに特有の機能を使っていたり、 + Windows で利用できないライブラリに依存していたりする拡張モジュールは、 + Windows でバイナリは利用できません。 + + + + Build types - PHP には四種類のビルドがあります。 + PHP のビルドには以下の4種類があります: Thread-Safe(TS) - Apache と mod_php のような、シングルプロセスのウェブサービス用 - Non-Thread-Safe(NTS) - IIS やその他の FastCGI ウェブサーバー (Apache と mod_fastcgi など) 用。また、コマンドラインのスクリプト用にもおすすめ。 + Non-Thread-Safe(NTS) - IIS やその他の FastCGI ウェブサーバー (Apache と mod_fastcgi など) 用。コマンドラインのスクリプト用にもおすすめ。 - x86 - PHP 5.5 以上の実運用環境用。 + x86 - 32-bit システム向け - x64 - PHP 7.0 の実運用環境用 (ただし、32ビット版のWindowsでは使えない)。5.5 と 5.6 の x64 版は実験的なもの。 + x64 - 64-bit システム向け - + - - -Windows でのおすすめの構成 + - + + Windows でのおすすめの構成 + OpCache - - - OpCache を有効にすることを強く推奨します。この拡張モジュールは Windows 版の PHP に含まれています。 - これは PHP スクリプトをコンパイルして最適化したうえで、メモリにキャッシュします。 - そのため、ページを読み込むたびにコンパイルされることがなくなります。 - - -php.ini では、次のように設定します。 - - OpCache の推奨構成 - + + OpCache を有効にすることを強く推奨します。この拡張モジュールは Windows 版の PHP に含まれています。 + これは PHP スクリプトをコンパイルして最適化したうえで、メモリにキャッシュします。 + そのため、ページを読み込むたびにコンパイルされることがなくなります。 + + + &php.ini; では、次のように設定します: + + OpCache の推奨構成 + - - - -そしてウェブサーバーを再起動します。 + + + そしてウェブサーバーを再起動します。 -詳細な情報は OpCache の実行時設定 を参照ください。 - - - - + 詳細な情報は OpCache の実行時設定 を参照ください。 +
+ + WinCache + + IIS を使うなら、 + WinCache を有効にすることを推奨します。 + 特に、共有ウェブホスティング環境やネットワークファイルストレージ (NAS) での利用の際におすすめです。 - -IIS を使うなら、WinCache を有効にすることを推奨します。特に、共有ウェブホスティング環境やネットワークファイルストレージ (NAS) での利用の際におすすめです。 - -すべての PHP アプリケーションが、WinCache のファイルキャッシュ機能の恩恵を受けられます。ファイルシステム上での操作が、メモリにキャッシュされるのです。 + すべての PHP アプリケーションが、 + WinCache のファイルキャッシュ機能の恩恵を受けられます。 + ファイルシステム上での操作が、メモリにキャッシュされるのです。 -WinCache は、メモリ内のユーザーオブジェクトをキャッシュして、php.exephp-cgi.exe のプロセス間で共有することもできます (複数リクエストでのオブジェクトの共有)。 + WinCache は、メモリ内のユーザーオブジェクトをキャッシュして、 + php.exe や + php-cgi.exe のプロセス間で共有することもできます (複数リクエストでのオブジェクトの共有)。 -主要なウェブアプリケーションの多くは、プラグインや拡張モジュールあるいは設定オプションで WinCache のユーザーオブジェクトキャッシュを使えるようになっています。 + 主要なウェブアプリケーションの多くは、 + プラグインや拡張モジュールあるいは設定オプションで + WinCache のユーザーオブジェクトキャッシュを使えるようになっています。 -ハイパフォーマンスを求めるなら、アプリケーション内でオブジェクトキャッシュを利用すべきです。 + ハイパフォーマンスを求めるなら、 + アプリケーション内でオブジェクトキャッシュを利用すべきです。 -http://pecl.php.net/package/WinCache から WinCache DLL (あるいは tgz) をダウンロードして、PHP の拡張モジュール用ディレクトリ (php.ini の extensions_dir) に配置しましょう。 + &url.pecl.package;WinCache から + WinCache DLL (あるいは WINCACHE_*.tgz) をダウンロードして、 + PHP の 拡張モジュール用ディレクトリ(php.iniextension_dir) に配置しましょう。 -php.ini では、次のように設定します。 - - WinCache の推奨構成 - + &php.ini; では、次のように設定します: + + WinCache の推奨構成 + - - - -詳細な情報は http://php.net/manual/ja/wincache.configuration.php を参照ください。 - - - - - IIS の構成 + + + 詳細な情報は http://php.net/manual/ja/wincache.configuration.php を参照ください。 +
+ - IIS マネージャーで FastCGI モジュールをインストールして、`.php` へのハンドラマッピングを追加します。ここでは、PHP-CGI.exe へのパスを指定します (PHP.exe ではありません)。 + + IIS の構成 + IIS マネージャーで FastCGI モジュールをインストールして、`.php` へのハンドラマッピングを追加します。ここでは、PHP-CGI.exe へのパスを指定します (PHP.exe ではありません)。 + - コマンドラインツール APPCMD を使えば、IIS の構成をスクリプト化できます。 + + コマンドラインツール APPCMD を使えば、IIS の構成をスクリプト化できます。 - + - + データベース + + おそらく、データベースサーバーも必要となることでしょう。 + 主要なデータベースは PHP 用の拡張モジュールを提供しています。 + もしウェブサイトへのアクセスがそれほど多くないのなら、 + ウェブサーバーと同じマシンでデータベースを動かすこともできます。 + 主要なデータベースの多くは Windows 上でも動作します。 + - おそらく、データベースサーバーも必要となることでしょう。主要なデータベースは PHP 用の拡張モジュールを提供しています。もしウェブサイトへのアクセスがそれほど多くないのなら、ウェブサーバーと同じマシンでデータベースを動かすこともできます。主要なデータベースの多くは Windows 上でも動作します。 - - PHP には mysqli 拡張モジュールと pdo_mysql 拡張モジュールが含まれています。PHP 5.5 と 5.6 には mysql 拡張モジュールが含まれています (これは 7.0 で非推奨となりました)。 - - https://dev.mysql.com/downloads/windows/ を参照ください。 - + PHP には mysqli 拡張モジュールと pdo_mysql 拡張モジュールが含まれています。 + + https://dev.mysql.com/downloads/windows/ を参照ください。 + +
- + - -Windows 上での PHP インストーラ - - - PHP インストールツール - - -IIS を使っている場合に PHP 本体をインストールしようとしたときに -いちばん簡単な方法は、Microsoft の Web Platform Installer (WebPI) を使うことです。 - - - -XAMPP や -WampServer や BitNami などを使えば、Windows 上で Apache を使う場合の PHP アプリケーションをセットアップできます。 - - - -Nginx を Windows でセットアップする場合は、少し多くの設定が必要です。 -セットアップに関して追加のヘルプが必要な場合は、 -Nginx のドキュメント -を参照してください。 - - - - + PHP をインストールするためのサードパーティーツール + &warn.install.third-party-support; + + XAMPP, + WampServer, + Bitnami を使えば、 + Windows 上で Apache を使う場合の PHP アプリケーションをセットアップできます。 + - - - -Windows 上での PHP のトラブルシューティング - - - テンポラリディレクトリのパーミッションのチェック - - - - エクスプローラでテンポラリディレクトリを右クリックして、パーミッションを調べます。 - - - - IIS の場合は、IIS_User ユーザーがこのディレクトリへの書き込み権限を持っている必要があります。テンポラリディレクトリの場所は、php の設定や phpinfo で取得できます。 - - - - - - - - diff --git a/internals2/apiref/index.xml b/internals2/apiref/index.xml deleted file mode 100644 index 93370ffac6..0000000000 --- a/internals2/apiref/index.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - Zend Engine 2 API リファレンス - - - - diff --git a/internals2/buildsys/configunix.xml b/internals2/buildsys/configunix.xml deleted file mode 100644 index 8678ab8396..0000000000 --- a/internals2/buildsys/configunix.xml +++ /dev/null @@ -1,390 +0,0 @@ - - - - - UNIX 用のビルドシステム: config.m4 - - 拡張モジュールの config.m4 ファイルは、 - UNIX のビルドシステムに対して「その拡張モジュールがサポートしている - configure オプション」「依存する外部ライブラリ」 - 「コンパイル対象となるソースファイル」などの情報を伝えるものです。 - 一般的に用いられる autoconf マクロ (PHP 固有のものおよび autoconf 組み込みのもの) - については を参照ください。 - - - - - インストールしている autoconf - のバージョンによって、拡張モジュールの開発時に違いが出てきます。 - PHP 5.3 以前のバージョンでは、いちばんよい結果が得られるのが - autoconf バージョン 2.13 でした。 - しかし、バージョン 2.59 までを使っても動作します。 - PHP 5.4 以降では、autoconf のバージョン - 2.59 以降しか使えません。バージョンが新しいほどよい結果が得られます。 - - - - - config.m4 ファイルの例 - -dnl $Id$ -dnl config.m4 for extension example - /dev/null 2>&1; then - AC_MSG_RESULT([$EXAMPLE_PATH]) - EXAMPLE_LIB_NAME=`$EXAMPLE_PATH --libname` - EXAMPLE_INCDIRS=`$EXAMPLE_PATH --incdirs` - EXAMPLE_LIBS=`$EXAMPLE_PATH --libs` - - dnl Check that the library works properly - PHP_CHECK_LIBRARY($EXAMPLE_LIB_NAME, example_critical_function, - [ - dnl Add the necessary include dirs - PHP_EVAL_INCLINE($EXAMPLE_INCDIRS) - dnl Add the necessary libraries and library dirs - PHP_EVAL_LIBLINE($EXAMPLE_LIBS, EXAMPLE_SHARED_LIBADD) - ],[ - dnl Bail out - AC_MSG_ERROR([example library not found. Check config.log for more information.]) - ],[$EXAMPLE_LIBS] - ) - else - dnl No usable example-config, bail - AC_MSG_RESULT([not found]) - AC_MSG_ERROR([Please check your example installation.]) - fi - - dnl Check whether to enable debugging - if test "$PHP_EXAMPLE_DEBUG" != "no"; then - dnl Yes, so set the C macro - AC_DEFINE(USE_EXAMPLE_DEBUG,1,[Include debugging support in example]) - fi - - dnl Check for the extra support - if test "$PHP_EXAMPLE_EXTRA" != "no"; then - if test "$PHP_EXAMPLE_EXTRA" == "yes"; then - AC_MSG_ERROR([You must specify a path when using --with-example-extra]) - fi - - PHP_CHECK_LIBRARY(example-extra, example_critical_extra_function, - [ - dnl Add the neccessary paths - PHP_ADD_INCLUDE($PHP_EXAMPLE_EXTRA/include) - PHP_ADD_LIBRARY_WITH_PATH(example-extra, $PHP_EXAMPLE_EXTRA/lib, EXAMPLE_SHARED_LIBADD) - AC_DEFINE(HAVE_EXAMPLEEXTRALIB,1,[Whether example-extra support is present and requested]) - EXAMPLE_SOURCES="$EXAMPLE_SOURCES example_extra.c" - ],[ - AC_MSG_ERROR([example-extra lib not found. See config.log for more information.]) - ],[-L$PHP_EXAMPLE_EXTRA/lib] - ) - fi - - dnl Finally, tell the build system about the extension and what files are needed - PHP_NEW_EXTENSION(example, example.c $EXAMPLE_SOURCES, $ext_shared) - PHP_SUBST(EXAMPLE_SHARED_LIBADD) -fi -]]> - - - - - autoconf の構文についての簡単な説明 - - config.m4 は、GNU - autoconf の構文で書かれています。簡単にいうと、 - これはシェルスクリプトに強力なマクロ言語を追加したようなものです。 - コメントを記述する際には文字列 dnl - を使用し、文字列のクォートには角括弧 ([ および - ]) を使用します。文字列のクォートは、 - 必要に応じて何段階でもネストすることができます。この構文の完全な解説は、 - - にある autoconf のマニュアルを参照ください。 - - - - - PHP_ARG_*: ユーザーに対するオプションの提供 - - 先ほどの config.m4 のサンプルで、 - ちょっとしたコメントを除いていちばん最初にあるのは - PHP_ARG_WITH および PHP_ARG_ENABLE - を使用した 3 行です。これらは、configure コマンドで - ./configure --help を実行したときに表示される - オプションとその説明文を指定するものです。 - その名が示すように、両者の違いはそれぞれ - 系のオプションを作成するか - 系のオプションを作成するかです。 - すべての拡張モジュールは、 - このどちらかに拡張モジュール名とつけたオプションを提供する必要があります。 - これにより、その拡張モジュールを PHP に組み込むかどうかを選択できるようになります。 - 規約上では、何らかのパラメータ (その拡張モジュールが必要とするライブラリやプログラムの場所など) - を指定させる場合には PHP_ARG_WITH を使うことになっています。 - 一方、単なるフラグとして使用するオプションの場合は - PHP_ARG_ENABLE を使用します。 - - - configure の出力例 - - - - - - - configure のコール時にどんな順でオプションを指定したかにかかわらず、 - 内部では config.m4 で指定した順にチェックを行います。 - - - - - - ユーザーの選択内容の処理 - - ここまでで、config.m4 - を使ってユーザーに対して選択肢を提供できるようになりました。 - 次は、選択内容に応じて実際の処理を行う番です。 - 上の例で、3 つのオプションすべてのデフォルト、つまり何も指定しなかったときの値は - "no" です。拡張モジュールを有効にするオプションでは、 - デフォルトを no にしておくのがおすすめです。 - phpize で個別にビルドするときにはこれは上書きされますし、 - PHP に組み込む際にデフォルトで拡張モジュールの空間を乱してはいけないからです。 - これらの 3 つのオプションを処理するコードは、より複雑なものとなります。 - - - - --with-example[=FILE] オプションの処理 - - 最初のチェック、つまり - - オプションのチェックは、それが設定されているかどうかを調べます。 - このオプションは拡張モジュールそのものを組み込むかどうかを決めるものです。 - 省略されていたり否定形式 - () - で指定されていたり、あるいは値として "no" - が指定されていたりした場合は、それ以降は何も行いません。 - 上の例では、値として /some/library/path/example-config - が指定されているので、このチェックは成功します。 - - - - 次に、このコードは AC_MSG_CHECKING をコールします。 - これは autoconf のマクロで、標準的な - "checking for something" の行を出力してユーザーが - example-config にパスを明示したかどうかを調べます。 - この例では PHP_EXAMPLE は値 - /some/library/path/example-config を受け取り、 - それが変数 EXAMPLE_PATH にコピーされます。ユーザーが - だけしか指定しなかった場合は、 - このコードは $php_shtool path $EXAMPLE_CONFIG - を実行します。これは、そのユーザーの現在の PATH - を使用して example-config の場所を探します。 - どちらにしても、次に行うのは EXAMPLE_PATH - が通常の実行可能ファイルであるかどうか、 - そして正常に実行できるかどうかの調査となります。 - 実行できた場合は AC_MSG_RESULT がコールされ、 - AC_MSG_CHECKING で始まる出力行を補完します。 - それ以外の場合は AC_MSG_ERROR がコールされ、 - 指定されたメッセージを表示して configure を即時に終了させます。 - - - - 次に、このコードは example-config - を何度か実行してサイト固有の設定情報を取得します。 - その次にコールするのは PHP_CHECK_LIBRARY - です。これは PHP のビルドシステムが autoconf の - AC_CHECK_LIB のラッパーとして用意しているマクロです。 - PHP_CHECK_LIBRARY は、 - 最初のパラメータで指定したライブラリの - 2 番目のパラメータで指定したシンボルをコールするプログラムを - コンパイル、リンクして実行します。 - 成功すると、3 番目のパラメータで指定したスクリプトを実行します。 - このスクリプトは PHP ビルドシステムに対して - インクルードパスやライブラリパス、ライブラリ名を - example-config が返す文字列から通知します。 - 失敗すると、かわりに 4 番目のパラメータで指定したスクリプトを実行します。 - この場合は、AC_MSG_ERROR がコールされて処理を停止します。 - - - - - --enable-example-debug オプションの処理 - - - の処理はずっと単純です。真値が設定されているかどうかだけを調べます。 - チェックに成功すると、AC_DEFINE - をコールして C のマクロ USE_EXAMPLE_DEBUG - を作成し、拡張モジュールのソースで使用できるようにします。 - 3 番目のパラメータは config.h 用のコメント文字列です。 - これを空のままにしておいても問題はありません。たいていは空のままにします。 - - - - - --with-example-extra=DIR オプションの処理 - - このサンプルでの説明用に用意した架空の機能 "extra" - は - オプションで要求されるもので、架空のプログラム - example-config とは別のものであり、 - デフォルトのサーチパスもありません。 - そのためユーザーは、必要なライブラリのインストール先を指定する必要があります。 - このような設定は実際の拡張モジュールではあまりないかもしれませんが、 - 説明用として用意しました。 - - - - このコードは、あまりなじみのない方法で - PHP_EXAMPLE_EXTRA が真値であるかどうかを調べます。 - 否定形が指定された場合は、それ以降の処理を行いません。 - これは、そのユーザーが追加機能を必要としなかったことを表します。 - パラメータなしで肯定形が指定された場合は、 - AC_MSG_ERROR がコールされて処理を停止します。 - その次に、また PHP_CHECK_LIBRARY を実行します。 - 今度は、定義済みのコンパイラオプションはないので、 - PHP_ADD_INCLUDE と - PHP_ADD_LIBRARY_WITH_PATH - を使用して必要なインクルードパスやライブラリパス、 - 追加機能のためのライブラリのフラグを作成します。 - AC_DEFINE もコールされ、 - 追加機能が要求されていてそれが使用可能であることを通知します。 - また、ビルドすべきファイルが別に存在することを示す変数も設定します。 - チェックに失敗すると、おなじみの - AC_MSG_ERROR がコールされます。 - 失敗時のもうひとつの処理法は、次のように - AC_MSG_WARNING をコールすることです。 - - - - - - - - この場合は、configure - はエラーではなく警告メッセージを表示し、処理を続行します。 - いずれにせよ、失敗をどう処理するのかは拡張モジュールの開発者が決めることです。 - - - - - - ビルドシステムに対しての決定内容の通知 - - 必要なインクルードファイルやライブラリはすべて指定しました。 - 必要なオプションやマクロもすべて定義しました。 - でも、あとひとつ残っていることがあります。 - ビルドシステムに対して、拡張モジュール自身をビルドすることと - そのために使用するファイル群を教えてやらなければならないのです。 - そのためには PHP_NEW_EXTENSION マクロをコールします。 - このマクロの最初のパラメータは拡張モジュールの名前で、 - これはディレクトリ名と一致します。2 番目のパラメータは、 - その拡張モジュールを構成するすべてのソースファイルのリストです。 - サブディレクトリ内のソースファイルをビルド処理に追加する方法については - PHP_ADD_BUILD_DIR を参照ください。 - 3 番目のパラメータは、常に $ext_shared - でなければなりません。この値は、 - configure の際に - 用に - PHP_ARG_WITH がコールされたときに決まります。 - 4 番目のパラメータでは "SAPI クラス" を指定します。 - これは CGI SAPI や CLI SAPI を必要とする場合にのみ有用です。 - その他のクラスでは、ここは空のままにしておかなければなりません。 - 5 番目のパラメータには、拡張モジュールのビルド時の - CFLAGS に追加するフラグのリストを指定します。 - 6 番目のパラメータは boolean 値です。"yes" を指定すると、 - 拡張モジュール全体のビルドを $CC ではなく - $CXX を用いて行います。 - 3 番目以降のパラメータは、すべてオプションです。 - 最後に PHP_SUBST をコールして、 - 拡張モジュールの共有ビルドを有効にします。 - 共有モードでの拡張モジュールのビルドをサポートしないようにする方法についての詳細は - を参照ください。 - - - - - counter 拡張モジュールの config.m4 ファイル - - 先ほど説明した counter 拡張モジュールの - config.m4 ファイルは、上で説明したよりずっとシンプルです。 - これは、ビルドシステムのさまざまな機能を使用していないからです。 - 外部のライブラリや同梱されているライブラリを使わない場合は、 - このようにしておくことをお勧めします。 - - - counter の config.m4 ファイル - -$ - - - - - - - diff --git a/internals2/buildsys/configwin.xml b/internals2/buildsys/configwin.xml deleted file mode 100644 index fcc3cb292a..0000000000 --- a/internals2/buildsys/configwin.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - Windows 用のビルドシステム: config.w32 - - 拡張モジュールに含まれている config.w32 - ファイルの使用法は config.m4 とほぼ同じですが、 - 決定的な違いがふたつあります。まず第一に、これは Windows 版のビルド用に使うものです。 - 次に、これは JavaScript で書かれています。 - このセクションでは、JavaScript の文法については特に扱いません。 - 現時点では、このセクションは未完成です。とりあえずのたたき台として用意したものであり、 - ごらんいただけるのは config.m4 のサンプルだけです。 - - - - config.w32 ファイルのサンプル - -// $Id$ -// vim:ft=javascript - - - - - - counter 拡張モジュールの config.w32 ファイル - - 先ほど説明した counter 拡張モジュールの - config.w32 ファイルは、上で説明したよりずっとシンプルです。 - これは、ビルドシステムのさまざまな機能を使用していないからです。 - - - counter の config.w32 ファイル - -// $Id$ -// vim:ft=javascript - - - - - - - - diff --git a/internals2/buildsys/environment.xml b/internals2/buildsys/environment.xml deleted file mode 100644 index f3d53ef9eb..0000000000 --- a/internals2/buildsys/environment.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - 拡張モジュール開発用に PHP をビルドする方法 - - PHP を普通にインストールすると、 - デバッグ機能よりもパフォーマンスの向上に主眼を置いて最適化された設定になります。 - 実際に運用することを考えると、これは妥当な選択でしょう。 - しかし、拡張モジュールを開発する環境としてはあまりよくありません。 - 何か問題がおこったときに、どこが悪いのかを調べやすくするように - PHP をビルドする必要があります。 - - - - Zend Engine ではメモリマネージャが提供されており、 - 拡張モジュール内で発生したメモリリークを追跡することができます。 - また、詳細なデバッグ情報を取得することもできます。 - しかし、この機能はデフォルトでは無効になっており、 - スレッドセーフであることを優先しています。 - この機能を使うには、configure のオプションに - と - --enable-maintainer-zts を追加します。 - PHP をソースからビルドする方法については - - の説明を参照ください。典型的な - configure の設定は次のようになります。 - - - - - - - - - diff --git a/internals2/buildsys/index.xml b/internals2/buildsys/index.xml deleted file mode 100644 index 8b7ab13c49..0000000000 --- a/internals2/buildsys/index.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - PHP 5 ビルドシステム - - - PHP 5 のさまざまな機能と柔軟性を考えると、それが何千ものファイルの - 何百万行というコードから出来上がっていると聞いても驚かないことでしょう。 - また、そのようなデータを管理するには - 何らかのビルドシステムが必要となるのも無理もないことです。 - このセクションでは、拡張モジュール開発用に PHP をセットアップする方法や - PHP ソースツリー内における拡張モジュールの配置、 - そして拡張モジュールをビルドする方法を説明します。 - - - &internals2.buildsys.environment; - &internals2.buildsys.skeleton; - &internals2.buildsys.configunix; - &internals2.buildsys.configwin; - - - - diff --git a/internals2/buildsys/skeleton.xml b/internals2/buildsys/skeleton.xml deleted file mode 100644 index dee96d7526..0000000000 --- a/internals2/buildsys/skeleton.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - ext_skel スクリプト - - PHP 拡張モジュールには、共通に含まれるファイルがいくつかあります。 - その多くは拡張モジュールの種類に関わらずほぼ同じ内容ですが、 - 毎回それをコピーするのは面倒です。 - 幸いなことに、そのような初期作業を代わりに行ってくれるスクリプトがあります。 - それが ext_skel で、 - PHP 4.0 以降に同梱されています。 - - - - PHP 5.2.2 で、何もパラメータを指定せずに ext_skel - を実行した結果は、次のようになります。 - - - 一般に、新しい拡張モジュールを開発する際に使うであろうパラメータは - --extname と - --no-help のみです。 - 拡張モジュールの構成に慣れるまでは、 - --no-help を指定しないようにしましょう。 - そうすることで、ext_skel - が生成するファイルに有用なコメントがたくさん含められるようになります。 - - - - 残ったオプションは --extname です。 - これは、作成する拡張モジュールの名前を ext_skel - に伝えるためのものです。ここで指定する名前は、すべて小文字からなるものです。 - 使用できる文字は英字とアンダースコアのみで、PHP の - ext/ フォルダ配下で一意なものでなければなりません。 - - - - --proto オプションは、 - 作成したい PHP 関数の情報を含むヘッダファイルを指定するためのものです。 - 既存のライブラリを使用する拡張モジュールの開発時に使用できるということらしいですが、 - 最近のヘッダファイルではうまく機能しないことが多いようです。 - 試しに zlib.h を指定してみたところ、 - ext_skel の出力に - 空っぽで何の意味もないプロトタイプが大量に含まれてしまいました。 - --xml--full-xml - は、まったく機能しません。--skel - を使用すると、独自の雛形ファイル群を使用することができます。 - このオプションは、このセクションでは対象外とします。 - - - - diff --git a/internals2/counter.xml b/internals2/counter.xml deleted file mode 100644 index ff11795e89..0000000000 --- a/internals2/counter.xml +++ /dev/null @@ -1,1140 +0,0 @@ - - - - - "counter" 拡張モジュール - サンプル - - - 序文 - - この Zend のドキュメントでは、ひとつのサンプルモジュールを通して - さまざまな考え方を説明していきます。サンプルとして使用するのが "counter" - 拡張モジュールです。これは実在のものではありませんが - Zend モジュールとしてひととおり機能するものであり、 - さまざまな Zend API をできるだけ多く使用するようにしています。 - この章では、利用者側から見たこのサンプルモジュールのインターフェイスを説明します。 - - - - - "counter" は、実用性はまったくありません。 - というのも、その機能は PHP のコードレベルではるかに効率的に実装できるものだからです。 - - - - - - &reftitle.setup; - -
- &reftitle.intro; - - - "counter" 拡張モジュールは、PHP のコード内で任意の数のカウンターを使えるようにします。 - カウンターは呼び出し元が指定したときにリセットされます。 - - - - "counter" のインターフェイスは、 - 「基本」「拡張」「オブジェクト指向」の 3 通りがあります。 - 基本インターフェイスは、単一のカウンタを INI 設定で制御し、 - 関数コールで実行します。拡張インターフェイスは、 - 任意の数のカウンタリソースを使用することができます。 - このカウンタは、単一の PHP リクエスト内だけでなく - 複数のリクエストにまたがって使用することもできます。 - オブジェクト指向インターフェイスは、基本インターフェイスと - 拡張インターフェイスの両方を Counter - クラスに組み込んだものです。 - -
- -
- &reftitle.runtime; - - &extension.runtime; - - Counter の設定オプション - - - - 名前 - デフォルト - 変更の可否 - 変更履歴 - - - - - counter.reset_time - COUNTER_RESET_PER_REQUEST - PHP_INI_ALL - - - - counter.save_path - "" - PHP_INI_ALL - - - - counter.initial_value - "0" - PHP_INI_ALL - - - - -
- &ini.php.constants; - - - - - counter.reset_time - integer - - - - counter.reset_time は、 - 基本インターフェイスで使用するカウンタをリセットするよう - "counter" に通知します。 - COUNTER_RESET_* 定数 (以下を参照ください) - のいずれかを指定します。 - - - - - - counter.save_path - string - - - - 複数の PHP リクエストにまたがって持続する - (COUNTER_RESET_NEVER あるいは COUNTER_FLAG_SAVE が設定されているカウンタの) - データの保存場所を "counter" に通知します。 - ファイルがこのパスに作成されるので、 - このパスに対する読み書きの権限が - PHP を実行しているユーザーに必要です。 - - - - - - counter.initial_value - integer - - - - 基本インターフェイスで使用するカウンタの初期値を設定します。 - カウンタをリセットすると、常にこの値に戻ります。 - - - - - -
- -
- &reftitle.resources; - - - "counter" 拡張モジュールでは、カウンタリソースを定義します。 - -
- -
- - - &reftitle.constants; - &extension.constants; - - - - - COUNTER_FLAG_PERSIST - (integer) - - - - このフラグを指定したカウンタは、持続的なリソースとなります。 - - - - - - COUNTER_FLAG_SAVE - (integer) - - - - このフラグを指定したカウンタは保存され、別に起動した PHP でも使用できるようになります。 - - - - - - COUNTER_FLAG_NO_OVERWRITE - (integer) - - - - このフラグを指定すると、既存のカウンタと同じ名前で - counter_create - を実行したときに既存のカウンタを上書きしません。 - - - - - - COUNTER_META_NAME - (string) - - - - この定数を渡すと、カウンタリソースあるいはオブジェクトの名前を取得することができます。 - - - - - - COUNTER_META_IS_PERISTENT - (string) - - - - この定数を渡すと、カウンタリソースあるいはオブジェクトが持続的なものかどうか - (COUNTER_FLAG_PERSIST フラグが立っているかどうか) - を知ることができます。 - - - - - - COUNTER_RESET_NEVER - (integer) - - - - カウンタはリセットされません。 - - - - - - COUNTER_RESET_PER_LOAD - (integer) - - - - PHP を起動するたびにカウンタをリセットします。 - - - - - - COUNTER_RESET_PER_REQUEST - (integer) - - - - リクエストのたびにカウンタをリセットします。 - - - - - - - - &reftitle.examples; - -
- 基本インターフェイス - - - 基本インターフェイスで提供する 3 つのシンプルな関数について、 - ここで説明します。 - - - - "counter" の基本インターフェイス - - -]]> - - - &example.outputs; - - - - - 基本インターフェイスでは - INI 設定 - もいくつか使用します。 - -
- -
- 拡張インターフェイス - - - 拡張インターフェイスの関数群を使用すると、 - 名前つきのカウンタを好きなだけ作成してそれぞれ別の設定にすることができます。 - 基本インターフェイスと拡張インターフェイスを両方同時に使うことも可能です。 - - - - "counter" の拡張インターフェイス - - -]]> - - - これをはじめて実行したときの結果は次のようになります。 - - - - - 同じ PHP インスタンスでもう一度実行すると、結果はこのようになります。 - - - - - さらにもう一度、今度は 別の PHP - インスタンスで 実行したときの結果は次のとおりです。 - - - - -
- -
- オブジェクト指向のインターフェイス - - - このインターフェイスは、拡張インターフェイスをオブジェクト指向で扱えるようにしたものです。 - 以下の例では、先ほどの例をオブジェクト指向で書き直したものをごらんいただきます。 - この例の出力は、先ほどのものとまったく同じです。 - ただ、"Not a valid counter!" と表示されるかわりに PHP の警告が発生します。 - これは、変数 $counter_three がオブジェクトでないためです。 - この例では、拡張モジュールで定義されている Counter - クラスのサブクラスを作成できることも確認できます。 - また、カウンタの値がメソッドではなくインスタンス変数で表されることもわかります。 - - - - "counter" のオブジェクト指向インターフェイス - - -getMeta(COUNTER_META_NAME), - $this->getMeta(COUNTER_META_IS_PERSISTENT) ? '' : ' not', - $this->value); - } -} - -Counter::setCounterClass("MyCounter"); -if (($counter_one = Counter::getNamed("one")) === NULL) { - $counter_one = new Counter("one", 0, COUNTER_FLAG_PERSIST); -} -$counter_one->bumpValue(2); // we aren't allowed to "set" the value directly -$counter_two = new Counter("two", 5); -$counter_three = Counter::getNamed("three"); -$counter_four = new Counter("four", 2, COUNTER_FLAG_PERSIST | COUNTER_FLAG_SAVE | COUNTER_FLAG_NO_OVERWRITE); -$counter_four->bumpValue(1); - -$counter_one->printCounterInfo(); -$counter_two->printCounterInfo(); -$counter_three->printCounterInfo(); -$counter_four->printCounterInfo(); -?> -]]> - - -
- -
- - - Counter クラス - Counter - - -
- &reftitle.intro; - - 単一のカウンタオブジェクトを表します。 - -
- -
- &reftitle.classsynopsis; - - - Counter - - - Counter - - - - - -
-
- - - - Counter::__construct - - 単一の数値を保持する Counter のインスタンスを作成する - - - - &reftitle.description; - - Counter::__construct - stringname - integerinitial_value - integerflags - - - 単一の数値を保持する Counter のインスタンスを作成します。 - - - - &reftitle.parameters; - - - name - - - カウンタの名前。 - - - - - initial_value - - - カウンタの初期値。デフォルトはゼロ (0) です。 - - - - - flags - - - カウンタのフラグ。 - COUNTER_FLAG_* 定数の中から選択します。 - - - - - - - &reftitle.returnvalues; - - 成功した場合に Counter オブジェクトを返します。 - - - - &reftitle.errors; - - Counter::__construct - は、問題が発生した場合に例外をスローします。 - - - - - - - Counter::getValue - - カウンタの現在値を取得する - - - - &reftitle.description; - - integerCounter::getValue - - - - Counter::getValue は、カウンタの現在値を返します。 - - - - &reftitle.returnvalues; - - Counter::getValue は整数値を返します。 - - - - &reftitle.seealso; - - Counter::bumpValue - Counter::resetValue - - - - - - - Counter::bumpValue - - カウンタの現在値を変更する - - - - &reftitle.description; - - Counter::bumpValue - integeroffset - - - Counter::bumpValue は、カウンタの現在値を更新します。 - - - - &reftitle.parameters; - - - offset - - - カウンタの値を変更する量。負の値を指定することも可能です。 - - - - - - - &reftitle.seealso; - - Counter::getValue - Counter::resetValue - - - - - - - Counter::resetValue - - カウンタの現在値をリセットする - - - - &reftitle.description; - - Counter::resetValue - - - - Counter::resetValue は、 - カウンタの現在値をもとの初期値に戻します。 - - - - &reftitle.seealso; - - Counter::getValue - Counter::bumpValue - - - - - - - Counter::getMeta - - カウンタのメタ情報を返す - - - - &reftitle.description; - - mixedCounter::getMeta - integerattribute - - - Counter::getMeta は、カウンタのメタ情報を返します。 - - - - &reftitle.parameters; - - - attribute - - - 取得したいメタ情報。 - - - - - - - &reftitle.returnvalues; - - Counter::getMeta は、 - 指定されたメタ情報に応じてさまざまな型の値を返します。 - - - - - - - Counter::getNamed - - 既存のカウンタを取得する - - - - &reftitle.description; - - static - CounterCounter::getNamed - stringname - - - Counter::getNamed は、 - 指定した名前のカウンタが存在する場合にそのカウンタを返し、 - 存在しない場合は &null; を返します。 - これは静的関数です。 - - - - &reftitle.parameters; - - - name - - - 取得したいカウンタの名前。 - - - - - - - &reftitle.returnvalues; - - Counter::getNamed は、 - 指定した名前のカウンタが存在する場合にそのカウンタ、 - 存在しない場合に &null; を返します。 - - - - - - - Counter::setCounterClass - - Counter::getNamed が返すクラスを設定する - - - - &reftitle.description; - - static - Counter::setCounterClass - stringname - - - Counter::setCounterClass は、 - Counter::getNamed が返すオブジェクトのクラスを変更します。 - 設定するクラスは public コンストラクタを持っていてはいけません。また、 - Counter のサブクラスである必要があります。 - これらの条件を満たさない場合は fatal エラーが発生します。 - これは静的関数です。 - - - - &reftitle.parameters; - - - name - - - 使用するクラスの名前。 - - - - - - - -
- - - 基本インターフェイス - 基本 - - - - counter_get - - 基本カウンタの現在の値を取得する - - - - &reftitle.description; - - integercounter_get - - - - counter_get は、 - 基本インターフェイスのカウンタの現在値を返します。 - - - - &reftitle.returnvalues; - - counter_get は整数値を返します。 - - - - &reftitle.seealso; - - counter_bump - counter_reset - - - - - - - counter_bump - - 基本カウンタの現在の値を更新する - - - - &reftitle.description; - - counter_bump - integeroffset - - - counter_bump は、 - 基本インターフェイスのカウンタの現在値を更新します。 - - - - &reftitle.parameters; - - - offset - - - カウンタの値の変更量。負の値を指定することもできます。 - - - - - - - &reftitle.seealso; - - counter_get - counter_reset - - - - - - - counter_reset - - 基本カウンタの現在の値をリセットする - - - - &reftitle.description; - - counter_reset - - - - counter_reset は、 - 基本インターフェイスのカウンタの現在値を初期値に戻します。 - - - - &reftitle.seealso; - - counter_get - counter_bump - - - - - - - - 拡張インターフェイス - 拡張 - - - - counter_create - - 単一の数値を保持するカウンタを作成する - - - - &reftitle.description; - - resourcecounter_create - stringname - integerinitial_value - integerflags - - - 単一の数値を保持するカウンタを作成します。 - - - - &reftitle.parameters; - - - name - - - カウンタの名前。 - - - - - initial_value - - - カウンタの初期値。デフォルトはゼロ (0)。 - - - - - flags - - - カウンタのフラグ。 - COUNTER_FLAG_* 定数群から選択します。 - - - - - - - &reftitle.returnvalues; - - カウンタリソースを返します。 - - - - - - - counter_get_value - - カウンタリソースの現在の値を取得する - - - - &reftitle.description; - - integercounter_get_value - resourcecounter - - - counter_get_value は、 - カウンタリソースの現在の値を返します。 - - - - &reftitle.parameters; - - - counter - - - 操作するカウンタリソース。 - - - - - - - &reftitle.returnvalues; - - counter_get_value は整数値を返します。 - - - - &reftitle.seealso; - - counter_bump_value - counter_reset_value - - - - - - - counter_bump_value - - カウンタリソースの現在の値を変更する - - - - &reftitle.description; - - counter_bump_value - resourcecounter - integeroffset - - - counter_bump_value は、 - カウンタリソースの現在の値を更新します。 - - - - &reftitle.parameters; - - - counter - - - 操作するカウンタリソース。 - - - - - offset - - - カウンタの値の変更量。負の値を指定することもできます。 - - - - - - - &reftitle.seealso; - - counter_get_value - counter_reset_value - - - - - - - counter_reset_value - - カウンタリソースの現在の値をリセットする - - - - &reftitle.description; - - counter_reset_value - resourcecounter - - - counter_reset_value は、 - カウンタリソースの現在の値を元の初期値に戻します。 - - - - &reftitle.parameters; - - - counter - - - 操作するカウンタリソース。 - - - - - - - &reftitle.seealso; - - counter_get_value - counter_bump_value - - - - - - - counter_get_meta - - カウンタリソースについてのメタ情報を返す - - - - &reftitle.description; - - mixedcounter_get_meta - resourcecounter - integerattribute - - - counter_get_meta は、 - カウンタリソースについてのメタ情報を返します。 - - - - &reftitle.parameters; - - - counter - - - 操作するカウンタリソース。 - - - - - attribute - - - 取得したいメタ情報。 - - - - - - - &reftitle.returnvalues; - - counter_get_meta は、 - 要求されたメタ情報に応じてさまざまな型の値を返します。 - - - - - - - counter_get_named - - 指定した名前の既存のカウンタを取得する - - - - &reftitle.description; - - resourceCounter::getNamed - stringname - - - counter_get_named は、 - 指定した名前のカウンタが存在する場合にそれを返します。 - 存在しない場合は &null; を返します。 - - - - &reftitle.parameters; - - - name - - - 探したいカウンタの名前。 - - - - - - - &reftitle.returnvalues; - - counter_get_named は、 - 指定した名前のカウンタが存在する場合にそれを返します。 - 存在しない場合は &null; を返します。 - - - - - - -
- - diff --git a/internals2/faq/index.xml b/internals2/faq/index.xml deleted file mode 100644 index 268e313e87..0000000000 --- a/internals2/faq/index.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - 拡張モジュールに関する FAQ - - - - - diff --git a/internals2/funcs/index.xml b/internals2/funcs/index.xml deleted file mode 100644 index 50d665a6dd..0000000000 --- a/internals2/funcs/index.xml +++ /dev/null @@ -1,373 +0,0 @@ - - - - - 関数の作成 - - PHP では関数とメソッドはだいたい同じ形式で、メソッドは単にスコープが限定された関数でしかありません。 - つまり、そのメソッドが属するクラスエントリのスコープになるということです。 - クラスエントリについては、このマニュアルの別のページで説明します。 - このセクションの目的は、関数やメソッドの内部構造を紹介することです。 - 関数を定義したり、変数を受け取ったり、PHP プログラマーに値を返したりする方法を説明します。 - - - - 関数の内部構造は、それほど単純ではありません。 - - - - - - - - プリプロセッサの PHP_FUNCTION(hackers_function) 命令は、 - 次のような宣言に展開されます。 - - - - - - - - INTERNAL_FUNCTION_PARAMETERS はマクロとして定義されており、 - 次の表のようになります。 - - - - INTERNAL_FUNCTION_PARAMETERS - - - - 型と名前 - 説明 - アクセス用マクロ - - - - - - int ht - ユーザーから実際に渡されたパラメータの数 - ZEND_NUM_ARGS() - - - - zval *return_value - - PHP 変数へのポインタ。ここに、ユーザーへの戻り値を設定します。 - デフォルトの型は IS_NULL です。 - - RETVAL_*, RETURN_* - - - - zval **return_value_ptr - - PHP に参照を返すときには、ここに変数へのポインタを設定します。 - 参照を返すことはお勧めしません。 - - - - - - zval *this_ptr - - メソッド呼び出しの場合は、$this オブジェクトを保持する PHP 変数を指します。 - - getThis() - - - - int return_value_used - - 返り値を呼び出し元が使うかどうかを示すフラグ。 - - - - - - -
- - - 明確にするために、完全に展開した PHP_FUNCTION(hackers_function) のドキュメントを示します。 - - - - - - - - this_ptr の存在を奇妙に感じるかもしれません。クラスの詳細は後ほど説明するとして、ここでは - PHP_METHOD(MyClass, hackersFunction) の結果が次のような宣言になることを示しておけば十分でしょう。 - - - - - - - - hackers_function は特に凝ったことをするわけではなく、zend_parse_parameters API - を使って受け取った数値を二倍して、それをエンジンに返すだけです。 - 普通は、単に入力を二倍するだけなどではなく、もっと複雑な何かを行うことでしょう。 - ここでは、説明のために、できるだけシンプルにとどめました。 - 関数に入った際に return_value を確保し、null に初期化されます。 - これで、PHP の関数のデフォルトの返り値が null となります。 - - - - Hacker が正しい引数として指定する内容を - zend_parse_parameters が受け取れず、受け取った引数を - type_spec を満たす形式に変換できなかった場合は、エラーを発生させます。 - そして、Hacker はその場で return しなければいけません。 - - - - ArrayObject、そして Resource は変換できません。 - - - - パラメータのプロトタイプのパース - - - - int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...) - - - int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...) - - - int zend_parse_parameter(int flags, int arg_num TSRMLS_DC, zval **arg, const char *spec, ...) - - - -
- - - - zend_parse_parameter はバージョン 5.5 以降で使用可能で、zend_parse_parameters_ex と同じような挙動です。 - ただ、引数をスタックから読み込むのではなく、変換対象の zval を受け取って、その場で変換します。 - - - - - - flags はマスクとして扱うことを想定しています。現時点で有効なフラグは ZEND_PARSE_PARAMS_QUIET だけです (これは、警告を抑制します)。 - - - - - これらの API 関数から受け取る可変引数は、C の変数のアドレスであることが期待されています。 - また、zend_parse_parameters API 関数の出力であると考えなければいけません。 - - - - 型指定子 - - - - 指定子 - - ローカル - - - - - a - array - zval* - - - A - array あるいは object - zval* - - - b - boolean - zend_bool - - - C - class - zend_class_entry* - - - d - double - double - - - f - function - zend_fcall_info*, zend_fcall_info_cache* - - - h - array - HashTable* - - - H - array あるいは object - HashTable* - - - l - long - long - - - L - long (LONG_MAX/LONG_MIN の範囲に収まるもの) - long - - - o - object - zval* - - - O - object (指定した zend_class_entry のもの) - zval*, zend_class_entry* - - - p - string (有効なパス) - char*, int - - - r - resource - zval* - - - s - string - char*, int - - - z - mixed - zval* - - - Z - mixed - zval** - - - -
- - - - 型指定子が O の場合、ローカルの zend_class_entry* は - zend_parse_parameter への入力 (型指定子の一部) と見なされます。 - - - - - 高度な型指定子 - - - - 指定子 - 説明 - - - - - * - 直前の型の引数が 0 個以上 - - - + - 直前の型の引数が 1 個以上 - - - | - 残りのパラメータは任意である - - - / - 後に続くパラメータを SEPARATE_ZVAL_IF_NOT_REF します。 - - - ! - - 直前のパラメータが、指定した型あるいは null のどちらかになるものとします。 - 'b'、'l'、'd' の場合は、対応する bool*long*double* - の後に zend_bool* 型の引数を追加する必要があります。null - を受け取った場合は、ここに true が設定されます。 - - - - -
- - パラメータのパースについての詳細は、ソース配布物に含まれる README.PARAMETER_PARSING_API を参照ください。 - - - - 一度 Hacker の関数が実行されたら、実行するよう実装されているかどうかにかかわらず、エンジン向けの return_value を設定します。 - RETURN_ マクロと RETVAL_ マクロは - Z_*_P の単なるラッパーで、return_value と組み合わせて使います。 - - - - - RETURN_ マクロはその場で関数の実行を終了します (つまり、return; します) が、 - RETVAL_ は、return_value を設定してからも実行を続けます。 - - - - - これで、関数の仕組みについて、それなりに理解できたことでしょう。 - メソッドの仕組みについても、ある程度は理解できたはずです。 - - -
- - diff --git a/internals2/ini/index.xml b/internals2/ini/index.xml deleted file mode 100644 index d96ff918fa..0000000000 --- a/internals2/ini/index.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - INI 設定の作成 - - - - - diff --git a/internals2/intro.xml b/internals2/intro.xml deleted file mode 100644 index 0529e87218..0000000000 --- a/internals2/intro.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - 序文 - - - このセクションは、ハッカー向けのマニュアルです。 - 自分の手を汚して何かをしたい人、PHP の内部構造を知ることで自分の理解を深めたい人、 - イケてる拡張モジュールを自作したい人。そんな人たちのために用意しました。 - このセクションでは、PHP の内部構造を深く掘り下げたり拡張モジュールの書きかたを説明したり、 - 複雑怪奇なマクロだらけのコードを読み解くヒントを提供したりします。 - 重要な内部機能はすべて取り上げますが、きちんと理解するには結局はソースを読むことです。 - - - - このセクションを読むための前提条件は、C 言語やそれに関連するツール (コンパイラやターミナルエミュレータなど) - に関する知識があるということです。別に次代のアラン・チューリングを目指せというつもりはありませんが、 - ここで扱う内容を実際に試してみるにはそれらの知識が不可欠なのです。 - 前提条件を満たす人は、ここで扱う内容を理解すれば - ハッカーへの道を進めるようになるでしょう。 - - - - このセクションは、PHP 5.3.3 時点の情報に基づいて書かれています。 - API の機能の微妙な差異については、適宜説明します。 - - - - - このドキュメントは、まだまだ完成には程遠いものです。 - もともとあった Zend のドキュメントをそのまま - Zend Engine 1 - に残しているので、必要な方はそちらをご覧ください。 - - - - - - diff --git a/internals2/memory/TSRM.xml b/internals2/memory/TSRM.xml deleted file mode 100644 index 396a19c39f..0000000000 --- a/internals2/memory/TSRM.xml +++ /dev/null @@ -1,208 +0,0 @@ - - - - - スレッドセーフなリソースマネージャ - - - スレッドセーフを有効にして PHP をビルドするときには、エンジン内で個々のコンテキストを分離する方法が必要になります。 - つまり、プロセス内の各スレッドが、互いに影響を及ぼさずに個別のリクエストを処理できるようにするということです。 - TSRM は PHP における全能の神です。拡張モジュールの作者は、ほとんど何もしなくても、 - 自作のモジュールをスレッドセーフ環境と非スレッドセーフ環境の両方に対応させることができます。 - - - - モジュールグローバルへのアクセス用マクロ - - - - - - - このコード片は、拡張モジュールの作者がグローバルアクセサ—を定義する方法を示すものです。 - TSRMG マクロは、識別子と型キャストそして要素名を受け取ります。 - 識別子は、モジュールの初期化時に TSRM が代入します。 - グローバルアクセサをこのように宣言しておくと、その拡張モジュールは、 - スレッドセーフと非スレッドセーフのどちらのアーキテクチャでも同じロジックで安全に扱えるようになります。 - - - - TSRM は、PHP 内部のすべてのグローバル構造 (実行環境のグローバルから拡張モジュールのグローバルまで) - の分離や安全性を管理し、隔離したストレージへのポインタをほとんどの API 関数に渡します。 - TSRMLS_C と TSRMLS_CC の二つのマクロは、それぞれ "thread safe local storage"、"thread safe local storage prefixed with a comma" - を表します。 - - - - 関数で TSRM へのポインタが必要な場合は、マクロ TSRMLS_D あるいは TSRMLS_DC を関数のプロトタイプで使います。 - これらはそれぞれ、"thread safe local storage only" と "thread safe local storage prefixed with a comma" を表します。 - エンジン内のマクロの多くは TSRM を参照しているので、ほとんどの場合、TSRM を受け付けるようにしておくほうが得策です。 - そうしておけば、もし TSRM を利用することになったとしても、実行中にポインタを取得する必要がなくなります。 - - - - TSRM はスレッドローカルであり、中には互換性の関係で TSRM を直接使えない関数もあります。 - そのため、TSRMLS_FETCH マクロが用意されました。これは、TSRM にスレッドローカルストレージへのポインタを取得させるようリクエストします。 - 可能な限り、このマクロは使わないようにしましょう。スレッドセーフ環境では、実行のコストがかかってしまうからです。 - - - - - 拡張モジュールを開発していると、"tsrm_ls is undefined" を含むエラーやその影響を受けたエラーが発生することがあります。 - これは、そのスコープで TSRMLS が定義されていないことに起因するものです。 - このエラーを修正するには、関数の宣言時に適切なマクロを使って TSRMLS を受け付けるようにします。 - 関数のプロトタイプを変更できない場合は、関数の中で TSRMLS_FETCH を呼ばなければいけません。 - - - - - これ以降で説明する機能は、TSRM を高度に使いこなすためのものです。 - 普通は、拡張モジュールが直接 TSRM を操作することはありません。 - 拡張モジュールのプログラマーは、TSRM の上位にある API (たとえば モジュールグローバル API) - を使うべきです。 - - - - TSRM の内部関数 - - - - プロトタイプ - 説明 - - - - - - typedef int ts_rsrc_id - リソースを数値 ID で表すための型定義。 - - - - int tsrm_startup(int expected_threads, int expected_resources, int debug_level, char *debug_filename) - - expected_threadsexpected_resources は、ハードリミットではありません。 - debug_leveldebug_filename が効果を発揮するのは、 - Windows 上でデバッグモードの場合か TSRM_DEBUG を定義した場合だけです。 - サーバーの立ち上げ時に、ZTS モードのプロセスごとに呼ばれます。 - - - - - void tsrm_shutdown(void) - - プロセスの最後に呼ぶ必要があります。 - ZTS モードのすべての TSRM ストレージを破棄して解放します。 - - - - - ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate_ctor ctor, ts_allocate_dtor dtor) - - size バイトのスレッドセーフポインタを確保してポインタ上で - ctor を呼び、id を割り当てて rsrc_id に代入し、 - リソースを解放したときには dtor を呼びます。 - ZTS モードでは、この API を使ってモジュールグローバルを分離します。 - - - - - void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id) - - id で割り当てられたリソースを、 - スレッド th_id が作ったエントリから取得します。 - - - - - - void *ts_resource(ts_rsrc_id id) - - - 事前に確保したリソース id を、呼び出し元スレッドが作ったエントリから取得します。 - - - - - void ts_free_thread(void) - - 呼び出し元スレッドのエントリを破棄して解放します。 - 現時点では、この API を使うのは ISAPI モジュールだけです。 - - - - - - void ts_free_id(ts_rsrc_id id) - - - 事前に確保したリソース id を破棄します。 - この API を使うと、ZTS モードでのモジュールグローバルの後始末もします。 - - - - -
- - - - これら以外にも、インタプリタのコンテキストを作ったり破棄したりする TSRM API 関数があります。 - しかし、これらの機能についてはこのマニュアルで扱う範囲を超えるので、 - 詳細は TSRM/TSRM.h を参照ください。 - - - - - TSRM ミューテックス API - - - - プロトタイプ - 説明 - - - - - - MUTEX_T tsrm_mutex_alloc(void) - その環境用の適切な MUTEX_T を確保して、それを返します。 - - - - int tsrm_mutex_lock(MUTEX_T mutexp) - - mutexp を、呼び出し側スレッド用にロックします。 - - - - - int tsrm_mutex_unlock(MUTEX_T mutexp) - - mutexp の呼び出し側スレッド用のロックを解除します。 - - - - - void tsrm_mutex_free(MUTEX_T mutexp); - - 事前に確保して、既にロック解除済みの mutexp を、破棄して解放します。 - - - - -
- - - - ミューテックス API は、TSRM が公開するものです。 - しかし、その内部的な利用法は、ここで扱うにはあまりにも幅広すぎます。 - そのため、基本的な機能とプロトタイプだけの紹介にとどめます。 - - -
diff --git a/internals2/memory/index.xml b/internals2/memory/index.xml deleted file mode 100644 index 38a817ee8f..0000000000 --- a/internals2/memory/index.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - メモリ管理 - - - Zend Engine のメモリ管理は、シンプルそうに見えますがそうではありません。 - まず API について学習し、その背後にある概念を理解する必要があります。 - しかしそれさえあれば十分です。 - - - &internals2.memory.management; - &internals2.memory.persistence; - &internals2.memory.TSRM; - - - - diff --git a/internals2/memory/management.xml b/internals2/memory/management.xml deleted file mode 100644 index 8ae963a82a..0000000000 --- a/internals2/memory/management.xml +++ /dev/null @@ -1,201 +0,0 @@ - - - - - 基本的なメモリ管理 - - - Zend エンジンのメモリ管理は、PHP のようなシステムにとって重要な機能として実装されています。 - メモリの管理や最適化が実際にどのような動きになっているかは、ここでは取り上げません。 - しかし、その機能をきちんと理解しておけば、このハッカー向けガイドの理解がさらに深まり、 - PHP 全体で使われる用語や機能を把握できるでしょう。 - - - - ハッカーにとって最も重要な機能である、メモリ割り当ての追跡について最初に説明しましょう。 - メモリ割り当てを追跡すれば、ハッカーの悩みの種であるメモリリークを回避できます。 - PHP をデバッグモードで (--enable-debug をつけて) ビルドすると、 - 検出したメモリリークが逐一報告されるという、これまでにない完全な世界になります。 - - - - この機能は重要なものだしとても便利なものではありますが、 - ハッカーたる者、それに甘えてはいけません。 - コードをデプロイする前にメモリリークは解決しておくようにしましょう。 - SAPI 環境でのメモリリークは、あっという間に深刻な問題を引き起こします。 - - - - もう一つ、副次的な機能ではあるけれども注目すべきものがあります。 - それは、メモリマネージャーが、PHP のインスタンスごとのメモリ使用量のハードリミットを決める一因となっていることです。 - ご存じのとおり、無限に使えるものなんてどこにもありません。 - 何かのコードがメモリを使い切ってしまったとしたら、おそらくそれは、Zend エンジンのハッカー - あるいは PHP プログラマーのどちらかがまずいコードを書いたのでしょう。 - したがって、メモリの使用量を制限するというのは、単にその言語の実行時に期待される内容に制約を加えるというものではありません。 - 単に、何かの手違いで開発環境が制御不能にならないようにしたり、実行時にバグが発生しないようにするための方法でしかありません。 - - - - ハッカーの視点で見たメモリ管理 API は、 - libc (あるいはその他お好みのライブラリ) の malloc の実装にそっくりです。 - - - - メインメモリ API - - - - プロトタイプ - 説明 - - - - - - void *emalloc(size_t size) - size バイトのメモリを確保します。 - - - - void *ecalloc(size_t nmemb, size_t size) - - size バイトのバッファを nmemb 要素だけ確保し、 - ゼロで初期化します。 - - - - - void *erealloc(void *ptr, size_t size) - - emalloc を使って確保したバッファ ptr のサイズを変更し、 - size バイトにします。 - - - - - void efree(void *ptr) - - ptr が指すバッファを解放します。このバッファは - emalloc で確保したものでなければいけません。 - - - - - - void *safe_emalloc(size_t nmemb, size_t size, size_t offset) - - - size バイトのバッファを nmemb ブロックぶんと、さらに - offset バイトを確保します。 - emalloc(nmemb * size + offset) と似ていますが、 - オーバーフロー対策の特別な保護が追加されています。 - - - - - char *estrdup(const char *s) - - NULL 終端文字列 s を保持できるだけのバッファを確保し、 - s をそのバッファにコピーします。 - - - - - - char *estrndup(const char *s, unsigned int length) - - - estrdup と似ていますが、NULL 終端文字列の長さが既知である場合に使います。 - - - - -
- - - - エンジンのメモリ管理関数は、失敗しても NULL は返しません。 - 実行時にメモリの確保に失敗した場合は、エラーが発生します。 - - - - - - コードをデプロイする前には常に valgrind を使いましょう。ハッカーとしてのたしなみです。 - Zend エンジンが検出して報告してくれるのは、確保済みのメモリのリークだけです。 - PHP 自体はサードパーティのソフトウェアに対する薄いラッパーに過ぎず、サードパーティのソフトウェアは - Zend エンジンのメモリ管理は使いません。 - さらに valgrind は、常に落ちるわけではないというエラーを捕捉してくれたり、 - 実行時に明確な影響が出るわけではないエラーを見つけてくれたりもします。 - これらに対応することも大切で、回避できるリークは回避しておかなければいけません。 - - - - - - 回避不能なリークもあります。ライブラリによってはプロセス終了のタイミングでメモリを解放する仕組みになっているものがあり - (場合によっては普通にあり得ることです)、その場合は制御不能だからです。 - - - - - --enable-debug を付けて構築したデバッグ環境では、次の例の leak 関数が実装された状態になり、 - ユーザーのスクリプトからも呼べるようになります。 - - - - リークの検出の実例 - - - - &example.outputs.similar; - - - - - - - - USE_ZEND_ALLOC=0 を指定するとメモリマネージャーの機能が停止し、 - すべてのメモリ管理をシステムのデフォルトのアロケーターに任せます。これは、リークのデバッグ時に便利です。 - それ以外の場面で使うべきではありません。 - - - -
- - diff --git a/internals2/memory/persistence.xml b/internals2/memory/persistence.xml deleted file mode 100644 index 6a42c77c3e..0000000000 --- a/internals2/memory/persistence.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - データの永続化 - - - ここでいう「データの永続化」とは、現在のリクエストの間はずっと生き続けることを想定したあらゆるデータを指します。 - エンジン内でのメモリ管理はリクエスト単位での割り当てを重視していますが、必ずしもこれが現実的であったり適切であったりするわけではありません。 - 永続メモリは、たとえば外部ライブラリの要件を満たすために必要になることがあります。 - また、ハックの際にも便利です。 - - - - 永続メモリのよくある使い道は、データベースサーバーとの持続的な接続をできるようにすることです。 - これはあまり望ましいことではありませんが、永続メモリの使い道としては一番よくあるものです。 - - - - - これらの関数にはすべて、追加のパラメータ persistent があります。これを false にすると、 - エンジンは通常のアロケータ (emalloc) を使い、永続化しなくなります。メモリを永続化する場合はシステムのアロケータを使います。 - しかしたいていの場合、メインメモリ API のように NULL ポインタを返すことはできません。 - - - - - 永続メモリ API - - - - プロトタイプ - 説明 - - - - - - void *pemalloc(size_t size, zend_bool persistent) - size バイトのメモリを確保します。 - - - - void *pecalloc(size_t nmemb, size_t size, zend_bool persistent) - - size バイトのバッファを nmemb 要素だけ確保し、 - ゼロで初期化します。 - - - - - void *perealloc(void *ptr, size_t size, zend_bool persistent) - - emalloc を使って確保したバッファ ptr のサイズを変更し、 - size バイトにします。 - - - - - void pefree(void *ptr, zend_bool persistent) - - ptr が指すバッファを解放します。このバッファは - pemalloc で確保したものでなければいけません。 - - - - - - void *safe_pemalloc(size_t nmemb, size_t size, size_t offset, zend_bool persistent) - - - size バイトのバッファを nmemb ブロックぶんと、さらに - offset バイトを確保します。 - pemalloc(nmemb * size + offset) と似ていますが、 - オーバーフロー対策の特別な保護が追加されています。 - - - - - char *pestrdup(const char *s, zend_bool persistent) - - NULL 終端文字列 s を保持できるだけのバッファを確保し、 - s をそのバッファにコピーします。 - - - - - - char *pestrndup(const char *s, unsigned int length, zend_bool persistent) - - - pestrdup と似ていますが、NULL 終端文字列の長さが既知である場合に使います。 - - - - -
- - - - 大切なのは、永続化させるために確保したメモリはエンジン側での最適化や追跡が行われないということです。 - memory_limit に縛られることもありません。さらに、エンジンのハッカーが作った変数では永続メモリを使ってはいけません。 - - -
diff --git a/internals2/objects/index.xml b/internals2/objects/index.xml deleted file mode 100644 index 8192e75191..0000000000 --- a/internals2/objects/index.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - クラスの作成 - - - - - diff --git a/internals2/opcodes.xml b/internals2/opcodes.xml deleted file mode 100644 index bb3e7ddcf7..0000000000 --- a/internals2/opcodes.xml +++ /dev/null @@ -1,344 +0,0 @@ - - - - - - Zend Engine 2 オペコード - - - PHPファイルを解析する際に、Zend Engine 2 は一連のオペレーションコードを生成します。 - これは一般に「オペコード」と呼ばれるもので、そのコードの持つ機能を表します。 - このページでは、個々のオペコードとその挙動について詳しく説明します。 - - - 特定のPHPファイルに含まれるオペコードは、vld拡張モジュール(&url.pecl.package;vld を参照して下さい) を使えばダンプすることができます。 - - - - オペコード一覧 - - - - 番号 - 名前 - サンプルコードの有無 - - - - 0yes - 1yes - 2yes - 3yes - 4yes - 5yes - 6yes - 7yes - 8yes - 9yes - 10yes - 11yes - 12yes - 13yes - 14yes - 15yes - 16yes - 17yes - 18yes - 19yes - 20yes - 21yes - 22yes - 23yes - 24yes - 25yes - 26yes - 27yes - 28yes - 29yes - 30yes - 31yes - 32yes - 33yes - 34yes - 35yes - 36yes - 37yes - 38yes - 39yes - 40yes - 41yes - 42yes - 43yes - 44yes - 45yes - 46yes - 47yes - 48yes - 49yes - 50yes - 51yes - 52yes - 53yes - 54yes - 55yes - 56yes - 57yes - 58yes - 59yes - 60yes - 61yes - 62yes - 63yes - 64yes - 65yes - 66yes - 67yes - 68yes - 69no - 70yes - 71yes - 72yes - 73yes - 74yes - 75yes - 76yes - 77yes - 78yes - 79yes - 80yes - 81yes - 82yes - 83yes - 84yes - 85yes - 86yes - 87yes - 88yes - 89yes - 90no - 91no - 92yes - 93yes - 94yes - 95no - 96no - 97no - 98yes - 99yes - 100no - 101yes - 102no - 103no - 104no - 105yes - 106no - 107yes - 108yes - 109yes - 110yes - 111no - 112yes - 113yes - 114yes - 115yes - 116not documentedno - 117not documentedno - 118not documentedno - 119not documentedno - 120not documentedno - 121not documentedno - 122not documentedno - 123not documentedno - 124not documentedno - 125not documentedno - 126not documentedno - 127not documentedno - 128not documentedno - 129not documentedno - 130not documentedno - 131not documentedno - 132yes - 133yes - 134yes - 135yes - 136yes - 137not documentedno - 138yes - 139yes - 140yes - 141yes - 142yes - 143no - 144no - 145no - 146no - 147yes - 148yes - 149yes - 150no - 152no - 153no - 154ZEND_ADD_TRAITno - 155ZEND_BIND_TRAITSno - 156ZEND_SEPARATEno - 157ZEND_FETCH_CLASS_NAMEno - 158ZEND_CALL_TRAMPOLINEno - 159ZEND_DISCARD_EXCEPTIONno - 160ZEND_YIELDno - 161ZEND_GENERATOR_RETURNno - 162ZEND_FAST_CALLno - 163ZEND_FAST_RETno - 164ZEND_RECV_VARIADICno - 165ZEND_SEND_UNPACKno - 166ZEND_POWno - 167ZEND_ASSIGN_POWno - 168ZEND_BIND_GLOBALno - 169ZEND_COALESCEno - 170ZEND_SPACESHIPno - 171ZEND_DECLARE_ANON_CLASSno - 172ZEND_DECLARE_ANON_INHERITED_CLASSno - - -
-
- - - オペコードの説明とサンプル - &internals2.opcodes.add; - &internals2.opcodes.add-array-element; - &internals2.opcodes.add-char; - &internals2.opcodes.add-interface; - &internals2.opcodes.add-string; - &internals2.opcodes.add-var; - &internals2.opcodes.assign; - &internals2.opcodes.assign-add; - &internals2.opcodes.assign-bw-and; - &internals2.opcodes.assign-bw-or; - &internals2.opcodes.assign-bw-xor; - &internals2.opcodes.assign-concat; - &internals2.opcodes.assign-dim; - &internals2.opcodes.assign-div; - &internals2.opcodes.assign-mod; - &internals2.opcodes.assign-mul; - &internals2.opcodes.assign-obj; - &internals2.opcodes.assign-ref; - &internals2.opcodes.assign-sl; - &internals2.opcodes.assign-sr; - &internals2.opcodes.assign-sub; - &internals2.opcodes.begin-silence; - &internals2.opcodes.bool; - &internals2.opcodes.bool-not; - &internals2.opcodes.bool-xor; - &internals2.opcodes.brk; - &internals2.opcodes.bw-and; - &internals2.opcodes.bw-not; - &internals2.opcodes.bw-or; - &internals2.opcodes.bw-xor; - &internals2.opcodes.case; - &internals2.opcodes.cast; - &internals2.opcodes.catch; - &internals2.opcodes.clone; - &internals2.opcodes.concat; - &internals2.opcodes.cont; - &internals2.opcodes.declare-class; - &internals2.opcodes.declare-const; - &internals2.opcodes.declare-function; - &internals2.opcodes.declare-inherited-class; - &internals2.opcodes.declare-inherited-class-delayed; - &internals2.opcodes.div; - &internals2.opcodes.do-fcall; - &internals2.opcodes.do-fcall-by-name; - &internals2.opcodes.echo; - &internals2.opcodes.end-silence; - &internals2.opcodes.exit; - &internals2.opcodes.ext-fcall-begin; - &internals2.opcodes.ext-fcall-end; - &internals2.opcodes.ext-nop; - &internals2.opcodes.ext-stmt; - &internals2.opcodes.fe-fetch; - &internals2.opcodes.fe-reset; - &internals2.opcodes.fetch-class; - &internals2.opcodes.fetch-constant; - &internals2.opcodes.fetch-dim-func-arg; - &internals2.opcodes.fetch-dim-is; - &internals2.opcodes.fetch-dim-r; - &internals2.opcodes.fetch-dim-rw; - &internals2.opcodes.fetch-dim-tmp-var; - &internals2.opcodes.fetch-dim-unset; - &internals2.opcodes.fetch-dim-w; - &internals2.opcodes.fetch-func-arg; - &internals2.opcodes.fetch-is; - &internals2.opcodes.fetch-obj-func-arg; - &internals2.opcodes.fetch-obj-is; - &internals2.opcodes.fetch-obj-r; - &internals2.opcodes.fetch-obj-rw; - &internals2.opcodes.fetch-obj-unset; - &internals2.opcodes.fetch-obj-w; - &internals2.opcodes.fetch-r; - &internals2.opcodes.fetch-rw; - &internals2.opcodes.fetch-unset; - &internals2.opcodes.fetch-w; - &internals2.opcodes.free; - &internals2.opcodes.goto; - &internals2.opcodes.handle-exception; - &internals2.opcodes.include-or-eval; - &internals2.opcodes.init-array; - &internals2.opcodes.init-fcall-by-name; - &internals2.opcodes.init-method-call; - &internals2.opcodes.init-ns-fcall-by-name; - &internals2.opcodes.init-static-method-call; - &internals2.opcodes.init-string; - &internals2.opcodes.instanceof; - &internals2.opcodes.is-equal; - &internals2.opcodes.is-identical; - &internals2.opcodes.is-not-equal; - &internals2.opcodes.is-not-identical; - &internals2.opcodes.is-smaller; - &internals2.opcodes.is-smaller-or-equal; - &internals2.opcodes.isset-isempty-dim-obj; - &internals2.opcodes.isset-isempty-prop-obj; - &internals2.opcodes.isset-isempty-var; - &internals2.opcodes.jmp; - &internals2.opcodes.jmpnz; - &internals2.opcodes.jmpnz-ex; - &internals2.opcodes.jmpz; - &internals2.opcodes.jmpz-ex; - &internals2.opcodes.jmpznz; - &internals2.opcodes.mod; - &internals2.opcodes.mul; - &internals2.opcodes.new; - &internals2.opcodes.nop; - &internals2.opcodes.post-dec; - &internals2.opcodes.post-dec-obj; - &internals2.opcodes.post-inc; - &internals2.opcodes.post-inc-obj; - &internals2.opcodes.pre-dec; - &internals2.opcodes.pre-dec-obj; - &internals2.opcodes.pre-inc; - &internals2.opcodes.pre-inc-obj; - &internals2.opcodes.print; - &internals2.opcodes.qm-assign; - &internals2.opcodes.raise-abstract-error; - &internals2.opcodes.recv; - &internals2.opcodes.recv-init; - &internals2.opcodes.return; - &internals2.opcodes.return-by-ref; - &internals2.opcodes.send-ref; - &internals2.opcodes.send-val; - &internals2.opcodes.send-var; - &internals2.opcodes.send-var-no-ref; - &internals2.opcodes.sl; - &internals2.opcodes.sr; - &internals2.opcodes.sub; - &internals2.opcodes.switch-free; - &internals2.opcodes.throw; - &internals2.opcodes.ticks; - &internals2.opcodes.unset-dim; - &internals2.opcodes.unset-obj; - &internals2.opcodes.unset-var; - &internals2.opcodes.user-opcode; - &internals2.opcodes.verify-abstract-class; - &internals2.opcodes.zend-declare-lambda-function; - &internals2.opcodes.zend-jmp-set; - -
diff --git a/internals2/opcodes/add-array-element.xml b/internals2/opcodes/add-array-element.xml deleted file mode 100644 index 29b67e4508..0000000000 --- a/internals2/opcodes/add-array-element.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - -
- ADD_ARRAY_ELEMENT -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - INIT_ARRAY - ~0 - 1 - - - 1 - ADD_ARRAY_ELEMENT - ~0 - 2 - - - 2 - ADD_ARRAY_ELEMENT - ~0 - 3 - - - 3 - ASSIGN - - !0,~0 - - - 74 - SEND_VAR - - !0 - - - 5 - DO_FCALL - 1 - 'print_r' - - - 86 - RETURN - - 1 - - - - -
-
\ No newline at end of file diff --git a/internals2/opcodes/add-char.xml b/internals2/opcodes/add-char.xml deleted file mode 100644 index 63248ff087..0000000000 --- a/internals2/opcodes/add-char.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - -
- ADD_CHAR -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ADD_VAR - - !0 - - - 1 - ADD_CHAR - - 32 - - - 2 - ECHO - - - - - 3 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/add-interface.xml b/internals2/opcodes/add-interface.xml deleted file mode 100644 index 5c764229e6..0000000000 --- a/internals2/opcodes/add-interface.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - -
- ADD_INTERFACE -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: なし - - - - - line#op - fetchextreturn - operands - - - - - 60 - NOP - - - - - 1 - DECLARE_CLASS - - 'a' - - - 2 - ADD_INTERFACE - - 'iA' - - - 3 - VERIFY_ABSTRACT_CLASS - - - - - 3 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/add-string.xml b/internals2/opcodes/add-string.xml deleted file mode 100644 index c880b99113..0000000000 --- a/internals2/opcodes/add-string.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - -
- ADD_STRING -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ADD_STRING - ~0 - 'hello' - - - 1 - ADD_VAR - ~0 - ~0,!0 - - - 2 - ADD_STRING - ~0 - ~0,'+world' - - - 3 - ECHO - - ~0 - - - 74 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/add-var.xml b/internals2/opcodes/add-var.xml deleted file mode 100644 index 0ee834e1a1..0000000000 --- a/internals2/opcodes/add-var.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - -
- ADD_VAR -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ADD_STRING - ~0 - 'hello' - - - 1 - ADD_VAR - ~0 - ~0,!0 - - - 2 - ADD_STRING - ~0 - ~0,'+world' - - - 3 - ECHO - - ~0 - - - 74 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/add.xml b/internals2/opcodes/add.xml deleted file mode 100644 index c4aa86ddd7..0000000000 --- a/internals2/opcodes/add.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- ADD -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - ADD - ~0 - 1,2 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-add.xml b/internals2/opcodes/assign-add.xml deleted file mode 100644 index 5000b4119a..0000000000 --- a/internals2/opcodes/assign-add.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- ASSIGN_ADD -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN_ADD - - !0,3 - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-bw-and.xml b/internals2/opcodes/assign-bw-and.xml deleted file mode 100644 index 8f18786a72..0000000000 --- a/internals2/opcodes/assign-bw-and.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- ASSIGN_BW_AND -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN_BW_AND - - !0,64 - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-bw-or.xml b/internals2/opcodes/assign-bw-or.xml deleted file mode 100644 index 8755b2128c..0000000000 --- a/internals2/opcodes/assign-bw-or.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- ASSIGN_BW_OR -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN_BW_OR - - !0,64 - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-bw-xor.xml b/internals2/opcodes/assign-bw-xor.xml deleted file mode 100644 index ba73af4b9c..0000000000 --- a/internals2/opcodes/assign-bw-xor.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- ASSIGN_BW_XOR -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN_BW_XOR - - !0,64 - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-concat.xml b/internals2/opcodes/assign-concat.xml deleted file mode 100644 index a9cd798ac0..0000000000 --- a/internals2/opcodes/assign-concat.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- ASSIGN_CONCAT -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN_CONCAT - - !0,'z' - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-dim.xml b/internals2/opcodes/assign-dim.xml deleted file mode 100644 index 82ba6c88f1..0000000000 --- a/internals2/opcodes/assign-dim.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - -
- ASSIGN_DIM -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$b, !1=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0,1 - - - 71 - FETCH_DIM_W - $1 - !1,1 - - - 2 - ZEND_ASSIGN_DIM - - $1,2 - - - 3 - ZEND_OP_DATA - - !0,$3 - - - 84 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-div.xml b/internals2/opcodes/assign-div.xml deleted file mode 100644 index e27545bdb7..0000000000 --- a/internals2/opcodes/assign-div.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- ASSIGN_DIV -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN_DIV - - !0,3 - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-mod.xml b/internals2/opcodes/assign-mod.xml deleted file mode 100644 index 4213156ddf..0000000000 --- a/internals2/opcodes/assign-mod.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- ASSIGN_MOD -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN_MOD - - !0,3 - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-mul.xml b/internals2/opcodes/assign-mul.xml deleted file mode 100644 index c95b22ad56..0000000000 --- a/internals2/opcodes/assign-mul.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- ASSIGN_MUL -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN_MUL - - !0,3 - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-obj.xml b/internals2/opcodes/assign-obj.xml deleted file mode 100644 index fc2c7c29ac..0000000000 --- a/internals2/opcodes/assign-obj.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- ASSIGN_OBJ -
- PHP コード - - a = $otherobj; -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$obj, !1=$otherobj - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_ASSIGN_OBJ - - !0,'a' - - - 1 - ZEND_OP_DATA - - !1 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-ref.xml b/internals2/opcodes/assign-ref.xml deleted file mode 100644 index 99c584d623..0000000000 --- a/internals2/opcodes/assign-ref.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- ASSIGN_REF -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - FETCH_Wgloballock - $0 - 'a' - - - 1 - ASSIGN_REF - - !0,$0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-sl.xml b/internals2/opcodes/assign-sl.xml deleted file mode 100644 index 8ae3d280dd..0000000000 --- a/internals2/opcodes/assign-sl.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- ASSIGN_SL -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN_SL - - !0,3 - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-sr.xml b/internals2/opcodes/assign-sr.xml deleted file mode 100644 index 6cf65d30a0..0000000000 --- a/internals2/opcodes/assign-sr.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- ASSIGN_SR -
- PHP コード - - >= 3; -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN_SR - - !0,3 - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign-sub.xml b/internals2/opcodes/assign-sub.xml deleted file mode 100644 index 6482915c60..0000000000 --- a/internals2/opcodes/assign-sub.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- ASSIGN_SUB -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN_SUB - - !0,3 - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/assign.xml b/internals2/opcodes/assign.xml deleted file mode 100644 index aa3627d2c5..0000000000 --- a/internals2/opcodes/assign.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - -
- ASSIGN -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0,1 - - - 71 - ASSIGN - - !0,'a' - - - 82 - ZEND_FETCH_CLASS - :2 - 'A' - - - 3 - NEW - $3 - :2 - - - 4 - DO_FCALL_BY_NAME - 0 - - - - 5 - ASSIGN - - !0,$3 - - - 96 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/begin-silence.xml b/internals2/opcodes/begin-silence.xml deleted file mode 100644 index 69115b27a9..0000000000 --- a/internals2/opcodes/begin-silence.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - -
- BEGIN_SILENCE -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$my_file, !1=$php_errormsg - - - - - line#op - fetchextreturn - operands - - - - - 70 - BEGIN_SILENCE - ~0 - - - - 1 - SEND_VAL - - 'non_existent_file' - - - 2 - DO_FCALL - 1 - 'file' - - - 3 - END_SILENCE - - ~0 - - - 4 - ASSIGN - $2 - !0,$1 - - - 5 - JMPNZ_EX - ~3 - $2,->11 - - - 86 - ADD_STRING - ~4 - 'error%3A%27' - - - 7 - ADD_VAR - ~4 - ~4,!1 - - - 8 - ADD_CHAR - ~4 - ~4,39 - - - 9 - EXIT - - ~4 - - - 10 - BOOL - ~3 - true - - - 11 - FREE - - ~3 - - - 912 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/bool-not.xml b/internals2/opcodes/bool-not.xml deleted file mode 100644 index d832e97bc8..0000000000 --- a/internals2/opcodes/bool-not.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- BOOL_NOT -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - BOOL_NOT - ~0 - 1 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/bool-xor.xml b/internals2/opcodes/bool-xor.xml deleted file mode 100644 index 08504c8944..0000000000 --- a/internals2/opcodes/bool-xor.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- BOOL_XOR -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - BOOL_XOR - ~0 - 1,2 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/bool.xml b/internals2/opcodes/bool.xml deleted file mode 100644 index f3e602274c..0000000000 --- a/internals2/opcodes/bool.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - -
- BOOL -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - JMPNZ_EX - ~0 - 1,->2 - - - 1 - BOOL - ~0 - 2 - - - 2 - JMPNZ_EX - ~0 - ~0,->4 - - - 3 - BOOL - ~0 - 1 - - - 4 - JMPZ - - ~0,->7 - - - 5 - ECHO - - 'foo' - - - 6 - JMP - - ->7 - - - 97 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/brk.xml b/internals2/opcodes/brk.xml deleted file mode 100644 index 5a55e0c4c8..0000000000 --- a/internals2/opcodes/brk.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - -
- BRK -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0,0 - - - 71 - JMPZ - - 1,->7 - - - 82 - IS_EQUAL - ~1 - !0,0 - - - 3 - JMPZ - - ~1,->6 - - - 4 - BRK - - 1 - - - 5 - JMP - - ->6 - - - 96 - JMP - - ->1 - - - 107 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/bw-and.xml b/internals2/opcodes/bw-and.xml deleted file mode 100644 index 23938ddb59..0000000000 --- a/internals2/opcodes/bw-and.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- BW_AND -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - BW_AND - ~0 - 1,2 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/bw-not.xml b/internals2/opcodes/bw-not.xml deleted file mode 100644 index 31c3226d25..0000000000 --- a/internals2/opcodes/bw-not.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- BW_NOT -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - BW_NOT - ~0 - 15 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/bw-or.xml b/internals2/opcodes/bw-or.xml deleted file mode 100644 index 023d9affa9..0000000000 --- a/internals2/opcodes/bw-or.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- BW_OR -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - BW_OR - ~0 - 1,2 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/bw-xor.xml b/internals2/opcodes/bw-xor.xml deleted file mode 100644 index ed029e1abd..0000000000 --- a/internals2/opcodes/bw-xor.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- BW_XOR -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - BW_XOR - ~0 - 1,2 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/case.xml b/internals2/opcodes/case.xml deleted file mode 100644 index add8b78f08..0000000000 --- a/internals2/opcodes/case.xml +++ /dev/null @@ -1,151 +0,0 @@ - - - -
- CASE -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$i - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0,0 - - - 81 - CASE - ~1 - !0,0 - - - 2 - JMPZ - - ~1,->6 - - - 93 - ECHO - - 'i%3D0' - - - 104 - BRK - - 1 - - - 115 - JMP - - ->8 - - - 6 - CASE - ~1 - !0,1 - - - 7 - JMPZ - - ~1,->11 - - - 128 - ECHO - - 'i%3D1' - - - 139 - BRK - - 1 - - - 1410 - JMP - - ->13 - - - 11 - CASE - ~1 - !0,2 - - - 12 - JMPZ - - ~1,->16 - - - 1513 - ECHO - - 'i%3D2' - - - 1614 - BRK - - 1 - - - 1715 - JMP - - ->16 - - - 1816 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/cast.xml b/internals2/opcodes/cast.xml deleted file mode 100644 index 74fad62aee..0000000000 --- a/internals2/opcodes/cast.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- CAST -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - CAST - 4~0 - 1 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/catch.xml b/internals2/opcodes/catch.xml deleted file mode 100644 index 38e36fe528..0000000000 --- a/internals2/opcodes/catch.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - -
- CATCH -
- PHP コード - - getMessage(), "\n"; -} - -// Continue execution -echo 'Hello World'; -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$error, !1=$e - - - - - line#op - fetchextreturn - operands - - - - - 70 - ASSIGN - - !0,'Always+throw+this+error' - - - 81 - ZEND_FETCH_CLASS - :1 - 'Exception' - - - 2 - NEW - $2 - :1 - - - 3 - SEND_VAR - - !0 - - - 4 - DO_FCALL_BY_NAME - 1 - - - - 5 - ZEND_THROW - 0 - $2 - - - 116 - ECHO - - 'Never+executed' - - - 137 - JMP - - ->15 - - - 8 - ZEND_FETCH_CLASS - :4 - 'Exception' - - - 9 - ZEND_CATCH - 15 - $4,!1 - - - 1410 - ECHO - - 'Caught+exception%3A+' - - - 11 - ZEND_INIT_METHOD_CALL - - !1,'getMessage' - - - 12 - DO_FCALL_BY_NAME - 0 - - - - 13 - ECHO - - $6 - - - 14 - ECHO - - '%0A' - - - 1815 - ECHO - - 'Hello+World' - - - 1916 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/clone.xml b/internals2/opcodes/clone.xml deleted file mode 100644 index 05993bc5d5..0000000000 --- a/internals2/opcodes/clone.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - -
- CLONE -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$obj, !1=$copy - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_FETCH_CLASS - :0 - 'A' - - - 1 - NEW - $1 - :0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !0,$1 - - - 74 - ZEND_CLONE - $4 - !0 - - - 5 - ASSIGN - - !1,$4 - - - 86 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/concat.xml b/internals2/opcodes/concat.xml deleted file mode 100644 index 7f752a3c57..0000000000 --- a/internals2/opcodes/concat.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- CONCAT -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - CONCAT - ~0 - 'hello','world' - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/cont.xml b/internals2/opcodes/cont.xml deleted file mode 100644 index 30db65eccc..0000000000 --- a/internals2/opcodes/cont.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - -
- CONT -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - compiled vars: !0 = $foo - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0, false - - - 71 - BOOL_NOT - ~1 - !0 - - - 2 - JMPZ - - ~1, ->5 - - - 83 - ASSIGN - - !0, true - - - 94 - CONT - - 1 - - - 105 - JMP - - ->1 - - - 126 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/declare-class.xml b/internals2/opcodes/declare-class.xml deleted file mode 100644 index 2854a2e329..0000000000 --- a/internals2/opcodes/declare-class.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - -
- DECLARE_CLASS -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - NOP - - - - - 111 - RETURN - - 1 - - - - - 関数名: methodA - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 80 - ECHO - - 'hello+world' - - - 91 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/declare-const.xml b/internals2/opcodes/declare-const.xml deleted file mode 100644 index 6b7758a1b3..0000000000 --- a/internals2/opcodes/declare-const.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- DECLARE_CONST -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/declare-function.xml b/internals2/opcodes/declare-function.xml deleted file mode 100644 index e297760529..0000000000 --- a/internals2/opcodes/declare-function.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - -
- DECLARE_FUNCTION -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - NOP - - - - - 101 - RETURN - - 1 - - - - - 関数名: funcA - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 80 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/declare-inherited-class-delayed.xml b/internals2/opcodes/declare-inherited-class-delayed.xml deleted file mode 100644 index c58aa43d97..0000000000 --- a/internals2/opcodes/declare-inherited-class-delayed.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- DECLARE_INHERITED_CLASS_DELAYED -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/declare-inherited-class.xml b/internals2/opcodes/declare-inherited-class.xml deleted file mode 100644 index ae05749016..0000000000 --- a/internals2/opcodes/declare-inherited-class.xml +++ /dev/null @@ -1,165 +0,0 @@ - - - -
- DECLARE_INHERITED_CLASS -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$b - - - - - line#op - fetchextreturn - operands - - - - - 60 - JMPZ - - !0,->5 - - - 71 - ZEND_DECLARE_CLASS - $0 - '%00foo%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be503b','foo' - - - 142 - ZEND_FETCH_CLASS - :1 - 'Foo' - - - 3 - ZEND_DECLARE_INHERITED_CLASS - $2 - '%00bar%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be50bc','bar' - - - 194 - JMP - - ->5 - - - 205 - RETURN - - 1 - - - - - 関数名: staticValue - コンパイルされた変数: !0=$my_static - - - - - line#op - fetchextreturn - operands - - - - - 100 - ZEND_FETCH_CLASS - - - - - 1 - FETCH_Rstaticmember - $1 - 'my_static' - - - 2 - RETURN - - $1 - - - 113 - RETURN - - null - - - - - 関数名: fooStatic - コンパイルされた変数: !0=$my_static - - - - - line#op - fetchextreturn - operands - - - - - 160 - ZEND_FETCH_CLASS - :0 - - - - 1 - FETCH_Rstaticmember - $1 - 'my_static' - - - 2 - ECHO - - $1 - - - 173 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/div.xml b/internals2/opcodes/div.xml deleted file mode 100644 index b1a0125d5f..0000000000 --- a/internals2/opcodes/div.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- DIV -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - DIV - ~0 - 6,3 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/do-fcall-by-name.xml b/internals2/opcodes/do-fcall-by-name.xml deleted file mode 100644 index 18466f1fe7..0000000000 --- a/internals2/opcodes/do-fcall-by-name.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - -
- DO_FCALL_BY_NAME -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x, !1=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0,'phpinfo' - - - 71 - INIT_FCALL_BY_NAME - - !0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !1,$1 - - - 84 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/do-fcall.xml b/internals2/opcodes/do-fcall.xml deleted file mode 100644 index 4391b08ad6..0000000000 --- a/internals2/opcodes/do-fcall.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- DO_FCALL -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - DO_FCALL - 0 - 'phpinfo' - - - 1 - ASSIGN - - !0,$0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/echo.xml b/internals2/opcodes/echo.xml deleted file mode 100644 index 56993c8a1f..0000000000 --- a/internals2/opcodes/echo.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- ECHO -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - ECHO - - 'hello+world' - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/end-silence.xml b/internals2/opcodes/end-silence.xml deleted file mode 100644 index 1e504dd004..0000000000 --- a/internals2/opcodes/end-silence.xml +++ /dev/null @@ -1,117 +0,0 @@ - - - -
- END_SILENCE -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$my_file, !1=$php_errormsg - - - - - line#op - fetchextreturn - operands - - - - - 60 - BEGIN_SILENCE - ~0 - - - - 1 - SEND_VAL - - 'non_existent_file' - - - 2 - DO_FCALL - 1 - 'file' - - - 3 - END_SILENCE - - ~0 - - - 4 - ASSIGN - $2 - !0,$1 - - - 5 - JMPNZ_EX - ~3 - $2,->11 - - - 76 - ADD_STRING - ~4 - 'error%3A%27' - - - 7 - ADD_VAR - ~4 - ~4,!1 - - - 8 - ADD_CHAR - ~4 - ~4,39 - - - 9 - EXIT - - ~4 - - - 10 - BOOL - ~3 - true - - - 11 - FREE - - ~3 - - - 812 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/exit.xml b/internals2/opcodes/exit.xml deleted file mode 100644 index d590222411..0000000000 --- a/internals2/opcodes/exit.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- EXIT -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - EXIT - - 'foobar' - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/ext-fcall-begin.xml b/internals2/opcodes/ext-fcall-begin.xml deleted file mode 100644 index 6dd019aaa6..0000000000 --- a/internals2/opcodes/ext-fcall-begin.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- EXT_FCALL_BEGIN -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/ext-fcall-end.xml b/internals2/opcodes/ext-fcall-end.xml deleted file mode 100644 index f9468c9061..0000000000 --- a/internals2/opcodes/ext-fcall-end.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- EXT_FCALL_END -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/ext-nop.xml b/internals2/opcodes/ext-nop.xml deleted file mode 100644 index 58b9978963..0000000000 --- a/internals2/opcodes/ext-nop.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- EXT_NOP -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/ext-stmt.xml b/internals2/opcodes/ext-stmt.xml deleted file mode 100644 index 4d89974d81..0000000000 --- a/internals2/opcodes/ext-stmt.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- EXT_STMT -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 70 - EXT_STMT - - - - - 81 - RETURN - - 1 - - - - -
- -
diff --git a/internals2/opcodes/fe-fetch.xml b/internals2/opcodes/fe-fetch.xml deleted file mode 100644 index c10922d319..0000000000 --- a/internals2/opcodes/fe-fetch.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - -
- FE_FETCH -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a, !1=$num - - - - - line#op - fetchextreturn - operands - - - - - 60 - INIT_ARRAY - ~0 - 1 - - - 1 - ADD_ARRAY_ELEMENT - ~0 - 2 - - - 2 - ADD_ARRAY_ELEMENT - ~0 - 3 - - - 3 - ASSIGN - - !0,~0 - - - 74 - FE_RESET - $2 - !0,->11 - - - 5 - FE_FETCH - $3 - $2,->11 - - - 6 - ZEND_OP_DATA - - - - - 7 - ASSIGN - - !1,$3 - - - 88 - PRINT - ~5 - !1 - - - 9 - FREE - - ~5 - - - 910 - JMP - - ->5 - - - 11 - SWITCH_FREE - - $2 - - - 1012 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fe-reset.xml b/internals2/opcodes/fe-reset.xml deleted file mode 100644 index 06d886cb94..0000000000 --- a/internals2/opcodes/fe-reset.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - -
- FE_RESET -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a, !1=$num - - - - - line#op - fetchextreturn - operands - - - - - 60 - INIT_ARRAY - ~0 - 1 - - - 1 - ADD_ARRAY_ELEMENT - ~0 - 2 - - - 2 - ADD_ARRAY_ELEMENT - ~0 - 3 - - - 3 - ASSIGN - - !0,~0 - - - 74 - FE_RESET - $2 - !0,->11 - - - 5 - FE_FETCH - $3 - $2,->11 - - - 6 - ZEND_OP_DATA - - - - - 7 - ASSIGN - - !1,$3 - - - 88 - PRINT - ~5 - !1 - - - 9 - FREE - - ~5 - - - 910 - JMP - - ->5 - - - 11 - SWITCH_FREE - - $2 - - - 1012 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fetch-class.xml b/internals2/opcodes/fetch-class.xml deleted file mode 100644 index 03da44fa60..0000000000 --- a/internals2/opcodes/fetch-class.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - -
- FETCH_CLASS -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$obj - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_FETCH_CLASS - :0 - 'A' - - - 1 - NEW - $1 - :0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !0,$1 - - - 74 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fetch-constant.xml b/internals2/opcodes/fetch-constant.xml deleted file mode 100644 index 8d66773ea9..0000000000 --- a/internals2/opcodes/fetch-constant.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - -
- FETCH_CONSTANT -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - SEND_VAL - - 'FOO' - - - 1 - SEND_VAL - - 'something' - - - 2 - DO_FCALL - 2 - 'define' - - - 73 - FETCH_CONSTANT - ~1 - 'FOO' - - - 4 - ECHO - - ~1 - - - 85 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fetch-dim-func-arg.xml b/internals2/opcodes/fetch-dim-func-arg.xml deleted file mode 100644 index 9fa648e4cb..0000000000 --- a/internals2/opcodes/fetch-dim-func-arg.xml +++ /dev/null @@ -1,171 +0,0 @@ - - - -
- FETCH_DIM_FUNC_ARG -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x, !1=$z - - - - - line#op - fetchextreturn - operands - - - - - 70 - NOP - - - - - 121 - INIT_ARRAY - ~0 - 0 - - - 2 - ADD_ARRAY_ELEMENT - ~0 - 1 - - - 3 - ADD_ARRAY_ELEMENT - ~0 - 2 - - - 4 - ADD_ARRAY_ELEMENT - ~0 - 3 - - - 5 - ADD_ARRAY_ELEMENT - ~0 - 4 - - - 6 - ADD_ARRAY_ELEMENT - ~0 - 5 - - - 7 - ASSIGN - - !0,~0 - - - 138 - ASSIGN - - !1,'foo' - - - 159 - INIT_FCALL_BY_NAME - - !1 - - - 10 - FETCH_DIM_FUNC_ARG - $3 - !0,0 - - - 11 - SEND_VAR - - $3 - - - 12 - DO_FCALL_BY_NAME - 1 - - - - 1713 - RETURN - - 1 - - - - - 関数名: foo - コンパイルされた変数: !0=$x - - - - - line#op - fetchextreturn - operands - - - - - 70 - RECV - - 1 - - - 91 - PRINT - ~0 - !0 - - - 2 - FREE - - ~0 - - - 103 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/fetch-dim-is.xml b/internals2/opcodes/fetch-dim-is.xml deleted file mode 100644 index f9c42a067b..0000000000 --- a/internals2/opcodes/fetch-dim-is.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- FETCH_DIM_IS -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/fetch-dim-r.xml b/internals2/opcodes/fetch-dim-r.xml deleted file mode 100644 index bc02339d70..0000000000 --- a/internals2/opcodes/fetch-dim-r.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - -
- FETCH_DIM_R -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x, !1=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - INIT_ARRAY - ~0 - 1 - - - 1 - ADD_ARRAY_ELEMENT - ~0 - 2 - - - 2 - ADD_ARRAY_ELEMENT - ~0 - 3 - - - 3 - ASSIGN - - !0,~0 - - - 74 - ASSIGN - - !1,'x' - - - 85 - FETCH_DIM_R - $3 - !1,0 - - - 6 - FETCH_Rlocal - $4 - $3 - - - 7 - ECHO - - $4 - - - 98 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fetch-dim-rw.xml b/internals2/opcodes/fetch-dim-rw.xml deleted file mode 100644 index 1f06d4fc51..0000000000 --- a/internals2/opcodes/fetch-dim-rw.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - -
- FETCH_DIM_RW -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x, !1=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - INIT_ARRAY - ~0 - 1 - - - 1 - ADD_ARRAY_ELEMENT - ~0 - 2 - - - 2 - ADD_ARRAY_ELEMENT - ~0 - 3 - - - 3 - ASSIGN - - !0,~0 - - - 74 - ASSIGN - - !1,'x' - - - 85 - FETCH_DIM_R - $3 - !1,0 - - - 6 - FETCH_RWlocal - $4 - $3 - - - 7 - POST_INC - ~5 - $4 - - - 8 - FREE - - ~5 - - - 99 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fetch-dim-tmp-var.xml b/internals2/opcodes/fetch-dim-tmp-var.xml deleted file mode 100644 index b197c39be8..0000000000 --- a/internals2/opcodes/fetch-dim-tmp-var.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - -
- FETCH_DIM_TMP_VAR -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x - - - - - line#op - fetchextreturn - operands - - - - - 60 - INIT_ARRAY - ~0 - 'X' - - - 1 - FETCH_DIM_TMP_VAR - $1 - ~0,0 - - - 2 - ASSIGN - - !0,$1 - - - 3 - FREE - - ~0 - - - 74 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fetch-dim-unset.xml b/internals2/opcodes/fetch-dim-unset.xml deleted file mode 100644 index 7bf5092115..0000000000 --- a/internals2/opcodes/fetch-dim-unset.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- FETCH_DIM_UNSET -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/fetch-dim-w.xml b/internals2/opcodes/fetch-dim-w.xml deleted file mode 100644 index bd2a8900de..0000000000 --- a/internals2/opcodes/fetch-dim-w.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - -
- FETCH_DIM_W -
- PHP コード - - 0){ - $a = 0; -} -/*$input =array(1,2,3); -while (list($var,) = @each($input)){ - unset($$var); -}*/ -/*$a = array(1,2,3); -$x = 'a'; -$$x[0] = 1;*/ - -/*while ($b = each($a)) { - print $b; -}*/ - - -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0,1 - - - 71 - IS_SMALLER - ~1 - 0,!0 - - - 2 - JMPZ - - ~1,->5 - - - 83 - ASSIGN - - !0,0 - - - 94 - JMP - - ->1 - - - 235 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fetch-func-arg.xml b/internals2/opcodes/fetch-func-arg.xml deleted file mode 100644 index 82a49bb371..0000000000 --- a/internals2/opcodes/fetch-func-arg.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - -
- FETCH_FUNC_ARG -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x, !1=$y, !2=$z - - - - - line#op - fetchextreturn - operands - - - - - 60 - NOP - - - - - 101 - ASSIGN - - !0,1 - - - 112 - ASSIGN - - !1,'x' - - - 123 - ASSIGN - - !2,'foo' - - - 144 - INIT_FCALL_BY_NAME - - !2 - - - 5 - FETCH_FUNC_ARGlocal - $3 - !1 - - - 6 - SEND_VAR - - $3 - - - 7 - DO_FCALL_BY_NAME - 1 - - - - 168 - RETURN - - 1 - - - - - 関数名: foo - コンパイルされた変数: !0=$x - - - - - line#op - fetchextreturn - operands - - - - - 60 - RECV - - 1 - - - 81 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/fetch-is.xml b/internals2/opcodes/fetch-is.xml deleted file mode 100644 index 6ce9edacbd..0000000000 --- a/internals2/opcodes/fetch-is.xml +++ /dev/null @@ -1,112 +0,0 @@ - - - -
- FETCH_IS -
- PHP コード - - prop->prop); -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - FETCH_IS - $0 - '_SESSION' - - - 1 - ZEND_ISSET_ISEMPTY_DIM_OBJ - 1~1 - $0,'userid' - - - 2 - ECHO - - ~1 - - - 73 - FETCH_IS - $2 - '_SESSION' - - - 4 - FETCH_DIM_IS - $3 - $2,'userid' - - - 5 - ZEND_ISSET_ISEMPTY_DIM_OBJ - 1~4 - $3,1 - - - 6 - ECHO - - ~4 - - - 87 - FETCH_IS - $5 - '_SESSION' - - - 8 - FETCH_OBJ_IS - $6 - $5,'prop' - - - 9 - ZEND_ISSET_ISEMPTY_PROP_OBJ - ~7 - $6,'prop' - - - 10 - ECHO - - ~7 - - - 911 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fetch-obj-func-arg.xml b/internals2/opcodes/fetch-obj-func-arg.xml deleted file mode 100644 index e6947038e6..0000000000 --- a/internals2/opcodes/fetch-obj-func-arg.xml +++ /dev/null @@ -1,218 +0,0 @@ - - - -
- FETCH_OBJ_FUNC_ARG -
- PHP コード - - num; -$z($obj->num); - -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$z, !1=$obj - - - - - line#op - fetchextreturn - operands - - - - - 60 - INCLUDE_OR_EVAL - - '.%2FclassA.php',INCLUDE - - - 81 - NOP - - - - - 132 - ASSIGN - - !0,'foo' - - - 153 - ZEND_FETCH_CLASS - :2 - 'A' - - - 4 - NEW - $3 - :2 - - - 5 - DO_FCALL_BY_NAME - 0 - - - - 6 - ASSIGN - - !1,$3 - - - 167 - FETCH_OBJ_R - $6 - !1,'num' - - - 8 - PRINT - ~7 - $6 - - - 9 - FREE - - ~7 - - - 1710 - INIT_FCALL_BY_NAME - - !0 - - - 11 - FETCH_OBJ_FUNC_ARG - $8 - !1,'num' - - - 12 - SEND_VAR - - $8 - - - 13 - DO_FCALL_BY_NAME - 1 - - - - 1914 - RETURN - - 1 - - - - - 関数名: foo - コンパイルされた変数: !0=$x - - - - - line#op - fetchextreturn - operands - - - - - 80 - RECV - - 1 - - - 101 - PRINT - ~0 - !0 - - - 2 - FREE - - ~0 - - - 113 - RETURN - - null - - - - - 関数名: foo - コンパイルされた変数: !0=$x - - - - - line#op - fetchextreturn - operands - - - - - 80 - RECV - - 1 - - - 101 - PRINT - ~0 - !0 - - - 2 - FREE - - ~0 - - - 113 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/fetch-obj-is.xml b/internals2/opcodes/fetch-obj-is.xml deleted file mode 100644 index e240044d06..0000000000 --- a/internals2/opcodes/fetch-obj-is.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- FETCH_OBJ_IS -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/fetch-obj-r.xml b/internals2/opcodes/fetch-obj-r.xml deleted file mode 100644 index 54c4e275ad..0000000000 --- a/internals2/opcodes/fetch-obj-r.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - -
- FETCH_OBJ_R -
- PHP コード - - num; -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x, !1=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_FETCH_CLASS - :0 - 'A' - - - 1 - NEW - $1 - :0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !0,$1 - - - 74 - ASSIGN - - !1,'x' - - - 85 - FETCH_Rlocal - $5 - !1 - - - 6 - FETCH_OBJ_R - $6 - $5,'num' - - - 7 - ECHO - - $6 - - - 98 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fetch-obj-rw.xml b/internals2/opcodes/fetch-obj-rw.xml deleted file mode 100644 index 7cdf4c5a69..0000000000 --- a/internals2/opcodes/fetch-obj-rw.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - -
- FETCH_OBJ_RW -
- PHP コード - - num++; -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x, !1=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_FETCH_CLASS - :0 - 'A' - - - 1 - NEW - $1 - :0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !0,$1 - - - 74 - ASSIGN - - !1,'x' - - - 85 - FETCH_RWlocal - $5 - !1 - - - 6 - ZEND_POST_INC_OBJ - ~7 - $5,'num' - - - 7 - FREE - - ~7 - - - 98 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fetch-obj-unset.xml b/internals2/opcodes/fetch-obj-unset.xml deleted file mode 100644 index 145ef582b8..0000000000 --- a/internals2/opcodes/fetch-obj-unset.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- FETCH_OBJ_UNSET -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/fetch-obj-w.xml b/internals2/opcodes/fetch-obj-w.xml deleted file mode 100644 index 7136cc323c..0000000000 --- a/internals2/opcodes/fetch-obj-w.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - -
- FETCH_OBJ_W -
- PHP コード - - bar = new stdclass; -$foo->bar->baz = 'quix'; -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0 = $foo - - - - - line# - opfetch - extreturn - operands - - - - - 60 - ZEND_FETCH_CLASS - 4:0 - 'stdclass' - - - 1 - NEW - - :0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !0 - - - 74 - ZEND_FETCH_CLASS - 4:5 - 'stdclass' - - - 5 - NEW - - :5 - - - 6 - DO_FCALL_BY_NAME - 0 - - - - 7 - ZEND_ASSIGN_OBJ - - !0, 'bar' - - - 8 - ZEND_OP_DATA - - - - - 89 - FETCH_OBJ_W - - !0, 'bar' - - - 10 - ZEND_ASSIGN_OBJ - - 'baz' - - - 11 - ZEND_OP_DATA - - 'quix' - - - 912 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fetch-r.xml b/internals2/opcodes/fetch-r.xml deleted file mode 100644 index b889cd320e..0000000000 --- a/internals2/opcodes/fetch-r.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - -
- FETCH_R -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x, !1=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0,1 - - - 71 - ASSIGN - - !1,'x' - - - 82 - FETCH_Rlocal - $2 - !1 - - - 3 - ECHO - - $2 - - - 94 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fetch-rw.xml b/internals2/opcodes/fetch-rw.xml deleted file mode 100644 index 642943b47c..0000000000 --- a/internals2/opcodes/fetch-rw.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - -
- FETCH_RW -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x, !1=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0,1 - - - 71 - ASSIGN - - !1,'x' - - - 82 - FETCH_RWlocal - $2 - !1 - - - 3 - POST_INC - ~3 - $2 - - - 4 - FREE - - ~3 - - - 95 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/fetch-unset.xml b/internals2/opcodes/fetch-unset.xml deleted file mode 100644 index c9e3fd7858..0000000000 --- a/internals2/opcodes/fetch-unset.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- FETCH_UNSET -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/fetch-w.xml b/internals2/opcodes/fetch-w.xml deleted file mode 100644 index f6881e23b7..0000000000 --- a/internals2/opcodes/fetch-w.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - -
- FETCH_W -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x, !1=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0,1 - - - 71 - ASSIGN - - !1,'x' - - - 82 - FETCH_Wlocal - $2 - !1 - - - 3 - ASSIGN - - $2,2 - - - 94 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/free.xml b/internals2/opcodes/free.xml deleted file mode 100644 index 8ef2f0f366..0000000000 --- a/internals2/opcodes/free.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- FREE -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - PRINT - ~0 - 'Hello+World' - - - 1 - FREE - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/goto.xml b/internals2/opcodes/goto.xml deleted file mode 100644 index ddac2fea2a..0000000000 --- a/internals2/opcodes/goto.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- GOTO -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/handle-exception.xml b/internals2/opcodes/handle-exception.xml deleted file mode 100644 index 0fb9468159..0000000000 --- a/internals2/opcodes/handle-exception.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - -
- HANDLE_EXCEPTION -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/include-or-eval.xml b/internals2/opcodes/include-or-eval.xml deleted file mode 100644 index 52033b0ff1..0000000000 --- a/internals2/opcodes/include-or-eval.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - -
- INCLUDE_OR_EVAL -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - INCLUDE_OR_EVAL - - 'test.php',INCLUDE - - - 71 - INCLUDE_OR_EVAL - - 'test.php',EVAL - - - 82 - RETURN - - 1 - - - - - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 20 - DO_FCALL - 0 - 'phpinfo' - - - 31 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/init-array.xml b/internals2/opcodes/init-array.xml deleted file mode 100644 index 9c031e22fe..0000000000 --- a/internals2/opcodes/init-array.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - -
- INIT_ARRAY -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - INIT_ARRAY - ~0 - 1 - - - 1 - ADD_ARRAY_ELEMENT - ~0 - 2 - - - 2 - ADD_ARRAY_ELEMENT - ~0 - 3 - - - 3 - ASSIGN - - !0,~0 - - - 74 - SEND_VAR - - !0 - - - 5 - DO_FCALL - 1 - 'print_r' - - - 86 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/init-fcall-by-name.xml b/internals2/opcodes/init-fcall-by-name.xml deleted file mode 100644 index 8405b56c3f..0000000000 --- a/internals2/opcodes/init-fcall-by-name.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - -
- INIT_FCALL_BY_NAME -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x, !1=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0,'phpinfo' - - - 71 - INIT_FCALL_BY_NAME - - !0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !1,$1 - - - 84 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/init-method-call.xml b/internals2/opcodes/init-method-call.xml deleted file mode 100644 index 4ff44dbbd9..0000000000 --- a/internals2/opcodes/init-method-call.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - -
- INIT_METHOD_CALL -
- PHP コード - - incrementNum(); - -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$obj - - - - - line#op - fetchextreturn - operands - - - - - 60 - NOP - - - - - 131 - ZEND_FETCH_CLASS - :1 - 'A' - - - 2 - NEW - $2 - :1 - - - 3 - DO_FCALL_BY_NAME - 0 - - - - 4 - ASSIGN - - !0,$2 - - - 145 - ZEND_INIT_METHOD_CALL - - !0,'incrementNum' - - - 6 - DO_FCALL_BY_NAME - 0 - - - - 167 - RETURN - - 1 - - - - - 関数名: incrementNum - コンパイルされた変数: !0=$num - - - - - line#op - fetchextreturn - operands - - - - - 90 - POST_INC - ~0 - !0 - - - 1 - FREE - - ~0 - - - 102 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/init-ns-fcall-by-name.xml b/internals2/opcodes/init-ns-fcall-by-name.xml deleted file mode 100644 index b8b9fea46b..0000000000 --- a/internals2/opcodes/init-ns-fcall-by-name.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- INIT_NS_FCALL_BY_NAME -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/init-static-method-call.xml b/internals2/opcodes/init-static-method-call.xml deleted file mode 100644 index bd9f39c9dd..0000000000 --- a/internals2/opcodes/init-static-method-call.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - -
- INIT_STATIC_METHOD_CALL -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - NOP - - - - - 121 - ZEND_INIT_STATIC_METHOD_CALL - - 'Foo','aStaticMethod' - - - 2 - ZEND_OP_DATA - - 'foo%3A%3Aastaticmethod' - - - 3 - DO_FCALL_BY_NAME - 0 - - - - 134 - RETURN - - 1 - - - - - 関数名: aStaticMethod - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 80 - ECHO - - 'hello+world%0A' - - - 91 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/init-string.xml b/internals2/opcodes/init-string.xml deleted file mode 100644 index 84224258b3..0000000000 --- a/internals2/opcodes/init-string.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - -
- INIT_STRING -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ADD_STRING - ~0 - 'hello' - - - 1 - ADD_VAR - ~0 - ~0,!0 - - - 2 - ADD_STRING - ~0 - ~0,'+world' - - - 3 - ECHO - - ~0 - - - 74 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/instanceof.xml b/internals2/opcodes/instanceof.xml deleted file mode 100644 index c6c1aa2c3b..0000000000 --- a/internals2/opcodes/instanceof.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - -
- INSTANCEOF -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$obj - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_FETCH_CLASS - :0 - 'A' - - - 1 - NEW - $1 - :0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !0,$1 - - - 84 - ZEND_FETCH_CLASS - :4 - 'A' - - - 5 - ZEND_INSTANCEOF - ~5 - !0,$4 - - - 6 - JMPZ - - ~5,->9 - - - 97 - ECHO - - 'A' - - - 108 - JMP - - ->9 - - - 119 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/is-equal.xml b/internals2/opcodes/is-equal.xml deleted file mode 100644 index 27986fc1ca..0000000000 --- a/internals2/opcodes/is-equal.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - -
- IS_EQUAL -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - IS_EQUAL - ~0 - 1,1 - - - 1 - ECHO - - ~0 - - - 72 - IS_EQUAL - ~1 - 1,'c' - - - 3 - ECHO - - ~1 - - - 84 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/is-identical.xml b/internals2/opcodes/is-identical.xml deleted file mode 100644 index a4083e3ca8..0000000000 --- a/internals2/opcodes/is-identical.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - -
- IS_IDENTICAL -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - IS_IDENTICAL - ~0 - 1,1 - - - 1 - ECHO - - ~0 - - - 72 - IS_IDENTICAL - ~1 - 1,'a' - - - 3 - ECHO - - ~1 - - - 84 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/is-not-equal.xml b/internals2/opcodes/is-not-equal.xml deleted file mode 100644 index 14f9ab1bf9..0000000000 --- a/internals2/opcodes/is-not-equal.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- IS_NOT_EQUAL -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - IS_NOT_EQUAL - ~0 - 1,1 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/is-not-identical.xml b/internals2/opcodes/is-not-identical.xml deleted file mode 100644 index 308310b88b..0000000000 --- a/internals2/opcodes/is-not-identical.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- IS_NOT_IDENTICAL -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - IS_NOT_IDENTICAL - ~0 - 1,1 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/is-smaller-or-equal.xml b/internals2/opcodes/is-smaller-or-equal.xml deleted file mode 100644 index 25470d3b65..0000000000 --- a/internals2/opcodes/is-smaller-or-equal.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- IS_SMALLER_OR_EQUAL -
- PHP コード - - = 2); -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - IS_SMALLER_OR_EQUAL - ~0 - 2,1 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/is-smaller.xml b/internals2/opcodes/is-smaller.xml deleted file mode 100644 index 7804576f9b..0000000000 --- a/internals2/opcodes/is-smaller.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- IS_SMALLER -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - IS_SMALLER - ~0 - 1,2 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/isset-isempty-dim-obj.xml b/internals2/opcodes/isset-isempty-dim-obj.xml deleted file mode 100644 index 298fae74fc..0000000000 --- a/internals2/opcodes/isset-isempty-dim-obj.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - -
- ISSET_ISEMPTY_DIM_OBJ -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_ISSET_ISEMPTY_DIM_OBJ - 1~0 - !0,0 - - - 1 - JMPZ - - ~0,->4 - - - 2 - RETURN - - 0 - - - 3 - JMP - - ->4 - - - 74 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/isset-isempty-prop-obj.xml b/internals2/opcodes/isset-isempty-prop-obj.xml deleted file mode 100644 index 65eabaf062..0000000000 --- a/internals2/opcodes/isset-isempty-prop-obj.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - -
- ISSET_ISEMPTY_PROP_OBJ -
- PHP コード - - num)) return 0; -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$obj - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_FETCH_CLASS - :0 - 'A' - - - 1 - NEW - $1 - :0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !0,$1 - - - 74 - ZEND_ISSET_ISEMPTY_PROP_OBJ - ~4 - !0,'num' - - - 5 - JMPZ - - ~4,->8 - - - 6 - RETURN - - 0 - - - 7 - JMP - - ->8 - - - 88 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/isset-isempty-var.xml b/internals2/opcodes/isset-isempty-var.xml deleted file mode 100644 index be282271e2..0000000000 --- a/internals2/opcodes/isset-isempty-var.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - -
- ISSET_ISEMPTY_VAR -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_ISSET_ISEMPTY_VAR - 5~0 - !0 - - - 1 - JMPZ - - ~0,->4 - - - 2 - RETURN - - 0 - - - 3 - JMP - - ->4 - - - 74 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/jmp.xml b/internals2/opcodes/jmp.xml deleted file mode 100644 index e21080231c..0000000000 --- a/internals2/opcodes/jmp.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - -
- JMP -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - compiled vars: !0 = $foo - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0, false - - - 71 - BOOL_NOT - ~1 - !0 - - - 2 - JMPZ - - ~1, ->5 - - - 83 - ASSIGN - - !0, true - - - 94 - JMP - - ->1 - - - 115 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/jmpnz-ex.xml b/internals2/opcodes/jmpnz-ex.xml deleted file mode 100644 index 0536881520..0000000000 --- a/internals2/opcodes/jmpnz-ex.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - -
- JMPNZ_EX -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - BW_XOR - ~0 - 1,2 - - - 1 - JMPZ - - ~0,->4 - - - 2 - RETURN - - null - - - 3 - JMP - - ->4 - - - 74 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/jmpnz.xml b/internals2/opcodes/jmpnz.xml deleted file mode 100644 index 4210117c86..0000000000 --- a/internals2/opcodes/jmpnz.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - -
- JMPNZ -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$i - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0,0 - - - 1 - IS_SMALLER - ~1 - !0,3 - - - 2 - JMPZNZ - 6 - ~1,->8 - - - 3 - POST_INC - ~2 - !0 - - - 4 - FREE - - ~2 - - - 5 - JMP - - ->1 - - - 76 - ECHO - - 'hi' - - - 87 - JMP - - ->3 - - - 98 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/jmpz-ex.xml b/internals2/opcodes/jmpz-ex.xml deleted file mode 100644 index d255ed59b5..0000000000 --- a/internals2/opcodes/jmpz-ex.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - -
- JMPZ_EX -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 70 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/jmpz.xml b/internals2/opcodes/jmpz.xml deleted file mode 100644 index e81c35dc08..0000000000 --- a/internals2/opcodes/jmpz.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - -
- JMPZ -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - IS_NOT_EQUAL - ~0 - !0,0 - - - 1 - JMPZ - - ~0,->4 - - - 2 - ECHO - - 'foo' - - - 3 - JMP - - ->4 - - - 74 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/jmpznz.xml b/internals2/opcodes/jmpznz.xml deleted file mode 100644 index e234d56c40..0000000000 --- a/internals2/opcodes/jmpznz.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - -
- JMPZNZ -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$i - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0,0 - - - 1 - IS_SMALLER - ~1 - !0,3 - - - 2 - JMPZNZ - 6 - ~1,->8 - - - 3 - POST_INC - ~2 - !0 - - - 4 - FREE - - ~2 - - - 5 - JMP - - ->1 - - - 76 - ECHO - - 'hi' - - - 87 - JMP - - ->3 - - - 98 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/mod.xml b/internals2/opcodes/mod.xml deleted file mode 100644 index 9ebaaf9863..0000000000 --- a/internals2/opcodes/mod.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- MOD -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - MOD - ~0 - 6,3 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/mul.xml b/internals2/opcodes/mul.xml deleted file mode 100644 index 07ee8a6cca..0000000000 --- a/internals2/opcodes/mul.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- MUL -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - MUL - ~0 - 2,3 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/new.xml b/internals2/opcodes/new.xml deleted file mode 100644 index 24cb2763f6..0000000000 --- a/internals2/opcodes/new.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - -
- NEW -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$obj - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_FETCH_CLASS - :0 - 'A' - - - 1 - NEW - $1 - :0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !0,$1 - - - 74 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/nop.xml b/internals2/opcodes/nop.xml deleted file mode 100644 index ddb8a86b49..0000000000 --- a/internals2/opcodes/nop.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - -
- NOP -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - NOP - - - - - 71 - RETURN - - 1 - - - - - 関数名: A - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/post-dec-obj.xml b/internals2/opcodes/post-dec-obj.xml deleted file mode 100644 index d2438e9226..0000000000 --- a/internals2/opcodes/post-dec-obj.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - -
- POST_DEC_OBJ -
- PHP コード - - num--; -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$obj - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_FETCH_CLASS - :0 - 'A' - - - 1 - NEW - $1 - :0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !0,$1 - - - 74 - ZEND_POST_DEC_OBJ - ~5 - !0,'num' - - - 5 - FREE - - ~5 - - - 86 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/post-dec.xml b/internals2/opcodes/post-dec.xml deleted file mode 100644 index cec69babc0..0000000000 --- a/internals2/opcodes/post-dec.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- POST_DEC -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - POST_DEC - ~0 - !0 - - - 1 - FREE - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/post-inc-obj.xml b/internals2/opcodes/post-inc-obj.xml deleted file mode 100644 index 49e9e8410c..0000000000 --- a/internals2/opcodes/post-inc-obj.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - -
- POST_INC_OBJ -
- PHP コード - - num++; -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$obj - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_FETCH_CLASS - :0 - 'A' - - - 1 - NEW - $1 - :0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !0,$1 - - - 74 - ZEND_POST_INC_OBJ - ~5 - !0,'num' - - - 5 - FREE - - ~5 - - - 86 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/post-inc.xml b/internals2/opcodes/post-inc.xml deleted file mode 100644 index 92e02a8333..0000000000 --- a/internals2/opcodes/post-inc.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- POST_INC -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - POST_INC - ~0 - !0 - - - 1 - FREE - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/pre-dec-obj.xml b/internals2/opcodes/pre-dec-obj.xml deleted file mode 100644 index 3558eff052..0000000000 --- a/internals2/opcodes/pre-dec-obj.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - -
- PRE_DEC_OBJ -
- PHP コード - - num; -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$obj - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_FETCH_CLASS - :0 - 'A' - - - 1 - NEW - $1 - :0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !0,$1 - - - 74 - ZEND_PRE_DEC_OBJ - - !0,'num' - - - 85 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/pre-dec.xml b/internals2/opcodes/pre-dec.xml deleted file mode 100644 index 1cded83b78..0000000000 --- a/internals2/opcodes/pre-dec.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- PRE_DEC -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - PRE_DEC - - !0 - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/pre-inc-obj.xml b/internals2/opcodes/pre-inc-obj.xml deleted file mode 100644 index f670d6367d..0000000000 --- a/internals2/opcodes/pre-inc-obj.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - -
- PRE_INC_OBJ -
- PHP コード - - num; -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$obj - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_FETCH_CLASS - :0 - 'A' - - - 1 - NEW - $1 - :0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !0,$1 - - - 74 - ZEND_PRE_INC_OBJ - - !0,'num' - - - 85 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/pre-inc.xml b/internals2/opcodes/pre-inc.xml deleted file mode 100644 index e908b031a7..0000000000 --- a/internals2/opcodes/pre-inc.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- PRE_INC -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - PRE_INC - - !0 - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/print.xml b/internals2/opcodes/print.xml deleted file mode 100644 index bcb7d7ded7..0000000000 --- a/internals2/opcodes/print.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- PRINT -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - PRINT - ~0 - 'Hello+World' - - - 1 - FREE - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/qm-assign.xml b/internals2/opcodes/qm-assign.xml deleted file mode 100644 index e374f79fec..0000000000 --- a/internals2/opcodes/qm-assign.xml +++ /dev/null @@ -1,177 +0,0 @@ - - - -
- QM_ASSIGN -
- PHP コード - - 1 ? 10: 11; -} -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - NOP - - - - - 101 - NOP - - - - - 142 - RETURN - - 1 - - - - - 関数名: A - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 70 - JMPZ - - 1,->3 - - - 1 - QM_ASSIGN - ~0 - 2 - - - 2 - JMP - - ->4 - - - 3 - QM_ASSIGN - ~0 - 3 - - - 4 - ECHO - - ~0 - - - 85 - RETURN - - null - - - - - 関数名: B - コンパイルされた変数: !0=$b, !1=$a - - - - - line#op - fetchextreturn - operands - - - - - 110 - ASSIGN - - !0,0 - - - 121 - IS_SMALLER - ~1 - 1,!0 - - - 2 - JMPZ - - ~1,->5 - - - 3 - QM_ASSIGN - ~2 - 10 - - - 4 - JMP - - ->6 - - - 5 - QM_ASSIGN - ~2 - 11 - - - 6 - ASSIGN - - !1,~2 - - - 137 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/raise-abstract-error.xml b/internals2/opcodes/raise-abstract-error.xml deleted file mode 100644 index 137f89ce59..0000000000 --- a/internals2/opcodes/raise-abstract-error.xml +++ /dev/null @@ -1,211 +0,0 @@ - - - -
- RAISE_ABSTRACT_ERROR -
- PHP コード - - show(); - -$t = new fail(); -$t->show(); - -echo "Done\n"; // shouldn't be displayed -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$t2, !1=$t - - - - - line#op - fetchextreturn - operands - - - - - 70 - NOP - - - - - 111 - NOP - - - - - 2 - NOP - - - - - 173 - ZEND_FETCH_CLASS - :3 - 'pass' - - - 4 - NEW - $4 - :3 - - - 5 - DO_FCALL_BY_NAME - 0 - - - - 6 - ASSIGN - - !0,$4 - - - 187 - ZEND_INIT_METHOD_CALL - - !0,'show' - - - 8 - DO_FCALL_BY_NAME - 0 - - - - 209 - ZEND_FETCH_CLASS - :9 - 'fail' - - - 10 - NEW - $10 - :9 - - - 11 - DO_FCALL_BY_NAME - 0 - - - - 12 - ASSIGN - - !1,$10 - - - 2113 - ZEND_INIT_METHOD_CALL - - !1,'show' - - - 14 - DO_FCALL_BY_NAME - 0 - - - - 2315 - ECHO - - 'Done%0A' - - - 2416 - RETURN - - 1 - - - - - 関数名: show - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 80 - ZEND_RAISE_ABSTRACT_ERROR - - - - - 1 - RETURN - - null - - - - - 関数名: show - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 130 - ECHO - - 'Call+to+function+show%28%29%0A' - - - 141 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/recv-init.xml b/internals2/opcodes/recv-init.xml deleted file mode 100644 index b9c8491a56..0000000000 --- a/internals2/opcodes/recv-init.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - -
- RECV_INIT -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - NOP - - - - - 71 - RETURN - - 1 - - - - - 関数名: hello - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - RECV_INIT - - 1,5 - - - 1 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/recv.xml b/internals2/opcodes/recv.xml deleted file mode 100644 index a15bbb692c..0000000000 --- a/internals2/opcodes/recv.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - -
- RECV -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - NOP - - - - - 71 - RETURN - - 1 - - - - - 関数名: hello - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - RECV - - 1 - - - 1 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/return-by-ref.xml b/internals2/opcodes/return-by-ref.xml deleted file mode 100644 index 8a49799ed1..0000000000 --- a/internals2/opcodes/return-by-ref.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- RETURN_BY_REF -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/return.xml b/internals2/opcodes/return.xml deleted file mode 100644 index 6a49837b2f..0000000000 --- a/internals2/opcodes/return.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - -
- RETURN -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - RETURN - - 1 - - - 71 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/send-ref.xml b/internals2/opcodes/send-ref.xml deleted file mode 100644 index 174a594617..0000000000 --- a/internals2/opcodes/send-ref.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - -
- SEND_REF -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - BEGIN_SILENCE - ~0 - - - - 1 - FETCH_Wlocal - $1 - 'input' - - - 2 - SEND_REF - - $1 - - - 3 - DO_FCALL - 1 - 'each' - - - 4 - END_SILENCE - - ~0 - - - 75 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/send-val.xml b/internals2/opcodes/send-val.xml deleted file mode 100644 index b43b69e4a9..0000000000 --- a/internals2/opcodes/send-val.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - -
- SEND_VAL -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - NOP - - - - - 101 - SEND_VAL - - 'HELLO' - - - 2 - DO_FCALL - 1 - 'funca' - - - 123 - SEND_VAL - - 'IN_PHPBB' - - - 4 - DO_FCALL - 1 - 'defined' - - - 135 - RETURN - - 1 - - - - - 関数名: funcA - コンパイルされた変数: !0=$msg - - - - - line#op - fetchextreturn - operands - - - - - 60 - RECV - - 1 - - - 71 - PRINT - ~0 - !0 - - - 2 - FREE - - ~0 - - - 83 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/send-var-no-ref.xml b/internals2/opcodes/send-var-no-ref.xml deleted file mode 100644 index 08125d57f0..0000000000 --- a/internals2/opcodes/send-var-no-ref.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- SEND_VAR_NO_REF -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/send-var.xml b/internals2/opcodes/send-var.xml deleted file mode 100644 index 614e5d184e..0000000000 --- a/internals2/opcodes/send-var.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - -
- SEND_VAR -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - INIT_ARRAY - ~0 - 1 - - - 1 - ADD_ARRAY_ELEMENT - ~0 - 2 - - - 2 - ADD_ARRAY_ELEMENT - ~0 - 3 - - - 3 - ASSIGN - - !0,~0 - - - 74 - SEND_VAR - - !0 - - - 5 - DO_FCALL - 1 - 'is_array' - - - 6 - JMPZ - - $2,->9 - - - 7 - RETURN - - 0 - - - 8 - JMP - - ->9 - - - 89 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/sl.xml b/internals2/opcodes/sl.xml deleted file mode 100644 index 34eedafca9..0000000000 --- a/internals2/opcodes/sl.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- SL -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - SL - ~0 - 8,2 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/sr.xml b/internals2/opcodes/sr.xml deleted file mode 100644 index 5ad9ee1107..0000000000 --- a/internals2/opcodes/sr.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- SR -
- PHP コード - - > 2; -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - SR - ~0 - 8,2 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/sub.xml b/internals2/opcodes/sub.xml deleted file mode 100644 index 1be42f2066..0000000000 --- a/internals2/opcodes/sub.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - -
- SUB -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 60 - SUB - ~0 - 1,2 - - - 1 - ECHO - - ~0 - - - 72 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/switch-free.xml b/internals2/opcodes/switch-free.xml deleted file mode 100644 index 5f72de0673..0000000000 --- a/internals2/opcodes/switch-free.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - -
- SWITCH_FREE -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a, !1=$num - - - - - line#op - fetchextreturn - operands - - - - - 60 - INIT_ARRAY - ~0 - 1 - - - 1 - ADD_ARRAY_ELEMENT - ~0 - 2 - - - 2 - ADD_ARRAY_ELEMENT - ~0 - 3 - - - 3 - ASSIGN - - !0,~0 - - - 74 - FE_RESET - $2 - !0,->11 - - - 5 - FE_FETCH - $3 - $2,->11 - - - 6 - ZEND_OP_DATA - - - - - 7 - ASSIGN - - !1,$3 - - - 88 - PRINT - ~5 - !1 - - - 9 - FREE - - ~5 - - - 910 - JMP - - ->5 - - - 11 - SWITCH_FREE - - $2 - - - 1012 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/throw.xml b/internals2/opcodes/throw.xml deleted file mode 100644 index 586c104187..0000000000 --- a/internals2/opcodes/throw.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - -
- THROW -
- PHP コード - - getMessage(), "\n"; -} - -// Continue execution -echo 'Hello World'; -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$error, !1=$e - - - - - line#op - fetchextreturn - operands - - - - - 70 - ASSIGN - - !0,'Always+throw+this+error' - - - 81 - ZEND_FETCH_CLASS - :1 - 'Exception' - - - 2 - NEW - $2 - :1 - - - 3 - SEND_VAR - - !0 - - - 4 - DO_FCALL_BY_NAME - 1 - - - - 5 - ZEND_THROW - 0 - $2 - - - 116 - ECHO - - 'Never+executed' - - - 137 - JMP - - ->15 - - - 8 - ZEND_FETCH_CLASS - :4 - 'Exception' - - - 9 - ZEND_CATCH - 15 - $4,!1 - - - 1410 - ECHO - - 'Caught+exception%3A+' - - - 11 - ZEND_INIT_METHOD_CALL - - !1,'getMessage' - - - 12 - DO_FCALL_BY_NAME - 0 - - - - 13 - ECHO - - $6 - - - 14 - ECHO - - '%0A' - - - 1815 - ECHO - - 'Hello+World' - - - 1916 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/ticks.xml b/internals2/opcodes/ticks.xml deleted file mode 100644 index dec5f3cb2c..0000000000 --- a/internals2/opcodes/ticks.xml +++ /dev/null @@ -1,178 +0,0 @@ - - - -
- TICKS -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x - - - - - line#op - fetchextreturn - operands - - - - - 70 - NOP - - - - - 131 - SEND_VAL - - 'profile' - - - 2 - DO_FCALL - 1 - 'register_tick_function' - - - 163 - DO_FCALL - 0 - 'profile' - - - 204 - ASSIGN - - !0,0 - - - 5 - IS_SMALLER - ~3 - !0,10 - - - 6 - JMPZNZ - 9 - ~3,->13 - - - 7 - PRE_INC - - !0 - - - 8 - JMP - - ->5 - - - 219 - ECHO - - 'hello+world%0A' - - - 10 - TICKS - - 2 - - - 2211 - TICKS - - 2 - - - 12 - JMP - - ->7 - - - 13 - TICKS - - 2 - - - 2314 - TICKS - - 2 - - - 2415 - RETURN - - 1 - - - - - 関数名: profile - コンパイルされた変数: none - - - - - line#op - fetchextreturn - operands - - - - - 90 - ECHO - - 'profile+function+is+called%0A' - - - 101 - RETURN - - null - - - - -
-
diff --git a/internals2/opcodes/unset-dim.xml b/internals2/opcodes/unset-dim.xml deleted file mode 100644 index dfd142f9d8..0000000000 --- a/internals2/opcodes/unset-dim.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - -
- UNSET_DIM -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - INIT_ARRAY - ~0 - 1 - - - 1 - ADD_ARRAY_ELEMENT - ~0 - 2 - - - 2 - ADD_ARRAY_ELEMENT - ~0 - 3 - - - 3 - ASSIGN - - !0,~0 - - - 74 - UNSET_DIM - $2 - !0,0 - - - 85 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/unset-obj.xml b/internals2/opcodes/unset-obj.xml deleted file mode 100644 index 44d6482ef8..0000000000 --- a/internals2/opcodes/unset-obj.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - -
- UNSET_OBJ -
- PHP コード - - num); -?> -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$obj - - - - - line#op - fetchextreturn - operands - - - - - 60 - ZEND_FETCH_CLASS - :0 - 'A' - - - 1 - NEW - $1 - :0 - - - 2 - DO_FCALL_BY_NAME - 0 - - - - 3 - ASSIGN - - !0,$1 - - - 74 - UNSET_OBJ - $4 - !0,'num' - - - 85 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/unset-var.xml b/internals2/opcodes/unset-var.xml deleted file mode 100644 index ee3a038c21..0000000000 --- a/internals2/opcodes/unset-var.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - -
- UNSET_VAR -
- PHP コード - - -]]> - -
-
- PHP オペコード - 関数名: (null) - コンパイルされた変数: !0=$x, !1=$a - - - - - line#op - fetchextreturn - operands - - - - - 60 - ASSIGN - - !0,1 - - - 71 - ASSIGN - - !1,'x' - - - 82 - UNSET_VAR - $2 - !1 - - - 93 - RETURN - - 1 - - - - -
-
diff --git a/internals2/opcodes/user-opcode.xml b/internals2/opcodes/user-opcode.xml deleted file mode 100644 index 45985eb15a..0000000000 --- a/internals2/opcodes/user-opcode.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- USER_OPCODE -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/verify-abstract-class.xml b/internals2/opcodes/verify-abstract-class.xml deleted file mode 100644 index 883843cbf1..0000000000 --- a/internals2/opcodes/verify-abstract-class.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- VERIFY_ABSTRACT_CLASS -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/zend-declare-lambda-function.xml b/internals2/opcodes/zend-declare-lambda-function.xml deleted file mode 100644 index d16270ba57..0000000000 --- a/internals2/opcodes/zend-declare-lambda-function.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- ZEND_DECLARE_LAMBDA_FUNCTION -
- PHP コード - - -]]> - -
-
diff --git a/internals2/opcodes/zend-jmp-set.xml b/internals2/opcodes/zend-jmp-set.xml deleted file mode 100644 index e47900c944..0000000000 --- a/internals2/opcodes/zend-jmp-set.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -
- ZEND_JMP_SET -
- PHP コード - - -]]> - -
-
diff --git a/internals2/pdo/building.xml b/internals2/pdo/building.xml deleted file mode 100644 index c66c8e0734..0000000000 --- a/internals2/pdo/building.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - ビルド - - ビルド手順は、PEAR を使用できるように設計されています (PEAR についての - 詳細な情報は を参照ください)。 - パッケージをビルドするための設定を手助けするために用いられるファイルが - 2 つあります。ひとつめは config.m4 で、これは Win32 以外のすべての - プラットフォームで使用される autoconf の設定ファイルです。 - ふたつめが config.w32 で、これは Win32 で使用されるビルド設定ファイルです。 - 最初のプロジェクトをセットアップした際に、これらのファイルの雛形が - 作成されます。必要に応じて、この雛形をカスタマイズする必要があります。 - 設定ファイルのカスタマイズを済ませると、以下の手順でドライバのビルドが - 可能になります。 - - - - はじめてのビルドの前のみ - - - - - - 毎回のビルドごとに - - - - - - 開発期間中は、必要に応じてこの手順を繰り返すことが可能です。 - - - diff --git a/internals2/pdo/constants.xml b/internals2/pdo/constants.xml deleted file mode 100644 index 7c123df0c1..0000000000 --- a/internals2/pdo/constants.xml +++ /dev/null @@ -1,175 +0,0 @@ - - - - - 定数 - - データベースおよびステートメントの属性 - - - - - - - 属性 - - - - - - - - PDO_ATTR_AUTOCOMMIT - - - BOOL - 自動コミットが設定されている場合に TRUE、それ以外の場合に FALSE。 - dbh->auto_commit がこの値を含みます。PDO によって直接処理されます。 - - - - - PDO_ATTR_PREFETCH - - - LONG - ドライバがサポートしているプリフェッチサイズの値。 - - - - - PDO_ATTR_TIMEOUT - - - LONG - データベース操作がタイムアウトするまでの長さ。 - - - - - PDO_ATTR_ERRMODE - - - LONG - PDO によって処理されます。 - - - - - PDO_ATTR_SERVER_VERSION - - - STRING - - このドライバが現在接続しているサーバーとそのバージョンを、 - 人間が理解できる形式 の文字列で表したもの。 - - - - - - PDO_ATTR_CLIENT_VERSION - - - STRING - - このドライバがサポートしているクライアントとそのバージョンを、 - 人間が理解できる形式 の文字列で表したもの。 - - - - - - PDO_ATTR_SERVER_INFO - - - STRING - 人間が理解できる形式 のサーバーの説明。 - - - - - PDO_ATTR_CONNECTION_STATUS - - - LONG - 未定義の値。 - - - - - PDO_ATTR_CASE - - - LONG - PDO によって処理・操作が行われます。 - - - - - PDO_ATTR_CURSOR_NAME - - - STRING - - where current in <名前> 形式の SQL - ステートメントで使用する、データベースカーソルの名前を - 表す文字列。 - - - - - - PDO_ATTR_CURSOR - - - LONG - - - PDO_CURSOR_FWDONLY - - 先送りのみのカーソル - - - - PDO_CURSOR_SCROLL - - スクロール可能なカーソル - - - - - - - -
- - 上で示した属性の値は、すべて Zend API で定義されています。Zend API - には *zval を値に変換するためのマクロが含まれています。これらの - マクロは、PHP ビルドディレクトリの下にある Zend ディレクトリ内の - Zend ヘッダファイル、zend_API.h で定義されています。 - これらの属性の中には、PDO_ATTR_CURSOR および PDO_ATTR_CURSOR_NAME - のように、ステートメント属性ハンドラとともに使用するものもあります。 - 詳細な情報は、ステートメント属性処理関数を参照ください。 - -
- diff --git a/internals2/pdo/error-handling.xml b/internals2/pdo/error-handling.xml deleted file mode 100644 index 147060f186..0000000000 --- a/internals2/pdo/error-handling.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - エラー処理 - - エラー処理は、PDO とデータベースドライバとの間のハンドシェイキング - プロトコルを使用して実装されています。データベースドライバのコードは、 - インターフェイス関数から失敗 (0) を返すことにより、 - エラーが発生したことを PDO に通知します。ゼロが返されると、 - (pdo_dbh_t あるいは pdo_stmt_t のいずれかの) 制御ブロックの - error_code フィールドに値が設定されます。 - 正しい値が使用されることを保証するため、両方のブロックのフィールドに - 同じ値を設定しておくことを推奨します。 - - - - error_mode フィールドの大きさは 6 バイトであり、5 文字の ASCIIZ - SQLSTATE 識別コードが含まれます。このコードがエラーメッセージを処理します。 - 内部の PDO エラーメッセージテーブルから、SQLSTATE コードを使用して - エラーメッセージを検索します (エラーコードおよびそのメッセージの - 一覧は、pdo_sqlstate.c を参照ください)。PDO で定義されていないコードが - 指定された場合は、デフォルトの値 - Unknown Message が使用されます。 - - - - SQLSTATE コードおよびエラーメッセージに加え、PDO は - ドライバ固有の fetch_err() ルーチンをコールすることにより - エラーの追加データを取得します。このルーチンには配列が渡され、 - ドライバはその配列に追加情報を書き込みます。配列の各項目には、 - 以下のような追加情報が格納されます。 - - - - - - ネイティブエラーコード。たいていの場合、これはデータベースの API - から取得したエラーコードになるでしょう。 - - - - - 内容を表す文字列。ここには、エラーに関連する追加情報を何でも - 含めることができます。一般的には、エラーメッセージ・コード上で - エラーが発生した位置やその他開発者にとって有益であると思われる - 情報を含めます。エラーが発生した際にデータベースインターフェイスから - 得られる診断情報は、すべて含めておくとよいでしょう。 - ドライバが検出したエラー (例えばメモリ確保の問題など) については、 - どのような情報を提供すべきかはドライバの開発者が判断することに - なります。 - - - - - diff --git a/internals2/pdo/implementing.xml b/internals2/pdo/implementing.xml deleted file mode 100644 index dad89bd444..0000000000 --- a/internals2/pdo/implementing.xml +++ /dev/null @@ -1,1335 +0,0 @@ - - - - - - 雛形への肉付け - - 主要な構造体および属性 - - 主要な構造体である pdo_dbh_t および pdo_stmt_t については、それぞれ - 付録 A および B で説明します。データベースやステートメントの属性に - ついては 付録 C、エラー処理については付録 D で説明します。 - - - - - pdo_SKEL.c: PHP 拡張モジュールとの橋渡し - - 関数エントリ - - - この構造体は、グローバルな PHP 関数名前空間に関数を登録するために - 使用されます。PDO ドライバでは、できるだけ使用を避けるべきです。 - 上の例で示しているように、NULL で初期化した状態にしておくことを - 推奨します。 - - - - モジュールエントリ - = 220050617 -static zend_module_dep pdo_SKEL_deps[] = { - ZEND_MOD_REQUIRED("pdo") - {NULL, NULL, NULL} -}; -#endif -/* }}} */ - -zend_module_entry pdo_SKEL_module_entry = { -#if ZEND_EXTENSION_API_NO >= 220050617 - STANDARD_MODULE_HEADER_EX, NULL, - pdo_SKEL_deps, -#else - STANDARD_MODULE_HEADER, -#endif - "pdo_SKEL", - pdo_SKEL_functions, - PHP_MINIT(pdo_SKEL), - PHP_MSHUTDOWN(pdo_SKEL), - NULL, - NULL, - PHP_MINFO(pdo_SKEL), - PHP_PDO__MODULE_VERSION, - STANDARD_MODULE_PROPERTIES -}; -/* }}} */ - -#ifdef COMPILE_DL_PDO_ -ZEND_GET_MODULE(pdo_db) -#endif]]> - - pdo_SKEL_module_entry という名前で - zend_module_entry 型の構造体を宣言し、先ほど定義した - pdo_SKEL_functions テーブルへの参照を含める必要があります。 - - - - - 標準 PHP 拡張モジュール関数 - - PHP_MINIT_FUNCTION - - - この標準 PHP 拡張モジュール関数は、ドライバを PDO に登録するために - 使用されます。登録するには、php_pdo_register_driver - 関数に pdo_driver_t 型の構造体へのポインタを渡して - コールします。この構造体の名前は、一般的には - pdo_SKEL_driver となります。 - pdo_driver_t には、マクロ - PDO_DRIVER_HEADER(SKEL) を使用して生成した - ヘッダおよび pdo_SKEL_handle_factory - 関数へのポインタが含まれます。実際の関数については - SKEL_dbh.c の説明の中で述べます。 - - - - - PHP_MSHUTDOWN_FUNCTION - - - この標準 PHP 拡張モジュール関数は、ドライバを PDO から登録解除する - ために使用されます。解除するには、 - php_pdo_unregister_driver 関数に - 上で渡したのと同じ構造体 pdo_SKEL_driver - を渡してコールします。 - - - - PHP_MINFO_FUNCTION - - これもまた標準 PHP 拡張モジュール関数です。この関数の目的は、 - スクリプト内で phpinfo がコールされた際に - モジュールの情報を表示することです。規約では、モジュールの - バージョンおよび対応するデータベースのバージョン、そして - 関連する設定情報を表示することになっています。 - - - - - - SKEL_driver.c: ドライバの実装 - - - このファイルでは、PDO データベースハンドルオブジェクトがサポートする - すべてのデータベース処理メソッドを実装します。また、エラー情報の - 取得ルーチンもここに含まれます。これらの関数では、グローバル変数 - プールへのアクセスが必要になることでしょう。そのため、これらの - ステートメントの最後には、Zend マクロ TSRMLS_DC を使用する必要が - あります。このマクロについての詳細な情報は、Zend の - プログラマ向けドキュメントを参照ください。 - - - - pdo_SKEL_error - - - - - この関数の目的は、ドライバ内での一般的なエラー処理関数として使用する - ことです。ドライバ内でエラーが発生した場合に、ドライバによって - この関数がコールされます。SQLSTATE に関連しないエラーが発生した場合、 - ドライバはエラーの内容にもっとも近い SQLSTATE あるいは一般的な - SQLSTATE エラー HY000 を、 - dbh->error_code あるいは - stmt->error_code にセットする必要があります。 - PDO ソース内のファイル pdo_sqlstate.c には、PDO が明示的に理解する - 一般的な SQLSTATE コードのテーブルがあります。エラーコードの設定は、 - この関数がコールされる前に終わっていなければなりません。この関数は、 - グローバル変数 pdo_err に - dbh あるいは stmt (stmt が NULL でない場合) - で見つかったエラーを設定します。 - - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - stmt - - - 現在のステートメントへのポインタあるいは NULL。 - NULL の場合、エラーには dbh で見つかったエラーコードが設定されます。 - - - - - file - - エラーが発生したソースファイルあるいは取得できない場合は NULL。 - - - - line - - 取得可能な場合に、ソースファイル内の行番号。 - - - - - dbh メンバメソッドが NULL の場合 (PDO コンストラクタ内でエラーが - 発生したことを意味します)、この関数は zend_throw_exception_ex() - 関数をコールしなければなりません。それ以外の場合はエラーコードを - 返します。通常、この関数はヘルパマクロを使用してコールされます。 - このマクロは、データベース処理エラーおよびステートメント処理エラーの - それぞれについて関数のコール手順をカスタマイズしたものです。 - - - - pdo_SKEL_error をコールするマクロの例 - - - - - エラー処理についての詳細は、 を参照ください。 - - - - このように記述されていますが、PDO ドライバインターフェイスでは特に - この関数が存在することを指定していません。これは単にエラー処理を - 便利にするための方法であり、大半のデータベースのクライアントライブラリ - API ではこの方法でドライバを実装すると好都合です。 - - - - - pdo_SKEL_fetch_error_func - - - - この関数の目的は、直近に発生したエラーについての追加情報を - 取得することです。ここには、ドライバ固有のエラーコードや - 人間が理解できる形式のメッセージが含まれます。また、必要に応じて - それ以外の追加情報も含められます。この関数は、PHP スクリプトで - PDO::errorInfo メソッドをコールした際に - 呼び出されます。 - - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - stmt - - - 現在のステートメントへのポインタあるいは NULL。NULL の場合は - dbh で見つかったエラーコードから情報を取得します。 - - - - - info - - エラーコードおよびメッセージを含むハッシュテーブル。 - - - - - - error_func は、情報を 2 つの部分に分けた上で、配列の連続する要素として - 返さなければなりません。最初の要素は数値形式のエラーコードで、次の - 項目が文字列の説明となります。この項目を設定する方法としては - add_next_index を使用するのが最適です。最初の要素の型は long - である必要がないことに注意しましょう。元になるデータベース API - が返すエラーコードに応じた型を選びます。 - - - - - - この関数は、情報が取得可能な場合に 1、ドライバが追加情報を - 保持していない場合に 0 を返します。 - - - - SKEL_handle_closer - - - - この関数は、オープンしているデータベースを閉じるために PDO からコールされます。 - - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - - オープン中のデータベースを閉じるために必要な処理は、すべてここで - 済ませる必要があります。PDO は、この関数の返す値を無視します。 - - - - - SKEL_handle_preparer - - - - この関数は、PHP スクリプトで - PDO::query および PDO::prepare - がコールされた場合に PDO から呼び出されます。この関数の目的は、 - 実行する SQL を準備し、渡された stmt に - しかるべき値を格納することです。 - - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - sql - - 準備される SQL ステートメントを含む文字列へのポインタ。 - - - - sql_len - - SQL ステートメントの長さ。 - - - - Stmt - - 返される statement へのポインタか、エラーが発生した場合には NULL。 - - - - driver_options - - ドライバ固有の (ドライバで定義した) オプション。 - - - - - この関数は、本質的には stmt オブジェクトのコンストラクタです。 - ステートメントのオプションを処理し、ドライバ固有のオプションを - pdo_stmt_t 構造体に格納することがこの関数の役割となります。 - - - prepare 関数がコールされる前に、PDO がドライバの代わりにオプションを - 処理してくれることはありません。未知のオプションが渡された際に - エラーを発生させるなどの処理は、あなた (ドライバ) の役割となります。 - - - この関数の非常に重要な役割のひとつは、SQL ステートメントのパラメータを - 処理することです。この関数をコールした際に、PDO は - 「ドライバがプリペアドステートメントへのパラメータのバインドをサポート - しているか」や「名前で指定するパラメータあるいは位置で指定するパラメータの - どちらをサポートしているか」を知りません。 - - - 元となるデータベースにあわせて、ドライバが適切に - stmt->supports_placeholders を設定しなければなりません。 - 接続先のサーバーのバージョンによってこの設定が変化するなどの理由で、 - この設定を実行時に行わなければならないこともあるかもしれません。 - ドライバが、名前で指定するパラメータ・位置で指定するパラメータのいすれも - サポートしていない場合は、pdo_parse_params API - を使用して PDO にクエリを書き換えさせることでこの機能を - サポートさせなければなりません。 - - - pdo_parse_params の使用 - supports_placeholders = PDO_PLACEHOLDER_POSITIONAL; - ret = pdo_parse_params(stmt, (char*)sql, sql_len, &nsql, &nsql_len TSRMLS_CC); - - if (ret == 1) { - /* クエリが書き換えられました */ - sql = nsql; - } else if (ret == -1) { - /* 失敗しました */ - strcpy(dbh->error_code, stmt->error_code); - return 0; - } - - /* "sql" の中のクエリを準備します */ -]]> - - - supports_placeholders に指定できる値は - PDO_PLACEHOLDER_NAMED、 - PDO_PLACEHOLDER_POSITIONAL および - PDO_PLACEHOLDER_NONE です。 - ドライバがプリペアドステートメントをまったくサポートしていない場合、 - この関数は単に必要なデータを割り当てたうえで、それを返す必要があります。 - - - プリペアドステートメントをネイティブにサポートしていないドライバでの実装 - driver_data; - pdo_SKEL_stmt *S = ecalloc(1, sizeof(pdo_SKEL_stmt)); - - S->H = H; - stmt->driver_data = S; - stmt->methods = &SKEL_stmt_methods; - stmt->supports_placeholders = PDO_PLACEHOLDER_NONE; - - return 1; -} -]]> - - - この関数は、成功した場合に 1、失敗した場合に 0 を返します。 - - - SKEL_handle_doer - - - - この関数は、SQL ステートメントを直接実行する際に PDO から - 呼び出されます。pdo_stmt_t は作成されません。 - - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - sql - - 準備される SQL ステートメントを含む文字列へのポインタ。 - - - - sql_len - - SQL ステートメントの長さ。 - - - - - - この関数は、成功した場合に 1、失敗した場合に 0 を返します。 - - - - - SKEL_handle_quoter - - - - この関数は、クエリで使用するために文字列をクォートする際に - PDO から呼び出されます。 - - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - unquoted - - クォートされる文字列を含む文字列へのポインタ。 - - - - unquoted_len - - クォートされる文字列の長さ。 - - - - quoted - - クォートされた文字列へのポインタが返されるアドレスへのポインタ。 - - - - quoted_len - - 新しい文字列の長さ。 - - - - param_type - - 別のクォート形式を使用しているドライバ用の、ドライバ固有のヒント - - - - - この関数は、 - PDO::quote がコールされた場合、 - あるいはドライバが supports_placeholder - を PDO_PLACEHOLDER_NONE に設定した場合に - PDO から呼び出されます。この関数の目的は、SQL ステートメントを - 作成する際にパラメータをクォートすることです。 - - - ドライバがネイティブのプリペアドステートメントをサポートしていない場合、 - この関数を実装する必要があります。 - - - この関数は、クォート処理が正しく行われた場合や文字列を変更する必要が - なかった場合に 1、文字列の変更に失敗した場合に 0 を返します。 - 0 が返された場合、もとの文字列がそのまま使用されます。 - - - - SKEL_handle_begin - - - - この関数は、データベースのトランザクションを開始する際に - PDO から呼び出されます。 - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - - トランザクションを開始するために必要な処理は、すべてここで - 済ませる必要があります。この関数は、成功した場合に 1、 - エラーが発生した場合に 0 を返します。 - - - - SKEL_handle_commit - - - この関数は、データベースのトランザクションを終了する際に - PDO から呼び出されます。 - - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - - - トランザクションをコミットするために必要な処理は、すべてここで - 済ませる必要があります。この関数は、成功した場合に 1、 - エラーが発生した場合に 0 を返します。 - - - - SKEL_handle_rollback - - - この関数は、データベースのトランザクションをロールバックする際に - PDO から呼び出されます。 - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - - トランザクションをロールバックするために必要な処理は、すべてここで - 済ませる必要があります。この関数は、成功した場合に 1、 - エラーが発生した場合に 0 を返します。 - - - - SKEL_handle_get_attribute - - この関数は、データベースの属性を取得するために PDO から呼び出されます。 - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - attr - - - long 値。PDO_ATTR_xxxx 型のいずれか。使用可能な - 値については を参照ください。 - - - - - return_value - - 返される属性の値。 - - - - - 実装においてどの属性をサポートするかは、ドライバ次第です。ドライバは - 必ずこの関数を提供しなければならないわけではありません。 - PDO_ATTR_PERSISTENT、PDO_ATTR_CASE、 - PDO_ATTR_ORACLE_NULLS および PDO_ATTR_ERRMODE については PDO ドライバが - 直接処理します。 - - - この関数は、成功した場合に 1、失敗した場合に 0 を返します。 - - - - SKEL_handle_set_attribute - static int SKEL_handle_set_attribute(pdo_dbh_t *dbh, long attr, zval *val TSRMLS_DC) - - この関数は、データベースの属性を設定するために PDO から呼び出されます。 - 通常、これはスクリプトから PDO::setAttribute - をコールした場合に発生します。 - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - attr - - - long 値。PDO_ATTR_xxxx 型のいずれか。使用可能な - 値については を参照ください。 - - - - - val - - 属性の新しい値。 - - - - - - 実装においてどの属性をサポートするかは、ドライバ次第です。 - 追加の属性をサポートする必要がないのであれば、ドライバは - 必ずしもこの関数を提供しなくてもかまいません。 - PDO_ATTR_CASE、 - PDO_ATTR_ORACLE_NULLS および PDO_ATTR_ERRMODE については PDO ドライバが - 直接処理します。 - - - - この関数は、成功した場合に 1、失敗した場合に 0 を返します。 - - - - - SKEL_handle_last_id - - - この関数は、最後に挿入した行の ID を取得するために PDO から - 呼び出されます。 - - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - name - - - テーブル名あるいはシーケンス名を表す文字列。 - - - - - len - - パラメータ name の長さ。 - - - - - - この関数は、成功した場合には最後に挿入された行の ID を含む文字列、 - 失敗した場合には NULL を返します。これは、オプションの関数です。 - - - - - SKEL_check_liveness - - - - - この関数は、データベースとの持続的接続が現在確立されているかどうかを - 調べるために PDO から呼び出されます。 - - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - - - この関数は、データベース接続が確立されており使用可能な状態の場合に 1、 - それ以外の場合 (接続に失敗した場合や機能をサポートしていない場合など) - に 0 を返します。 - - - - - これは、オプションの関数です。 - - - - - - - SKEL_get_driver_methods - - - この関数は、PDO あるいは - PDOStatement クラスに属さないメソッドが - コールされた際に PDO から呼び出されます。この関数の目的は、 - ドライバ固有のメソッドをクラスに追加できるようにすることです。 - - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - kind - - 以下のいずれか。 - - - PDO_DBH_DRIVER_METHOD_KIND_DBH - - - PDO クラスのインスタンスに対して - メソッドのコールが試みられた場合に設定します。 - ドライバは、クラスに追加したいメソッドのための function_entry - テーブルへのポインタか、それが存在しない場合には - NULL を返す必要があります。 - - - - - PDO_DBH_DRIVER_METHOD_KIND_STMT - - - PDOStatement クラスのインスタンスに対して - メソッドのコールが試みられた場合に設定します。 - ドライバは、クラスに追加したいメソッドのための function_entry - テーブルへのポインタか、それが存在しない場合には - NULL を返す必要があります。 - - - - - - - - - - この関数は、要求された function_entry テーブルへのポインタか、 - ドライバ固有のメソッドが存在しない場合に NULL を返します。 - - - - - SKEL_handle_factory - - - この関数は、データベースハンドルを作成するために PDO から呼び出されます。 - ほとんどのデータベースでは、データベースへの接続がここに含まれます。 - 中には、持続的な接続が求められる場合もあります。あるいは接続ぷーリングが - 求められる場合もあります。これらのすべては、データベース/ドライバ - に依存します。 - - - - - dbh - - ハンドルファクトリで初期化したデータベースハンドルへのポインタ。 - - - - driver_options - - - ドライバのオプションの配列。整数値のオプション番号をキーとします。 - 指定できる属性の一覧は、 - を参照ください。 - - - - - - - - この関数は、成功した場合には、渡されたデータベースハンドル構造体に - ドライバ固有の情報を格納して 1 を返し、それ以外の場合には 0 を返して - 失敗したことを示します。 - - - PDO は、handle_factory をコールする前に - ドライバオプション AUTOCOMMIT および PERSISTENT を処理します。 - その他のオプションを処理するのは、ハンドルファクトリの役目となります。 - - - - - ドライバメソッドテーブル - - pdo_dbh_methods 型のスタティックな構造体を SKEL_methods という名前で - 宣言し、定義された関数へのポインタでそれを初期化しておく必要があります。 - 関数がサポートされていなかったり実装されていなかったりする場合は、 - この関数ポインタの値を NULL に設定します。 - - - - - pdo_SKEL_driver - - pdo_driver_t 型の構造体を pdo_SKEL_driver という名前で宣言しなければ - なりません。マクロ PDO_DRIVER_HEADER(SKEL) を使用して構造体の - ヘッダを定義し、またハンドルファクトリ関数へのポインタを - 設定しなければなりません。 - - - - - SKEL_statement.c: ステートメントの実装 - - ここでは、PDO ステートメントオブジェクトがサポートする - すべてのステートメント処理メソッドを実装します。 - - - SKEL_stmt_dtor - - - - この関数は、事前に作成されたステートメントオブジェクトを - 削除するために PDO から呼び出されます。 - - - - stmt - - SKEL_handle_preparer で初期化されたステートメント構造体へのポインタ。 - - - - - - ステートメントのために確保したドライバ固有の領域は、すべてここで - 開放する必要があります。PDO は、この関数の返す値を無視します。 - - - - - SKEL_stmt_execute - - - この関数は、渡されたステートメントオブジェクト内のプリペアド - SQL ステートメントを実行するために PDO から呼び出されます。 - - - - stmt - - SKEL_handle_preparer で初期化されたステートメント構造体へのポインタ。 - - - - - - この関数は、成功した場合に 1、失敗した場合に 0 を返します。 - - - - SKEL_stmt_fetch - static int SKEL_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori, - long offset TSRMLS_DC) - - - この関数は、実行されたステートメントオブジェクトから行を取得するために - PDO から呼び出されます。 - - - - - stmt - - SKEL_handle_preparer で初期化されたステートメント構造体へのポインタ。 - - - - - ori - - どの行を取得するのかを、PDO_FETCH_ORI_xxx のいずれかで指定します。 - - - - - offset - - - ori が PDO_FETCH_ORI_ABS あるいは PDO_FETCH_ORI_REL の場合、 - offset はそれぞれ取得したい行の位置 - あるいは現在の位置からの相対位置を表します。それ以外の場合は - この値は無視されます。 - - - - - - - この取得結果はドライバに依存し、データは通常 pdo_stmt_t オブジェクトの - メンバ driver_data に格納されます。パラメータ ori および offset - は、ステートメントがスクロール可能なカーソルを指している場合にのみ - 意味を持ちます。この関数は、成功した場合に 1、失敗した場合に 0 - を返します。 - - - - SKEL_stmt_param_hook - - - - この関数は、バインドされたパラメータやカラムを処理するために - PDO から呼び出されます。 - - - - - stmt - - SKEL_handle_preparer で初期化されたステートメント構造体へのポインタ。 - - - - - param - - - ステートメントのパラメータあるいはバインドされたカラムを表す構造体。 - - - - - - event_type - - このパラメータに発生するイベントの型。以下のいずれかです。 - - - - PDO_PARAM_EVT_ALLOC - - - PDO がバインドを割り当てる際にコールされます。 - PDOStatement::bindParam や - PDOStatement::bindValue のコール、あるいは - PDOStatement::execute による暗黙的な - バインドの際に発生します。この時点で、何らかのアクションを - とることができます。プリペアドステートメントをネイティブに - 実装するドライバの場合、典型的なアクションとしては - パラメータの情報の取得・スクリプトで要求された型との調整・ - 適切な大きさのバッファの確保・そしてバッファへのパラメータの - バインドなどがあるでしょう。 - この時点では、param->parameter の zval の - 型や値をあてにすべきではありません。 - - - - - PDO_PARAM_EVT_FREE - - - 各パラメータが開放される際にコールされます。パラメータに - 関連するすべてのリソースはここで開放しなければなりません。 - - - - - PDO_PARAM_EXEC_PRE - - - SKEL_stmt_execute がコールされる直前に、パラメータごとにコールされます。 - 実行前の最後の調整をここで行います。特に注意すべき点として、 - PDOStatement::bindParam による変数のバインドは - ここでのみ行うべきで、それより前の段階で行ってはなりません。 - - - - - PDO_PARAM_EXEC_POST - - - SKEL_stmt_execute がコールされた直後に、パラメータごとにコールされます。 - ドライバが必要とする後処理をここで行います。 - - - - - PDO_PARAM_FETCH_PRE - - - SKEL_stmt_fetch がコールされる直前に、パラメータごとにコールされます。 - - - - - PDO_PARAM_FETCH_POST - - - SKEL_stmt_fetch がコールされた直後に、パラメータごとにコールされます。 - - - - - - - - - - - このフックは、ステートメント内でバインドされたパラメータおよびカラムの - それぞれについて、個々にコールされます。ALLOC および FREE イベントは、 - 各パラメータあるいはカラムについて 1 度コールされます。 - param 構造体は driver_data フィールドを含み、これは - 各パラメータについての実装固有の情報を格納するために使用されます。 - - - その他のすべてのイベントでは、スクリプトが - PDOStatement::execute および - PDOStatement::fetch をコールするたびに - PDO からコールされることになります。 - - - バインドされたのが変数の場合、param 構造体の is_param フラグが - 設定されています。それ以外の場合は param 構造体はバインドカラムを - 表します。 - - - この関数は、成功した場合に 1、失敗した場合に 0 を返します。 - - - - - SKEL_stmt_describe_col - - - - この関数は、特定のカラムについての情報を問い合わせるために - PDO からコールされます。 - - - - - stmt - - SKEL_handle_preparer で初期化されたステートメント構造体へのポインタ。 - - - - colno - - 調べたいカラムの番号。 - - - - - ドライバは、pdo_stmt_t のメンバ columns(colno) に適切な情報を格納する - 必要があります。この関数は、成功した場合に 1、失敗した場合に 0 を返します。 - - - - - SKEL_stmt_get_col_data - - - この関数は、指定したカラムからデータを取得するために - PDO から呼び出されます。 - - - - stmt - - SKEL_handle_preparer で初期化されたステートメント構造体へのポインタ。 - - - - colno - - 取得したいカラムの番号。 - - - - ptr - - 取得したデータへのポインタ。 - - - - len - - ptf が指すデータの長さ。 - - - - caller_frees - - - 設定されている場合は ptf が指すメモリは emalloc されたものであり、 - 使用終了後にメイン PDO ドライバがそれを開放する必要があります。 - 設定されていない場合は、このコールの結果として確保されたメモリを - 開放するのはドライバの役目となります。 - - - - - - ドライバは、結果のデータおよびその長さをそれぞれ ptr および len に - 返す必要があります。メイン PDO ドライバは、データの生存期間を - ドライバが管理するものと想定していることに注意しましょう。 - この関数は、成功した場合に 1、失敗した場合に 0 を返します。 - - - - SKEL_stmt_set_attr - static int SKEL_stmt_set_attr(pdo_stmt_t *stmt, long attr, zval *val TSRMLS_DC) - - - この関数は、ステートメントオブジェクトのドライバ固有の属性を - 設定するために PDO から呼び出されます。 - - - - - stmt - - SKEL_handle_preparer で初期化されたステートメント構造体へのポインタ。 - - - - attr - - - long 値。PDO_ATTR_xxxx 型のいずれか。使用可能な - 値については を参照ください。 - - - - - val - - 属性の新しい値。 - - - - - - - この関数はドライバに依存しており、ステートメントにデータベース固有の - 属性を設定する機能を与えます。この関数は、成功した場合に 1、 - 失敗した場合に 0 を返します。これはオプションの関数です。 - もし設定可能な追加属性をドライバがサポートしていない場合は、 - メソッドテーブルで NULL を設定しておくことも可能です。PDO ドライバは、 - データベースドライバに代わって設定可能属性の処理を行うことはありません。 - - - - SKEL_stmt_get_attr - - - この関数は、ステートメントオブジェクトのドライバ固有の属性を - 取得するために PDO から呼び出されます。 - - - - - stmt - - SKEL_handle_preparer で初期化されたステートメント構造体へのポインタ。 - - - - attr - - - long 値。PDO_ATTR_xxxx 型のいずれか。使用可能な - 値については を参照ください。 - - - - - return_value - - 返される属性の値。 - - - - - - この関数はドライバに依存しており、ステートメントからデータベース固有の - 属性を取得する機能を与えます。この関数は、成功した場合に 1、 - 失敗した場合に 0 を返します。これはオプションの関数です。 - もし取得可能な追加属性をドライバがサポートしていない場合は、 - メソッドテーブルで NULL を設定しておくことも可能です。PDO ドライバは、 - データベースドライバに代わって取得可能属性の処理を行うことはありません。 - - - - SKEL_stmt_get_col_meta - - - - この関数はうまく定義されておれず、変更する必要があります。 - - - - - この関数は、指定したカラムのメタデータを取得するために - PDO から呼び出されます。 - - - - stmt - - SKEL_handle_preparer で初期化されたステートメント構造体へのポインタ。 - - - - colno - - データを取得するカラム番号。 - - - - return_value - - 返されるメタデータを保持します。 - - - - - - ドライバの作者は、php_pdo_driver.h ヘッダに書かれているこの関数の - ドキュメントを参照し、最新の情報を得てください。 - この関数は、成功した場合に SUCCESS、失敗した場合に FAILURE を返します。 - データベースドライバは、この関数を提供する必要はありません。 - - - - - ステートメント操作メソッドテーブル - - pdo_stmt_methods 型のスタティックな構造体を SKEL_stmt_methods という名前で - 宣言し、定義された関数へのポインタでそれを初期化しておく必要があります。 - 関数がサポートされていなかったり実装されていなかったりする場合は、 - この関数ポインタの値を NULL に設定します。 - - - - - diff --git a/internals2/pdo/index.xml b/internals2/pdo/index.xml deleted file mode 100644 index ccf88d3262..0000000000 --- a/internals2/pdo/index.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - PDO ドライバ How-To - - - この How-To の目的は、PDO 用レイヤーとのインターフェイスとなる - データベースドライバを書くために必要な基礎知識を身につけることです。 - この API はまだ発展途上のものであり、変更される可能性があることに注意しましょう。 - このドキュメントは、PDO のバージョン 0.3 をもとにしています。 - 学習曲線はかなりの急勾配です。まず最初の段階を身につけるのにかなりの時間を要するでしょう。 - - - - - &internals2.pdo.prerequisites; - &internals2.pdo.preparation; - &internals2.pdo.implementing; - &internals2.pdo.building; - &internals2.pdo.testing; - &internals2.pdo.packaging; - &internals2.pdo.pdo-dbh-t; - &internals2.pdo.pdo-stmt-t; - - &internals2.pdo.constants; - &internals2.pdo.error-handling; - - - - - diff --git a/internals2/pdo/packaging.xml b/internals2/pdo/packaging.xml deleted file mode 100644 index bfe851a9e8..0000000000 --- a/internals2/pdo/packaging.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - パッケージングおよび配布 - - パッケージを作成する - - PDO ドライバは PECL 経由で公開します。そのため、PECL - 拡張モジュールにおける通常のルールがすべてあてはまります。 - パッケージを作成するには、正しい形式の - package.xml ファイルを作成したうえで - 以下のコマンドを実行します。 - - - - - - - - これは、PDO_SKEL-X.Y.Z.tgz という名前の - tar ボールを作成します。 - - - - パッケージを公開する前には、それがきちんとビルドできるかどうかを - テストすべきです。config.m4 や - package.xml の記述に間違いがあった場合、 - パッケージは正常に機能しません。以下のコマンドを実行すると、 - インストールは行わずにビルドのみをテストすることができます。 - - - - - - - これがうまく動作することが確認できたら、 - インストールのテストを行います。 - - - - - - - package.xml についての詳細は、PEAR - プログラマむけドキュメント () - を参照ください。 - - - - - パッケージを公開する - - PDO ドライバは PHP Extension Community Library (PECL) 経由で公開します。 - PECL についての情報は - を参照ください。 - - - - diff --git a/internals2/pdo/pdo-dbh-t.xml b/internals2/pdo/pdo-dbh-t.xml deleted file mode 100644 index 0614df17d1..0000000000 --- a/internals2/pdo/pdo-dbh-t.xml +++ /dev/null @@ -1,211 +0,0 @@ - - - - - pdo_dbh_t の定義 - - 明示的に述べられている場合を除き、ドライバからはすべてのフィールドが - 読み込み専用となります。 - -
- pdo_dbh_t - -/* データベースへの接続を表す */ -struct _pdo_dbh_t { - /* ドライバ固有のメソッド */ - struct pdo_dbh_methods *methods; - /* ドライバ固有のデータ */ - void *driver_data; - - /* 認証データ */ - char *username, *password; - - /* true の場合は、このハンドルが指すデータはすべて - * 持続的に割り当てられる */ - unsigned is_persistent:1; - - /* true の場合は、ステートメントを実行するたびに COMMIT を行うかのように - * 動作する。それ以外の場合は COMMIT を手動で実行しなければならない - * */ - unsigned auto_commit:1; - - /* true の場合は、返されるカラムのためのメモリを明示的に確保することが - * 必要となる */ - unsigned alloc_own_columns:1; - - /* true の場合は、commit あるいは rollBack をコールすることができる */ - unsigned in_txn:1; - - /* しかるべきクォート処理をした後での 1 文字の長さの最大値 */ - unsigned max_escaped_char_length:3; - - /* このハンドルをオープンする際に使用されるデータソース文字列 */ - const char *data_source; - unsigned long data_source_len; - - /* グローバルエラーコード */ - pdo_error_type error_code; - - enum pdo_case_conversion native_case, desired_case; -}; - -
- - - - ドライバは、SKEL_handle_factory の中で - これを設定しなければなりません。 - - - - - この項目はドライバが使用します。想定される使用法は、データベースとの - 接続を保つために必要なインスタンスデータへのポインタを - (SKEL_handle_factory 内で) - 格納することです。 - - - - - PDO のコンストラクタに渡すユーザー名およびパスワードです。 - データベースとの接続を初期化する際に、ドライバはこの値を - 使用しなければなりません。 - - - - - これが 1 に設定されている場合、dbh が参照しているすべてのデータや - ドライバが割り当てた構造体はすべて持続的に - 確保しなければなりません。これを実現するのは - 簡単です。通常の emalloc の代わりに - pemalloc を使用し、最後のパラメータとして - このフラグの値を渡せばよいのです。メモリを適切に使用するように - しないと深刻な問題を引き起こし、結果として (いちばんましな場合でも) - プログラムをクラッシュさせ、最悪の場合には攻撃者が悪用可能な状態に - なってしまうでしょう。 - - - どのような理由であれ、もしドライバを持続的に実行することができないのなら - SKEL_handle_factory の中で必ず - このフラグをチェックし、適切なエラーを発生させるようにしましょう。 - - - - - この値は、関数 SKEL_handle_doer および - SKEL_stmt_execute の中でチェックする必要が - あります。これが true の場合はクエリを実行するたびに commit - しなければなりません。ほとんどのデータベースは自動コミットモードを - 提供しており、これを自動的に処理してくれます。 - - - - - データベースクライアントライブラリの API が、呼び出し元が提供する - バッファに取得したデータを格納するようになっている場合、 - SKEL_handle_factory でこのフラグを 1 に - 設定する必要があります。設定しておくと、PDO は - それ以外の場合より早く SKEL_stmt_describer - をコールします。このことによりバッファの大きさを知ることができ、 - データベースクライアントライブラリに対して適切なコールが - できるようになります。 - - - もしデータベースクライアントライブラリの API の実装が、 - ライブラリ自身の内部バッファに格納したデータへのポインタを返す - 実装になっており、フェッチコールの後でそれをコピーして使用すると - いうことならば、この値は 0 のままにしておきます。 - - - - - もしドライバがネイティブのプリペアドステートメントをサポートしない - (supports_placeholders が - PDO_PLACEHOLDER_NONE となっている) - 場合、SKEL_handle_quoter 関数によって - 1 文字の長さが最大どれだけになるかをこの値に設定する必要があります。 - この値は、PDO がステートメントを実行する際に必要なバッファの領域を - 計算するために使用されます。 - - - - - これは、PDO のコンストラクタに渡す DSN の値を保持します。 - もし何らかの理由でドライバが DSN を変更する必要がある場合は、 - SKEL_handle_factory の中で更新しなければ - なりません。このメンバを変更することは避けるべきです。 - もし変更する際には、data_source_len - が正しい値であることを確かめる必要があります。 - - - - - ドライバのメソッドのコール中にエラーが発生した場合は、エラーの内容に - 該当する SQLSTATE コードをこのメンバに設定し、エラーを返さなければ - なりません。この HOW-TO では、エラーが検出された際には - SKEL_handle_error をコールし、そこでエラーコードを - 設定するという手法を推奨します。 - - - - - この値は SKEL_handle_factory の中で - 設定しなければなりません。この値は、結果セット内のカラム名を - データベースがどのように返すかを表します。クエリで指定された - とおりに大文字小文字を使用する場合は、この値を - PDO_CASE_NATURAL (デフォルト値です) - に設定します。カラム名をつねに大文字で返す場合は、この値を - PDO_CASE_UPPER に設定します。 - カラム名をつねに小文字で返す場合は、この値を - PDO_CASE_LOWER に設定します。 - ここで設定した値は、ユーザーが PDO_ATTR_CASE - 属性を設定した場合に PDO が大文字小文字変換をすべきかどうかを - 決定するために使用されます。 - - - -
- diff --git a/internals2/pdo/pdo-stmt-t.xml b/internals2/pdo/pdo-stmt-t.xml deleted file mode 100644 index 6cbe9f3015..0000000000 --- a/internals2/pdo/pdo-stmt-t.xml +++ /dev/null @@ -1,154 +0,0 @@ - - - - - pdo_stmt_t の定義 - - 明示的に述べられている場合を除き、ドライバからはすべてのフィールドが - 読み込み専用となります。 - -
- pdo_stmt_t - -/* プリペアドステートメントを表す */ -struct _pdo_stmt_t { - /* ドライバ固有 */ - struct pdo_stmt_methods *methods; - void *driver_data; - - /* true の場合は、すくなくとも 1 回はこのステートメントの実行に - * 成功していることを表す */ - unsigned executed:1; - /* true の場合は、ステートメントがプレースホルダをサポートしており - * プリペアドステートメント用に bindParam() を実装できることを表す - * false の場合は、プリペアおよびバインドを PDO がエミュレートする - * 必要があることを表す */ - unsigned supports_placeholders:2; - - /* 結果セットのカラム数。ステートメントがすくなくとも 1 度実行される - * までは有効な値は設定されない。時には、(ドライバレベルでの) - * フェッチがコールされるまでは有効にならないこともある。 - * */ - int column_count; - struct pdo_column_data *columns; - - /* このステートメントが準備された dbh を指す */ - pdo_dbh_t *dbh; - - /* 入力バインドパラメータを指す。ドライバの中には入出力パラメータを - * サポートしているものもあるが、その動作に依存することはできない */ - HashTable *bound_params; - /* 名前から位置への置き換えを行う際に、このマップを使用する */ - HashTable *bound_param_map; - /* 結果セット内で名前で指定した (あるいは位置で指定した) カラムに - * 関連付けた PHP 変数を指す */ - HashTable *bound_columns; - - /* 意味のある値が設定されていない場合もある */ - long row_count; - - /* ステートメントの現在のクエリを保持する */ - char *query_string; - int query_stringlen; - - /* バインド変数を展開した後のクエリのコピーで、 - * ドライバがプリペアドステートメントをエミュレートしている - * 場合にのみ使用する */ - char *active_query_string; - int active_query_stringlen; - - /* カーソル固有のエラーコード */ - pdo_error_type error_code; - - /* ドライバ固有のパラメータ命名規則 (例: pgsql ドライバ) - * のためにクエリパーサが使用する */ - const char *named_rewrite_template; -}; - -
- - - - ドライバは、SKEL_handle_preparer の中で - これを設定しなければなりません。 - - - - - この項目はドライバが使用します。想定される使用法は、データベースとの - 接続を保つために必要なインスタンスデータへのポインタを - (SKEL_handle_factory 内で) - 格納することです。 - - - - - ステートメントが最初に実行された後に、PDO がこれを設定します。 - ドライバは、この値を調べることで初回にのみ必要な処理を飛ばす - 最適化を行います。 - - - - - 詳細は で説明します。 - - - - - 結果セット内のカラム数を、ドライバがこのフィールドに設定します。 - 通常これは SKEL_stmt_execute で設定しますが、 - データベースの実装によっては SKEL_stmt_fetch - を最低 1 回コールするまではカラム数がわからないことがあります。 - SKEL_stmt_next_rowset を実装するドライバで - 新しい行セットが使用可能になった場合、ドライバはカラム数を更新する必要があります。 - - - - - カラム数に設定した値に応じて、PDO がこのフィールドを確保します。 - SKEL_stmt_describe の中で、各カラムの内容を - 設定する必要があります。各カラムについて設定する必要があるのは、 - precisionmaxlen、 - namenamelen および - param_type です。 - name は、emalloc - を使用して確保することが期待されています。PDO は、しかるべき時に - efree を実行します。 - - - -
- diff --git a/internals2/pdo/preparation.xml b/internals2/pdo/preparation.xml deleted file mode 100644 index 90199a1cbc..0000000000 --- a/internals2/pdo/preparation.xml +++ /dev/null @@ -1,192 +0,0 @@ - - - - - 準備 - - ソースディレクトリの構造 - - - 典型的な PDO ドライバのソースディレクトリは以下のようになっています。 - ここで、SKEL はドライバが接続しようとしている - データベース名の短縮形式を表します。ここでは SKEL が大文字で - 表記されていますが(存在をはっきりさせるためです)、実際は - 小文字を使用するのが慣例です。 - - - - - これらのファイルの内容については、この文書の後半で説明します。 - - - 雛形の作成 - - - 開発を始めるにあたっての最もお手軽な方法は、PHP ビルドツリーの - ext ディレクトリにあるシェルスクリプト - ext_skel を使用することです。 - このスクリプトは、上で挙げた多くのファイルを含む雛形ディレクトリを - 作成します。スクリプトは、ext ディレクトリの - 中で以下のように実行します。 - - - - - - これにより pdo_SKEL というディレクトリが作成され、その中に - これから書き換えていく元となるファイルが作成されます - 次に、このディレクトリを PHP のエクステンションディレクトリに - 移動します。PDO は PECL 拡張モジュールなので、標準的な - エクステンションディレクトリには含まれません。 - PHP および PDO がインストールされていれば、どのディレクトリからでも - ビルドすることが可能です。 - - - - 標準的な include ファイル - - ビルド固有のヘッダ - - configure の際に、ドライバのビルドに使用するプラットフォーム固有の - ヘッダファイル config.h が作成されます。このヘッダが存在する場合、 - コンパイラ変数 HAVE_CONFIG_H が設定されます。コンパイル時には - この変数が存在するかどうかが調べられ、もし設定されていれば - config.h が include されます。 - - - - PHP のヘッダ - - 各ソースモジュールには、以下の標準 PHP ヘッダが include されます。 - - - - php.h - - - php_ini.h - - - ext/standard/info.h - - - - - PDO インターフェイスのヘッダ - - 各ソースモジュールには、以下の標準 PDO ヘッダファイルも include されます。 - - - - pdo/php_pdo.h - - - このヘッダファイルには、ドライバの初期化やシャットダウンのための - 関数の定義やグローバル PDO 変数の定義が含まれます。 - - - - - pdo/php_pdo_driver.h - - - このヘッダには、PDO ドライバを書く際に使用する型や API の規約が - 含まれます。PDO レイヤへのコールバックの定義、PDO にドライバを - 登録したり登録を解除したりする関数の定義も含まれます。 - 最も重要なものとして、このヘッダファイルには PDO データベース - ハンドルやステートメントの型定義が含まれています。 - ドライバが主に使用する 2 つの構造体 - pdo_dbh_t および pdo_stmt_t については、それぞれ - 付録 A および B で詳細に説明します。 - - - - - - - ドライバ固有のヘッダ - - 典型的な PDO ドライバは 2 つのヘッダファイルを保持しており、ここに - データベースの実装に依存する内容が記述されます。実装内容によって - これが変わることがあってもかまいませんが、規約では以下の 2 つの - ヘッダが標準となっています。 - - - - php_pdo_SKEL.h - - - このヘッダファイルは、先ほど挙げた pdo/php_pdo.h の機能と内容を - 完全に複製したもので、データベースに応じて変更していきます。 - ドライバがグローバル変数を使用する場合、マクロ - ZEND_BEGIN_MODULE_GLOBALS および ZEND_END_MODULE_GLOBALS を - 使用してそれを定義しておく必要があります。これらの変数に - アクセスする際に、マクロが使用されます。このマクロは - 通常は PDO_SKEL_G(v) という名前で、v がアクセスされる - グローバル変数となります。 - 詳細な情報は、Zend のプログラマ向けドキュメントを参照ください。 - - - - - php_pdo_SKEL_int.h - - - このヘッダファイルには、ドライバの実装固有の型定義や関数宣言が - 含まれます。また、データベース固有の構造体 pdo_SKEL_handle - および pdo_SKEL_stmt の定義も含みます。これらは private - 構造体で、ハンドル構造体やステートメント構造体のメンバ - driver_data として参照されます。 - - - - - - - オプションのヘッダ - - ドライバの実装方法によっては、以下のヘッダを include する - 必要があるかもしれません。 - - - -]]> - - - - - diff --git a/internals2/pdo/prerequisites.xml b/internals2/pdo/prerequisites.xml deleted file mode 100644 index 19f1b4706b..0000000000 --- a/internals2/pdo/prerequisites.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - 要件 - - PDO データベースドライバを書くために必要な条件は、以下のとおりです。 - - - - - 対象となるデータベースの稼働環境・例・デモなど、ベンダの仕様どおりに - 動作するもの。 - - - - 開発環境 - - - - その他の Unix: ベンダが提供する標準開発ツールに加え、 - GNU の開発ツールセット - - - - - Linux: 標準的な開発ツール、gcc・ld・make・autoconf・automake - など…。ディストリビューションに応じたバージョンのもの - - - - Win32: Visual Studio コンパイラ - - - - - - PHP バージョン 5.0.3 以降および PEAR バージョン 1.3.5 以降の環境 - - - - - PDO の動作環境 ('sudo pecl install PDO' を使用してインストール - できます)。ここには PDO の型定義や関数定義にアクセスするための - ヘッダが含まれます - - - - C 言語についての十分な知識 - - - - PHP の拡張モジュールを書く方法についての十分な知識。 - George SchlossnagleAdvanced PHP Programming - (Developer's Library 発行、第 21 章および第 22 章) - がお勧めです。 - - - - - 最後に、PHP の心臓部である Zend API に (特にメモリ管理の面で) - 習熟していること。 - - - - - diff --git a/internals2/pdo/testing.xml b/internals2/pdo/testing.xml deleted file mode 100644 index f2a071ebd5..0000000000 --- a/internals2/pdo/testing.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - テスト - - PDO のドライバをリリースする前には「コア」テストをパスする必要があります。 - このテストは PHP のソース配布物から実行するように設計されており、 - ドライバのテストを行うには多少の手続きが必要になります。最新の PHP 5.1 - スナップショットを取得し、以下の手順で進めることを推奨します。 - - - - - これにより、テストを実行するためのハーネスをセットします。 - 次にすべきことは、PDO の共通コアテストにリダイレクトするテストを - 作成することです。このファイルの名前は - common.phpt とし、 - ext_skel で雛形を作成したときに同時に作成された - tests ディレクトリの中に置かなければなりません。 - このファイルの中身は以下のようになります。 - - ---REDIRECTTEST-- -if (false !== getenv('PDO_SKEL_TEST_DSN')) { -# user set them from their shell - $config['ENV']['PDOTEST_DSN'] = getenv('PDO_SKEL_TEST_DSN'); - $config['ENV']['PDOTEST_USER'] = getenv('PDO_SKEL_TEST_USER'); - $config['ENV']['PDOTEST_PASS'] = getenv('PDO_SKEL_TEST_PASS'); - if (false !== getenv('PDO_SKEL_TEST_ATTR')) { - $config['ENV']['PDOTEST_ATTR'] = getenv('PDO_SKEL_TEST_ATTR'); - } - return $config; -} -return array( - 'ENV' => array( - 'PDOTEST_DSN' => 'SKEL:dsn', - 'PDOTEST_USER' => 'username', - 'PDOTEST_PASS' => 'password' - ), - 'TESTS' => 'ext/pdo/tests' - ); -]]> - - - これは共通コアテストを実行し、 - PDOTEST_DSNPDOTEST_USER および - PDOTEST_PASS をそれぞれ PDO コンストラクタの - パラメータ dsnusername - および password として渡します。 - テストハーネスの実行時には、まずはじめに環境変数をチェックします。 - もし存在すれば、テストファイル内にハードコーディングされた条件の - かわりにそれらの適切な値を渡すようにします。 - - - - テストハーネスは以下のように起動します。 - - - - - - diff --git a/internals2/resources/index.xml b/internals2/resources/index.xml deleted file mode 100644 index 8afb851fbe..0000000000 --- a/internals2/resources/index.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - リソースの作成 - - このセクションでは、ハッカー向けに PHP のリソースの概念や使い方を解説します。 - - - - diff --git a/internals2/streams/index.xml b/internals2/streams/index.xml deleted file mode 100644 index 3ead8d8ef6..0000000000 --- a/internals2/streams/index.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - ストリームの作成 - - - - PHP のソースコードからストリームを使う方法についての情報は、 - PHP 拡張モジュールの作者用のストリーム API リファレンス - にあります。 - - - - - - diff --git a/internals2/structure/basics.xml b/internals2/structure/basics.xml deleted file mode 100644 index 81ac922900..0000000000 --- a/internals2/structure/basics.xml +++ /dev/null @@ -1,164 +0,0 @@ - - - - - 基本構造 - - - C 言語は、非常に低レベルなレイヤーを今風に扱えるようにした言語です。 - PHP のように組み込みでさまざまな機能が用意されているわけではありません。 - リフレクションや動的モジュール読み込み、範囲チェック、 - スレッドセーフなデータ管理、さまざまなデータ構造 - (リンクリストやハッシュテーブルなど) は組み込みの機能としては用意されていません。 - と同時に、C 言語はプログラミング言語としての一般的な機能はすべて兼ね備えています。 - それなりに努力しさえすれば、先ほどあげた内容はすべて実現可能です。 - 実際、Zend Engine ではこれらをすべて利用することができます。 - - - - Zend API を、拡張しやすくかつわかりやすいものにするためにさまざまな努力を重ねてきました。 - しかし、C 言語はどんな拡張に対しても何らかの宣言が必要となるものであり、 - 不慣れな人が見ると冗長に感じたり説明不足に感じたりすることは避けられません。 - これから説明していくこれらの言語構造は、Zend Engine 2 や 3 においては - "一度書いたらあとは忘れてしまってよい" ものです。 - ここで示すのは、PHP 5.3 の ext_skel で生成したファイル - php_counter.h および counter.c - の抜粋です。どのような宣言が生成されるのかをごらんください。 - - - - - 勘のいい方ならお気づきでしょうが、 - 実際のファイルにはここであげた以外にもいくつかの宣言があります。 - これらの宣言は Zend サブシステム群に固有のものであり、 - ここで説明するのは適切ではありません。 - - - - -= 4 -# define PHP_COUNTER_API __attribute__ ((visibility("default"))) -#else -# define PHP_COUNTER_API -#endif - -#ifdef ZTS -#include "TSRM.h" -#endif -]]> - - - - - - - counter_module_entry の行では、 - グローバル変数とそれを指すポインタのマクロを宣言しています。 - ここにはその拡張モジュール用の - zend_module_entry が格納されます。 - 後で説明するように "真の" グローバル変数には弱点もありますが、 - ここでの使用は意図的なものです。 - この変数を誤用しないよう、Zend では予防措置を行っています。 - - - - - PHP_COUNTER_API は、PHP 以外の関数から使用するために宣言しているものです。 - 他のモジュールから使わせるためにエクスポートすることを想定しています。 - counter 拡張モジュールではこれを宣言していないので、 - 最終版のヘッダファイルではこのマクロを取り除きます。 - PHPAPI マクロは完全に別の場所で宣言されており、 - 標準のモジュールが phpinfo - 関数を実行する際に使用します。 - - - - - PHP あるいは拡張モジュールをスレッドセーフ環境でコンパイルしない場合は - TSRM は使用しません。そのため TSRM.h - のインクルードは不要です。 - - - - - 標準のインクルードファイル群として、特にその拡張モジュール自身の - php_counter.h が存在します。 - config.h は、configure - が決定した結果にアクセスできるようにするものです。 - php.h は、 - PHP や Zend API との橋渡しを担当します。 - php_ini.h は、実行時設定 (INI) - エントリ用の API を追加します。 - すべての拡張モジュールがこれを使うというわけではありません。 - 最後に、ext/standard/info.h が上記の - phpinfo API をインポートします。 - - - - - COMPILE_DL_COUNTERconfigure - で定義されるのは、counter 拡張モジュールが有効になっており、 - かつ PHP への静的リンクではなく動的ロードモジュールとしてビルドする場合のみです。 - ZEND_GET_MODULE で定義するちょっとした関数を使用して、 - Zend はその拡張モジュールの - zend_module_entry を実行時に取得します。 - - - - counter モジュールを静的にビルドしようとして - main/php_config.h を調べた人の中には - HAVE_COUNTER - という定数が定義されていることにお気づきのかたもおられるかもしれません。 - この定数はソースコードのどこでも用いられていません。 - 理由は簡単で、このチェックは行われないからです。 - このチェックは不要なのです。 - 拡張モジュールが有効になっていなければ、 - そのファイルがコンパイル対象となることはないからです。 - - - - - - - - diff --git a/internals2/structure/files.xml b/internals2/structure/files.xml deleted file mode 100644 index 07e9517596..0000000000 --- a/internals2/structure/files.xml +++ /dev/null @@ -1,165 +0,0 @@ - - - - - 拡張モジュールを構成するファイル群 - - 手作業で作ったか ext_skel を使用したか、 - あるいは CodeGen - のようなツールを用いたのかにかかわらず、 - すべての拡張モジュールには少なくとも次の 4 つのファイルが含まれます。 - - - - - config.m4 - - - UNIX ビルドシステムの設定ファイル - ( を参照ください)。 - - - - - - config.w32 - - - Windows ビルドシステムの設定ファイル - ( を参照ください)。 - - - - - - php_counter.h - - - 拡張モジュールを PHP バイナリに静的モジュールとして組み込む場合は、 - php_ の後に拡張モジュールの名前を続けたヘッダファイルに - その拡張モジュールの構造についての宣言があるものとします。 - 通常は、このファイルに記述するのは、 - マクロやプロトタイプ宣言、グローバル変数といった他のヘッダと同じ内容です。 - - - - - - counter.c - - - 拡張モジュールのソースファイル。 - 規約上は拡張モジュールの名前と同じ名前にすることになっていますが、 - これは必須ではありません。このファイルに含まれる内容は、 - モジュールの構造体定義や INI エントリ、 - 管理用関数、ユーザーに公開する関数、その他拡張モジュールに必要となるものです。 - - - - - - - ビルドシステム関連のファイルについては別の場所で説明することにして、 - ここでは残りのファイルについて取り上げます。 - これらの 4 つのファイルはあくまでも必要最小限のものであり、 - 実際にはこれら以外にもさまざまなヘッダファイルやソースファイル、 - ユニットテストなどのファイルが含まれることになるでしょう。 - counter 拡張モジュールのファイル一覧は、このようになります。 - - - - counter 拡張モジュールのファイル一覧 (順不同) - - - - - - - ソース以外のファイル - - 作成した拡張モジュールを PHP の Subversion - リポジトリ (通常は &link.pecl;) にチェックインする際には、 - .svnignore というファイルを使用します。 - ext_skel が作成するこのファイルの雛形は、 - 次のようになります。 - - - - - - - - - - これは、PHP のビルドシステムが作成する中間ファイルを無視するよう - Subversion に指示するためのものです。 - 単に利便性のためだけに存在するものであり、 - 省略しても悪影響はありません。 - - - - CREDITS ファイルには、 - その拡張モジュールの開発に協力してくれた人たちやメンテナの情報を - プレーンテキストで記述します。このファイルの主要な目的は、 - バンドルされている拡張モジュールが phpcredits - で使用する情報を作成することにあります。 - このファイルの最初の行には拡張モジュールの名前、 - そしてその次の行には協力者をカンマ区切りで指定します。 - 協力者の一覧は、通常は開発に参加した順に並べます。 - &link.pecl; パッケージでは、これらの情報はすでに - package.xml などで管理されています。 - ですので、このファイルを省略しても特に問題はありません。 - - - - package.xml ファイルは、&link.pecl; - 拡張モジュールに特有のものです。これはメタ情報ファイルであり、 - その拡張モジュールの依存性や作者、インストール要件などの情報を含みます。 - 拡張モジュールを &link.pecl; で公開するつもりがないのであれば、 - このファイルは不要です。 - - - - - - diff --git a/internals2/structure/globals.xml b/internals2/structure/globals.xml deleted file mode 100644 index 4a34888bc2..0000000000 --- a/internals2/structure/globals.xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - - 拡張モジュールのグローバル変数 - - - PHP 拡張モジュールのグローバル変数とは - - - C のような言語における "グローバル" 変数とは、 - 特別な宣言をしなくてもすべての関数からアクセスできる変数のことです。 - この昔ながらのグローバル変数には、いくつかの弱点があります。 - - - - - - - コンパイラに特別なオプションを設定しない限り、 - グローバル変数はプログラム内の任意の場所からアクセスしたり変更したりできるようになります。 - 実際にコード中でそれが必要になるかどうかにかかわらずです。 - - - - - - 標準的なグローバル変数はスレッドセーフではありません。 - - - - - - 変数そのものだけでなく、グローバル変数の名前もグローバルとなります。 - - - - - - - PHP 拡張モジュールのグローバル変数は、どちらかというと - "extension state (拡張モジュールの状態)" と呼んだほうが適切でしょう。 - ほとんどのモジュールは、関数コールの間に自分が何をしているのかを覚えておく必要があるからです。 - "counter" 拡張モジュールは、その最たる例でしょう。 - 基本インターフェイスでは、カウンタの値を永続化させています。 - Zend や PHP にあまりなじみのないプログラマのみなさんは、counter.c - で値を保存するときにこんな風にしてしまいがちです。 - - - - カウンタの基本インターフェイスで値を保存するときの間違った方法 - - - - - - - 上っ面だけ見ればこれは正しそうに見えるでしょうし、 - 実際のところ単純なテストでは正しく動作します。 - しかし、複数の PHP が同一スレッドで動作することもよくあります。 - そんな場合は counter モジュールの複数のインスタンスが存在することになります。 - そして複数のスレッドが同じカウンタの値を共有することになりますが、 - これが望ましい結果でないことは明らかです。 - さらに別の問題もあります。別の拡張モジュールが - ある日たまたま同じ名前のグローバル変数を持つことになったとしましょう。 - C のスコープの規則では、この場合コンパイルが失敗してしまう可能性があります。 - さらに悪いことに、実行時エラーとなる可能性もあります。 - 少し頭を使う必要があるでしょう。 - そこで Zend では、スレッドセーフなモジュール単位のグローバル変数をサポートしています。 - - - - - - モジュール単位のグローバルの宣言 - - - そのモジュールで使うグローバル変数がひとつであろうと大量であろうと、 - それを構造体の中で定義したうえで構造体を宣言しなければなりません。 - モジュール間での名前の衝突を防いでそれを支援するマクロが - ZEND_BEGIN_MODULE_GLOBALS や - ZEND_END_MODULE_GLOBALS そして - ZEND_DECLARE_MODULE_GLOBALS です。 - これらのマクロに渡すパラメータはモジュールの短い名前で、 - counter モジュールの場合は "counter" となります。 - php_counter.h でのグローバル構造体の宣言の例を示します。 - - - - counter モジュールのグローバル変数 - - - - - - - そして、これが counter.c での宣言です。 - - - - counter モジュールのグローバル構造体宣言 - - - - - - - - - モジュールグローバルへのアクセス - - - 先ほど説明したように、モジュール単位のグローバルは C - の構造体の内部で宣言されており、その名前は Zend マクロで隠蔽されています。 - 構造体のメンバーにアクセスするための最もよい方法は、 - これらのマクロを使用することです。 - したがって、ほとんどすべてといっていいほどの拡張モジュールには、 - ヘッダファイルのどこかに次のような宣言があります。 - - - - モジュール単位のグローバルにアクセスするためのマクロ - - - - - - - - これは Zend API によって Zend マクロに一般化されるようになるかもしれません。 - しかし PHP 5.3 の時点では (そして執筆時点では PHP 6 でも)、 - まだそのようにはなっていません。 - グローバルへのアクセサは、 - ext_skel がヘッダに書き込みます。 - 開発者がそのマクロの名前を変更しようとしない限り、通常はそのままにしておきます。 - - - - - - COUNTER_G は - ext_skel がつけたマクロ名ですが、 - この名前でなければならないというわけではありません。たとえば - FOO などに変更してもかまいません。 - - - - - したがって、counter 拡張モジュールのコード内でグローバルにアクセスするには必ず - COUNTER_G マクロを使用しなければなりません。 - - - - - グローバルにアクセスする関数は、Zend マクロで宣言するか最後の引数を - TSRMLS_DC にするか、 - あるいはグローバルにアクセスする前に - TSRMLS_FETCH マクロをコールするようにしなければなりません。 - 詳細は - TSRM のドキュメント - を参照ください。 - - - - - これらすべてを考慮すると、 - counter_get の新しいバージョンはこのようになります。 - - - - 正しい方法での基本カウンタインターフェイスの値の保存 - - - - - - - これは正しい実装です。しかし、完全なものではありません。その理由は - で説明します。 - - - - - - - diff --git a/internals2/structure/index.xml b/internals2/structure/index.xml deleted file mode 100644 index 441085e7e0..0000000000 --- a/internals2/structure/index.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - 拡張モジュールの構造 - - 拡張モジュールの作成方法を説明した文書の多くは、 - 「まずはシンプルな例からはじめましょう」式のものであり、 - 実際に複雑なものを実装していくにあたって必要となる箇所の多くを省略しています。 - その結果、新しい機能を説明するたびに - これまでの内容を何度も何度も繰り返すというはめに陥ってしまっています。 - このセクションでは、そのようなものではなく、 - 実用に耐えうるレベルに作りこんだ拡張モジュールの構造を説明していきます。 - 実際に拡張モジュールを作成するにあたって出会うであろうさまざまな問題への対処法もわかることでしょう。 - - - &internals2.structure.files; - &internals2.structure.basics; - &internals2.structure.modstruct; - &internals2.structure.globals; - &internals2.structure.lifecycle; - &internals2.structure.tests; - - - - diff --git a/internals2/structure/lifecycle.xml b/internals2/structure/lifecycle.xml deleted file mode 100644 index f9d327706e..0000000000 --- a/internals2/structure/lifecycle.xml +++ /dev/null @@ -1,224 +0,0 @@ - - - - - 拡張モジュールのライフサイクル - - - PHP の拡張モジュールは、そのライフサイクルにおいていくつかの段階をたどります。 - これらの段階を通じて、開発者はさまざまな初期化や後処理そして情報の取得などを行います。 - Zend API には、拡張モジュールの 5 つの段階のそれぞれに対するフックがあります。 - これらは PHP の関数からコールされるのとは別のものです。 - - - - ロード、アンロードそしてリクエスト - - - Zend エンジンは、クライアントからのひとつあるいは複数の "リクエスト" - を処理します。昔ながらの CGI の実装では、 - このリクエストごとにひとつのプロセスを実行します。 - しかし、それ以外の多くの実装 (有名どころでは Apache モジュールなど) - では、複数のリクエストを単一の PHP プロセスに関連付けることができます。 - したがって、PHP の拡張モジュールはその生存期間中に多くのリクエストを処理することもありえます。 - - - - - 概要 - - - - - Zend API では、モジュールがメモリにロードされるのは対応する - PHP プロセスが立ち上がる際だけです。 - 各モジュールは、zend_module - 構造体で定義された "モジュール初期化" - 関数をロード時に実行します。 - - - - - - 対応する PHP プロセスがクライアントからのリクエストの処理を開始する - (つまり、PHP インタプリタが動き始める) ときには、 - 各モジュールは zend_module - 構造体で定義された "リクエスト初期化" - 関数を実行します。 - - - - - - 対応する PHP プロセスがリクエストの処理を終了したときには、 - 各モジュールは zend_module - 構造体で定義された "リクエスト後処理" - 関数を実行します。 - - - - - - 対応する PHP プロセスが終了する際に、 - モジュールも順にメモリからアンロードされます。そのときには、 - 各モジュールは zend_module - 構造体で定義された "モジュール後処理" - 関数を実行します。 - - - - - - - - 何をどこでするのか - - - これら 4 つのポイントでは、多くの作業が行われます。 - この表では、一般的な初期化と後処理がどこで行われるのかをまとめます。 - - - - 何をどこでするのか - - - - モジュールの初期化/後処理 - リクエストの初期化/後処理 - - - - - モジュールグローバル変数の割り当て/解除と初期化 - - リクエスト固有の変数の割り当て/解除と初期化 - - - - クラスエントリの登録/解除 - - - - INI エントリの登録/解除 - - - - 定数の登録 - - - - -
- -
- - - <function>phpinfo</function> コールバック - - - グローバルの初期化や実際に使われるコールバックとは別に、 - モジュールのライフサイクルにかかわるものがもうひとつあります。 - phpinfo のコールです。 - ユーザーがこれをコールした際の出力には、 - コールした時点で PHP インタプリタに読み込まれている各拡張モジュールからの出力が含まれます。 - 結果が HTML であるかそれ以外であるかにはかかわりません。 - - - - 各フォーマットに依存しない出力を得るために、ヘッダファイル - "ext/standard/info.h" に関数の配列が含まれており、 - これらを用いて標準化された表示要素を生成します。 - 特に、以下のいくつかの関数で、おなじみの表を作成します。 - - - - - php_info_print_table_start - - - phpinfo 出力用のテーブルを開きます。 - パラメータは受け取りません。 - - - - - php_info_print_table_header - - - phpinfo 出力用のテーブルヘッダを表示します。 - 1 つのパラメータとしてカラム数を受け取り、それと同じ数の - char * パラメータで各カラムヘッダのテキストを受け取ります。 - - - - - php_info_print_table_row - - - phpinfo 出力用のテーブルの行を表示します。 - 1 つのパラメータとしてカラム数を受け取り、それと同じ数の - char * パラメータで各カラムのテキストを受け取ります。 - content. - - - - - php_info_print_table_end - - - 事前に - php_info_print_table_start で開いたテーブルを閉じます。 - パラメータは受け取りません。 - - - - - - - これら 4 つの関数を使用すると、拡張モジュールのほぼすべての機能の情報を出力することができます。 - これは、counter 拡張モジュールの情報出力用コールバックです。 - - - - counter の PHP_MINFO 関数 - - - - - - -
- - diff --git a/internals2/structure/modstruct.xml b/internals2/structure/modstruct.xml deleted file mode 100644 index 31c92709ef..0000000000 --- a/internals2/structure/modstruct.xml +++ /dev/null @@ -1,602 +0,0 @@ - - - - - zend_module 構造体 - - PHP 拡張モジュールのソースファイルの中には、 - C プログラマにとって目新しいものがいくつか含まれています。 - これらの中でも最も重要であり、 - 拡張モジュールを開発するにあたって最初にさわることになるのが - zend_module 構造体です。 - この構造体には豊富な情報が格納されており、 - その拡張モジュールの依存性やバージョン、コールバック、 - その他重要なデータを Zend Engine に伝える役割を果たします。 - この構造体の中身は、何度も大幅に変更されています。 - ここでは、PHP 5.2 の時点の情報をもとにして説明します。 - PHP 5.3 では少々変更されている点もあります。 - - - - counter.c での zend_module - の宣言は、次のようになります。これは、 - ext_skel --extname=counter - で生成したものをもとにして、既に存在しないいくつかの構造体を削除したものです。 - - - - counter 拡張モジュールにおける zend_module の宣言部 - - - - - - - 最初はちょっとひるむかも知れませんが、 - 大半の部分はよく見れば非常に単純です。 - 次に示すのは、PHP 5.3 の zend_modules.h - における zend_module の宣言部です。 - - - - PHP 5.3 における zend_module の定義 - - - - - - - これらのフィールドの多くは、決して拡張モジュールの作者が触ることはありません。 - 数多くのマクロが標準で用意されており、 - そのマクロが適切な値を自動的に設定します。 - STANDARD_MODULE_HEADER マクロは、 - deps フィールドまでのすべての内容を埋めます。 - 一方 STANDARD_MODULE_HEADER_EX は - deps フィールドを空のままにしておき、 - 開発者が使えるようにします。name から - version までのすべてのフィールドは、開発者が設定する必要があります。 - その後、STANDARD_MODULE_PROPERTIES - マクロで構造体の残りのフィールドを埋めます。あるいは - STANDARD_MODULE_PROPERTIES_EX マクロを使用すると、 - extension global と post-deactivation function のフィールドを空のままにします。 - いまどきの拡張モジュールのほとんどは、モジュールグローバルを使用します。 - - - - - ショートカットマクロに頼らず、構造体のフィールドをすべて自分で設定したい場合は、 - この表の値を使用します。 - これはお勧めしません。 - そのフィールドの "正しい" 値は変わる可能性があります。 - 可能な限りマクロを使用するようにしましょう。 - - - - - モジュール構造体のフィールドの値 - - - - フィールド - - 説明 - - - - - - - size - - - このフィールドは、モジュール開発者が使うものではありません。 - - - - - このフィールドは STANDARD_MODULE_HEADER_EX が設定します。 - - - - - このフィールドは STANDARD_MODULE_HEADER が設定します。 - - - - sizeof(zend_module_entry) - - この構造体の大きさ (バイト数)。 - - - - - - zend_api - - - - - ZEND_MODULE_API_NO - - モジュールをコンパイルした Zend API のバージョン。 - - - - - - zend_debug - - - - - ZEND_DEBUG - - モジュールがデバッグモードでコンパイルされていることを示すフラグ。 - - - - - - zts - - - - - USING_ZTS - - モジュールが ZTS (TSRM) を有効にしてコンパイルされていることを示すフラグ - ( を参照ください)。 - - - - - - ini_entry - - - - &null; - - このポインタは Zend の内部で用い、 - モジュールで宣言した非ローカルの INI エントリへの参照を保持します。 - - - - - - deps - - - &null; - - モジュールの依存性一覧へのポインタ。 - - - - - - name - - "mymodule" - - モジュールの名前。これは - "spl" あるいは "standard" - のような短い名前です。 - - - - - - functions - - mymodule_functions - - モジュールの関数テーブルへのポインタ。 - Zend は、これを使用してモジュール内の関数をユーザー空間に公開します。 - - - - - - module_startup_func - - PHP_MINIT(mymodule) - - コールバック関数です。Zend は、特定の PHP インスタンスで - そのモジュールが最初にロードされるときにこれをコールします。 - - - - - - module_shutdown_func - - PHP_MSHUTDOWN(mymodule) - - コールバック関数です。Zend は、特定の PHP インスタンスから - そのモジュールがアンロードされるとき (通常は最後のシャットダウン時) にこれをコールします。 - - - - - - request_startup_func - - PHP_RINIT(mymodule) - - コールバック関数です。Zend は、各リクエストの開始時にこれをコールします。 - これは、可能な限り短くするか NULL にしておかなければなりません。 - リクエストのたびにこれをコールするコストがかかるからです。 - - - - - - request_shutdown_func - - PHP_RSHUTDOWN(mymodule) - - コールバック関数です。Zend は、各リクエストの終了時にこれをコールします。 - これは、可能な限り短くするか NULL にしておかなければなりません。 - リクエストのたびにこれをコールするコストがかかるからです。 - - - - - - info_func - - PHP_MINFO(mymodule) - - コールバック関数です。Zend は、phpinfo - 関数がコールされたときにこれをコールします。 - - - - - - version - - NO_VERSION_YET - - モジュールのバージョンを表す文字列。モジュールの作者が指定したものです。 - バージョン番号の形式は、 - version_compare() に対応したもの (たとえば "1.0.5-dev") か - CVS や SVN のリビジョン番号 (たとえば "$Rev$") - にあわせたものにしておくことを推奨します。 - - - - - - globals_size - - - - このフィールドは STANDARD_MODULE_PROPERTIES が設定します。 - - - - - このフィールドは NO_MODULE_GLOBALS が設定します。 - - - - - このフィールドは PHP_MODULE_GLOBALS が設定します。 - - - - sizeof(zend_mymodule_globals) - - このモジュール用のグローバル構造体が存在する場合のサイズ。 - - - - - - globals_id_ptr - - - - - - - このフィールドが存在するのは USING_ZTS が &true; - のときだけです。 - - - - &mymodule_globals_id - - 定数 USING_ZTS が &true; かどうかによって、 - これらふたつのフィールドのうちのいずれかひとつだけが存在します。 - 最初のほうはモジュールのグローバル用の TSRM アロケーションテーブルへのインデックス、 - 後のほうはグローバルへの直接のポインタとなります。 - - - - - - globals_ptr - - - - - - - このフィールドが存在するのは USING_ZTS が &false; - のときだけです。 - - - - &mymodule_globals - - - - - globals_ctor - - - - - PHP_GINIT(mymodule) - - この関数は module_startup_func前に - コールされ、モジュールのグローバルを初期化します。 - - - - - - globals_dtor - - - - - PHP_GSHUTDOWN(mymodule) - - この関数は module_shutdown_func後に - コールされ、モジュールのグローバルを破棄します。 - - - - - - post_deactivate_func - - - ZEND_MODULE_POST_ZEND_DEACTIVATE_N(mymodule) - - この関数は、リクエストの終了処理の後で Zend からコールされます。 - めったに使われることはありません。 - - - - - - module_started - - - - このフィールドは STANDARD_MODULE_PROPERTIES_EX が設定します。 - - - - - 0 - - これらのフィールドは、Zend の内部管理用の情報を扱うために使用します。 - - - - - - type - - - - - 0 - - - - - handle - - - - - &null; - - - - - module_number - - - - - 0 - - - - -
- - - 構造体の設定の実例 - - - これだけ多くのフィールドがあると、 - どれが何のためのものなのかがなかなかわかりにくいものです。 - ここで、サンプルの "counter" 拡張モジュールにおける - zend_module の定義の最終形を見てみましょう。 - - - - Counter 拡張モジュールの定義 - - - - - - - - - このモジュールは他の何にも依存していないので、 - STANDARD_MODULE_HEADER を使用します。 - - - - - - "counter" がこの拡張モジュールの名前で、 - このモジュールが Zend に渡すさまざまなコールバック関数の名前がこれをもとに決まります。 - "counter" は、モジュール、グローバル、そしてリクエスト単位の - 初期化関数とシャットダウン関数を使用し、phpinfo - 用の情報も提供します。したがって、7 つのコールバックをすべて定義することになります。 - - - - - - モジュール定義を含むファイルの前のほうには - zend_function_entry * 型の変数 - counter_functions が定義されているはずです。 - この部分では、そのモジュールがユーザーに公開する関数の一覧が見られます。 - - - - - - NO_VERSION_YET は、そのモジュールにバージョンがないことを - Zend に教えてあげるうまいやりかたです。実際に使用するモジュールの場合は、 - この部分には "1.0" などを入れることになるでしょう。 - - - - - - "counter" はモジュール単位のグローバル変数を使用するので、 - PHP_MODULE_GLOBALS を使用しています。 - - - - - - このモジュールには後処理後の関数がないので、&null; を指定しています。 - - - - - - このモジュールはグローバル変数を 使う ので、 - 構造体の最後には - STANDARD_MODULE_PROPERTIES_EX を使用しています。 - - - - - - - - - 5.2 と 5.3 の違いは? - - - 何もありません。 - PHP 5.2 と PHP 5.3 での zend_module - 構造体の唯一の違いは、いくつかの const キーワードだけです。 - - - - -
- - diff --git a/internals2/structure/tests.xml b/internals2/structure/tests.xml deleted file mode 100644 index 233261ffce..0000000000 --- a/internals2/structure/tests.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - 拡張モジュールのテスト - - - よりよいプログラミングを行うにはテストが必須でしょう。 - PHP では、回帰テスト用のテストハーネスを準備しており、それは - run-tests.php というスクリプトになっています。 - - - - あるモジュール用のテストは、そのモジュールのフォルダ内のサブディレクトリ - tests/ に作成し、拡張子は .phpt - とします。PHPT フォーマットの詳細については - を参照ください。 - - - - - diff --git a/internals2/variables/index.xml b/internals2/variables/index.xml deleted file mode 100644 index b8006ca723..0000000000 --- a/internals2/variables/index.xml +++ /dev/null @@ -1,1035 +0,0 @@ - - - - - - 変数の処理 -
- 変数入門 - - 変数がどのように格納され処理されているのかについてきちんと理解することは、 - ハッカーになるための第一歩です。エンジンは、構造体のさまざまな - フィールドにアクセスするための統一された直感的なマクロを提供することで、 - それがどのような型の変数であっても、その概念の複雑さを隠蔽しようとします。 - この章の中身に沿って学習していけば、ハッカーはPHPの変数に関する - 専門用語やその概念についての理解を深めることができるはずです。 - - - PHPはコピーオンライトや参照カウント法を使う、動的で型の制約がゆるい言語です。 - - - - 前述の内容もう少し正確に言うと、PHPは高水準言語であり、緩い型付けにより変数は - エンジニアの好みに応じて暗黙に解釈され、実行時に必要な型に強制的に変換されます。 - 参照カウント法は、ある変数がユーザーのコードの中でもはや参照されなくなったことを - エンジンが推測し、その変数に関連付けられた構造体を開放するという仕組みです。 - - - PHP内部の変数は、すべてzvalと呼ばれるひとつの構造体で表現されています。 - - - - - - zval_valueは、ひとつの変数が持ちうるすべての型を表現可能な共用体です。 - - - - - - この構造体により、ある変数はいずれかひとつの型を持つことができ、そのデータは - zval_value共用体の中の適切なフィールドによって表現されている - ことがわかります。zval自体に型や参照回数を持ち、 - またその変数がリファレンスかどうかを示すフラグも持っています。 - - - ネイティブ型定数 - - - - 定数 - マッピング - - - - - IS_NULL - 値がセットされていない - - - - IS_LONG - lval - - - - IS_DOUBLE - dval - - - - IS_BOOL - lval - - - - IS_RESOURCE - lval - - - - IS_STRING - str - - - - IS_ARRAY - ht - - - - IS_OBJECT - obj - - - - -
- - - 上記の他にも、定数の配列や callable オブジェクトといった内部的な型を - あらわす定数があるのですが、それらの利用法についてはこのドキュメントでは扱いません。 - - - エンジンが公開しているマクロのうち、zval値で扱えるものを - 以下の表に示します。 - - - - アクセサ・マクロ - - - - プロトタイプ - アクセス - 説明 - - - - - zend_uchar Z_TYPE(zval zv) - type - valueの型を返す - - - - long Z_LVAL(zval zv) - value.lval - - - - - zend_bool Z_BVAL(zval zv) - value.lval - long のvalueを zend_bool にキャスト - - - - double Z_DVAL(zval zv) - value.dval - - - - - long Z_RESVAL(zval zv) - value.lval - リソース一覧におけるvalueの識別子を返す - - - - char* Z_STRVAL(zval zv) - value.str.val - 文字列のvalueを返す - - - - int Z_STRLEN(zval zv) - value.str.len - 文字列valueの文字数を返す - - - - HashTable* Z_ARRVAL(zval zv) - value.ht - ハッシュテーブル(配列)のvalueを返す - - - - zend_object_value Z_OBJVAL(zval zv) - value.obj - オブジェクトのvalueを返す - - - - uint Z_OBJ_HANDLE(zval zv) - value.obj.handle - オブジェクトvalueのオブジェクトハンドルを返す - - - - zend_object_handlers* Z_OBJ_HT_P(zval zv) - value.obj.handlers - オブジェクトvalueのハンドラテーブルを返す - - - - zend_class_entry* Z_OBJCE(zval zv) - value.obj - オブジェクトvalueのクラスエントリを返す - - - - HashTable* Z_OBJPROP(zval zv) - value.obj - オブジェクトvalueのプロパティを返す - - - - HashTable* Z_OBJPROP(zval zv) - value.obj - オブジェクトvalueのプロパティを返す - - - - HashTable* Z_OBJDEBUG(zval zv) - value.obj - オブジェクトに get_debug_info ハンドラがセットされている - 場合はそれが呼ばれ、そうでなければ Z_OBJPROP が呼ばれる - - - - -
- - - の章をチェックして、 - 参照カウント法や参照がどのような仕組みで動いているのかを調べてみてください。 - - - 参照カウントの操作 - - - - プロトタイプ - 説明 - - - - - - zend_uint Z_REFCOUNT(zval zv) - valueの参照カウントを返す - - - - zend_uint Z_SET_REFCOUNT(zval zv) - valueの参照カウントをセットしてそれを返す - - - - zend_uint Z_ADDREF(zval zv) - valueの参照カウントを事前インクリメントしてそれを返す - - - - zend_uint Z_DELREF(zval zv) - valueの参照カウントを事前デクリメントしてそれを返す - - - - zend_bool Z_ISREF(zval zv) - zval が参照かどうかを返す - - - - void Z_UNSET_ISREF(zval zv) - is_ref__gc を 0 にする - - - - void Z_SET_ISREF(zval zv) - is_ref__gc を 1 にする - - - - void Z_SET_ISREF_TO(zval zv, zend_uchar to) - is_ref__gc をtoにする - - - - -
- - - - 前述の Z_* マクロはどれも1個の zval を受け取りますが、これらに _P サフィックス - がついた、たとえばzend_uchar Z_TYPE_P(zval* pzv)のようなマクロも - 定義されていて、これらはすべて zval へのポインタを受け取ります。さらに、たとえば - zend_uchar Z_TYPE_PP(zval** ppzv)のように _PP サフィックスがついた - ものもあり、これらは zval へのポインタのポインタを受け取ります。 - - - - 生成、破壊、分割、コピー - - - - プロトタイプ - 説明 - - - - - - ALLOC_ZVAL(zval* pzval) - pzvalを emalloc する - - - - ALLOC_INIT_ZVAL(zval* pzval) - pzvalを emalloc し、pzvalは初期化のために - NULL として型付けられた zval を指すようにする - - - - MAKE_STD_ZVAL(zval* pzval) - pzvalを emalloc し、参照カウントを - 1にする - - - - ZVAL_COPY_VALUE(zval* dst, zval* src) - srcの値と型をdstの値と型としてセットする - - - - - INIT_PZVAL_COPY(zval* dst, zval*dst) - ZVAL_COPY_VALUE を実行し、dstの参照カウントを 1 にし、 - is_ref__gc を0にする - - - - SEPARATE_ZVAL(zval** ppzval) - ppzvalの参照カウントが 1 より大きい場合、新たに emalloc - して zval の中身をコピーし、zval と同じ型で同じ値にした場所を - *ppzvalが指すようにする - - - - SEPARATE_ZVAL_IF_NOT_REF(zval** ppzval) - *ppzvalが参照ではない場合、ppzvalに対して - SEPARATE_ZVAL を行う - - - - SEPARATE_ZVAL_TO_MAKE_IS_REF(zval** ppzval) - *ppzvalが参照ではない場合、ppzvalに対して - SEPARATE_ZVAL と Z_SET_ISREF_PP を行う - - - - COPY_PZVAL_TO_ZVAL(zval dst, zval** src) - srcの参照カウントを変更せずに、dstを - srcのコピーにする - - - - MAKE_COPY_ZVAL(zval** src, zval* dst) - INIT_PZVAL_COPY を行い、新しい zval に対して zval_copy_ctor する - - - - - void zval_copy_ctor(zval** pzval) - 参照カウントをメンテナンスする。エンジン全体を通して広く使われる。 - - - - - void zval_ptr_dtor(zval* pzval) - 変数の参照カウントをデクリメントする。 - 参照カウントが 0 になったら変数は破壊される。 - - - - FREE_ZVAL(zval* pzval) - pzvalを efree する - - - - -
- - - オブジェクトとリソースは、それぞれの構造体の一部として参照カウントを - 持っています。これらについて zval_ptr_dtor が呼ばれると、それぞれにあった del_ref - が実行されます。詳細はオブジェクトの扱いとリソースの扱いを参照してください。 - - - - さらにハッカーが知っておくべき機能をふたつだけ挙げるとすれば、 - それはzval_copy_ctorzval_ptr_dtorでしょう。これらは - エンジンにおける参照カウントメカニズムの基本です。重要なことは、通常の環境で - zval_copy_ctorが呼ばれても、実際には何も起こらないことです。 - これは単に参照カウントを増やしているだけです。同様に、zval_ptr_dtor - が本当に変数を破壊するのは、それを参照するものがなくなって、参照カウントが 0 - になった時だけです。 - - PHP 自体は弱い型付けしか行いませんが、エンジンが変数の型を別の型にするための - API 関数を提供しています。 - - - 型の変換 - - - - プロトタイプ - - - - - - void convert_to_long(zval* pzval) - - - - void convert_to_double(zval* pzval) - - - - void convert_to_long_base(zval* pzval, int base) - - - - void convert_to_null(zval* pzval) - - - - void convert_to_boolean(zval* pzval) - - - - void convert_to_array(zval* pzval) - - - - void convert_to_object(zval* pzval) - - - - void convert_object_to_type(zval* pzval, convert_func_t converter) - - - - -
- - - convert_func_t 関数には(void) (zval* pzval) - というプロトタイプが必要です。 - - - ここまで読んでもらえたので、あなたはネイティブからエンジンまでの型、 - 型の検出とzval 値の読み取り方法、参照カウントや zval のフラグの操作等についての - 理解が進んだはずです。 - -
- -
- 配列の扱い - - 配列は HashTable 構造体に格納され、zval の型は IS_ARRAY となります。ここでは、 - これらの構造体を変数として作成したり破壊したり操作したりする API 関数について - 説明します。これらの内容は Zend/zend_API.hでも確認できます。 - - - - 変数としての HashTable の API - - - - プロトタイプ - 説明 - - - - - void array_init(zval* pzval) - 変数をHashTableとして初期化し、そのHashTable - に対して型と適切なデストラクタ関数を設定する - - - - void array_init_size(zval* pzval) - 最小限size個の入れ物を用意して変数を array_init で初期化する - - - - - -
- - - 何度も array_destroy を呼び出さないようにしてください。変数の配列を破壊 - するには、その変数に対してzval_ptr_dtorをコールします。その変数 - へのその他の参照がなくなった時点で、自動的にその配列の中身も破壊されます。 - - - - - インデックス配列用の API - - - - プロトタイプ - - - - - int add_index_long(zval* pzval, ulong index, long value) - - - - int add_index_null(zval* pzval, ulong index) - - - - int add_index_bool(zval* pzval, ulong index, zend_bool value) - - - - int add_index_bool(zval* pzval, ulong index, zend_bool value) - - - - int add_index_resource(zval* pzval, ulong index, uint value) - - - - int add_index_double(zval* pzval, ulong index, double value) - - - - int add_index_string(zval* pzval, ulong index, char* string, zend_bool duplicate) - - - - int add_index_stringl(zval* pzval, ulong index, char* string, uint length, zend_bool duplicate) - - - - int add_index_zval(zval* pzval, ulong index, zval* value) - - - - int add_next_index_long(zval* pzval, long value) - - - - int add_next_index_null(zval* pzval) - - - - int add_next_index_bool(zval* pzval, zend_bool value) - - - - int add_next_index_resource(zval* pzval, uint value) - - - - int add_next_index_double(zval* pzval, double value) - - - - int add_next_index_string(zval* pzval, const char* string, zend_bool dulpicate) - - - - int add_next_index_stringl(zval* pzval, const char* string, uint length, zend_bool duplicate) - - - - int add_next_index_zval(zval* pzval, zval* value) - - - - -
- - - 連想配列用 API - - - - プロトタイプ - - - - - int add_assoc_long(zval* pzval, const char* key, long value) - - - - int add_assoc_long_ex(zval* pzval, const char* key, uint klen, long value) - - - - int add_assoc_null(zval* pzval, const char* key) - - - - int add_assoc_null_ex(zval* pzval, const char* key, uint klen) - - - - int add_assoc_bool(zval* pzval, const char* key, zend_bool value) - - - - int add_assoc_bool(zval* pzval, const char* key, zend_bool value) - - - - int add_assoc_bool_ex(zval* pzval, const char* key, uint klen, zend_bool value) - - - - int add_assoc_resource(zval* pzval, const char* key, uint value) - - - - int add_assoc_resource_ex(zval* pzval, const char* key, uint klen, uint value) - - - - int add_assoc_double(zval* pzval, const char* key, double value) - - - - int add_assoc_double_ex(zval* pzval, const char* key, uint klen, double value) - - - - int add_assoc_string(zval* pzval, const char* key, const char* value) - - - - int add_assoc_string_ex(zval* pzval, const char* key, uint klen, const char* value) - - - - int add_assoc_stringl(zval* pzval, const char* key, const char* value, uint vlen, zend_bool duplicate) - - - - int add_assoc_stringl_ex(zval* pzval, const char* key, uint klen, const char* value, uint vlen, zend_bool duplicate) - - - - int add_assoc_zval(zval* pzval, const char* key, zval* value) - - - - int add_assoc_zval_ex(zval* pzval, const char* key, uint klen, zval* value) - - - - -
- - - - duplicate という名前のパラメータを取る add_*_string 関数群は、duplicate - が真の場合、estrndupを使って文字列を複製します。 - - - - add_*_zval 関数はvalueパラメータの参照カウントを調整しません。 - - - - - 配列変数に対してさらに高度な操作をしたい場合、直接 HashTable API を使う必要があります。 - -
- -
- HashTable の扱い - - PHP の内部で多くの役割を提供するHashTable構造体は至る所で - 使われており、この機能を理解することはよいハッカーになるための - 必要条件です。 - - エンジンにおけるHashTableの実装は標準のHashTableです。 - つまりキー => 値をベースにした格納方式であり、キーは常に文字列で、そのハッシュ値は - ビルトインのハッシュアルゴリズム - zend_inline_hash_func(const char* key, uint length)により計算されます。 - これは広く流通しており、妥当な利用法と言えます。 - - HashTableの内部構造や厳密な操作についてはこの文書の範疇を超えます。 - この文書では API の入手や最適な利用法などについてご紹介しています。HashTable - に関する詳細な考え方等はZend/zend_hash.hを参照してください。 - - 特に記載のない限り、これらの関数は何らかの原因で要求した操作ができない場合 - FAILUREを返し、そうでなければSUCCESSを返します。 - - - HashTable API 関数は通常、キーの長さは NULL で終端された文字列の - 長さに等しいことを期待していることに気をつけてください。これには NULL 終端の分も - 含みます。つまり、strlen(key) + 1を期待しているということです。 - - - HashTableを使う際に知っておくべき typedef 定義を以下に記載します。 - これらのほとんどは定義そのものが説明のようになっているので、ハッカー - はこれらのプロトタイプを深く理解できるはずです。 - - - - - - - HashTable API - - - - int zend_hash_init(HashTable* ht, uint size, hash_func_t hash, dtor_func_t destructor, zend_bool persistent) - - - - ハッシュテーブルを初期化して、少なくともsize個の要素を - 保持する。hashは歴史的な経緯により存在するだけで常に無視される。 - zend_inline_hash_funcが常にハッシュ関数として使われる。 - destructorNULLでもよい。 - - - - int zend_hash_add(HashTable* ht, const char* key, uint klen, void* data, uint dlen, void** dest) - - - - 指定されたkeyを使ってテーブルにdataを追加する。 - キーはlengthバイトの長さを持つ(そしてkeyからテーブル - にコピーされる)。キーが存在すると FAILURE が返される。 - - - - int zend_hash_update(HashTable* ht, const char* key, uint klen, void* data, uint dlen, void** dest) - - - - 指定されたkeyを使ってテーブルにdataを追加する。 - キーはlengthバイトの長さを持つ(そしてkeyからテーブル - にコピーされる)。キーが存在した場合、古いデータに対してdtor_func_t - が呼ばれ、既存のデータはdataで上書きされる。 - - - - int zend_hash_find(HashTable* ht, const char* key, uint klen, void** data) - - - - テーブルをkeyで検索し、見つかったら*data - をセットして SUCCESS を返す。 - - - - zend_bool zend_hash_exists(HashTable* ht, const char* key, uint klen) - - - - htkeyがあれば正の値を返す。 - - - - int zend_hash_del(HashTable* ht, const char* key, uint klen) - - - - テーブル内にkeyで特定されるエントリがあれば削除する。 - - - - int zend_hash_index_update(HashTable* ht, ulong index, void* data, uint dsize, void** dest) - - - - htの中のindexで指定されたエントリのデータを - dataで更新する。 - - - - int zend_hash_index_del(HashTable* ht, ulong index) - - - - htからindexで指定されたエントリを削除する。 - - - - - int zend_hash_index_find(HashTable* ht, ulong index, void** data) - - - - htの中でindexで指定されたデータを - *dataにリダイレクトする。 - - - - int zend_hash_index_exists(HashTable* ht, ulong index) - - - - htindexがあれば正の値を返す。 - - - - ulong zend_hash_next_free_element(HashTable* ht) - - - - htの中で次に利用可能な要素のインデックスを返す。 - - - - -
- - - zend_hash_* 関数のうちvoid* dataを受け付けるものは、 - 通常それを(void**) (すなわち(void**) &data)に - キャストしなければいけません。 - - - HashTable の中を行き来しなければならない場合も少なくありません。 - これを行うには、HashTableへのポインタに加えてHashPosition - オプションを指定します。これは HashTable API への内部構造であり、HashTable の - 内部位置に影響を与えずに内部を移動できるようになります。以下の移動用関数が提供 - されており、以下にその利用例を示します。 - - - HashTable 内の移動 API - - - - int zend_hash_internal_pointer_reset(HashTable* ht) - - - htの内部ポインタを開始位置にリセットする。 - - - int zend_hash_internal_pointer_reset_ex(HashTable* ht, HashPosition position) - - - positionhtの開始位置にセットする。 - - - int zend_hash_get_current_data(HashTable* ht, void* data) - - - htの現在位置にあるデータを取得する。data - はvoid**にキャストしなければならない - (すなわち(void**) &data)。 - - - int zend_hash_get_current_data_ex(HashTable* ht, void* data, HashPosition position) - - - htの中でdataposition - の位置にセットする。 - - - int zend_hash_get_current_key(HashTable* ht, void* data, char**key, uint klen, ulong index, zend_bool duplicate) - - - 現在位置のキーの情報から key, klen, - index を取得する。戻り値として HASH_KEY_IS_STRING や - HASH_KEY_IS_LONG が返される場合があるが、これは現在位置にその種類のキーが - あったことを表している。 - - - int zend_hash_get_current_key_ex(HashTable* ht, void* data, char**key, uint klen, ulong index, zend_bool duplicate, HashPosition position) - - - position位置のキーの情報から key, - klen, index を取得する。戻り値として - HASH_KEY_IS_STRING や HASH_KEY_IS_LONG が返される場合があるが、 - これは現在位置にその種類のキーがあったことを表している。 - - - int zend_hash_move_forward(HashTable* ht) - - - htの内部ポインタをht内の次のエントリに動かす。 - - - - int zend_hash_move_forward_ex(HashTable* ht, HashPosition position) - - - positionht内の次のエントリに動かす。 - - - -
- - 前述の関数は、HashTable内部を通常のループのように移動できます。 - たとえば以下のように使います。 - - - - - - - HashTableをエンジンに渡した場合、意図しない事態にならないように、 - ユーザーランドでは zend_hash_*_ex API を使うとよいでしょう。 - - - - キーのduplicateを要求してHAS_KEY_IS_STRING - が返された場合、呼び出し元は重複キーをefreeしなければなりません。 - - - - 内部移動以外にも、エンジンではハッシュテーブルのマージ、コピー、比較といった - API を提供しています。ハッカーはこれらのどの概念にも精通して - いなければなりません。 - 関数の適用 (apply) という概念にはなじみがない人もいるかもしれません。 - 要するにこれは、HashTable API の機能を使ってコールバック関数を渡して、 - HashTable中のすべてのエントリでそれを実行させる仕組みのことです。 - - - コピー、マージ、ソート - - - - void zend_hash_copy(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, void *tmp, uint size) - - - - sourceの中身をtargetにコピーする。 - tmpにはコピーの中で使われる領域確保されていない適切な型の - ポインタを、sizeには各要素の個数を指定する。 - - - - void zend_hash_merge(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, void *tmp, uint size, zend_bool overwrite) - - - - sourceの中身をdestinationにマージする。 - overwriteが真の場合、既存のエントリを置き換える。 - - - - void int zend_hash_sort(HashTable *ht, sort_func_t sort_func, compare_func_t compare_func, int renumber TSRMLS_DC) - - - - renumberはインデックスを保持するかどうかを制御する。 - 詳細はこの章の最初に出てきた typedef を参照のこと。 - - - - -
- - - ある関数がcopy_ctor_func_t pCopyConstructorを受け付ける場合、 - 一緒に渡された関数はHashTable内で新しいエントリが生成されるたびに - 実行されます。エンジン内で使われる通常のコピーコンストラクタのほとんどは、 - ZVAL_COPY_CTORマクロのzval_copy_ctorのラッパーです。 - - - -
- -
- オブジェクトの扱い - - - -
- -
- - diff --git a/internals2/ze1/index.xml b/internals2/ze1/index.xml deleted file mode 100644 index 70ad8f5e5f..0000000000 --- a/internals2/ze1/index.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - Zend Engine 1 - - Zend Engine 1 は、PHP 4 系のバージョンの内部で使われているエンジンです。 - すでに第一線を退いていますが、 - 以前の ZE1 のドキュメントについてもここにそのままの形で残しておきます。 - - - &internals2.ze1.intro; - &internals2.ze1.streams.index; - &internals2.ze1.zendapi.index; - &internals2.ze1.tsrm.index; - - - - diff --git a/internals2/ze1/intro.xml b/internals2/ze1/intro.xml deleted file mode 100644 index d3d5e6ec5c..0000000000 --- a/internals2/ze1/intro.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - 以前の導入ページ - - PHP そのもの、あるいは Zend 拡張モジュールの開発を始めようと思うなら、 - その膨大な API 群について学ぶ必要があります。ここでは、現在公開されている - さまざまなバージョンの PHP および Zend エンジンが提供する API 群について - 紹介します。ここに挙げられている情報の多くは若干古くなっています。 - そのため、このマニュアルのほかに、PHP ソースに含まれている - README.SELF-CONTAINED-EXTENSIONS - や README.EXT_SKEL といったファイルについても - 読んでみたくなることでしょう。 - - - - diff --git a/internals2/ze1/streams/common.xml b/internals2/ze1/streams/common.xml deleted file mode 100644 index e17df169ac..0000000000 --- a/internals2/ze1/streams/common.xml +++ /dev/null @@ -1,1145 +0,0 @@ - - - - - - - ストリーム共通APIリファレンス - - - - php_stream_stat_path - ファイルまたはURLのステータスを得る - - - 説明 - - intphp_stream_stat_path - char *path - php_stream_statbuf *ssb - - - php_stream_stat_path は、 - pathで指定したファイルまたはURLを調べ、 - ファイルサイズ、アクセス権、作成日時といった情報を返します。 - 返り値は成功時に0、エラー時に-1となります。返される情報の詳細に - ついては、 - php_stream_statbuf. - を参照ください。 - - - - - - - php_stream_stat - ストリームを保持するストレージに関する情報を得る - - - 説明 - - intphp_stream_stat - php_stream *stream - php_stream_statbuf *ssb - - - php_stream_stat は、stream - にバインドされているストレージに関する情報を調べ、ファイルサイズ、 - アクセス権、作成日時といった情報を返します。 - 返り値は成功時に0、エラー時に-1となります。返される情報の詳細に - ついては、 - php_stream_statbuf. - を参照ください。 - - - - - - - php_stream_open_wrapper - ファイルまたはURLをオープンする - - - 説明 - - php_stream *php_stream_open_wrapper - char *path - char *mode - intoptions - char **opened - - - php_stream_open_wrapperpath - で指定されたファイルやURLなどのラップされたリソースのストリームを開きます。 - mode によって、ストリームを読み出し用、書き出し用、 - 追記用、あるいはその組み合わせで開くことができます。指定できる種々のモード - については下記の表をご覧ください。それらの文字列に加え、文字 'b' を - モード文字列の2文字目、または末尾に含めることができます。 - この文字 'b' は、該当するストリームの実装に対し、バイナリセーフなモードで - ストリームを開くよう指示します。 - - - 文字 'b' は、すべての POSIX に準拠したシステム上では、バイナリファイルと - テキストファイルが同列に扱われるため、無視されます。アクセスするデータ - において、8 ビットすべてが重要な際には、この 'b' 文字を指定しておくのは、 - 'b' フラグが意味を持つシステムでも同じスクリプトを動かせるので、 - よいアイディアといえます。 - - - ストリーム API によって作成されたすべてのローカルにあるファイルの - パーミッションは、オペレーティングシステムのデフォルトに従って - 設定されます - Unix ベースのシステムでは、ファイルを作成したプロセスの - umask が反映されます。また、Windows では、ファイルを作成したプロセスが - ファイルを所有します。 - リモートにあるファイルについては、ファイルを開くのに用いた URL ラッパー - の設定や、リモートのサーバーに与えられた信頼情報に応じて作成されます。 - - - - - - r - - - - ファイルを読み出し用に開きます。このとき、ストリームの位置は、 - ファイルの先頭に移動されます。 - - - - - - - r+ - - - - ファイルを読み書き用に開きます。このとき、ストリームの位置は、 - ファイルの先頭に移動されます。 - - - - - - - w - - - - ファイルの内容を長さ 0 に切り詰めるか、新規にファイルを作成し、 - 書き出しモードで開きます。このとき、ストリームの位置は、 - ファイルの先頭に移動されます。 - - - - - - - w+ - - - - ファイルを読み書き用に開きます。もし指定されたファイルが存在 - しない場合は、新規に作成し、存在する場合は、長さを切り詰めます。 - このとき、ストリームの位置は、ファイルの先頭に移動されます。 - - - - - - - a - - - - ファイルを書き出し用に開きます。もしファイルが存在しない場合は、 - 新規に作成します。このとき、ストリームの位置は、ファイルの - 末尾に移動されます。 - - - - - - - a+ - - - - ファイルを読み書き用に開きます。もし指定されたファイルが存在 - しない場合は、新規に作成します。このとき、ストリームの位置は、 - ファイルの末尾に移動されます。 - - - - - - - - options は、ストリームへのパスや URL をどのように - 解釈するかや、セーフモードチェック、ストリームを開くときにエラーが - 発生した場合のアクションに影響します。このオプションに関しては、 - Stream open options - を参照ください。 - - - もし opened が NULL でなければ、実際に - 開かれたファイルやリソースの名前がセットされます。これは、 - オプションに include_path に列挙されたパスからファイルを探すよう指示する - USE_PATH が含まれている時に重要になります。 - 呼び出し元は、最後にこのパラメータによって返されたファイル名を - efree の呼び出しによって開放する必要があります。 - - - - もし、STREAM_MUST_SEEKoptions - に指定した場合、opened に返されたファイルへのパス - は、実際に返されるストリームのものと違う場合があります。しかし、これは - シーク可能なストリームを作るのに用いられた元のストリームの名前になります。 - - - - - - - - - php_stream_read - ストリームからバッファに指定バイト数読み込む - - - 説明 - - size_tphp_stream_read - php_stream *stream - char *buf - size_tcount - - - php_stream_readcount - バイトで指定されたバイト数まで stream から - データを読み取り、バッファ buf にコピーします。 - - - php_stream_read は、正常に読み込むことのできた - バイト数を返します。読み込みが失敗したのか、ファイルの終端に達したのか - をこから知ることはできませんので、php_stream_eof - を、EOF 条件のテストに使います。 - - - ストリームの内部位置は、次回以降続きから読めるよう、 - 読み込まれた分だけ進められます。 - - - もし、count バイトよりも少ないデータしか揃って - いない場合、この関数は、ストリームのブロックモードの設定に応じて、 - すべてのデータが揃うまでブロックします(待ちます)。デフォルトでは、 - ストリームはブロックモードで開かれます。 - もし通常のファイルから読み込む場合は、ブロックモードはあまり意味を - 持ちません。ストリームが、EOF に達した場合は、 - php_stream_read は、count - よりも少ない値を返し、次回以降は、0 を返します。 - - - - - - - php_stream_write - バッファからストリームに指定バイト数書き込む - - - 説明 - - size_tphp_stream_write - php_stream *stream - const char *buf - size_tcount - - - php_stream_write は、count - バイトのデータを buf から - stream に書き出します。 - - - php_stream_write は正常に書き込むことのできた - バイト数を返します。もし、何らかのエラーがあった場合は、 - 書き込むことのできたバイト数は count よりも - 小さくなります。 - - - ストリームの内部位置は、次回以降続きから書き込めるよう、 - 読み込まれた分だけ進められます。 - - - - - - - php_stream_eof - ストリームがファイル終端に達したかどうか調べる - - - 説明 - - intphp_stream_eof - php_stream *stream - - - php_stream_eof は、stream が、 - ファイルの終端に達したかどうかを調べます。 - - - php_stream_eof が 1 を返すということは、 - EOF に達したことを意味します。0 ならば、 - まだ EOF でなく、-1 はエラーを意味します。 - - - - - - - php_stream_getc - ストリームから1バイト読み込む - - - 説明 - - intphp_stream_getc - php_stream *stream - - - php_stream_getcstream - から 1 文字読み込み、unsigned char を int としてキャストした形で - 返します。 ファイルの終端に達したか、エラーが発生した場合は、 - EOF を返します。 - - - php_stream_getc のブロックに関する挙動は、 - php_stream_read のものと一緒です。 - - - 正常に実行できた場合、ストリームの内部位置は 1 だけ進められます。 - - - - - - - php_stream_gets - ストリームからバッファに1行分のデータを読み込む - - - 説明 - - char *php_stream_gets - php_stream *stream - char *buf - size_tmaxlen - - - php_stream_gets は、最大で count-1 - バイトまでのデータを stream から読み込み、 - バッファ buf にコピーします。読み込みは、 - EOF あるいは行末記号に到達した時点でストップします。 - もし、行末まで読み込まれた場合、行末記号は、buf - の一部として含まれます。NUL 終端文字が、バッファの末尾に付加されます。 - - - php_stream_read は正常に終了すると、buf - を、その他の場合は NULL を返します。 - - - ストリームの内部位置は、次回以降続きから読めるよう、 - 読み込まれた分だけ進められます。 - - - この関数のブロックに関する挙動は、php_stream_read - のものと一緒です。 - - - - - - - php_stream_close - ストリームを閉じる - - - 説明 - - intphp_stream_close - php_stream *stream - - - php_stream_close は、stream を - 安全にクローズし、それに関連付けられたリソースを同時に開放します。 - 一旦 stream を閉じると、その値は不定になります。 - 再び利用してはいけません。 - - - php_stream_close は正常にストリームを閉じられた - 場合、0 を、エラーが発生した場合には、EOF - を返します。関数の実行の成否にかかわらず、stream - は不定になりますので、この関数の実行後に利用してはいけません。 - - - - - - - php_stream_flush - ストリームバッファをストレージにフラッシュする - - - 説明 - - intphp_stream_flush - php_stream *stream - - - php_stream_flush は、stream - の書き込みバッファに保持されたデータを下層にあるストレージに - コミットします。 - - - php_stream_flush は、バッファをフラッシュできた場合に - あるいは、バッファをフラッシュする必要がなかった場合に、0 を返します。 - エラーが発生した場合は、EOF を返します。 - - - - - - - php_stream_seek - ストリーム内で移動する - - - 説明 - - intphp_stream_seek - php_stream *stream - off_toffset - intwhence - - - php_stream_seekstream - の内部位置を移動します。 - 新しい位置は、offset の値を、 - whence で示された位置に加算することで決定されます。 - whenceSEEK_SET にセット - されていた場合は、ストリームの開始位置を、SEEK_CUR - の場合は、ストリームの現在位置を、SEEK_END の場合は、 - ストリームの終端位置を、それぞれ計算の基準とします。 - - - php_stream_seek は成功時に 0 を、失敗時に -1 を - 返します。 - - - - すべての種類のストリームがシーク動作をサポートしているわけでは - ありませんが、ストリーム API は、whence - SEEK_CUR に設定されていて、かつ - offset が正の値の場合、 - php_stream_readoffset - バイト分だけ読み込んで、読み込まれた内容を破棄することで、シークを - エミュレートしようとします。 - - - エミュレーションは、下層にあるストリームの実装が、シークをサポート - していないときのみに行われます。つまり、仮に開かれているストリームが - ファイルベースのストリームで、それがシークできないパイプを - ラップしていたとしても、ストリーム API はエミュレーションを行いません。 - ファイルベースのストリームはシーク動作を実装しているからです。 - このとき、シークは失敗し、エラーが呼び出し元に返されます。 - - - - - - - - php_stream_tell - ストリーム内の位置を調べる - - - 説明 - - off_tphp_stream_tell - php_stream *stream - - - php_stream_tell は、stream の - 内部位置をストリームの開始位置からの相対値で返します。 - エラーが発生した場合は -1 が返されます。 - - - - - - - php_stream_copy_to_stream - - あるストリームから別のストリームへデータをコピーする - - - - 説明 - - size_tphp_stream_copy_to_stream - php_stream *src - php_stream *dest - size_tmaxlen - - - php_stream_copy_to_stream は、最大 maxlen - バイトのデータを src から読み込み、 - dest に書き出したのち、正常にコピーできた - バイト数を返します。 - - - src ストリームにある残りの(内部位置移行にある) - データすべてをコピーしたい場合は、 - 定数 PHP_STREAM_COPY_ALL を、 - maxlen に指定してください。 - - - - この関数は、データを、メモリマップができればそれを使い、 - 最大限効率的な方法でコピーを行おうとします。 - - - - - - - - php_stream_copy_to_mem - - ストリームから確保されたバッファにデータをコピーする - - - - 説明 - - size_tphp_stream_copy_to_mem - php_stream *src - char **buf - size_tmaxlen - intpersistent - - - php_stream_copy_to_memmaxlen+1 - バイトのバッファを pemalloc - (パラメータ persistent はそのまま渡されます) - を使ってバッファを確保したのち、最大 maxlen バイトを - src から読み込んで、その内容を確保されたバッファに - 格納します。 - - - 確保されたバッファを buf で示されたポインタに - 返したのち、正常に読み込めたバイト数を返します。 - 呼び出し下は、返されたバッファを、同じ persistent - パラメータとともに pefree で開放する必要があります。 - - - src ストリームにある残りの(内部位置移行にある) - データすべてをコピーしたい場合は、 - 定数 PHP_STREAM_COPY_ALL を、 - maxlen に指定してください。 - - - - この関数は、データを、メモリマップができればそれを使い、 - 最大限効率的な方法でコピーを行おうとします。 - - - - - - - - php_stream_make_seekable - ストリームをシーク可能なストリームへ変換する - - - 説明 - - intphp_stream_make_seekable - php_stream *origstream - php_stream **newstream - intflags - - - php_stream_make_seekable は、まず origstream が - シーク可能かどうか調べます。もしシークできない場合は、新たに一時的ストリーム - を作り、元のストリームのデータをすべてそこにコピーします。 - 成功の場合は、newstream には、元のストリームが - シーク可能だったとしても、常に利用可能なストリームが返されます。 - - - flags で、どのような形のシーク可能なストリームが - 返されるかを指定することができます。デフォルトのシーク可能なストリームを - 利用したい場合は、PHP_STREAM_NO_PREFERENCE を - (通常では動的に増大するメモリ上のバッファを利用するが、 - もしストリーム内のデータが巨大な場合は、テンポラリファイルに裏打ちされた - ストリームに切り替える)、または通常のテンポラリファイルに裏打ちされた - ストリームを利用したい場合は、PHP_STREAM_PREFER_STDIO - を指定してください。 - - - - <function>php_stream_make_seekable</function> の返り値 - - - - Value - Meaning - - - - - - PHP_STREAM_UNCHANGED - 元のストリームがシーク可能だった。newstream には origstream がセットされます。 - - - - - PHP_STREAM_RELEASED - 元のストリームはシーク可能ではないので、開放された。 - newstream には、新たに作成されたシーク可能なストリームがセットされます。 - 以後、origstream にアクセスしてはいけません。 - - - - - PHP_STREAM_FAILED - ストリームの変換中にエラーが発生した。 - newstream には NULL がセットされます。 - このとき origstream はまだ有効なストリームです。 - - - - - PHP_STREAM_CRITICAL - ストリームの変換中にエラーが発生し、元のストリームは origstream - 不定な状態になっている。newstream には - NULL がセットされます。このときは、origstream - を閉じることを強く推奨します。 - - - - - -
-
- - - 新しいストリームに対してシークを行い書き込みを行うような場合、 - そのストリームは、必ずしも元のストリームと同じリソースに - 関連付けられていると保証されているわけではないので、 - この関数を呼び出す意味はあまりありません。 - - - - - もし、前方へのシークのみが必要なときは、この関数を利用してストリームを - シーク可能にする必要はありません。ストリーム API は、 - whence パラメータが SEEK_CUR の時、前方シークを - エミュレートするからです。 - - - - - もし、origstream がネットワークベースのストリーム - の場合は、この関数は、すべてのデータが読み込まれるまでブロックします。 - - - - - 絶対に、PHP スクリプト内で使用されているファイルポインタを参照する - ストリームを、origstream に指定しないでください。 - この関数は、そのストリームを閉じる場合があるので、スクリプト内で次に - そのファイルポインタに対してアクセスが行われた場合に、クラッシュが - 起こる可能性があります。 - - - - - ほとんどの場合において、この関数は、origstream - が新たに開かれたストリームで、しかもストリーム層においてデータが - バッファリングされていない時にのみ成功します。これにより、 - また、この関数は正しく使うには多少複雑なので、できれば、 - この関数を直接呼び出すのではなく、 - php_stream_open_wrapper を使い、 - PHP_STREAM_MUST_SEEK をオプションとして渡す方法 - を検討してみてください。 - - -
-
- - - - - php_stream_cast - - ストリームをFILE*またはソケットのような他の形式に変換する - - - - 説明 - - intphp_stream_cast - php_stream *stream - intcastas - void **ret - intflags - - - php_stream_caststream で - 指定されたストリームを castas で指示されたリソースに - 変換しようと試みます。 - もし、ret が NULL であった場合は、実際に - 変換は行われず、単にストリームに対してそのような変換が可能であるかどうか - だけを調べます。(しかし、この場合何らかのストリームの状態が変化することが - あります。) - もし、flagsREPORT_ERRORS が - セットされていた場合は、変換中にエラーがあると、エラーメッセージが - 表示されます。 - - - - この関数は、成功時に SUCCESS を、失敗時に FAILURE を返します。 - 返り値の判定の際は単純に値の真偽を見るのではなく、 - 定数 SUCCESSFAILURE と - 明示的に比較しなければならないことに注意してください。 - これらの定数値は単純なブール値ではないからです。 - - - - - <parameter>castas</parameter> に指定できるリソースの種類 - - - - - 意味 - - - - - PHP_STREAM_AS_STDIO - ストリームを表す ANSI FILE* ファイルポインタを要求する - - - PHP_STREAM_AS_FD - ストリームを表す POSIX ファイルデスクリプタを要求する - - - PHP_STREAM_AS_SOCKETD - ストリームを表すソケットのデスクリプタを要求する - - - -
-
- - 上に示したような基本的なリソースの種類を指定するのに加え、 - 変換動作を、リソースの種類を表す値と次に示した値とを OR 演算子で - 組み合わせることでしていすることができます: - - Resource types for <parameter>castas</parameter> - - - - - 意味 - - - - - PHP_STREAM_CAST_TRY_HARD - 別のリソースをあえて利用するなど、できるだけ変換が成功するような試行を行う - - - PHP_STREAM_CAST_RELEASE - ストリームAPI に、この関数を呼び出した - ストリームAPI 以外のコード (おそらくはサードパーティのライブラリ) - の内部で、ストリームがラップしているリソースやハンドルを閉じることを - 通知します。これにより、stream が、 - ストリームの背後にあるハンドルそのものを閉じずに - ret に返したところで閉じられます。 - このとき、この関数が成功したら、 - stream はその時点で閉じられたと判断されるべきで、 - 以降そのストリームを使ってはいけません。 - - - - -
-
- - - もし使っているシステム(glibc 2 または以降を使っているシステム)が - fopencookie をサポートしている場合、 - ストリーム API は常にどのストリームからも ANSI FILE * ポインタを - 合成できます。この特長はあらゆる PHP ストリームをサードパーティの - ライブラリに渡せるので非常に便利ですが、一方で、移植可能性は高く - ありません。この場合は、あなたの作成した拡張モジュールを配布する際に、 - 移植可能性についての表示を行っておいたほうがよいでしょう。 - もし fopencookie による合成が望ましくない場合は、問題とするストリームが - ネイティブに FILE* をサポートしているかどうか php_stream_is で調べましょう。 - - - - - ソケットベースのストリームを FILE* に変換する際、ストリーム API は - fdopen を使ってそれを生成します。 - そうすることは、ストリーム API のコールと ANSI 標準入出力 API のコールを - 交互に行った際に、ストリーム層においてバッファされたデータが失われる - 危険性を生じることに注意してください。 - - - - php_stream_isphp_stream_can_cast も参照ください。 - -
-
- - - - php_stream_can_cast - - ストリームがFILE*またはソケットのような他の形式に変換できるかどうかを - 調べる - - - - 説明 - - intphp_stream_can_cast - php_stream *stream - intcastas - - - この関数の挙動は、php_stream_castret - 引数を NULL にし、flags を 0 にした時の呼び出しと等価です。 - 要求された形にストリームが変換できるときは、SUCCESS - を、変換ができないときは、FAILURE を返します。 - - - - この関数は実際に変換を行うわけではありませんが、何らかのストリームの状態が - 変化する可能性があります。 - - - - - この関数の返り値は、php_stream_cast で説明されたように、 - 明示的に定数と比較される必要があります。 - - - - php_stream_castphp_stream_is も参照ください。 - - - - - - - php_stream_is_persistent - - ストリームが持続的なストリームであるかどうかを調べる - - - - 説明 - - intphp_stream_is_persistent - php_stream *stream - - - php_stream_is_persistent は、ストリームが恒久的であると、1 を、そうでない場合は 0 を返します。 - - - - - - - php_stream_is - ストリームが特定の型であるかどうかを調べる - - - 説明 - - intphp_stream_is - php_stream *stream - intistype - - - php_stream_isstream が - istype で指定された型である時に 1 を、そうでない場合に - 0 を返します。 - - <parameter>istype</parameter>に指定できる値 - - - - - 意味 - - - - - PHP_STREAM_IS_STDIO - ストリームは標準入出力の実装を用いて実装されている - - - PHP_STREAM_IS_SOCKET - ストリームはソケットを用いて実装されている - - - PHP_STREAM_IS_USERSPACE - ストリームはユーザー空間にあるオブジェクトを用いて実装されている - - - PHP_STREAM_IS_MEMORY - ストリームは動的にサイズを増やすメモリーストリームの実装を用いて実装されている - - - -
- -
- - - PHP_STREAM_IS_XXX "定数は" 実際には、ストリーム操作を定義する構造体への - ポインタです。もしあなたの拡張モジュールや、別の拡張モジュール内で、 - 新たなストリームの実装が定義されている場合、同時にこの関数による比較に - 使えるような PHP_STREAM_IS_XXX 定数をそのヘッダーファイル内で - 定義しておくべきです。 - - - - - この関数は、単純な(かつ高速な) ポインターの比較だけを行うよう - 実装されており、ストリームの状態を変更することはありません。 - - - - php_stream_castphp_stream_can_cast も参照ください。 - -
-
- - - - php_stream_passthru - ストリームから残りのデータを全て出力する - - - 説明 - - size_tphp_stream_passthru - php_stream *stream - - - php_stream_passthru は、stream - に残されたすべてのデータを、現在有効な出力バッファに対して出力し、 - 何バイト出力されたかを返します。 - もし出力バッファリングが無効になっている場合は、データは - 直接出力先に書き込まれます。この出力先は、PHP がウェブサーバーの上で - 動いている際にはブラウザになり、CLI ベースの PHP の場合は標準出力 - となります。 - この関数はパフォーマンス向上のため、可能であればメモリマッピング - を利用します。 - - - - - - - php_register_url_stream_wrapper - ストリームAPI用のラッパーを登録する - - - 説明 - - intphp_register_url_stream_wrapper - char *protocol - php_stream_wrapper *wrapper - TSRMLS_DC - - - php_register_url_stream_wrapperwrapperprotocol で指定されたハンドラとして - 登録します。 - - - - もしこの関数をロード可能なモジュールから呼び出す場合、 - 必ず php_unregister_url_stream_wrapper を - そのモジュールのシャットダウンルーチンから呼び出してください。 - そうしないと、PHP はクラッシュしてしまいます。 - - - - - - - - php_unregister_url_stream_wrapper - ストリームAPI用のラッパーの登録を解除する - - - 説明 - - intphp_unregister_url_stream_wrapper - char *protocol - TSRMLS_DC - - - php_unregister_url_stream_wrapper は - protocol に関連付けられたラッパーの登録を解除します。 - - - - - - - php_stream_open_wrapper_ex - - コンテキストを指定して、ファイルまたはURLにストリームをオープンする - - - - 説明 - - php_stream *php_stream_open_wrapper_ex - char *path - char *mode - intoptions - char **opened - php_stream_context *context - - - php_stream_open_wrapper_ex は - php_stream_open_wrapper と非常に似ていますが、 - php_stream_context オブジェクトを context で - 指定することができる点で異なります。 - ストリームコンテキストに関する詳細は - ストリームコンテキスト - を参照ください。 - - - - - - - php_stream_open_wrapper_as_file - - ファイルまたはURLをオープンし、FILE*に変換する - - - - 説明 - - FILE *php_stream_open_wrapper_as_file - char *path - char *mode - intoptions - char **opened - - - php_stream_open_wrapper_as_file は - php_stream_open_wrapper と非常に似ていますが、 - ストリームを ANSI 標準入出力の FILE* ポインタに変換してストリームの代わりに - それを返す点が異なります。 - この関数は、サードパーティのライブラリに FILE* を直接渡すための - 近道として用意されています。 - - - - - - php_stream_filter_register_factory - フィルタファクトリをストリーム API に登録する - - - 説明 - - intphp_stream_filter_register_factory - const char *filterpattern - php_stream_filter_factory *factory - - - この関数を使用して、 - filterpattern という名前のフィルタファクトリを登録します。 - filterpattern には、通常の文字列 - (たとえば myfilter) あるいはグローバルパターン - (たとえば myfilterclass.*) を使用できます。 - これを用いると、ひとつのフィルタで、起動されたフィルタの名前に応じて - (たとえば myfilterclass.foomyfilterclass.bar - など...) 異なる処理をさせることができます。 - - - - 読み込み可能なモジュールとして登録したフィルタは、MSHUTDOWN 時に - php_stream_filter_unregister_factory() をコールしなければなりません。 - - - - - - - php_stream_filter_unregister_factory - Stream API へのフィルタファクトリの登録を解除する - - - 説明 - - intphp_stream_filter_unregister_factory - const char *filterpattern - - - filterpattern で指定したフィルタファクトリの登録を解除します。 - このフィルタは、もう使用できなくなります。 - - - - 読み込み可能なモジュールとして登録したフィルタは、MSHUTDOWN 時に - php_stream_filter_unregister_factory() をコールしなければなりません。 - - - - -
- - - diff --git a/internals2/ze1/streams/constants.xml b/internals2/ze1/streams/constants.xml deleted file mode 100644 index 161e8f2547..0000000000 --- a/internals2/ze1/streams/constants.xml +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - - ストリームをオープンする際のオプション - - - これらの定数は、ストリームファクトリ関数の操作に影響を及ぼします。 - - - - IGNORE_PATH - - - - これはストリームのデフォルトのオプションです。要求されたファイルに - ついて、include_path に列挙されたパスを検索しないようにします。 - - - - - - - USE_PATH - - - - 要求されたファイルについて、include_path で列挙されたパスも検索します。 - - - - - - - IGNORE_URL - - - - ストリームを開く際に、登録された URL ラッパーの存在を無視します。 - 非 URL ラッパーについては考慮され、これらがパスをデコードします。 - このフラグの逆はありません; ストリームAPIは登録されたすべての - ラッパーをデフォルトで使用しようとします。 - - - - - - - IGNORE_URL_WIN - - - - Windows においては、IGNORE_URL と等価です。 - 他のシステムでは効果はありません。 - - - - - - - ENFORCE_SAFE_MODE - - - - ファイルを開く前に、ストリームの背後の実装が safe_mode チェックを - ファイルに対して行うよう指示します。 - このフラグを省くと、safe_mode チェックが行われず、PHP プロセスが - アクセス権をもつすべてのファイルに対してオープンが可能になります。 - - - - - - - REPORT_ERRORS - - - - このフラグがセットされていて、ファイルまたは URL を開く際に何らかのエラーが - 発生した場合に、ストリーム API は php_error 関数をあなたの代わりに - 実行します。これは、パスや URL がユーザー名やパスワードなど - エラー時にブラウザに表示されるべきでない情報を含むときに - (それがセキュリティ上のリスクになるため) 有用です。 - ストリーム API がエラーを出すときは、まずユーザー名やパスワードといった - 情報をパスから取り除いた後で、エラーメッセージを安全な形にしてから - エラーを出力します。 - - - - - - - STREAM_MUST_SEEK - - - - このフラグは、拡張モジュール内で、本当にストリームをランダムにシーク - する必要があるときに有用です。 - いくつかの種類のストリームはそのままの形ではシークができないことが - あるので、このフラグをセットしておくと、ストリーム API は、 - まず開かれたストリームがシーク可能かどうかを調べ、シークできない場合は、 - ストリームのデータをシーク可能な一時的なストレージ (テンポラリファイル - あるいはメモリーストリーム) にコピーします。 - このフラグは、ストリームに対してシーク動作を行ってから書き込みを行うような - 場合には適していません。アクセス対象のストリームは当初アクセスを要求した - リソースに必ずしも関連付けられているとは限らないからです。 - - - - もし、要求されたリソースがネットワークベースであった場合、 - この関数は、すべてのデータが読み込まれるまでブロックします。 - - - - - - - - STREAM_WILL_CAST - - - - もしあなたの拡張モジュールがサードパーティのライブラリを利用していて、 - そのライブラリには FILE* かファイルディスクリプタを渡さなくては - ならないとき、このフラグを使うと、ストリーム API にリソースを - オープンしても、バッファリングは行わないよう指示することができます。 - その後、php_stream_cast を使い、そのライブラリの - 必要とする FILE* や ファイルディスクリプタを取得できます。 - - - このフラグは HTTP URL にアクセスしたとき、 - 実際のストリームのデータが不定なオフセットの先から始まるような - 場合において、特に有用です。 - - - このオプションはストリーム API のレベルでのバッファリングを - 無効にするため、ストリーム関数のパフォーマンスが悪くなるかも - しれませんが、このオプションを利用するということは、あなたが - ストリームの背後にある実装に合わせるよう - ストリーム API 関数を使うことをストリームに宣言したということ - ですから、それは許容範囲内と考えられます。 - このオプションは本当に必要だと確信があるときにのみ用いてください。 - - - - - - - - - diff --git a/internals2/ze1/streams/dir.xml b/internals2/ze1/streams/dir.xml deleted file mode 100644 index d60bb11dd9..0000000000 --- a/internals2/ze1/streams/dir.xml +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - ストリームディレクトリAPIリファレンス - - 本セクションに示す一連の関数は、ローカルファイルおよびリモートファイル - (この機能をラッパーがサポートする場合!)で動作します。 - - - - - php_stream_opendir - - ファイルのリストを得るためにディレクトリをオープンする - - - - 説明 - - php_stream *php_stream_opendir - char *path - php_stream_context *context - - - php_stream_opendir は、path で - 指定されたディレクトリ内のファイルの一覧を取得するのに用いるストリーム - を返します。 - この関数の動作は、POSIX の opendir 関数とほぼ同一です。 - この関数は php_stream オブジェクトを返しますが、このストリーム - オブジェクトに対して共通 API の関数を使うことはお勧めできません。 - - - - - - - php_stream_readdir - - オープンしたディレクトリから次のディレクトリエントリを得る - - - - 説明 - - php_stream_dirent *php_stream_readdir - php_stream *dirstream - php_stream_dirent *ent - - - php_stream_readdir は、dirstream - より次のディレクトリエントリを読み出し、ent に格納します。 - 成功した場合の返り値は ent で、失敗した場合の - 返り値は NULL です。 - 各ディレクトリエントリに返された情報に関するより詳細については、 - php_stream_dirent - を参照してください。 - - - - - - - php_stream_rewinddir - 最初のエントリにディレクトリストリームを戻す - - - 説明 - - intphp_stream_rewinddir - php_stream *dirstream - - - php_stream_rewinddir は、 - 指定されたディレクトリストリームが最初のエントリを指すよう巻き戻します。 - 成功時に 0 を、失敗時に -1 を返します。 - - - - - - - php_stream_closedir - ディレクトリストリームを閉じ、リソースを解放する - - - 説明 - - intphp_stream_closedir - php_stream *dirstream - - - php_stream_closedir は、ディレクトリストリームを閉じ、 - それに関連付けられたリソースを開放します。 - 成功時に 0 を、失敗時に -1 を返します。 - - - - - - - - diff --git a/internals2/ze1/streams/file.xml b/internals2/ze1/streams/file.xml deleted file mode 100644 index ae7b8efe26..0000000000 --- a/internals2/ze1/streams/file.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - ストリームファイル API リファレンス - - - - php_stream_fopen_from_file - ANSI FILE* をストリームに変換する - - - 説明 - - php_stream *php_stream_fopen_from_file - FILE *file - char *mode - - - php_stream_fopen_from_file は、 - fileに基づくストリームを返します。 - mode は、fileをオープンする - 際に使用されたモードと同じである必要があり、さもないと、 - ストリームがファイルのモードと異なった場合に、書き込みを行うと、 - おかしな結果を生じる可能性があります。 - - - - - - - php_stream_fopen_tmpfile - tmpfile()でFILE*をオープンし、ストリームに変換する - - - 説明 - - php_stream *php_stream_fopen_tmpfile - void - - - php_stream_fopen_tmpfile は、モード "w+b" で開かれた - テンポラリファイルを元にしたストリームを返します。 - テンポラリファイルは、ストリームか閉じられるか、プロセスの終了時に - 削除されます。 - - - - - - - php_stream_fopen_temporary_file - - ファイル名を生成し、そのファイルへのストリームをオープンする - - - - 説明 - - php_stream *php_stream_fopen_temporary_file - const char *dir - const char *pfx - char **opened - - - php_stream_fopen_temporary_file は、dir - で指定されたディレクトリに、pfx で指定された - プレフィックスを持つテンポラリファイルを生成します。 - 生成されたファイル名は opened パラメータに返されますが、 - この値は、後で efree を使って開放する必要があります。 - ストリームは生成されたファイル名で、"w+b" モードで開かれます。 - なお、ファイルは自動的には削除されませんので、利用が終わったら自分で削除 - するか適切な場所に移動するかしなくてはなりません。 - - - - - - - - diff --git a/internals2/ze1/streams/index.xml b/internals2/ze1/streams/index.xml deleted file mode 100644 index 50b0ac26c0..0000000000 --- a/internals2/ze1/streams/index.xml +++ /dev/null @@ -1,332 +0,0 @@ - - - - - - - - PHP 拡張モジュールの作者用のストリーム API - - - - この章で説明する関数は PHP のソースコード内で用いられるものであり、 - PHP の関数ではありません。PHP のユーザー用のストリーム関数については - ストリーム関数のリファレンス - をご覧ください。 - - - - - 概要 - - PHPストリームAPIは、PHP拡張モジュールにファイルおよびソケット処理 - 用の統一化された手段を導入するものです。 - 共通の操作を行なうための標準関数を有する単一のAPIを使用することに - より、ストリームAPIは拡張モジュールがファイル、ソケット、URL、メモリ - スクリプトが定義したオブジェクトにアクセスすることを可能にします。 - ストリームは、新規ストリームを登録するために動的にロードされる - モジュール(およびスクリプト!)とすることができる実行時に拡張可能な - APIです。 - - - ストリームAPIの目的は、ファイル、URL、その他のストリームにできるデータ - ソースを平易な統一されたAPIにより、開発者が容易にオープンできるように - することです。APIは、ほぼANSI C stdio関数と(多くの主な関数について同等 - の意味を有しており、)類似しています。このため、Cプログラマは、 - ストリームに慣れている印象を受けるはずです。 - - - ストリームAPIは、いくつかの異なるレベルを処理します。 - 基本レベルでは、APIはストリーマブルなデータソースを表す - php_streamオブジェクトを定義します。 - やや高いレベルでは、APIは、URLからのデータおよびメタデータの取得を - サポートするために低レベルAPIをラップしたphp_stream_wrapper - オブジェクトを定義します。 - 追加のパラメータ context は、 - ほとんどのストリーム作成関数で使用できます。 - これはラッパーの stream_opener - メソッドに渡され、ラッパーの挙動を微調整します。 - - - あらゆるストリームは、一度オープンされると任意の数の - filters を適用することができます。 - これは、ストリームがデータを読み書きする際にそのデータを加工します。 - - - ストリームは、ファイル処理の他の形式にキャスト(変換)でき、 - 大きな問題もなくサードパーティ製のライブラリと組み合わせて使用する - ことができます。これにより、これらのライブラリがURLソースからデータに - 直接アクセスできるようになります。 - 使用するシステムにfopencookieまたは - funopen関数がある場合、 - 任意のPHPストリームをANSI stdioを使う任意のライブラリに渡すことさえ - できます! - - - - - ストリームの基本 - - ストリームの使用方法は、ANSI stdio関数の使用と非常に似ています。 - 主な違いは、使用を開始するストリームを得る方法です。 - 多くの場合、ストリームのハンドルを得るために - php_stream_open_wrapperを使用します。 - この関数の動作は、以下の例で示すようにfopenと非常によくにています。 - - - - PHPホームページを表示するための簡単なストリームの例 - - - - - - - 以下の表にその他の一般的なANSI stdio関数と等価なストリーム関数を - 示します。注記で除外されていない限り、関数の意味は同じです。 - - ANSI stdioと等価なストリームAPI関数 - - - - ANSI stdio関数 - PHP ストリーム関数 - 注意 - - - - - - fopen - php_stream_open_wrapper - ストリームではパラメータが増えています - - - - fclose - php_stream_close - - - - - fgets - php_stream_gets - - - - - fread - php_stream_read - パラメータnmembの値を1と仮定すると、プロトタイプはread(2)により似ることになります - - - - fwrite - php_stream_write - パラメータnmembの値を1と仮定すると、プロトタイプはwrite(2)により似ることになります - - - - fseek - php_stream_seek - - - - - ftell - php_stream_tell - - - - - rewind - php_stream_rewind - - - - - feof - php_stream_eof - - - - - fgetc - php_stream_getc - - - - - fputc - php_stream_putc - - - - - fflush - php_stream_flush - - - - - puts - php_stream_puts - fputsではなく、putsと同じ意味 - - - - fstat - php_stream_stat - ストリームはより情報の多いstat構造体を有しています - - - - -
- -
-
- - - リソースとしてのストリーム - - すべてのストリームは、作成されるとリソースとして登録されます。これにより、 - たとえ致命的なエラーが発生したとしても適切な後処理が行われることが保障されます。 - PHP のすべてのファイルシステム関数は、ストリームリソースに対して操作することができます。 - つまり、あなたの作成した拡張モジュールは、 - 通常の PHP ファイルポインタをパラメータとして受け取って - 結果をストリームで返すことができるということです。 - ストリーム API により、この処理が楽にできるようになっています。 - - - - ストリームをパラメータとして受け取る方法 - - - - - - - - 関数からストリームを返す方法 - - - - - - - ストリームの後始末が自動的に行われることから、 - わざわざ後始末を気にしたりしないずさんなプログラマでいても大丈夫と思われるかもしれません。 - 確かにそれでもうまくいくでしょうが、いくつかの理由からこれはお勧めできません。 - ストリームのオープン中はシステムリソースがロックされるので、 - 使用済みのファイルをオープンしたままにしておくと、 - 他のプロセスがファイルにアクセスできなくなります。 - 大量のファイルを扱うスクリプトでは、 - 使用済みのリソースを溜め込み続けるとメモリやファイル記述子の番号がいっぱいになってしまいます。 - その結果ウェブサーバーがリクエストを受け付けられないようになります。 - どうです? あまりいい話ではないでしょう? - ストリーム API には、すっきりとしたコードが書けるような細工が組み込まれています。 - ストリームを閉じるべき場所で閉じていない場合は、 - ウェブサーバーのエラーログに有用なデバッグ情報が出力されます。 - - - - 拡張モジュールの開発中は、常にデバッグビルド版の PHP を使用するようにしましょう - (configure の際に を指定します)。 - そうすることで、メモリリークやストリームのリークに関する重要な警告を受け取れるようになります。 - - - - 時には、リクエストを持続させるためにストリームをオープンし続けることが有用なこともあるでしょう。 - 例えばログを記録したり結果をファイルにトレースする場合などです。 - このようなストリームについて、確実に後始末を行うコードを書くことはさほど難しくありません。 - しかしその数行のコードがどうしても必要なのかというと、そうではないでしょう。 - このような場合にコードを書く手間を省くため、ストリームに対して - 「このストリームの後始末は自動処理にまかせる」という印をつけることができます。 - こうすると、ストリームの後始末が自動的に行われた際に、 - ストリーム API は何の警告も発しなくなります。この印をつけるには - php_stream_auto_cleanup を使用します。 - - - - &internals2.ze1.streams.constants; -
- - - diff --git a/internals2/ze1/streams/socket.xml b/internals2/ze1/streams/socket.xml deleted file mode 100644 index 6cd0e585b5..0000000000 --- a/internals2/ze1/streams/socket.xml +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - ストリーム ソケット API リファレンス - - - - php_stream_sock_open_from_socket - ソケットデスクリプタをストリームに変換する - - - 説明 - - php_stream *php_stream_sock_open_from_socket - intsocket - intpersistent - - - php_stream_sock_open_from_socket は、 - socket を元にしたストリームを返します。 - persistent は、ストリームを恒久的ストリームとして - 開くかどうかを指定します。一般的には、この値は 0 になることがほとんどです。 - - - - - - - php_stream_sock_open_host - ホストへの接続をオープンし、ストリームを返す - - - 説明 - - php_stream *php_stream_sock_open_host - const char *host - unsigned shortport - intsocktype - struct timeval *timeout - intpersistent - - - php_stream_sock_open_host は、指定されたホスト - host のポート port に対する - 接続を確立します。socktype は、 - 接続に適用される様式を指定します。socktype に - 指定できる値はシステムに依存していますが、大抵は (少なくとも) - SOCK_STREAM を、時系列的な、信頼性のある、 - 双方向接続のソケット (TCP)、 SOCK_DGRAM を、 - 接続型でなく信頼性の少ない固定長メッセージのソケット (UDP) に対して - 指定できます。 - - - persistent は、ストリームを恒久的ストリームとして - 開くかどうかを指定します。一般的には、この値は 0 になることがほとんどです。 - - - timeout が NULL でない場合、接続する間に許される - 最長の時間を指定します。 - もし、タイムアウトの値よりも長く接続に時間がかかったときは、 - 接続は中断され、ストリームがオープンできなかったことを示すよう - NULL が返されます。 - - - - タイムアウトの値は DNS ルックアップにかかる時間を含みません。 - ブロックしない DNS ルックアップを実装する移植性の高い方法がないからです。 - - - また、タイムアウトは、接続フェーズにのみ適用されます。 - もし、後に続く読み出しや書き込み操作についてタイムアウト時間を設定したい場合は、 - 一旦開かれたストリームに対し、 - php_stream_sock_set_timeout を使ってください。 - - - - ストリーム API は、socktype に指定できる値に - 制限を設けていませんが、自分の拡張モジュールをリリースする際には、 - その値がどれくらいの移植可能性を持つかについて考慮しましょう。 - - - - - - - php_stream_sock_open_unix - - Unix ドメインソケットをオープンし、ストリームへ変換する - - - - 説明 - - php_stream *php_stream_sock_open_unix - const char *path - intpathlen - intpersistent - struct timeval *timeout - - - php_stream_sock_open_unixpath - で指定された Unix ドメインソケットを開きます。pathlen - は、path の長さを指定します。 - timeout は NULL でない場合、 - 接続試行におけるタイムアウト時間を指定します。 - persistent は、ストリームを恒久的ストリームとして - 開くかどうかを指定します。一般的には、この値は 0 になることがほとんどです。 - - - - この関数は Unix ドメインソケットが実装されていない Windows では動きません。 - ただ、PHP のバイナリが cygwin を用いて作られている場合はこの限りではありません。 - 自分の拡張モジュールをリリースする際には、移植可能性について考慮しましょう。 - - - - - この関数は path を (Linux など) 抽象名前空間をもち、 - パス名の最初が NUL 文字になることがあるシステムに適すよう、 - バイナリセーフに扱います。 - - - - - - - - diff --git a/internals2/ze1/streams/structs.xml b/internals2/ze1/streams/structs.xml deleted file mode 100644 index 276e79bb6d..0000000000 --- a/internals2/ze1/streams/structs.xml +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - - - ストリーム構造体 - - - - struct php_stream_statbuf - ファイルまたはURLに関する情報を保持する - - - 説明 - - php_stream_statbuf - struct stat sb - - - sb は、通常のシステムが定義する - struct statです。 - - - - - - - struct php_stream_dirent - - ディレクトリ探索の際に一つのファイルに関する情報を保持する - - - - 説明 - - php_stream_dirent - char d_name[MAXPATHLEN] - - - d_name は、探索するディレクトリに関して - 相対的なファイル名を保持します。 - - - - - - - struct php_stream_ops - Holds member functions for a stream implementation - - - Description - - - - - - - - struct php_stream_wrapper - Holds wrapper properties and pointer to operations - - - Description - - - - - - - - struct php_stream_wrapper_ops - Holds member functions for a stream wrapper implementation - - - Description - - - - - - - - struct php_stream_filter - Holds filter properties and pointer to operations - - - Description - - - - - - - - struct php_stream_filter_ops - Holds member functions for a stream filter implementation - - - Description - - - - - - - - - diff --git a/internals2/ze1/tsrm/functions/ts_allocate_id.xml b/internals2/ze1/tsrm/functions/ts_allocate_id.xml deleted file mode 100644 index f9f3007148..0000000000 --- a/internals2/ze1/tsrm/functions/ts_allocate_id.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - ts_allocate_id - ... - - - - &reftitle.description; - #include <TSRM.h> - - ts_rsrc_idts_allocate_id - ts_rsrc_id*rsrc_id - size_tsize - ts_allocate_ctorctor - ts_allocate_dtordtor - - - ... - - - - - &reftitle.parameters; - - - - rsrc_id - - - ... - - - - - size - - - ... - - - - - ctor - - - ... - - - - - dtor - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/ts_free_id.xml b/internals2/ze1/tsrm/functions/ts_free_id.xml deleted file mode 100644 index 9fdc148a2e..0000000000 --- a/internals2/ze1/tsrm/functions/ts_free_id.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ts_free_id - ... - - - - &reftitle.description; - #include <TSRM.h> - - ts_free_id - ts_rsrc_idid - - - ... - - - - - &reftitle.parameters; - - - - id - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/ts_free_thread.xml b/internals2/ze1/tsrm/functions/ts_free_thread.xml deleted file mode 100644 index 5eaf4e68d6..0000000000 --- a/internals2/ze1/tsrm/functions/ts_free_thread.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ts_free_thread - ... - - - - &reftitle.description; - #include <TSRM.h> - - ts_free_thread - void - - - ... - - - - - &reftitle.parameters; - - - - void - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/ts_resource.xml b/internals2/ze1/tsrm/functions/ts_resource.xml deleted file mode 100644 index f3604dfe0c..0000000000 --- a/internals2/ze1/tsrm/functions/ts_resource.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ts_resource - ... - - - - &reftitle.description; - #include <TSRM.h> - - void*ts_resource - ts_rsrc_idid - - - ... - - - - - &reftitle.parameters; - - - - id - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/ts_resource_ex.xml b/internals2/ze1/tsrm/functions/ts_resource_ex.xml deleted file mode 100644 index 1d0c617c3b..0000000000 --- a/internals2/ze1/tsrm/functions/ts_resource_ex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - ts_resource_ex - ... - - - - &reftitle.description; - #include <TSRM.h> - - void*ts_resource_ex - ts_rsrc_idid - THREAD_T*th_id - - - ... - - - - - &reftitle.parameters; - - - - id - - - ... - - - - - th_id - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_error.xml b/internals2/ze1/tsrm/functions/tsrm_error.xml deleted file mode 100644 index dc2c2d99d3..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_error.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - tsrm_error - ... - - - - &reftitle.description; - #include <TSRM.h> - - inttsrm_error - intlevel - const char*format - ... - - - ... - - - - - &reftitle.parameters; - - - - level - - - ... - - - - - format - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_error_set.xml b/internals2/ze1/tsrm/functions/tsrm_error_set.xml deleted file mode 100644 index badedd8bd9..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_error_set.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - tsrm_error_set - ... - - - - &reftitle.description; - #include <TSRM.h> - - tsrm_error_set - intlevel - char*debug_filename - - - ... - - - - - &reftitle.parameters; - - - - level - - - ... - - - - - debug_filename - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_free_interpreter_context.xml b/internals2/ze1/tsrm/functions/tsrm_free_interpreter_context.xml deleted file mode 100644 index db43e408f9..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_free_interpreter_context.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - tsrm_free_interpreter_context - ... - - - - &reftitle.description; - #include <TSRM.h> - - tsrm_free_interpreter_context - void*context - - - ... - - - - - &reftitle.parameters; - - - - context - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_mutex_alloc.xml b/internals2/ze1/tsrm/functions/tsrm_mutex_alloc.xml deleted file mode 100644 index 6624852b33..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_mutex_alloc.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - tsrm_mutex_alloc - ... - - - - &reftitle.description; - #include <TSRM.h> - - MUTEX_Ttsrm_mutex_alloc - void - - - ... - - - - - &reftitle.parameters; - - - - void - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_mutex_free.xml b/internals2/ze1/tsrm/functions/tsrm_mutex_free.xml deleted file mode 100644 index 2fdc749a24..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_mutex_free.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - tsrm_mutex_free - ... - - - - &reftitle.description; - #include <TSRM.h> - - tsrm_mutex_free - MUTEX_Tmutexp - - - ... - - - - - &reftitle.parameters; - - - - mutexp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_mutex_lock.xml b/internals2/ze1/tsrm/functions/tsrm_mutex_lock.xml deleted file mode 100644 index cbeb0fb306..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_mutex_lock.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - tsrm_mutex_lock - ... - - - - &reftitle.description; - #include <TSRM.h> - - inttsrm_mutex_lock - MUTEX_Tmutexp - - - ... - - - - - &reftitle.parameters; - - - - mutexp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_mutex_unlock.xml b/internals2/ze1/tsrm/functions/tsrm_mutex_unlock.xml deleted file mode 100644 index 4480c02ba3..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_mutex_unlock.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - tsrm_mutex_unlock - ... - - - - &reftitle.description; - #include <TSRM.h> - - inttsrm_mutex_unlock - MUTEX_Tmutexp - - - ... - - - - - &reftitle.parameters; - - - - mutexp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_new_interpreter_context.xml b/internals2/ze1/tsrm/functions/tsrm_new_interpreter_context.xml deleted file mode 100644 index 7d7f271f9b..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_new_interpreter_context.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - tsrm_new_interpreter_context - ... - - - - &reftitle.description; - #include <TSRM.h> - - void*tsrm_new_interpreter_context - void - - - ... - - - - - &reftitle.parameters; - - - - void - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_set_interpreter_context.xml b/internals2/ze1/tsrm/functions/tsrm_set_interpreter_context.xml deleted file mode 100644 index 4854df0115..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_set_interpreter_context.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - tsrm_set_interpreter_context - ... - - - - &reftitle.description; - #include <TSRM.h> - - void*tsrm_set_interpreter_context - void*new_ctx - - - ... - - - - - &reftitle.parameters; - - - - new_ctx - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_set_new_thread_begin_handler.xml b/internals2/ze1/tsrm/functions/tsrm_set_new_thread_begin_handler.xml deleted file mode 100644 index b256a37522..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_set_new_thread_begin_handler.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - tsrm_set_new_thread_begin_handler - ... - - - - &reftitle.description; - #include <TSRM.h> - - void*tsrm_set_new_thread_begin_handler - tsrm_thread_begin_func_tnew_thread_begin_handler - - - ... - - - - - &reftitle.parameters; - - - - new_thread_begin_handler - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_set_new_thread_end_handler.xml b/internals2/ze1/tsrm/functions/tsrm_set_new_thread_end_handler.xml deleted file mode 100644 index cb41168092..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_set_new_thread_end_handler.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - tsrm_set_new_thread_end_handler - ... - - - - &reftitle.description; - #include <TSRM.h> - - void*tsrm_set_new_thread_end_handler - tsrm_thread_end_func_tnew_thread_end_handler - - - ... - - - - - &reftitle.parameters; - - - - new_thread_end_handler - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_shutdown.xml b/internals2/ze1/tsrm/functions/tsrm_shutdown.xml deleted file mode 100644 index d25e4c8a23..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_shutdown.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - tsrm_shutdown - ... - - - - &reftitle.description; - #include <TSRM.h> - - tsrm_shutdown - void - - - ... - - - - - &reftitle.parameters; - - - - void - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_startup.xml b/internals2/ze1/tsrm/functions/tsrm_startup.xml deleted file mode 100644 index cf70771857..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_startup.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - tsrm_startup - ... - - - - &reftitle.description; - #include <TSRM.h> - - inttsrm_startup - intexpected_threads - intexpected_resources - intdebug_level - char*debug_filename - - - ... - - - - - &reftitle.parameters; - - - - expected_threads - - - ... - - - - - expected_resources - - - ... - - - - - debug_level - - - ... - - - - - debug_filename - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/tsrm_thread_id.xml b/internals2/ze1/tsrm/functions/tsrm_thread_id.xml deleted file mode 100644 index 92cf6e1713..0000000000 --- a/internals2/ze1/tsrm/functions/tsrm_thread_id.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - tsrm_thread_id - ... - - - - &reftitle.description; - #include <TSRM.h> - - THREAD_Ttsrm_thread_id - void - - - ... - - - - - &reftitle.parameters; - - - - void - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_access.xml b/internals2/ze1/tsrm/functions/virtual_access.xml deleted file mode 100644 index 58be3469b2..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_access.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - virtual_access - ファイルに対するユーザーの権限をチェックする - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_access - const char*pathname - intmode - magicTSRMLS_DC - - - virtual_access は、 - access 関数のスレッドセーフなラッパーです。 - スレッド単位の仮想作業ディレクトリを考慮します。 - - - VCWD_ACCESS も参照ください。 - - - - - &reftitle.parameters; - - - - pathname - - - 権限を調べたいファイル。 - - - - - mode - - - モードマスク。 - - - - - TSRMLS_DC - - - スレッドコンテキスト。 - - - - - - - - - &reftitle.returnvalues; - - 成功した場合に 0、エラー時に -1 を返します。 - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_chdir.xml b/internals2/ze1/tsrm/functions/virtual_chdir.xml deleted file mode 100644 index 4f66891d9a..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_chdir.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - virtual_chdir - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_chdir - const char*path - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_chdir_file.xml b/internals2/ze1/tsrm/functions/virtual_chdir_file.xml deleted file mode 100644 index ee43c3b64d..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_chdir_file.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - virtual_chdir_file - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_chdir_file - const char*path - int (*p_chdir)(const char *path TSRMLS_DC)chdir_func - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - chdir_func - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_chmod.xml b/internals2/ze1/tsrm/functions/virtual_chmod.xml deleted file mode 100644 index 8b27d1b77c..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_chmod.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - virtual_chmod - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_chmod - const char*filename - mode_tmode - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - filename - - - ... - - - - - mode - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_chown.xml b/internals2/ze1/tsrm/functions/virtual_chown.xml deleted file mode 100644 index 31a73dd618..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_chown.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - virtual_chown - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_chown - const char*filename - uid_towner - gid_tgroup - intlink - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - filename - - - ... - - - - - owner - - - ... - - - - - group - - - ... - - - - - link - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_creat.xml b/internals2/ze1/tsrm/functions/virtual_creat.xml deleted file mode 100644 index 63b1be0e6f..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_creat.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - virtual_creat - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_creat - const char*path - mode_tmode - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - mode - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_cwd_shutdown.xml b/internals2/ze1/tsrm/functions/virtual_cwd_shutdown.xml deleted file mode 100644 index 745a834fa6..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_cwd_shutdown.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - virtual_cwd_shutdown - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - virtual_cwd_shutdown - void - - - ... - - - - - &reftitle.parameters; - - - - void - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_cwd_startup.xml b/internals2/ze1/tsrm/functions/virtual_cwd_startup.xml deleted file mode 100644 index 8d1c6da027..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_cwd_startup.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - virtual_cwd_startup - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - virtual_cwd_startup - void - - - ... - - - - - &reftitle.parameters; - - - - void - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_file_ex.xml b/internals2/ze1/tsrm/functions/virtual_file_ex.xml deleted file mode 100644 index 1af74c3b5a..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_file_ex.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - virtual_file_ex - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_file_ex - cwd_state*state - const char*path - verify_path_funcverify_path - intuse_realpath - - - ... - - - - - &reftitle.parameters; - - - - state - - - ... - - - - - path - - - ... - - - - - verify_path - - - ... - - - - - use_realpath - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_filepath.xml b/internals2/ze1/tsrm/functions/virtual_filepath.xml deleted file mode 100644 index 40013b9bd6..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_filepath.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - virtual_filepath - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_filepath - const char*path - char**filepath - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - filepath - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_filepath_ex.xml b/internals2/ze1/tsrm/functions/virtual_filepath_ex.xml deleted file mode 100644 index 6bb55f3c13..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_filepath_ex.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - virtual_filepath_ex - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_filepath_ex - const char*path - char**filepath - verify_path_funcverify_path - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - filepath - - - ... - - - - - verify_path - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_fopen.xml b/internals2/ze1/tsrm/functions/virtual_fopen.xml deleted file mode 100644 index a94236d976..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_fopen.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - virtual_fopen - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - FILE*virtual_fopen - const char*path - const char*mode - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - mode - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_getcwd.xml b/internals2/ze1/tsrm/functions/virtual_getcwd.xml deleted file mode 100644 index 738f5d4723..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_getcwd.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - virtual_getcwd - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - char*virtual_getcwd - char*buf - size_tsize - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - buf - - - ... - - - - - size - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_getcwd_ex.xml b/internals2/ze1/tsrm/functions/virtual_getcwd_ex.xml deleted file mode 100644 index 6440baf137..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_getcwd_ex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - virtual_getcwd_ex - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - char*virtual_getcwd_ex - size_t*length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_lstat.xml b/internals2/ze1/tsrm/functions/virtual_lstat.xml deleted file mode 100644 index da6728d42a..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_lstat.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - virtual_lstat - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_lstat - const char*path - struct stat*buf - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - buf - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_mkdir.xml b/internals2/ze1/tsrm/functions/virtual_mkdir.xml deleted file mode 100644 index f95285a5b4..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_mkdir.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - virtual_mkdir - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_mkdir - const char*pathname - mode_tmode - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - pathname - - - ... - - - - - mode - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_open.xml b/internals2/ze1/tsrm/functions/virtual_open.xml deleted file mode 100644 index fe0f022dbe..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_open.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - virtual_open - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_open - const char*path - magicTSRMLS_DC - intflags - ... - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - TSRMLS_DC - - - ... - - - - - flags - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_opendir.xml b/internals2/ze1/tsrm/functions/virtual_opendir.xml deleted file mode 100644 index 2a142494da..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_opendir.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - virtual_opendir - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - DIR*virtual_opendir - const char*pathname - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - pathname - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_popen.xml b/internals2/ze1/tsrm/functions/virtual_popen.xml deleted file mode 100644 index 046327ac3c..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_popen.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - virtual_popen - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - FILE*virtual_popen - const char*command - const char*type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - command - - - ... - - - - - type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_realpath.xml b/internals2/ze1/tsrm/functions/virtual_realpath.xml deleted file mode 100644 index e745d769bd..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_realpath.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - virtual_realpath - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - char*virtual_realpath - const char*path - char*real_path - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - real_path - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_rename.xml b/internals2/ze1/tsrm/functions/virtual_rename.xml deleted file mode 100644 index 5d9cecfdca..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_rename.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - virtual_rename - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_rename - char*oldname - char*newname - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - oldname - - - ... - - - - - newname - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_rmdir.xml b/internals2/ze1/tsrm/functions/virtual_rmdir.xml deleted file mode 100644 index 8c252919ae..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_rmdir.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - virtual_rmdir - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_rmdir - const char*pathname - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - pathname - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_stat.xml b/internals2/ze1/tsrm/functions/virtual_stat.xml deleted file mode 100644 index 0a826a5444..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_stat.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - virtual_stat - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_stat - const char*path - struct stat*buf - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - buf - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_unlink.xml b/internals2/ze1/tsrm/functions/virtual_unlink.xml deleted file mode 100644 index a3e2b6515a..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_unlink.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - virtual_unlink - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_unlink - const char*path - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/functions/virtual_utime.xml b/internals2/ze1/tsrm/functions/virtual_utime.xml deleted file mode 100644 index 95a58123e1..0000000000 --- a/internals2/ze1/tsrm/functions/virtual_utime.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - virtual_utime - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intvirtual_utime - const char*filename - struct utimbuf*buf - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - filename - - - ... - - - - - buf - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/index.xml b/internals2/ze1/tsrm/index.xml deleted file mode 100644 index 8b03083c04..0000000000 --- a/internals2/ze1/tsrm/index.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - TSRM API - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_access.xml b/internals2/ze1/tsrm/macros/vcwd_access.xml deleted file mode 100644 index b4dab913b8..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_access.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - VCWD_ACCESS - ファイルに対するユーザーの権限をチェックする - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_ACCESS - const char *pathname - mode_tmode - - - これは、virtual_access の便利なラッパーです。 - - - - - &reftitle.parameters; - - - - pathname - - - ... - - - - - mode - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_chdir.xml b/internals2/ze1/tsrm/macros/vcwd_chdir.xml deleted file mode 100644 index e0f883278d..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_chdir.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - VCWD_CHDIR - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_CHDIR - char *path - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_chdir_file.xml b/internals2/ze1/tsrm/macros/vcwd_chdir_file.xml deleted file mode 100644 index 5d3509def8..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_chdir_file.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - VCWD_CHDIR_FILE - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_CHDIR_FILE - char *path - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_chmod.xml b/internals2/ze1/tsrm/macros/vcwd_chmod.xml deleted file mode 100644 index b818bab164..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_chmod.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - VCWD_CHMOD - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_CHMOD - char *path - mode_tmode - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - mode - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_chown.xml b/internals2/ze1/tsrm/macros/vcwd_chown.xml deleted file mode 100644 index e8849671a6..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_chown.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - VCWD_CHOWN - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_CHOWN - char *path - uid_towner - gid_tgroup - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - owner - - - ... - - - - - group - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_creat.xml b/internals2/ze1/tsrm/macros/vcwd_creat.xml deleted file mode 100644 index 69a19bb3c1..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_creat.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - VCWD_CREAT - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_CREAT - char *path - mode_tmode - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - mode - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_fopen.xml b/internals2/ze1/tsrm/macros/vcwd_fopen.xml deleted file mode 100644 index 6c67de7df8..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_fopen.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - VCWD_FOPEN - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - FILE *VCWD_FOPEN - char *path - char *mode - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - mode - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_getcwd.xml b/internals2/ze1/tsrm/macros/vcwd_getcwd.xml deleted file mode 100644 index 04b3c0e035..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_getcwd.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - VCWD_GETCWD - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - char *VCWD_GETCWD - char *buff - size_tsize - - - ... - - - - - &reftitle.parameters; - - - - buff - - - ... - - - - - size - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_getwd.xml b/internals2/ze1/tsrm/macros/vcwd_getwd.xml deleted file mode 100644 index 4726ea843e..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_getwd.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - VCWD_GETWD - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - char *VCWD_GETWD - char *buf - - - ... - - - - - &reftitle.parameters; - - - - buf - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_lchown.xml b/internals2/ze1/tsrm/macros/vcwd_lchown.xml deleted file mode 100644 index 6936be5171..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_lchown.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - VCWD_LCHOWN - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_LCHOWN - char *path - uid_towner - gid_tgroup - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - owner - - - ... - - - - - group - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_lstat.xml b/internals2/ze1/tsrm/macros/vcwd_lstat.xml deleted file mode 100644 index 4c1ff20def..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_lstat.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - VCWD_LSTAT - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_LSTAT - char *path - struct stat *buff - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - buff - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_mkdir.xml b/internals2/ze1/tsrm/macros/vcwd_mkdir.xml deleted file mode 100644 index 0ec0c5d4ac..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_mkdir.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - VCWD_MKDIR - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_MKDIR - char *pathname - mode_tmode - - - ... - - - - - &reftitle.parameters; - - - - pathname - - - ... - - - - - mode - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_open.xml b/internals2/ze1/tsrm/macros/vcwd_open.xml deleted file mode 100644 index e3e55fdcb2..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_open.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - VCWD_OPEN - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_OPEN - char *path - intflags - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - flags - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_open_mode.xml b/internals2/ze1/tsrm/macros/vcwd_open_mode.xml deleted file mode 100644 index e61938a31e..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_open_mode.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - VCWD_OPEN_MODE - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_OPEN_MODE - char *path - intflags - mode_tmode - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - flags - - - ... - - - - - mode - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_opendir.xml b/internals2/ze1/tsrm/macros/vcwd_opendir.xml deleted file mode 100644 index 2c4c360d00..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_opendir.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - VCWD_OPENDIR - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - DIR *VCWD_OPENDIR - char *pathname - - - ... - - - - - &reftitle.parameters; - - - - pathname - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_popen.xml b/internals2/ze1/tsrm/macros/vcwd_popen.xml deleted file mode 100644 index ec79e4ed70..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_popen.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - VCWD_POPEN - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - FILE *VCWD_POPEN - char *command - char *type - - - ... - - - - - &reftitle.parameters; - - - - command - - - ... - - - - - type - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_realpath.xml b/internals2/ze1/tsrm/macros/vcwd_realpath.xml deleted file mode 100644 index 0c2184b771..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_realpath.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - VCWD_REALPATH - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - char *VCWD_REALPATH - char *path - char *real_path - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - real_path - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_rename.xml b/internals2/ze1/tsrm/macros/vcwd_rename.xml deleted file mode 100644 index f6e13a42b0..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_rename.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - VCWD_RENAME - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_RENAME - char *oldname - char *newname - - - ... - - - - - &reftitle.parameters; - - - - oldname - - - ... - - - - - newname - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_rmdir.xml b/internals2/ze1/tsrm/macros/vcwd_rmdir.xml deleted file mode 100644 index 0725db3a69..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_rmdir.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - VCWD_RMDIR - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_RMDIR - char *pathname - - - ... - - - - - &reftitle.parameters; - - - - pathname - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_stat.xml b/internals2/ze1/tsrm/macros/vcwd_stat.xml deleted file mode 100644 index 85295e4458..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_stat.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - VCWD_STAT - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_STAT - char *path - struct stat *buff - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - buff - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_unlink.xml b/internals2/ze1/tsrm/macros/vcwd_unlink.xml deleted file mode 100644 index d8f19872f3..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_unlink.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - VCWD_UNLINK - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_UNLINK - char *path - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/tsrm/macros/vcwd_utime.xml b/internals2/ze1/tsrm/macros/vcwd_utime.xml deleted file mode 100644 index 0d3b1e9f42..0000000000 --- a/internals2/ze1/tsrm/macros/vcwd_utime.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - VCWD_UTIME - ... - - - - &reftitle.description; - #include <tsrm_virtual_cwd.h> - - intVCWD_UTIME - char *path - struct utimebuf *time - - - ... - - - - - &reftitle.parameters; - - - - path - - - ... - - - - - time - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/api-macros.xml b/internals2/ze1/zendapi/api-macros.xml deleted file mode 100644 index a2637a17ad..0000000000 --- a/internals2/ze1/zendapi/api-macros.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - API マクロ - - Zend API では、zval コンテナへのアクセスを単純化する - マクロ群が定義されています ( - を参照ください)。 - - - - <envar>zval</envar> コンテナへのアクセスのための API マクロ - - - - - - マクロ - 参照先 - - - Z_LVAL(zval) - (zval).value.lval - - - Z_DVAL(zval) - (zval).value.dval - - - Z_STRVAL(zval) - (zval).value.str.val - - - Z_STRLEN(zval) - (zval).value.str.len - - - Z_ARRVAL(zval) - (zval).value.ht - - - Z_LVAL_P(zval) - (*zval).value.lval - - - Z_DVAL_P(zval) - (*zval).value.dval - - - Z_STRVAL_P(zval_p) - (*zval).value.str.val - - - Z_STRLEN_P(zval_p) - (*zval).value.str.len - - - Z_ARRVAL_P(zval_p) - (*zval).value.ht - - - Z_LVAL_PP(zval_pp) - (**zval).value.lval - - - Z_DVAL_PP(zval_pp) - (**zval).value.dval - - - Z_STRVAL_PP(zval_pp) - (**zval).value.str.val - - - Z_STRLEN_PP(zval_pp) - (**zval).value.str.len - - - Z_ARRVAL_PP(zval_pp) - (**zval).value.ht - - - -
-
- diff --git a/internals2/ze1/zendapi/arguments.xml b/internals2/ze1/zendapi/arguments.xml deleted file mode 100644 index 350429c3ec..0000000000 --- a/internals2/ze1/zendapi/arguments.xml +++ /dev/null @@ -1,1016 +0,0 @@ - - - - - 引数の扱い - - 言語を拡張する際の最も重要な問題のひとつは、 - 引数として渡されるデータの扱いです。たいていの拡張モジュールは、 - 何らかの入力データを扱う (あるいはパラメータを受け取って - 特定の動作を行う) ように作られています。そして、 - PHP と C 言語の間でデータをやり取りするための唯一の方法が - 関数の引数となります。 - 事前に定義したグローバル値を使用してデータを交換することももちろん可能ですが - (この方法についても後述します)、いろんな意味でこの方法は避けるべきです。 - これはまったくお勧めできない手段です。 - - - PHP では、正式に関数を宣言 (declare) することはありません。 - そのため、関数コールの構文は完全に動的なものとなり、 - エラーチェックは行われません。 - コール方法が正しいかどうかを調べるのは、ユーザーが書くコードの役割となります。 - 例えば、ある関数に対して引数をひとつだけ指定してコールした後、 - 同じ関数に対して 4 つの引数を指定してコールすることも可能です。 - どちらのコールについても、文法的にはまったく正しいものとなります。 - - - 引数の数の定義 - - PHP が正式な関数宣言を行わないためにコール時の文法チェックが行われない、 - また PHP が可変引数をサポートしているなどの理由で、 - 実際にその関数にいくつの引数が渡されたのかを知らなければならないこともあるでしょう。 - そのような場合には ZEND_NUM_ARGS マクロを使用します。 - 以前のバージョンの PHP では、コール時の引数の数を取得するために - このマクロは関数のハッシュテーブルのエントリ - ht を使用していました。このエントリは - INTERNAL_FUNCTION_PARAMETERS - のリストから渡されました。 - 関数に渡された引数の数は今では ht - 自体に含まれているので、ZEND_NUM_ARGS - はダミーのマクロとなっています (実際の定義は - zend_API.h を参照ください)。 - しかし、今後のことを考えると、 - 呼び出しインターフェイスが変わっても互換性を保ち続けられるように - このマクロを使用しておくことをお勧めします。 - 注意: 昔の PHP では、このマクロと同等の働きをするのは - ARG_COUNT マクロでした。 - - - 引数の数が正しいかどうかを調べるコードは次のようになります。 - -if(ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT; - - 関数コール時の引数の数が 2 つでなかった場合、 - これはエラーメッセージを表示して終了します。 - 上のコードは、WRONG_PARAM_COUNT - マクロの使用例でもあります。 - これは、以下のような標準的なエラーメッセージを生成するために使用するものです。 - - - - このマクロはデフォルトのエラーメッセージを表示し、呼び出し元に制御を戻します。 - このマクロの定義もまた zend_API.h - にあります。このような内容です。 - - - - ご覧の通り、このマクロは - wrong_param_count という名前の内部関数をコールしています。 - この関数が警告を表示しています。独自のエラーメッセージを作成するための方法については、 - 後半の節「情報の表示」を参照ください。 - - - - - 引数の取得 - - - - パラメータのパース用の新しい API - - - この章では、Andrei Zmievski による新しい - Zend パラメータパース用 API を説明します。この API は - PHP 4.0.6 から PHP 4.1.0 の間の開発中に導入されました。 - - - - - パラメータのパースはあまりにもありふれた操作であり、少し退屈に感じることもあるでしょう。 - また、エラーチェックやエラーメッセージは標準化されていたほうがいいでしょう。 - PHP 4.1.0 以降では、パラメータのパース用の新しい API を使用することでこれが実現できます。 - この API はパラメータの受け取りを劇的に単純化していますが、 - 可変引数を受け取る関数には使用できないという弱点があります。 - しかし、大半の関数では、引数の数は固定です。そのため、 - 新しい標準として、このパース用 API の使用を推奨します。 - - - - パラメータのパース用関数のプロトタイプは、このようになります。 - - - - 最初の引数に、あなたの関数が受け取るパラメータの数を指定します。 - ここでは ZEND_NUM_ARGS() が使用できます。 - 2 番目のパラメータは、常に TSRMLS_CC - マクロでなければなりません。3 番目の引数は、 - あなたの関数が受け取る引数の数および型を表す文字列です。 - これは、printf の書式指定文字列によって出力内容を指定するのに似ています。 - そして最後に、パラメータの値を受け取る変数へのポインタを指定します。 - - - - 常に希望通りの型でデータを受け取ることができるよう、 - zend_parse_parameters は可能な範囲で型変換を行います。 - あらゆるスカラー型は別のスカラー型に変換することが可能です。 - しかし、複雑な型 (配列、オブジェクトあるいはリソース) - とスカラー型の間の型変換はできません。 - - - - パラメータの取得に成功し、かつ型変換でエラーが発生しなかった場合は - この関数は SUCCESS を返します。それ以外の場合は - FAILURE を返します。また、 - 「パラメータの数が一致しない」「型変換ができなかった」 - などの情報を含むエラーメッセージを出力します。 - - - - 出力されるエラーメッセージは、例えば次のようなものになります。 - - Warning - ini_get_all() requires at most 1 parameter, 2 given - Warning - wddx_deserialize() expects parameter 1 to be string, array given - - もちろん、これらのメッセージにはエラーの発生したファイル名や行番号も含まれています。 - - - - 型を指定する文字の一覧をここにまとめます。 - - - l - long - - - d - double - - - s - string (null バイトの可能性もあり) およびその長さ - - - b - boolean - - - r - zval* に保存されたリソース - - - a - zval* に保存された配列 - - - o - zval* に保存された (あらゆるクラスの) オブジェクト - - - O - zval* に保存された (クラスエントリで指定されているクラスの) オブジェクト - - - z - zval* 自体 - - - 以下の文字は、型指定文字列の中で特別な意味を持ちます。 - - - - | - 残りのパラメータがオプションであることを表します。 - これらのパラメータに対応する保存用変数は、 - 拡張モジュール自身によってデフォルト値で初期化されなければなりません。 - なぜなら、パラメータが渡されていなければパース関数を通過しないからです。 - - - - - / - パラメータの後にこの文字を続けると、 - そのパラメータに対して SEPARATE_ZVAL_IF_NOT_REF - をコールします。これにより、そのパラメータが参照でなければパラメータのコピーが作成されます。 - - - - - ! - パラメータの後にこの文字を続けると、 - そのパラメータは指定した型あるいは NULL - となります (a、o、O、r および z についてのみ適用可能)。 - NULL 値が渡された場合は、 - 保存ポインタの値が NULL - に設定されます。 - - - - - - - この関数の使用法について説明するには、 - 実際の例を見ていただくのがいちばんでしょう。 - - - - - - - 最後の例で、ZEND_NUM_ARGS - を使用せずにパラメータ数を 3 としていることに注目しましょう。 - こうすることで、可変引数の関数に対して最低限必要な引数の数を指定することができます。 - もちろん、もし残りのパラメータについても処理したいのなら - zend_get_parameters_array_ex - を使用してそれを取得しなければなりません。 - - - - 拡張版のパース関数も存在します。 - これは、追加のフラグを引数に指定することでその動きを制御します。 - - - - - - - 現在は、渡すことのできるフラグは ZEND_PARSE_PARAMS_QUIET - だけです。これを指定すると、処理中に発生したエラーメッセージを出力しないようになります。 - これは、その関数がさまざまな形式の引数を受け取ることを想定しており、 - 独自のエラーメッセージで対応したい場合などに有用です。 - - - - 例えば、3 つの long 値あるいは 3 つの文字列を受け取る関数は、 - このようになります。 - - - - - - - 上で説明したいずれの場合についても、パラメータの取得処理は慎重に行いましょう。 - これ以外の例については、PHP に同梱されている拡張モジュールのソースを - 参考にしてください。便利な使用法がいろいろ発見できるでしょう。 - - - - - 引数の取得の古い方法 (廃止予定) - - - 廃止予定のパラメータパース用 API - - - この API は非推奨です。現在は新しい ZEND - パラメータパース API が使用されています。 - - - - 引数の数をチェックし終えたら、次は引数そのものにアクセスしなければなりません。 - そのためには zend_get_parameters_ex - の助けを借りることになります。 - - - - すべての引数は zval コンテナに格納され、 - 二重にポイントされる必要があります。 - 上のコードは、引数を取得してそれをポインタ - parameter でアクセスできるようにしています。 - - - zend_get_parameters_ex は、少なくとも 2 つの引数を受け付けます。 - 最初の引数は、取得する引数の数です (これは、 - 関数がコールされた際の引数の数と同じでなければなりません。 - そのため、呼び出し構文をきちんとチェックすることが大切になります)。 - 2 番目 (およびそれ以降) の引数は、zval - へのポインタへのポインタへのポインタ (なんてややこしいことでしょう!) です。 - これが必要になるのは、私たちが作成した関数内のローカル - **zval を管理するために Zend は内部で - **zval を使用しており、 - zend_get_parameters_ex はそれに対するポインタを必要とするからです。 - - - zend_get_parameters_ex の返り値は - SUCCESS あるいは - FAILURE で、それぞれ (当然のごとく) - 成功したこと、あるいは引数の処理に失敗したことを示します。 - もっともありがちな失敗の原因は、パラメータの数を間違えることです。 - この場合は、 - WRONG_PARAM_COUNT - で関数を抜けなければなりません。 - - - 複数の引数を受け取るには、このようにします。 - - - - - - zend_get_parameters_ex がエラーとなるのは、 - 実際の数より多くのパラメータを取得しようとした場合のみです。 - もし実際の関数が 5 つの引数でコールされたのに - zend_get_parameters_ex では 3 つしか取得しなかった場合、 - 何もエラーは発生せず、最初の 3 つのパラメータが取得されます。 - 続けて zend_get_parameters_ex をコールしたとしても、 - 残りの引数が取得できるわけではなく最初と同じものが得られるだけです。 - - - - - 可変引数 / オプションパラメータの扱い - - もしあなたの関数が可変引数を受け付けるのなら、 - さきほどの例が次善の策となることもあるでしょう。ただ、 - 取りうる可能性のあるすべての引数の数に対して、それぞれ - zend_get_parameters_ex コールしなければならず、 - 不満が残ります。 - - - このような場合には、 - zend_get_parameters_array_ex 関数を使うことができます。 - これは、引数の数を指定してデータを取得し、それを配列に格納します。 - - 4) - WRONG_PARAM_COUNT; - -/* 引数の数が正しかったので、その内容を取得します */ -if(zend_get_parameters_array_ex(argument_count, parameter_array) != SUCCESS) - WRONG_PARAM_COUNT; -]]> - - まず、引数の数を調べてそれが予期する範囲内にあることを確かめます。 - それから - zend_get_parameters_array_ex を使用し、 - 引数の値へのポインタを parameter_array - に格納します。 - - - これを非常にうまく実装したのが、PHP の - fsockopen を処理するコードです。このコードは - ext/standard/fsock.c にあり、 - で見ることができます。 - このソースの中に知らない関数が含まれていたとしても、現時点では問題ありません。 - すぐにわかるようになります。 - - - - fsockopen() における、PHP の可変引数処理の実装 - - 5 || arg_count < 2 || zend_get_parameters_array_ex(arg_count,args)==FAILURE) { - CLOSE_SOCK(1); - WRONG_PARAM_COUNT; -} - -switch(arg_count) { - case 5: - convert_to_double_ex(args[4]); - conv = (unsigned long) (Z_DVAL_PP(args[4]) * 1000000.0); - timeout.tv_sec = conv / 1000000; - timeout.tv_usec = conv % 1000000; - /* fall-through */ - case 4: - if (!PZVAL_IS_REF(*args[3])) { - php_error(E_WARNING,"error string argument to fsockopen not passed by reference"); - } - pval_copy_constructor(*args[3]); - ZVAL_EMPTY_STRING(*args[3]); - /* fall-through */ - case 3: - if (!PZVAL_IS_REF(*args[2])) { - php_error(E_WARNING,"error argument to fsockopen not passed by reference"); - return; - } - ZVAL_LONG(*args[2], 0); - break; -} - -convert_to_string_ex(args[0]); -convert_to_long_ex(args[1]); -portno = (unsigned short) Z_LVAL_P(args[1]); - -key = emalloc(Z_STRLEN_P(args[0]) + 10); -]]> - - - - fsockopen が受け付ける引数の数は、 - 2、3、4、あるいは 5 です。お決まりの変数宣言の後に、 - この関数は引数の数が範囲内にあるかどうかを調べます。 - それから、switch() 文の下に流れていく性質を利用して、 - すべての引数を処理します。switch() 文は、 - まず引数の数が最大 (5 個) であった場合の処理から始まります。 - その後、引数の数が 4 個であった場合の処理、3 個であった場合の処理、 - と順にたどっていきます。これは、キーワード break - の記述を省略しているからです。最後の処理を実行した後で - switch() 文は終了し、 - 関数の引数が 2 個だけであった場合でも、必要最小限の処理が実行されます。 - - - このように複数ステージの処理を段階的に実行するようにすると、 - 可変引数の処理がやりやすくなります。 - - - - - 引数へのアクセス - - 引数にアクセスするには、すべての引数の型がきちんと定義されていなければなりません。 - 何度も言いますが、PHP は究極の動的言語なので、時に問題が起こることがあります。 - PHP は一切の型チェックを行わないので、 - どんな型のデータでも関数に渡すことができてしまいます。 - 本当は整数値を期待しているのに配列が渡されるかもしれないし、 - その逆だってありえます。PHP は、こんな場合でも一切なにも通知しません。 - - - これを防ぐには、これらの API を使用して引数の方を強制的に変換しなければなりません - ( を参照ください)。 - - - 注意: すべての変換関数のパラメータは - **zval です。 - - - 引数の変換関数 - - - - - - 関数 - 説明 - - - convert_to_boolean_ex - - Boolean 型への強制的な変換を行います。 - Boolean 値が渡された場合は何もしません。 - Long、double および 0 を含む文字列、 - そして NULL 値は Boolean 0 (FALSE) - となります。配列やオブジェクトは、 - その元になっているエントリやプロパティの数を基準にして変換されます。 - 空の配列や空のオブジェクトは FALSE、それ以外は TRUE となります。 - その他の値は、すべて Boolean 1 (TRUE) になります。 - - - - convert_to_long_ex - - long 型 (デフォルトの整数型) への強制的な変換を行います。 - NULL 値、Boolean、リソースおよび long はそのまま何もしません。 - double は切り詰められます。整数値を含む文字列は対応する数値表現に変換され、 - それ以外の文字列は 0 になります。 - 配列やオブジェクトは、中身が空の場合に 0、 - それ以外の場合に 1 となります。 - - - - convert_to_double_ex - - double 型 (デフォルトの浮動小数点数値型) への強制的な変換を行います。 - NULL 値、Boolean、リソース、long、そしてもちろん double - はそのまま何もしません。数値を含む文字列は対応する数値表現に変換され、 - それ以外の文字列は 0.0 になります。 - 配列やオブジェクトは、中身が空の場合に 0.0、 - それ以外の場合に 1.0 となります。 - - - - convert_to_string_ex - - 文字列への強制的な変換を行います。文字列が渡された場合は何もしません。 - NULL 値は空の文字列に変換されます。Boolean TRUE は - "1"、それ以外の Boolean は空の文字列となります。 - long および double はそれぞれ対応する文字列表現に変換されます。 - 配列は "Array"、オブジェクトは - "Object" という文字列に変換されます。 - - - - convert_to_array_ex(value) - - 配列への強制的な変換を行います。配列が渡された場合は何もしません。 - オブジェクトは、すべてのプロパティが配列に変換されます。 - プロパティ名が配列のキー、プロパティの内容が配列の値となります。 - NULL 値は空の配列に変換されます。それ以外のすべての値は、 - キー 0 に対応する値として元の値を格納した配列となります。 - - - - convert_to_object_ex(value) - - オブジェクトへの強制的な変換を行います。オブジェクトが渡された場合は何もしません。 - NULL 値は空のオブジェクトに変換されます。配列は、そのキーをプロパティに、 - その値をプロパティの内容として保持するオブジェクトに変換されます。 - その他の型は、すべてプロパティ scalar - をもつオブジェクトに変換されます。このプロパティの内容は、 - 変換前の値となります。 - - - - convert_to_null_ex(value) - NULL 値、つまり空白になるように変換します。 - - - -
- - - これらの振る舞いのデモが、付録 CD-ROM の - cross_conversion.php で見られます。 - - - - PHP の型変換の挙動 - - - - - - 引数に対してこれらの関数を使用することで、 - 渡されたデータの型の安全性を確保できます。 - 渡された型が要求と異なった場合、PHP は空の値 - (空の文字列、配列、オブジェクトや - 数値の 0、Boolean の FALSE - など) を結果として返します。 - - - これは、先ほど説明したサンプルモジュールのコードの一部を引用したものです。 - ここで実際に変換関数を使用しています。 - - - - パラメータへのポインタを取得した後に、パラメータの値が long 型 - (整数値) に変換されます。そしてそれがこの関数の返り値となります。 - この値の中身にアクセスするには、zval - 型についての知識が必要です。その定義を - に示します。 - - - - PHP/Zend <envar>zval</envar> 型定義 - - - - - - 実際のところは pval (php.h で定義) - は単なる zval (zend.h で定義) - のエイリアスであり、これは _zval_struct をさしています。 - そこで、この構造体に注目してみましょう。 - _zval_struct は「マスタ」構造体であり、 - その中には値情報、型情報、参照情報が含まれています。 - 中に含まれている zvalue_value は共用体であり、 - 変数の値がそこに含まれます。変数の型に応じて、共用体の中の適切なメンバーにアクセスする必要があります。 - それぞれの構造体については - 、 - および - を参照ください。 - - - Zend <envar>zval</envar> 構造体 - - - - - - 項目 - 説明 - - - value - - この変数の内容を含む共用体。詳細は - - を参照ください。 - - - - type - - 変数の型を含みます。使用可能な型については - - を参照ください。 - - - - is_ref - - この変数が参照ではない場合に 0、 - 他の変数への参照である場合に 1 となります。 - - - - refcount - - この変数に対する参照の数。この変数に格納されている値への新しい参照が作成されるたびに、 - カウンタが 1 増加します。参照が解除されるたびに、カウンタが 1 減少します。 - 参照カウンタが 0 になった段階で、この値はどこからも参照されていないことになります。 - この時点で、自動的にメモリが解放されます。 - - - - -
- - Zend <envar>zvalue_value</envar> 構造体 - - - - - - 項目 - 説明 - - - lval - - 変数の型が IS_LONG、 - IS_BOOLEAN あるいは IS_RESOURCE - である場合にこのプロパティを使用します。 - - - - dval - - 変数の型が IS_DOUBLE - である場合にこのプロパティを使用します。 - - - - str - - 型が IS_STRING の変数にアクセスする際に、この構造体を使用します。 - len には文字列の長さが含まれ、 - val が文字列へのポインタとなります。Zend は C の文字列を使用しているので、 - 文字列の長さには、最後の 0x00 のぶんも含まれます。 - - - - ht - - 変数が配列である場合に、この項目は配列のハッシュテーブルエントリへのポインタとなります。 - - - - obj - - 変数の型が IS_OBJECT - である場合にこのプロパティを使用します。 - - - - -
- - - Zend 変数の型を表す定数 - - - - - - 定数 - 説明 - - - IS_NULL - NULL (空白) 値を表します。 - - - IS_LONG - long (整数) 値。 - - - IS_DOUBLE - double (浮動小数点) 値。 - - - IS_STRING - 文字列。 - - - IS_ARRAY - 配列を表します。 - - - IS_OBJECT - オブジェクト。 - - - IS_BOOL - Boolean 値。 - - - IS_RESOURCE - - リソース (リソースについては、 - 以下の適切なセクションを参照ください)。 - - - - IS_CONSTANT - 定数 (定義済み) 値。 - - - -
- - long 値にアクセスするには zval.value.lval、 - double 値にアクセスするには zval.value.dval、といったように使用します。 - すべての値は共用体に保存されるので、不適切なメンバーにアクセスすると、 - 無意味な結果を得ることになります。 - - - 配列やオブジェクトへのアクセスは少し複雑なので、後で説明します。 - -
- - - 参照渡しされた引数の扱い - - 参照渡しの引数を受け取って関数内部でそれを変更しようとする場合は、 - 少々注意が必要です。 - - - 敢えて説明しませんでしたが、ここで示している状況では、 - 関数のパラメータとして受け取った zval - に対する書き込み権限はありません。 - もちろん関数内で独自に作成した zval を変更することは可能ですが、 - Zend の内部データを参照している zval は、 - 決して変更してはいけません。 - - - これまで説明してきたのは、いわゆる *_ex 系の API - ばかりです。お気づきかもしれませんが、これまで使用してきた API 関数は - zend_get_parameters ではなくて - zend_get_parameters_ex でしたし、また - convert_to_long ではなくて - convert_to_long_ex でした。これらの - *_ex 系の関数は、いわゆる「拡張」Zend API と呼ばれるものです。 - これらは、以前の API に比べて速度が少し向上しているのですが、 - それと引き換えに読み込み専用のアクセスしかできないようになっています。 - - - Zend は内部的には参照を使用しているので、 - さまざまな変数が同じ値を参照することもありえます。 - zval コンテナへの書き込みアクセスをするためには、 - このコンテナが保持する値が他と完全に分離していること、 - つまり他のコンテナから参照されていないことが必要です。 - zval コンテナが他のコンテナから参照されている場合に - その zval を変更すると、この zval - を参照しているその他のコンテナの内容も変わってしまいます - (それらも変更後の値を指すようになるからです)。 - - - zend_get_parameters_ex は、単に zval - コンテナへのポインタを返します。そこに参照が含まれているかどうかは考慮しません。 - 一方、これに対応する伝統的な API である - zend_get_parameters は、参照をチェックします。 - 参照が見つかった場合には、独立した zval - コンテナを新しく作成し、参照先のデータをそこにコピーし、 - その新しく作成した (他とは分離している) コンテナへのポインタを返します。 - - - この操作のことを zval separation (zval の分離) - (あるいは pval separation) と言います。*_ex API - は zval の分離を行わないません。そのために大幅に高速化されましたが、 - その代償として書き込みアクセスができなくなっています。 - - - とは言うものの、パラメータを変更するには書き込みアクセスをしなければなりません。 - このような場合のために、Zend には特別な方法が用意されています。 - 関数のパラメータが参照渡しされた場合は、自動的に zval の分離が行われるのです。 - つまり、PHP で下のように関数をコールすると、$parameter - が独立した値として渡されることを Zend が自動的に保証してくれるのです。 - これにより、書き込みが可能となります。 - - - - - - しかし、これは値渡しのパラメータには適用されません! - 参照渡し以外で渡されたパラメータ以外は、読み込み専用となります。 - - - - これらの性質により、パラメータを扱う際にはそれが参照なのかそうでないのかをしっかり見極める必要があります。 - さもないと、思ってもいない結果を引き起こすことになります。 - パラメータが参照渡しされたかどうかを調べるためには、マクロ - PZVAL_IS_REF を使用します。このマクロは - zval* を受け取り、それが参照かそうでないかを返します。 - に実際の使用例があります。 - - - パラメータが参照で渡されたかどうかを調べる - - - - - パラメータが参照で渡されたかどうかを調べる - - - - - - - - - その他のパラメータの書き込みについての安全性の保障 - - zend_get_parameters_ex で取得したパラメータのうち、 - 参照渡しではないものについても値を変更したくなる場合があるかもしれません。 - そんなときには、マクロ SEPARATE_ZVAL を使用します。 - これは、指定したコンテナについて zval の分離を行います。 - 新しく作成された zval は内部のデータとは分離されており、 - ローカルスコープでしか使用できません。つまり、 - スクリプト全体のコンテキストに影響を与えることなく - データを変更したり破壊したりできるようになるのです。 - - はまだ */ -/* Zend の内部データバッファと紐付いています */ - -/* を書き込み可能にします */ -SEPARATE_ZVAL(parameter); - -/* この時点で、 が変更できるようになります。*/ -/* グローバルに影響を与えることはありません */ -]]> - - SEPARATE_ZVAL は、emalloc - を使用して新しい zval コンテナを確保します。 - つまり、このメモリの開放を忘れてしまったとしても、 - スクリプトの終了時に自動的に破棄されるということです。 - しかし、コンテナを開放せずにこのマクロをコールし続けると、 - RAM が散らかってしまいます。 - - - 注意: 書き込み権限の問題については、 - 「伝統的な」API (zend_get_parameters やその他) - を使用すれば簡単に回避できます。しかし、この API - は非推奨のようなので、今後この章では深入りしません。 - - -
- diff --git a/internals2/ze1/zendapi/build.xml b/internals2/ze1/zendapi/build.xml deleted file mode 100644 index f482561c26..0000000000 --- a/internals2/ze1/zendapi/build.xml +++ /dev/null @@ -1,207 +0,0 @@ - - - - - PHP の自動ビルドシステム - - PHP 4 には、非常に柔軟な自動ビルドシステムがあります。 - すべてのモジュールは、ext - ディレクトリ以下に配置されています。各モジュールは、 - モジュール自身のソースに加えて config.m4 というファイルを持っています。 - これは拡張モジュールの設定用のファイルです - ( を参照ください)。 - - - これらの全てのファイルの雛形および .cvsignore - は、ext ディレクトリ内にある - ext_skel というシェルスクリプトで作成できます。 - 作成したいモジュールの名前を、スクリプトの引数として渡します。 - このスクリプトは引数と同じ名前のディレクトリを作成し、 - 適切な雛形ファイルを作成します。 - - - 順を追って見ていくと、この手順は次のようになります。 - - ./ext_skel --extname=my_module -Creating directory my_module -Creating basic files: config.m4 .cvsignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done]. - -To use your new extension, you will have to execute the following steps: - -1. $ cd .. -2. $ vi ext/my_module/config.m4 -3. $ ./buildconf -4. $ ./configure --[with|enable]-my_module -5. $ make -6. $ ./php -f ext/my_module/my_module.php -7. $ vi ext/my_module/my_module.c -8. $ make - -Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and -step 6 confirms that your module is compiled into PHP. Then, start writing -code and repeat the last two steps as often as necessary. -]]> - - この手順により、先ほど説明したファイルが作成されます。 - 新しく作成したモジュールを自動ビルドシステムに組み込むには、 - buildconf を実行しなければなりません。 - これは、ext ディレクトリ内を検索し、 - 見つかった全ての config.m4 - ファイルをもとにして configure - スクリプトを再作成します。 - - - に示すデフォルトの - config.m4 は、すこし複雑です。 - - - デフォルトの <filename>config.m4</filename> - - check with-path - dnl SEARCH_PATH="/usr/local /usr" # you might want to change this - dnl SEARCH_FOR="/include/my_module.h" # you most likely want to change this - dnl if test -r $PHP_MY_MODULE/; then # path given as parameter - dnl MY_MODULE_DIR=$PHP_MY_MODULE - dnl else # search default path list - dnl AC_MSG_CHECKING([for my_module files in default path]) - dnl for i in $SEARCH_PATH ; do - dnl if test -r $i/$SEARCH_FOR; then - dnl MY_MODULE_DIR=$i - dnl AC_MSG_RESULT(found in $i) - dnl fi - dnl done - dnl fi - dnl - dnl if test -z "$MY_MODULE_DIR"; then - dnl AC_MSG_RESULT([not found]) - dnl AC_MSG_ERROR([Please reinstall the my_module distribution]) - dnl fi - - dnl # --with-my_module -> add include path - dnl PHP_ADD_INCLUDE($MY_MODULE_DIR/include) - - dnl # --with-my_module -> chech for lib and symbol presence - dnl LIBNAME=my_module # you may want to change this - dnl LIBSYMBOL=my_module # you most likely want to change this - - dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL, - dnl [ - dnl PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $MY_MODULE_DIR/lib, MY_MODULE_SHARED_LIBADD) - dnl AC_DEFINE(HAVE_MY_MODULELIB,1,[ ]) - dnl ],[ - dnl AC_MSG_ERROR([wrong my_module lib version or lib not found]) - dnl ],[ - dnl -L$MY_MODULE_DIR/lib -lm -ldl - dnl ]) - dnl - dnl PHP_SUBST(MY_MODULE_SHARED_LIBADD) - - PHP_NEW_EXTENSION(my_module, my_module.c, $ext_shared) -fi -]]> - - - - もし M4 ファイルにあまりなじみがないのなら - (この機会に覚えてしまいましょう)、最初はこの例が難しく感じられるかもしれません。 - しかし、実際はこれはとても簡単なものです。 - - - 注意: - dnl で始まる行はすべてコメントであり、パースされません。 - - - config.m4 ファイルの役割は、 - configure に渡されたコマンドラインオプションを - パースすることです。つまり、 - 必要な外部ファイルを読み込んで同じような設定タスクを行わなければならないということです。 - - - デフォルトのファイルは、 - configure スクリプトのオプションとして - 2 つの設定ディレクティブ - --with-my_module および - --enable-my_module を作成します。 - 外部のファイルを参照している場合 (例えば - --with-apache ディレクティブが - Apache のディレクトリを参照しているように) - は最初のオプションを使用します。 - 拡張モジュールを有効にするかどうかを指定させるだけの場合には - 2 番目のオプションを使用します。どちらを使用するかを決めたら、 - 使用しないほうを削除しなければなりません。つまり、 - もし --enable-my_module を使用するのなら - --with-my_module のサポートを削除しなければなりません。 - 逆もまた同様です。 - - - デフォルトでは、ext_skel - が作成した config.m4 ファイルは - 両方のディレクティブを受けつけ、自動的に拡張モジュールを有効にします。 - 拡張モジュールを有効にする作業は、PHP_EXTENSION - マクロで行われます。ユーザーが (--enable-my_module - あるいは --with-my_module を明示的に指定して)、 - モジュールを組み込むように指示した場合にのみ - PHP バイナリにモジュールを組み込むように変更するには、 - $PHP_MY_MODULE のチェックを == "yes" - に変更します。 - if test "$PHP_MY_MODULE" == "yes"; then dnl - Action.. PHP_EXTENSION(my_module, $ext_shared) - fi - こうすると、PHP を再コンパイルするたびに - --enable-my_module - を使用しなければならなくなります。 - - - 注意: - config.m4 を変更した後は、常に - buildconf を実行してください! - - - 設定スクリプトで使用可能な M4 マクロについては、後で詳細に説明します。 - この段階では、デフォルトのファイルを使用することにします。 - - - diff --git a/internals2/ze1/zendapi/calling-user-functions.xml b/internals2/ze1/zendapi/calling-user-functions.xml deleted file mode 100644 index 27fd85187b..0000000000 --- a/internals2/ze1/zendapi/calling-user-functions.xml +++ /dev/null @@ -1,158 +0,0 @@ - - - - - ユーザー関数のコール - - モジュール内からユーザー関数をコールすることができます。 - これは、コールバックを実装する場合などにとても便利です。 - 例えば配列の順次処理や検索、 - あるいはイベントベースのプログラムに使用できます。 - - - ユーザー関数をコールするには、call_user_function_ex - を使用します。この関数に渡す内容は、アクセスしたい関数テーブルについてのハッシュ、 - オブジェクトへのポインタ (メソッドをコールする場合)、関数名、 - 返り値、引数の数、引数の配列、そして zval を分割するかどうかを示すフラグです。 - - - - - - function_table および object - は、両方とも指定する必要はなく、どちらか一方だけでよいことに注意しましょう。 - メソッドをコールしたい場合は、そのメソッドを含むオブジェクトを - 指定しなければなりません。このときに、 - call_user_function - は自動的にこのオブジェクトの関数テーブルを設定します。 - メソッドをコールするのではない場合は、 - function_table だけを設定して - objectNULL とします。 - - - 通常は、デフォルトの関数テーブルは "root" であり、 - このテーブルにすべての関数のエントリが含まれます。 - この関数テーブルはコンパイラ全体から CG - マクロを使用してアクセス可能です。 - コンパイラグローバルの内容を関数内で使用するには、 - TSRMLS_FETCH マクロを一度コールします。 - - - 関数名は zval コンテナで指定します。 - 最初は少し戸惑うかもしれませんが、これはきわめて論理的なことです。 - なぜなら、スクリプト内からコールされる関数でパラメータとして受け取った - 関数名は、たいていの場合は再び zval - コンテナに保存されることになるからです。 - そのため、この関数に引数を渡すだけでよくなります。ここで使用する - zvalIS_STRING - 型でなければなりません。 - - - その次の引数には、返り値へのポインタを含めます。 - このコンテナ用のメモリを確保する必要はありません。 - 関数が自分自身でメモリを確保します。しかし、 - その後には (zval_dtor を使用して) - コンテナを破棄しなければなりません! - - - その次はパラメータの数を表す整数値、 - それからすべての必要なパラメータを含む配列となります。 - 最後の引数では、この関数が zval の分割を行うかどうかを指定します。 - この引数は常に 0 にしておくべきです。 - 1 にすると関数のメモリ消費量を抑えられますが、 - 分割が必要なパラメータがひとつでもあった場合に関数が実行できなくなります。 - - - - は、ユーザー関数をコールする簡単な例です。 - このコードは、引数として渡された関数をコールし、 - コールした関数の返り値をそのまま自分自身の返り値として使用します。 - 最後のほうのコンストラクタおよびデストラクタの使用に注目しましょう。 - ここではこれらの使用は必須ではありませんが - (値を分割しており、代入は安全に行われる)、念のために記述しています。 - - - ユーザー関数のコール - -type != IS_STRING) -{ - zend_error(E_ERROR, "Function requires string argument"); -} - -TSRMSLS_FETCH(); - -if(call_user_function_ex(CG(function_table), NULL, *function_name, &retval, 0, NULL, 0) != SUCCESS) -{ - zend_error(E_ERROR, "Function call failed"); -} - -zend_printf("We have %i as type\n", retval->type); - -*return_value = *retval; -zval_copy_ctor(return_value); -zval_ptr_dtor(&retval); -]]> - - - - - - ]]> - - &example.outputs; - - - - - diff --git a/internals2/ze1/zendapi/configuration-macros.xml b/internals2/ze1/zendapi/configuration-macros.xml deleted file mode 100644 index cd871bdfc5..0000000000 --- a/internals2/ze1/zendapi/configuration-macros.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - リファレンス: 設定マクロ - - <filename>config.m4</filename> - - config.m4 は - buildconf によって使用されます。 - configure 時に実行する内容についてはすべてここで指示しておかなければなりません。 - 例えば、行うべきテストや必要な外部ファイル (ヘッダファイルなど) - についての指示などがあてはまります。このために使用できるマクロが - PHP で定義されています。その中でも最も有用なものを - にまとめます。 - - - <filename>config.m4</filename> で使用する M4 マクロ - - - - - - マクロ - 説明 - - - AC_MSG_CHECKING(message) - - configure 時に - "checking <message>" というテキストを表示します。 - - - - AC_MSG_RESULT(value) - - AC_MSG_CHECKING の結果を指定します。 - value には、 - yes あるいは no - のいずれかを指定しなければなりません。 - - - - AC_MSG_ERROR(message) - - configure 時に - エラーメッセージ message を表示し、 - スクリプトを終了させます。 - - - - AC_DEFINE(name,value,description) - - php_config.h#define - を追加し、値を value に設定して - description をコメントに加えます - (モジュールで条件付きコンパイルを行う場合に有用です)。 - - - - AC_ADD_INCLUDE(path) - - コンパイラのインクルードパスを追加します。 - ヘッダファイルを探すためのサーチパスを追加する場合などに使用します。 - - - - AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath) - - リンクする外部ライブラリを指定します。 - - - - AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest) - - 非常に強力なマクロであり、configure --help - の出力内容に description - という説明とともにモジュールを追加します。 - configure スクリプトにオプション - --with-<modulename> - が指定されているかどうかを PHP がチェックし、もし指定されていれば - スクリプト unconditionaltest - を実行します (例えば --with-myext=yes)。 - このとき、オプションの値は変数 $withval - に格納されます。オプションが指定されなかった場合は、 - conditionaltest を実行します。 - - - - PHP_EXTENSION(modulename, - [shared]) - - このマクロは、PHP があなたの拡張モジュールを設定するために - 必ずコールしなければならないものです。 - モジュール名に加えて 2 番目の引数を指定することができ、 - ここでは共有モジュールとしてコンパイルを行うかどうかを指示します。 - この内容は、ソースをコンパイルする際の - COMPILE_DL_<modulename> - の定義として使用されます。 - - - - -
-
-
- diff --git a/internals2/ze1/zendapi/copy-constructor.xml b/internals2/ze1/zendapi/copy-constructor.xml deleted file mode 100644 index e348d9a202..0000000000 --- a/internals2/ze1/zendapi/copy-constructor.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - 変数の内容の複製: コピーコンストラクタ - - 遅かれ早かれ、zval コンテナの内容を別のコンテナに - 代入したい場面が訪れるでしょう。これは口で言うほど簡単ではありません。 - というのも zval コンテナには、 - 型情報だけではなく Zend の内部データへの参照も含まれているからです。 - 例えば、配列やオブジェクトの場合は、その大きさに応じて - 多くのハッシュテーブルエントリが入れ子構造になっています。 - ある zval を別のコンテナに代入すると、 - ハッシュテーブルのエントリを複製するのではなく - (単に) その参照が複製されるだけになります。 - - - このような複雑な形式のデータをコピーするには、 - コピーコンストラクタ を使用します。 - コピーコンストラクタは、一般的には - 演算子のオーバーロードをサポートしている言語で定義されており、 - 複雑な型をコピーするために使用されています。 - そのような言語でオブジェクトを定義すると、"=" - 演算子をオーバーロードできるようになります。この演算子の一般的な役割は、 - rvalue (演算子の右側を評価した結果) の内容を lvalue (同じく左側の結果) - に代入することです。 - - - オーバーロード とはこの演算子に別の意味を割り当てることです。 - 通常は、演算子に対して関数コールを割り当てるために用いられます。 - プログラム内でそのようなオブジェクトに対してこの演算子が使用されると、 - lvalue と rvalue をパラメータとして関数がコールされます。 - この関数内で、パラメータの情報を使用して - "=" 演算子にさせたい動作を行います - (通常は、コピーを拡張した動作になるでしょう)。 - - - PHP の zval コンテナについても、この - 「コピーを拡張した動作」が必要になります。 - 配列の場合は、この拡張コピー動作によって - 配列に関連するすべてのハッシュテーブルの内容を新しく作成するようにします。 - また文字列の場合は適切なメモリの確保が必要になります。 - - - Zend では、これを行うための関数として - zend_copy_ctor を提供しています - (以前の PHP では、同じ機能を持つ - pval_copy_constructor という関数がありました)。 - - - 一番わかりやすい例として、 - 「複雑な型を引数として受け取ってそれを変更し、変更した内容を返す」 - という関数を考えてみましょう。 - - - - - - この関数の最初の部分は、単に引数を取得しているだけのごく普通の処理です。 - しかし、(省略している部分で) 変更を加えた後が面白いところです。 - parameter のコンテナが、 - (事前に定義済みの) return_value コンテナに代入されます。 - ここで、コンテナの中身をうまく複製するためにコピーコンストラクタがコールされます。 - コピーコンストラクタは、与えられた引数に対して直接動作します。 - 標準的な返り値は、 - 失敗した場合に FAILURE、 - 成功した場合に SUCCESS となります。 - - - この例でコピーコンストラクタのコールを省略した場合、 - parameterreturn_value - の両方が同じ内部データを指すことになり、return_value - は同じデータ構造への無効な参照ということになってしまいます。 - parameter が指すデータに変更を加えると、それが - return_value にも影響を及ぼしてしまいます。 - つまり、別の複製を作るためにはコピーコンストラクタの使用が必須であるということです。 - - - Zend API において、コピーコンストラクタに対応するデストラクタは - zval_dtor です。これはコンストラクタと反対の動作をします。 - - - diff --git a/internals2/ze1/zendapi/creating.xml b/internals2/ze1/zendapi/creating.xml deleted file mode 100644 index 2ed672a98e..0000000000 --- a/internals2/ze1/zendapi/creating.xml +++ /dev/null @@ -1,220 +0,0 @@ - - - - - 拡張モジュールの作成 - - まず最初に、非常に単純な拡張モジュールを作成してみましょう。この拡張モジュールは、 - パラメータとして受け取った整数値をそのまま返すというだけの関数を実装しています。 - ソースを に示します。 - - - 単純な拡張モジュール - - - - - - これは、PHP モジュールとして動作する完全なコードです。 - ソースコードについてはあとですぐに説明しますが、 - その前にまずビルド方法について説明しておきましょう - (API についての議論の前に、とりあえず実際に動かしてみたいという - 短気な人たちのためです)。 - - - - この例のソースは、PHP 4.1.0 以降に含まれる Zend の新機能を使用しています。 - PHP 4.0.x ではコンパイルできません。 - - - - モジュールのコンパイル - - モジュールをコンパイルするには、基本的に 2 種類の方法があります。 - - - - ext ディレクトリ内で、 - 提供されている "make" 機構を使用します。 - これは、動的ロードモジュールを作成することも可能です。 - - - - ソースを手動でコンパイルします。 - - - 最初の方法のほうが断然お勧めです。PHP 4.0 以降、 - この仕組みは標準化され、洗練されたビルド手順に組み込まれています。 - あまりに洗練されすぎているという事実は、裏を返せば欠点でもあります。 - つまり、最初のうちはなかなか理解できないということです。 - この章の後半ではより詳細に説明しますが、 - まず最初はデフォルトのファイルを使用して進めていきましょう。 - - - 2 番目の方法は、(何らかの理由で) PHP の完全なソースツリーを - もっていない、すべてのファイルに対するアクセス権限がない、 - あるいは単にキーボードと戯れていたいなどといった人たちにお勧めです。 - これらはどれもめったにないケースではありますが、 - この文書を完全なものにするためにこちらの方法についても説明しておきます。 - - - Make を使用したコンパイル - - サンプルソースを標準的な仕組みでコンパイルするには、 - PHP ソースツリーの ext ディレクトリ以下に - サンプルのディレクトリをコピーします。 - それから buildconf を実行すると、 - 新しい拡張モジュール用の適切なオプションを含む - configure スクリプトが作成されます。 - デフォルトでは、すべてのサンプルソースは無効になります。 - そのため、この作業でビルド手順が破壊されてしまう恐れはありません。 - - - - buildconf を実行すると、configure - --help の結果に以下が追加されます。 - - - - - - 先ほど で示したモジュールは、 - --enable-first_module あるいは - --enable-first_module=yes で使用可能になります。 - - - 手動でのコンパイル - - モジュールを手動でコンパイルするには、以下のコマンドを実行しなければなりません。 - - - - - - - 作業 - コマンド - - - コンパイル - cc -fpic -DCOMPILE_DL_FIRST_MODULE=1 -I/usr/local/include -I. - -I.. -I../Zend -c -o <your_object_file> - <your_c_file> - - - リンク - cc -shared -L/usr/local/lib -rdynamic -o - <your_module_file> - <your_object_file(s)> - - - - - モジュールをコンパイルするためのコマンドでは、コンパイラに対して - 位置独立なコードを出力するように指示しています - (-fpic は省略できません)。 - また、定数 COMPILE_DL_FIRST_MODULE を指定することで、 - モジュールのコードを動的ロード可能なモジュールとしてコンパイルするようにしています - (上のテストモジュールではこれをチェックしています。これについては後で説明します)。 - これらのオプションに続いて、ソースファイルをコンパイルするために必要な - 最小限の標準インクルードパスを指定しています。 - - - - 注意: サンプルのインクルードパスは、すべて - ext ディレクトリからの相対パスです。 - 別の場所でコンパイルする場合は、それに応じてパスを変更してください。 - 必要なのは、PHP ディレクトリおよび - Zend ディレクトリ、そして (必要に応じて) - モジュールの存在するディレクトリです。 - - - リンク用のコマンドも、動的モジュールとしてリンクするためのごく平凡なものです。 - - - コンパイル用のコマンドに最適化オプションを含めることもできますが、 - この例では省略しています (しかし、いくつかのオプションは - 先に説明した makefile のテンプレートに含められています)。 - - - 注意: 手動でのコンパイルおよびリンクで - PHP に静的モジュールとして組み込む手順は、非常に面倒なものとなります。 - そのため、ここでは扱いません - (これらのコマンドをすべてタイプするのは効率的ではありません)。 - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_bool.xml b/internals2/ze1/zendapi/functions/add_assoc_bool.xml deleted file mode 100644 index d0c2a430db..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_bool.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_assoc_bool - 連想配列に bool 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_bool - zval*arg - char*key - intb - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - b - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_bool_ex.xml b/internals2/ze1/zendapi/functions/add_assoc_bool_ex.xml deleted file mode 100644 index fe5b11bd42..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_bool_ex.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_assoc_bool_ex - バイナリセーフなキーを用いて、連想配列に bool 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_bool_ex - zval*arg - char*key - uintkey_len - intb - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - b - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_double.xml b/internals2/ze1/zendapi/functions/add_assoc_double.xml deleted file mode 100644 index 58e70a62d1..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_double.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_assoc_double - 連想配列に double 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_double - zval*arg - char*key - doubled - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - d - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_double_ex.xml b/internals2/ze1/zendapi/functions/add_assoc_double_ex.xml deleted file mode 100644 index 1eec004826..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_double_ex.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_assoc_double_ex - バイナリセーフなキーを用いて、連想配列に double 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_double_ex - zval*arg - char*key - uintkey_len - doubled - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - d - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_function.xml b/internals2/ze1/zendapi/functions/add_assoc_function.xml deleted file mode 100644 index ddead8b96a..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_function.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_assoc_function - 連想配列に関数ポインタを追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_function - zval*arg - char*key - void(*function_ptr)(INTERNAL_FUNCTION_PARAMETERS) - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - (*function_ptr)(INTERNAL_FUNCTION_PARAMETERS) - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_long.xml b/internals2/ze1/zendapi/functions/add_assoc_long.xml deleted file mode 100644 index 484377dea7..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_long.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_assoc_long - 連想配列に long 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_long - zval*arg - char*key - longn - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - n - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_long_ex.xml b/internals2/ze1/zendapi/functions/add_assoc_long_ex.xml deleted file mode 100644 index ba81462b6b..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_long_ex.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_assoc_long_ex - バイナリセーフなキーを用いて、連想配列に long 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_long_ex - zval*arg - char*key - uintkey_len - longn - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - n - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_null.xml b/internals2/ze1/zendapi/functions/add_assoc_null.xml deleted file mode 100644 index 91b017a03e..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_null.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - add_assoc_null - 連想配列に null 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_null - zval*arg - char*key - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_null_ex.xml b/internals2/ze1/zendapi/functions/add_assoc_null_ex.xml deleted file mode 100644 index 0a2351ab6b..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_null_ex.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_assoc_null_ex - バイナリセーフなキーを用いて、連想配列に null 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_null_ex - zval*arg - char*key - uintkey_len - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_resource.xml b/internals2/ze1/zendapi/functions/add_assoc_resource.xml deleted file mode 100644 index 07d65d84c2..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_resource.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_assoc_resource - 連想配列に resource 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_resource - zval*arg - char*key - intr - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - r - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_resource_ex.xml b/internals2/ze1/zendapi/functions/add_assoc_resource_ex.xml deleted file mode 100644 index 0c3724f0ea..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_resource_ex.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_assoc_resource_ex - バイナリセーフなキーを用いて、連想配列に resource 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_resource_ex - zval*arg - char*key - uintkey_len - intr - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - r - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_string.xml b/internals2/ze1/zendapi/functions/add_assoc_string.xml deleted file mode 100644 index 038ebf387a..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_string.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_assoc_string - 連想配列に string 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_string - zval*arg - char*key - char*str - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_string_ex.xml b/internals2/ze1/zendapi/functions/add_assoc_string_ex.xml deleted file mode 100644 index bb05f98922..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_string_ex.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_assoc_string_ex - バイナリセーフなキーを用いて、連想配列に string 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_string_ex - zval*arg - char*key - uintkey_len - char*str - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_stringl.xml b/internals2/ze1/zendapi/functions/add_assoc_stringl.xml deleted file mode 100644 index 3f2963da27..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_stringl.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_assoc_stringl - 連想配列に、バイナリセーフな string 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_stringl - zval*arg - char*key - char*str - uintlength - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_stringl_ex.xml b/internals2/ze1/zendapi/functions/add_assoc_stringl_ex.xml deleted file mode 100644 index ad6ddd0d0c..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_stringl_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - add_assoc_stringl_ex - バイナリセーフなキーを用いて、バイナリセーフな string 値を連想配列に追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_stringl_ex - zval*arg - char*key - uintkey_len - char*str - uintlength - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_unicode.xml b/internals2/ze1/zendapi/functions/add_assoc_unicode.xml deleted file mode 100644 index 03d1793b07..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_unicode.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - add_assoc_unicode - - バイナリセーフなキーを用いて、バイナリセーフな unicode_string - 値を連想配列に追加する - - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_unicode - zval*arg - char*key - void*str - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_unicode_ex.xml b/internals2/ze1/zendapi/functions/add_assoc_unicode_ex.xml deleted file mode 100644 index c33e04a255..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_unicode_ex.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - add_assoc_unicode_ex - - バイナリセーフなキーを用いて、連想配列に unicode_string - 値を追加する - - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_unicode_ex - zval*arg - char*key - uintkey_len - void*str - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_unicodel.xml b/internals2/ze1/zendapi/functions/add_assoc_unicodel.xml deleted file mode 100644 index 11e1b16229..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_unicodel.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - add_assoc_unicodel - - 連想配列に、バイナリセーフな unicode_string - 値を追加する - - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_unicodel - zval*arg - char*key - void*str - uintlength - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_unicodel_ex.xml b/internals2/ze1/zendapi/functions/add_assoc_unicodel_ex.xml deleted file mode 100644 index 0e6d270ee3..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_unicodel_ex.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - add_assoc_unicodel_ex - - バイナリセーフなキーを用いて、バイナリセーフな unicode_string - 値を連想配列に追加する - - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_unicodel_ex - zval*arg - char*key - uintkey_len - void*str - uintlength - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_unset.xml b/internals2/ze1/zendapi/functions/add_assoc_unset.xml deleted file mode 100644 index 852ef8e658..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_unset.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - add_assoc_unset - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_unset - zval*arg - char*key - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_zval.xml b/internals2/ze1/zendapi/functions/add_assoc_zval.xml deleted file mode 100644 index e8c6d35c26..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_zval.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_assoc_zval - 連想配列に zval 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_zval - zval*arg - char*key - zval*value - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - value - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_assoc_zval_ex.xml b/internals2/ze1/zendapi/functions/add_assoc_zval_ex.xml deleted file mode 100644 index ae4ca949a2..0000000000 --- a/internals2/ze1/zendapi/functions/add_assoc_zval_ex.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_assoc_zval_ex - バイナリセーフなキーを用いて、連想配列に zval 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_assoc_zval_ex - zval*arg - char*key - uintkey_len - zval*value - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - value - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_get_assoc_string.xml b/internals2/ze1/zendapi/functions/add_get_assoc_string.xml deleted file mode 100644 index 248ff3b9cd..0000000000 --- a/internals2/ze1/zendapi/functions/add_get_assoc_string.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_get_assoc_string - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_get_assoc_string - zval*arg - char*key - char*str - void**dest - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - dest - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_get_assoc_string_ex.xml b/internals2/ze1/zendapi/functions/add_get_assoc_string_ex.xml deleted file mode 100644 index 2368239525..0000000000 --- a/internals2/ze1/zendapi/functions/add_get_assoc_string_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - add_get_assoc_string_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_get_assoc_string_ex - zval*arg - char*key - uintkey_len - char*str - void**dest - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - dest - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_get_assoc_stringl.xml b/internals2/ze1/zendapi/functions/add_get_assoc_stringl.xml deleted file mode 100644 index 48c13461aa..0000000000 --- a/internals2/ze1/zendapi/functions/add_get_assoc_stringl.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - add_get_assoc_stringl - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_get_assoc_stringl - zval*arg - char*key - char*str - uintlength - void**dest - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - dest - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_get_assoc_stringl_ex.xml b/internals2/ze1/zendapi/functions/add_get_assoc_stringl_ex.xml deleted file mode 100644 index 2bac8cfac6..0000000000 --- a/internals2/ze1/zendapi/functions/add_get_assoc_stringl_ex.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - add_get_assoc_stringl_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_get_assoc_stringl_ex - zval*arg - char*key - uintkey_len - char*str - uintlength - void**dest - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - dest - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_get_index_binary.xml b/internals2/ze1/zendapi/functions/add_get_index_binary.xml deleted file mode 100644 index 8a372b1e06..0000000000 --- a/internals2/ze1/zendapi/functions/add_get_index_binary.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_get_index_binary - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_get_index_binary - zval*arg - ulongidx - char*str - void**dest - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - str - - - ... - - - - - dest - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_get_index_binaryl.xml b/internals2/ze1/zendapi/functions/add_get_index_binaryl.xml deleted file mode 100644 index a17aab26f0..0000000000 --- a/internals2/ze1/zendapi/functions/add_get_index_binaryl.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - add_get_index_binaryl - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_get_index_binaryl - zval*arg - ulongidx - char*str - uintlength - void**dest - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - dest - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_get_index_double.xml b/internals2/ze1/zendapi/functions/add_get_index_double.xml deleted file mode 100644 index 6da4d07873..0000000000 --- a/internals2/ze1/zendapi/functions/add_get_index_double.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_get_index_double - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_get_index_double - zval*arg - ulongidx - doubled - void**dest - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - d - - - ... - - - - - dest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_get_index_long.xml b/internals2/ze1/zendapi/functions/add_get_index_long.xml deleted file mode 100644 index 7752b9eecf..0000000000 --- a/internals2/ze1/zendapi/functions/add_get_index_long.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_get_index_long - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_get_index_long - zval*arg - ulongidx - longl - void**dest - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - l - - - ... - - - - - dest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_get_index_string.xml b/internals2/ze1/zendapi/functions/add_get_index_string.xml deleted file mode 100644 index 856f438d63..0000000000 --- a/internals2/ze1/zendapi/functions/add_get_index_string.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_get_index_string - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_get_index_string - zval*arg - ulongidx - char*str - void**dest - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - str - - - ... - - - - - dest - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_get_index_stringl.xml b/internals2/ze1/zendapi/functions/add_get_index_stringl.xml deleted file mode 100644 index 22d6e1bca9..0000000000 --- a/internals2/ze1/zendapi/functions/add_get_index_stringl.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - add_get_index_stringl - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_get_index_stringl - zval*arg - ulongidx - char*str - uintlength - void**dest - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - dest - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_get_index_unicode.xml b/internals2/ze1/zendapi/functions/add_get_index_unicode.xml deleted file mode 100644 index 57aeff785f..0000000000 --- a/internals2/ze1/zendapi/functions/add_get_index_unicode.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_get_index_unicode - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_get_index_unicode - zval*arg - ulongidx - UChar*str - void**dest - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - str - - - ... - - - - - dest - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_get_index_unicodel.xml b/internals2/ze1/zendapi/functions/add_get_index_unicodel.xml deleted file mode 100644 index 0f135f8381..0000000000 --- a/internals2/ze1/zendapi/functions/add_get_index_unicodel.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - add_get_index_unicodel - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_get_index_unicodel - zval*arg - ulongidx - UChar*str - uintlength - void**dest - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - dest - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_index_binary.xml b/internals2/ze1/zendapi/functions/add_index_binary.xml deleted file mode 100644 index 07c230613b..0000000000 --- a/internals2/ze1/zendapi/functions/add_index_binary.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_index_binary - 数値インデックスを使用して、連想配列に binary_string 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_index_binary - zval*arg - ulongidx - char*str - intduplicate - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_index_binaryl.xml b/internals2/ze1/zendapi/functions/add_index_binaryl.xml deleted file mode 100644 index 2ca36ead30..0000000000 --- a/internals2/ze1/zendapi/functions/add_index_binaryl.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - add_index_binaryl - - 数値インデックスを使用して、バイナリセーフな binary_string - 値を連想配列に追加する - - - - - &reftitle.description; - #include <zend_API.h> - - intadd_index_binaryl - zval*arg - ulongidx - char*str - uintlength - intduplicate - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_index_bool.xml b/internals2/ze1/zendapi/functions/add_index_bool.xml deleted file mode 100644 index 64d6a35278..0000000000 --- a/internals2/ze1/zendapi/functions/add_index_bool.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_index_bool - 数値インデックスを使用して、連想配列に bool 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_index_bool - zval*arg - ulongidx - intb - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - b - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_index_double.xml b/internals2/ze1/zendapi/functions/add_index_double.xml deleted file mode 100644 index 7562012ebd..0000000000 --- a/internals2/ze1/zendapi/functions/add_index_double.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_index_double - 数値インデックスを使用して、連想配列に double 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_index_double - zval*arg - ulongidx - doubled - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - d - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_index_long.xml b/internals2/ze1/zendapi/functions/add_index_long.xml deleted file mode 100644 index 9c654ab9f0..0000000000 --- a/internals2/ze1/zendapi/functions/add_index_long.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_index_long - 数値インデックスを使用して、連想配列に long 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_index_long - zval*arg - ulongidx - longn - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - n - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_index_null.xml b/internals2/ze1/zendapi/functions/add_index_null.xml deleted file mode 100644 index cd925b64f1..0000000000 --- a/internals2/ze1/zendapi/functions/add_index_null.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - add_index_null - 数値インデックスを使用して、連想配列に null 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_index_null - zval*arg - ulongidx - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_index_resource.xml b/internals2/ze1/zendapi/functions/add_index_resource.xml deleted file mode 100644 index ae17f551a1..0000000000 --- a/internals2/ze1/zendapi/functions/add_index_resource.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_index_resource - 数値インデックスを使用して、連想配列に resource 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_index_resource - zval*arg - ulongidx - intr - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - r - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_index_string.xml b/internals2/ze1/zendapi/functions/add_index_string.xml deleted file mode 100644 index b9c4bd3de8..0000000000 --- a/internals2/ze1/zendapi/functions/add_index_string.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_index_string - 数値インデックスを使用して、連想配列に string 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_index_string - zval*arg - ulongidx - char*str - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_index_stringl.xml b/internals2/ze1/zendapi/functions/add_index_stringl.xml deleted file mode 100644 index 2aaa25f49d..0000000000 --- a/internals2/ze1/zendapi/functions/add_index_stringl.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_index_stringl - 数値インデックスを使用して、バイナリセーフな string 値を連想配列に追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_index_stringl - zval*arg - ulongidx - char*str - uintlength - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_index_unicode.xml b/internals2/ze1/zendapi/functions/add_index_unicode.xml deleted file mode 100644 index 53bced075c..0000000000 --- a/internals2/ze1/zendapi/functions/add_index_unicode.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_index_unicode - 数値インデックスを使用して、連想配列に unicode 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_index_unicode - zval*arg - ulongidx - UChar*str - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_index_unicodel.xml b/internals2/ze1/zendapi/functions/add_index_unicodel.xml deleted file mode 100644 index 3c7b6036c5..0000000000 --- a/internals2/ze1/zendapi/functions/add_index_unicodel.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_index_unicodel - 数値インデックスを使用して、バイナリセーフな unicode 値を連想配列に追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_index_unicodel - zval*arg - ulongidx - UChar*str - uintlength - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - idx - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_index_unset.xml b/internals2/ze1/zendapi/functions/add_index_unset.xml deleted file mode 100644 index 2b74d74dd3..0000000000 --- a/internals2/ze1/zendapi/functions/add_index_unset.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - add_index_unset - 数値インデックスを使用して、連想配列に unset 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_index_unset - zval*arg - ...key - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_index_zval.xml b/internals2/ze1/zendapi/functions/add_index_zval.xml deleted file mode 100644 index a5789502e4..0000000000 --- a/internals2/ze1/zendapi/functions/add_index_zval.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_index_zval - 数値インデックスを使用して、連想配列に zval 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_index_zval - zval*arg - ulongindex - zval*value - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - index - - - ... - - - - - value - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_method.xml b/internals2/ze1/zendapi/functions/add_method.xml deleted file mode 100644 index b523d3f2b3..0000000000 --- a/internals2/ze1/zendapi/functions/add_method.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_method - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_method - zval*arg - char*key - ...method - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - method - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_next_index_binary.xml b/internals2/ze1/zendapi/functions/add_next_index_binary.xml deleted file mode 100644 index 014950e169..0000000000 --- a/internals2/ze1/zendapi/functions/add_next_index_binary.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_next_index_binary - 次に空いている数値インデックスを使用して、連想配列に binary_string 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_next_index_binary - zval*arg - char*str - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_next_index_binaryl.xml b/internals2/ze1/zendapi/functions/add_next_index_binaryl.xml deleted file mode 100644 index 5a9b954658..0000000000 --- a/internals2/ze1/zendapi/functions/add_next_index_binaryl.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_next_index_binaryl - 次に空いている数値インデックスを使用して、バイナリセーフな binary_string 値を連想配列に追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_next_index_binaryl - zval*arg - char*str - uintlength - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_next_index_bool.xml b/internals2/ze1/zendapi/functions/add_next_index_bool.xml deleted file mode 100644 index f6f830cca0..0000000000 --- a/internals2/ze1/zendapi/functions/add_next_index_bool.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - add_next_index_bool - 次に空いている数値インデックスを使用して、連想配列に bool 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_next_index_bool - zval*arg - intb - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - b - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_next_index_double.xml b/internals2/ze1/zendapi/functions/add_next_index_double.xml deleted file mode 100644 index 8a2fe4a408..0000000000 --- a/internals2/ze1/zendapi/functions/add_next_index_double.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - add_next_index_double - 次に空いている数値インデックスを使用して、連想配列に double 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_next_index_double - zval*arg - doubled - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - d - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_next_index_long.xml b/internals2/ze1/zendapi/functions/add_next_index_long.xml deleted file mode 100644 index 8b0964968e..0000000000 --- a/internals2/ze1/zendapi/functions/add_next_index_long.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - add_next_index_long - 次に空いている数値インデックスを使用して、連想配列に long 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_next_index_long - zval*arg - longn - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - n - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_next_index_null.xml b/internals2/ze1/zendapi/functions/add_next_index_null.xml deleted file mode 100644 index e109be1707..0000000000 --- a/internals2/ze1/zendapi/functions/add_next_index_null.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - add_next_index_null - 次に空いている数値インデックスを使用して、連想配列に null 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_next_index_null - zval*arg - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_next_index_resource.xml b/internals2/ze1/zendapi/functions/add_next_index_resource.xml deleted file mode 100644 index ea6a939567..0000000000 --- a/internals2/ze1/zendapi/functions/add_next_index_resource.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - add_next_index_resource - 次に空いている数値インデックスを使用して、連想配列に resource 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_next_index_resource - zval*arg - intr - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - r - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_next_index_string.xml b/internals2/ze1/zendapi/functions/add_next_index_string.xml deleted file mode 100644 index d2920f0ba9..0000000000 --- a/internals2/ze1/zendapi/functions/add_next_index_string.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_next_index_string - 次に空いている数値インデックスを使用して、連想配列に string 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_next_index_string - zval*arg - char*str - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_next_index_stringl.xml b/internals2/ze1/zendapi/functions/add_next_index_stringl.xml deleted file mode 100644 index d3a953970f..0000000000 --- a/internals2/ze1/zendapi/functions/add_next_index_stringl.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_next_index_stringl - 次に空いている数値インデックスを使用して、バイナリセーフな string 値を連想配列に追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_next_index_stringl - zval*arg - char*str - uintlength - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_next_index_unicode.xml b/internals2/ze1/zendapi/functions/add_next_index_unicode.xml deleted file mode 100644 index 191798bc03..0000000000 --- a/internals2/ze1/zendapi/functions/add_next_index_unicode.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_next_index_unicode - 次に空いている数値インデックスを使用して、連想配列に unicode 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_next_index_unicode - zval*arg - UChar*str - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_next_index_unicodel.xml b/internals2/ze1/zendapi/functions/add_next_index_unicodel.xml deleted file mode 100644 index 426fdc34ad..0000000000 --- a/internals2/ze1/zendapi/functions/add_next_index_unicodel.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_next_index_unicodel - 次に空いている数値インデックスを使用して、バイナリセーフな unicode 値を連想配列に追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_next_index_unicodel - zval*arg - UChar*str - uintlength - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_next_index_unset.xml b/internals2/ze1/zendapi/functions/add_next_index_unset.xml deleted file mode 100644 index a36403ab97..0000000000 --- a/internals2/ze1/zendapi/functions/add_next_index_unset.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - add_next_index_unset - 次に空いている数値インデックスを使用して、連想配列に unset 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_next_index_unset - zval*arg - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_next_index_zval.xml b/internals2/ze1/zendapi/functions/add_next_index_zval.xml deleted file mode 100644 index 1a57b30c49..0000000000 --- a/internals2/ze1/zendapi/functions/add_next_index_zval.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - add_next_index_zval - 次に空いている数値インデックスを使用して、連想配列に zval 値を追加する - - - - &reftitle.description; - #include <zend_API.h> - - intadd_next_index_zval - zval*arg - zval*value - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - value - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_ascii_string.xml b/internals2/ze1/zendapi/functions/add_property_ascii_string.xml deleted file mode 100644 index f5013ccc21..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_ascii_string.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_property_ascii_string - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_ascii_string - zval*arg - char*key - char*str - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_ascii_string_ex.xml b/internals2/ze1/zendapi/functions/add_property_ascii_string_ex.xml deleted file mode 100644 index f1caf85c22..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_ascii_string_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - add_property_ascii_string_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_ascii_string_ex - zval*arg - char*key - uintkey_len - char*str - intduplicate - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_ascii_stringl.xml b/internals2/ze1/zendapi/functions/add_property_ascii_stringl.xml deleted file mode 100644 index 90fb610f16..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_ascii_stringl.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_property_ascii_stringl - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_ascii_stringl - zval*arg - char*key - char*str - uintlength - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_ascii_stringl_ex.xml b/internals2/ze1/zendapi/functions/add_property_ascii_stringl_ex.xml deleted file mode 100644 index dd6a41b84a..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_ascii_stringl_ex.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - add_property_ascii_stringl_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_ascii_stringl_ex - zval*arg - char*key - uintkey_len - char*str - uintlength - intduplicate - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_bool.xml b/internals2/ze1/zendapi/functions/add_property_bool.xml deleted file mode 100644 index 6abc19f37c..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_bool.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_property_bool - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_bool - zval*arg - char*key - intb - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - b - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_bool_ex.xml b/internals2/ze1/zendapi/functions/add_property_bool_ex.xml deleted file mode 100644 index 58f8cf3834..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_bool_ex.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_property_bool_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_bool_ex - zval*arg - char*key - uintkey_len - intb - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - b - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_double.xml b/internals2/ze1/zendapi/functions/add_property_double.xml deleted file mode 100644 index 656dd4f392..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_double.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_property_double - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_double - zval*arg - char*key - doubled - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - d - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_double_ex.xml b/internals2/ze1/zendapi/functions/add_property_double_ex.xml deleted file mode 100644 index 4eef5b8782..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_double_ex.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_property_double_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_double_ex - zval*arg - char*key - uintkey_len - doubled - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - d - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_long.xml b/internals2/ze1/zendapi/functions/add_property_long.xml deleted file mode 100644 index 5bf3075bbf..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_long.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_property_long - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_long - zval*arg - char*key - ...n - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - n - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_long_ex.xml b/internals2/ze1/zendapi/functions/add_property_long_ex.xml deleted file mode 100644 index 8680cd14c8..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_long_ex.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_property_long_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_long_ex - zval*arg - char*key - uintkey_len - longl - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - l - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_null.xml b/internals2/ze1/zendapi/functions/add_property_null.xml deleted file mode 100644 index f10acee1f5..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_null.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - add_property_null - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_null - zval*arg - char*key - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_null_ex.xml b/internals2/ze1/zendapi/functions/add_property_null_ex.xml deleted file mode 100644 index 88f937e19e..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_null_ex.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_property_null_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_null_ex - zval*arg - char*key - uintkey_len - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_resource.xml b/internals2/ze1/zendapi/functions/add_property_resource.xml deleted file mode 100644 index 6d7971851a..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_resource.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_property_resource - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_resource - zval*arg - char*key - longr - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - r - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_resource_ex.xml b/internals2/ze1/zendapi/functions/add_property_resource_ex.xml deleted file mode 100644 index 14f82394f0..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_resource_ex.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_property_resource_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_resource_ex - zval*arg - char*key - uintkey_len - longr - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - r - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_rt_string.xml b/internals2/ze1/zendapi/functions/add_property_rt_string.xml deleted file mode 100644 index 3289661ab3..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_rt_string.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_property_rt_string - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_rt_string - zval*arg - char*key - char*str - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_rt_string_ex.xml b/internals2/ze1/zendapi/functions/add_property_rt_string_ex.xml deleted file mode 100644 index 53f6db5f8f..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_rt_string_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - add_property_rt_string_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_rt_string_ex - zval*arg - char*key - uintkey_len - char*str - intduplicate - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_rt_stringl.xml b/internals2/ze1/zendapi/functions/add_property_rt_stringl.xml deleted file mode 100644 index 36be420ea7..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_rt_stringl.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_property_rt_stringl - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_rt_stringl - zval*arg - char*key - char*str - uintlength - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_rt_stringl_ex.xml b/internals2/ze1/zendapi/functions/add_property_rt_stringl_ex.xml deleted file mode 100644 index 19afc410e0..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_rt_stringl_ex.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - add_property_rt_stringl_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_rt_stringl_ex - zval*arg - char*key - uintkey_len - char*str - uintlength - intduplicate - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_string.xml b/internals2/ze1/zendapi/functions/add_property_string.xml deleted file mode 100644 index 039ee33b33..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_string.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_property_string - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_string - zval*arg - char*key - char*str - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_string_ex.xml b/internals2/ze1/zendapi/functions/add_property_string_ex.xml deleted file mode 100644 index 8f296d5de1..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_string_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - add_property_string_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_string_ex - zval*arg - char*key - uintkey_len - char*str - intduplicate - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_stringl.xml b/internals2/ze1/zendapi/functions/add_property_stringl.xml deleted file mode 100644 index 47fdef265d..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_stringl.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_property_stringl - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_stringl - zval*arg - char*key - char*str - uintlength - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_stringl_ex.xml b/internals2/ze1/zendapi/functions/add_property_stringl_ex.xml deleted file mode 100644 index e0a60a48c8..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_stringl_ex.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - add_property_stringl_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_stringl_ex - zval*arg - char*key - uintkey_len - char*str - uintlength - intduplicate - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_unicode.xml b/internals2/ze1/zendapi/functions/add_property_unicode.xml deleted file mode 100644 index 9294b0366d..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_unicode.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_property_unicode - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_unicode - zval*arg - char*key - UChar*str - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_unicode_ex.xml b/internals2/ze1/zendapi/functions/add_property_unicode_ex.xml deleted file mode 100644 index 7e7f574361..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_unicode_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - add_property_unicode_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_unicode_ex - zval*arg - char*key - uintkey_len - UChar*str - intduplicate - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - duplicate - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_unicodel.xml b/internals2/ze1/zendapi/functions/add_property_unicodel.xml deleted file mode 100644 index 675b1fc678..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_unicodel.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_property_unicodel - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_unicodel - zval*arg - char*key - UChar*str - uintlength - intduplicate - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_unicodel_ex.xml b/internals2/ze1/zendapi/functions/add_property_unicodel_ex.xml deleted file mode 100644 index 09cd7e47bb..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_unicodel_ex.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - add_property_unicodel_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_unicodel_ex - zval*arg - char*key - uintkey_len - UChar*str - uintlength - intduplicate - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - str - - - ... - - - - - length - - - ... - - - - - duplicate - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_unset.xml b/internals2/ze1/zendapi/functions/add_property_unset.xml deleted file mode 100644 index 318834d1ed..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_unset.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - add_property_unset - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_unset - zval*arg - char*key - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_zval.xml b/internals2/ze1/zendapi/functions/add_property_zval.xml deleted file mode 100644 index eaf1c425cd..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_zval.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - add_property_zval - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_zval - zval*arg - char*key - zval*value - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - value - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_property_zval_ex.xml b/internals2/ze1/zendapi/functions/add_property_zval_ex.xml deleted file mode 100644 index 71a35f2206..0000000000 --- a/internals2/ze1/zendapi/functions/add_property_zval_ex.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_property_zval_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_property_zval_ex - zval*arg - char*key - uintkey_len - zval*value - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_u_assoc_zval.xml b/internals2/ze1/zendapi/functions/add_u_assoc_zval.xml deleted file mode 100644 index 93e69cd35d..0000000000 --- a/internals2/ze1/zendapi/functions/add_u_assoc_zval.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - add_u_assoc_zval - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_u_assoc_zval - zval*arg - zend_uchartype - void*key - zval*value - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - type - - - ... - - - - - key - - - ... - - - - - value - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/add_u_assoc_zval_ex.xml b/internals2/ze1/zendapi/functions/add_u_assoc_zval_ex.xml deleted file mode 100644 index cc5a0a272b..0000000000 --- a/internals2/ze1/zendapi/functions/add_u_assoc_zval_ex.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - add_u_assoc_zval_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intadd_u_assoc_zval_ex - zval*arg - zend_uchartype - void*key - uintkey_len - zval*value - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - type - - - ... - - - - - key - - - ... - - - - - key_len - - - ... - - - - - value - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/array_init.xml b/internals2/ze1/zendapi/functions/array_init.xml deleted file mode 100644 index 63f0140528..0000000000 --- a/internals2/ze1/zendapi/functions/array_init.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - array_init - ... - - - - &reftitle.description; - #include <zend_API.h> - - intarray_init - zval*arg - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/call_user_function.xml b/internals2/ze1/zendapi/functions/call_user_function.xml deleted file mode 100644 index 113eb66af9..0000000000 --- a/internals2/ze1/zendapi/functions/call_user_function.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - call_user_function - ... - - - - &reftitle.description; - #include <zend_API.h> - - intcall_user_function - HashTable*function_table - zval**object_pp - zval*function_name - zval*retval_ptr - zend_uintparam_count - zval*params[] - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - function_table - - - ... - - - - - object_pp - - - ... - - - - - function_name - - - ... - - - - - retval_ptr - - - ... - - - - - param_count - - - ... - - - - - params[] - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/call_user_function_ex.xml b/internals2/ze1/zendapi/functions/call_user_function_ex.xml deleted file mode 100644 index 1bb423f9a3..0000000000 --- a/internals2/ze1/zendapi/functions/call_user_function_ex.xml +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - call_user_function_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intcall_user_function_ex - HashTable*function_table - zval**object_pp - zval*function_name - zval**retval_ptr_ptr - zend_uintparam_count - zval**params[] - intno_separation - HashTable*symbol_table - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - function_table - - - ... - - - - - object_pp - - - ... - - - - - function_name - - - ... - - - - - retval_ptr_ptr - - - ... - - - - - param_count - - - ... - - - - - params[] - - - ... - - - - - no_separation - - - ... - - - - - symbol_table - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/compile_file.xml b/internals2/ze1/zendapi/functions/compile_file.xml deleted file mode 100644 index d0c0dffebd..0000000000 --- a/internals2/ze1/zendapi/functions/compile_file.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - compile_file - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_op_array*compile_file - zend_file_handle*file_handle - inttype - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - file_handle - - - ... - - - - - type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/compile_filename.xml b/internals2/ze1/zendapi/functions/compile_filename.xml deleted file mode 100644 index 5ef779360d..0000000000 --- a/internals2/ze1/zendapi/functions/compile_filename.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - compile_filename - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_op_array*compile_filename - inttype - zval*filename - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - filename - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/compile_string.xml b/internals2/ze1/zendapi/functions/compile_string.xml deleted file mode 100644 index 7cc6039062..0000000000 --- a/internals2/ze1/zendapi/functions/compile_string.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - compile_string - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_op_array*compile_string - zval*source_string - char*filename - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - source_string - - - ... - - - - - filename - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/destroy_op_array.xml b/internals2/ze1/zendapi/functions/destroy_op_array.xml deleted file mode 100644 index b704ceae3a..0000000000 --- a/internals2/ze1/zendapi/functions/destroy_op_array.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - destroy_op_array - ... - - - - &reftitle.description; - #include <zend_compile.h> - - destroy_op_array - zend_op_array*op_array - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - op_array - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/destroy_zend_class.xml b/internals2/ze1/zendapi/functions/destroy_zend_class.xml deleted file mode 100644 index f0ea43e2e8..0000000000 --- a/internals2/ze1/zendapi/functions/destroy_zend_class.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - destroy_zend_class - ... - - - - &reftitle.description; - #include <zend_compile.h> - - destroy_zend_class - zend_class_entry**pce - - - ... - - - - - &reftitle.parameters; - - - - pce - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/destroy_zend_function.xml b/internals2/ze1/zendapi/functions/destroy_zend_function.xml deleted file mode 100644 index 45f3e71566..0000000000 --- a/internals2/ze1/zendapi/functions/destroy_zend_function.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - destroy_zend_function - ... - - - - &reftitle.description; - #include <zend_compile.h> - - destroy_zend_function - zend_function*function - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - function - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/display_ini_entries.xml b/internals2/ze1/zendapi/functions/display_ini_entries.xml deleted file mode 100644 index 198c420ff0..0000000000 --- a/internals2/ze1/zendapi/functions/display_ini_entries.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - display_ini_entries - ... - - - - &reftitle.description; - #include <zend_ini.h> - - display_ini_entries - zend_module_entry*module - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/do_bind_class.xml b/internals2/ze1/zendapi/functions/do_bind_class.xml deleted file mode 100644 index 813926a635..0000000000 --- a/internals2/ze1/zendapi/functions/do_bind_class.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - do_bind_class - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_class_entry*do_bind_class - zend_op*opline - HashTable*class_table - zend_boolcompile_time - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - opline - - - ... - - - - - class_table - - - ... - - - - - compile_time - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/do_bind_function.xml b/internals2/ze1/zendapi/functions/do_bind_function.xml deleted file mode 100644 index c3fc905eea..0000000000 --- a/internals2/ze1/zendapi/functions/do_bind_function.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - do_bind_function - ... - - - - &reftitle.description; - #include <zend_compile.h> - - intdo_bind_function - zend_op*opline - HashTable*function_table - zend_boolcompile_time - - - ... - - - - - &reftitle.parameters; - - - - opline - - - ... - - - - - function_table - - - ... - - - - - compile_time - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/do_bind_inherited_class.xml b/internals2/ze1/zendapi/functions/do_bind_inherited_class.xml deleted file mode 100644 index e7b8ae8f0f..0000000000 --- a/internals2/ze1/zendapi/functions/do_bind_inherited_class.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - do_bind_inherited_class - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_class_entry*do_bind_inherited_class - zend_op*opline - HashTable*class_table - zend_class_entry*parent_ce - zend_boolcompile_time - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - opline - - - ... - - - - - class_table - - - ... - - - - - parent_ce - - - ... - - - - - compile_time - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/estrndup.xml b/internals2/ze1/zendapi/functions/estrndup.xml deleted file mode 100644 index 63a1ec3d2f..0000000000 --- a/internals2/ze1/zendapi/functions/estrndup.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - estrndup - ... - - - - &reftitle.description; - #include <zend_alloc.h> - - char*estrndup - const char*s - unsigned intlength - - - ... - - - - - &reftitle.parameters; - - - - s - - - ... - - - - - length - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/estrndup_rel.xml b/internals2/ze1/zendapi/functions/estrndup_rel.xml deleted file mode 100644 index 880258e35a..0000000000 --- a/internals2/ze1/zendapi/functions/estrndup_rel.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - estrndup_rel - ... - - - - &reftitle.description; - #include <zend_alloc.h> - - char*estrndup_rel - const char*s - unsigned intlength - - - ... - - - - - &reftitle.parameters; - - - - s - - - ... - - - - - length - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/eustrdup.xml b/internals2/ze1/zendapi/functions/eustrdup.xml deleted file mode 100644 index 844e28a104..0000000000 --- a/internals2/ze1/zendapi/functions/eustrdup.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - eustrdup - ... - - - - &reftitle.description; - #include <zend_alloc.h> - - UChar*eustrdup - const UChar*s - - - ... - - - - - &reftitle.parameters; - - - - s - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/eustrndup.xml b/internals2/ze1/zendapi/functions/eustrndup.xml deleted file mode 100644 index 730036b81a..0000000000 --- a/internals2/ze1/zendapi/functions/eustrndup.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - eustrndup - ... - - - - &reftitle.description; - #include <zend_alloc.h> - - UChar*eustrndup - const UChar*s - uintlength - - - ... - - - - - &reftitle.parameters; - - - - s - - - ... - - - - - length - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/eustrndup_rel.xml b/internals2/ze1/zendapi/functions/eustrndup_rel.xml deleted file mode 100644 index 634497bd53..0000000000 --- a/internals2/ze1/zendapi/functions/eustrndup_rel.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - eustrndup_rel - ... - - - - &reftitle.description; - #include <zend_alloc.h> - - UChar*eustrndup_rel - const UChar*s - uintlength - - - ... - - - - - &reftitle.parameters; - - - - s - - - ... - - - - - length - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/execute.xml b/internals2/ze1/zendapi/functions/execute.xml deleted file mode 100644 index 16e4abeca3..0000000000 --- a/internals2/ze1/zendapi/functions/execute.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - execute - ... - - - - &reftitle.description; - #include <zend_execute.h> - - execute - zend_op_array*op_array - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - op_array - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/execute_internal.xml b/internals2/ze1/zendapi/functions/execute_internal.xml deleted file mode 100644 index 7843357831..0000000000 --- a/internals2/ze1/zendapi/functions/execute_internal.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - execute_internal - ... - - - - &reftitle.description; - #include <zend_execute.h> - - execute_internal - zend_execute_data*execute_data_ptr - intreturn_value_used - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - execute_data_ptr - - - ... - - - - - return_value_used - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/free_estring.xml b/internals2/ze1/zendapi/functions/free_estring.xml deleted file mode 100644 index bdb18f267d..0000000000 --- a/internals2/ze1/zendapi/functions/free_estring.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - free_estring - ... - - - - &reftitle.description; - #include <zend.h> - - free_estring - char**str_p - - - ... - - - - - &reftitle.parameters; - - - - str_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/full_mem_check.xml b/internals2/ze1/zendapi/functions/full_mem_check.xml deleted file mode 100644 index 524d0be40b..0000000000 --- a/internals2/ze1/zendapi/functions/full_mem_check.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - full_mem_check - ... - - - - &reftitle.description; - #include <zend_alloc.h> - - full_mem_check - ...silent - - - ... - - - - - &reftitle.parameters; - - - - silent - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/function_add_ref.xml b/internals2/ze1/zendapi/functions/function_add_ref.xml deleted file mode 100644 index 034b1b1bea..0000000000 --- a/internals2/ze1/zendapi/functions/function_add_ref.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - function_add_ref - ... - - - - &reftitle.description; - #include <zend_compile.h> - - function_add_ref - zend_function*function - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - function - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/get_active_class_name.xml b/internals2/ze1/zendapi/functions/get_active_class_name.xml deleted file mode 100644 index 6258b10f86..0000000000 --- a/internals2/ze1/zendapi/functions/get_active_class_name.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - get_active_class_name - ... - - - - &reftitle.description; - #include <zend_execute.h> - - char*get_active_class_name - char**space - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - space - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/get_active_function_name.xml b/internals2/ze1/zendapi/functions/get_active_function_name.xml deleted file mode 100644 index aeb0998420..0000000000 --- a/internals2/ze1/zendapi/functions/get_active_function_name.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - get_active_function_name - ... - - - - &reftitle.description; - #include <zend_execute.h> - - char*get_active_function_name - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/get_binary_op.xml b/internals2/ze1/zendapi/functions/get_binary_op.xml deleted file mode 100644 index 8e7faa59cf..0000000000 --- a/internals2/ze1/zendapi/functions/get_binary_op.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - get_binary_op - ... - - - - &reftitle.description; - #include <zend_compile.h> - - void*get_binary_op - intopcode - - - ... - - - - - &reftitle.parameters; - - - - opcode - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/get_unary_op.xml b/internals2/ze1/zendapi/functions/get_unary_op.xml deleted file mode 100644 index 6fec7de6af..0000000000 --- a/internals2/ze1/zendapi/functions/get_unary_op.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - get_unary_op - ... - - - - &reftitle.description; - #include <zend_compile.h> - - unary_op_typeget_unary_op - intopcode - - - ... - - - - - &reftitle.parameters; - - - - opcode - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/get_zend_version.xml b/internals2/ze1/zendapi/functions/get_zend_version.xml deleted file mode 100644 index dbe9420028..0000000000 --- a/internals2/ze1/zendapi/functions/get_zend_version.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - get_zend_version - Zend Engine のバージョン文字列を取得する - - - - &reftitle.description; - #include <zend.h> - - char*get_zend_version - void - - - get_zend_version は、使用中の Zend Engine - のバージョンおよび著作権情報を含む文字列を返します。 - - - - - &reftitle.returnvalues; - - 以下のような Zend バージョン文字列を返します。 - -
- - Zend Engine v2.0.5, Copyright (c) 1998-2006 Zend Technologies - -
-
- -
- - diff --git a/internals2/ze1/zendapi/functions/highlight_file.xml b/internals2/ze1/zendapi/functions/highlight_file.xml deleted file mode 100644 index 2a75f124f2..0000000000 --- a/internals2/ze1/zendapi/functions/highlight_file.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - highlight_file - ... - - - - &reftitle.description; - #include <zend_highlight.h> - - inthighlight_file - char*filename - zend_syntax_highlighter_ini*syntax_highlighter_ini - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - filename - - - ... - - - - - syntax_highlighter_ini - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/highlight_string.xml b/internals2/ze1/zendapi/functions/highlight_string.xml deleted file mode 100644 index 7dd471a439..0000000000 --- a/internals2/ze1/zendapi/functions/highlight_string.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - highlight_string - ... - - - - &reftitle.description; - #include <zend_highlight.h> - - inthighlight_string - zval*str - zend_syntax_highlighter_ini*syntax_highlighter_ini - char*str_name - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - str - - - ... - - - - - syntax_highlighter_ini - - - ... - - - - - str_name - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/init_op_array.xml b/internals2/ze1/zendapi/functions/init_op_array.xml deleted file mode 100644 index f1003fbc7c..0000000000 --- a/internals2/ze1/zendapi/functions/init_op_array.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - init_op_array - ... - - - - &reftitle.description; - #include <zend_compile.h> - - init_op_array - zend_op_array*op_array - zend_uchartype - intinitial_ops_size - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - op_array - - - ... - - - - - type - - - ... - - - - - initial_ops_size - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/lex_scan.xml b/internals2/ze1/zendapi/functions/lex_scan.xml deleted file mode 100644 index 108c08e8d0..0000000000 --- a/internals2/ze1/zendapi/functions/lex_scan.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - lex_scan - ... - - - - &reftitle.description; - #include <zend_compile.h> - - intlex_scan - zval*zendlval - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - zendlval - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/mem_block_check.xml b/internals2/ze1/zendapi/functions/mem_block_check.xml deleted file mode 100644 index 5f7bd47721..0000000000 --- a/internals2/ze1/zendapi/functions/mem_block_check.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - mem_block_check - ... - - - - &reftitle.description; - #include <zend_alloc.h> - - intmem_block_check - void*ptr - ...silent - - - ... - - - - - &reftitle.parameters; - - - - ptr - - - ... - - - - - silent - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/object_and_properties_init.xml b/internals2/ze1/zendapi/functions/object_and_properties_init.xml deleted file mode 100644 index d6db8c802f..0000000000 --- a/internals2/ze1/zendapi/functions/object_and_properties_init.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - object_and_properties_init - ... - - - - &reftitle.description; - #include <zend_API.h> - - intobject_and_properties_init - zval*arg - zend_class_entry*ce - HashTable*properties - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - ce - - - ... - - - - - properties - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/object_init.xml b/internals2/ze1/zendapi/functions/object_init.xml deleted file mode 100644 index e90de64662..0000000000 --- a/internals2/ze1/zendapi/functions/object_init.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - object_init - ... - - - - &reftitle.description; - #include <zend_API.h> - - intobject_init - zval*arg - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/object_init_ex.xml b/internals2/ze1/zendapi/functions/object_init_ex.xml deleted file mode 100644 index 522498cb5f..0000000000 --- a/internals2/ze1/zendapi/functions/object_init_ex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - object_init_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intobject_init_ex - zval*arg - zend_class_entry*ce - - - ... - - - - - &reftitle.parameters; - - - - arg - - - ... - - - - - ce - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/open_file_for_scanning.xml b/internals2/ze1/zendapi/functions/open_file_for_scanning.xml deleted file mode 100644 index c8a7360bc5..0000000000 --- a/internals2/ze1/zendapi/functions/open_file_for_scanning.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - open_file_for_scanning - ... - - - - &reftitle.description; - #include <zend_compile.h> - - intopen_file_for_scanning - zend_file_handle*file_handle - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - file_handle - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/register_list_destructors.xml b/internals2/ze1/zendapi/functions/register_list_destructors.xml deleted file mode 100644 index 16eb02ca28..0000000000 --- a/internals2/ze1/zendapi/functions/register_list_destructors.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - register_list_destructors - ... - - - - &reftitle.description; - #include <zend_list.h> - - intregister_list_destructors - ...ld - ...pld - - - ... - - - - - &reftitle.parameters; - - - - ld - - - ... - - - - - pld - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/shutdown_memory_manager.xml b/internals2/ze1/zendapi/functions/shutdown_memory_manager.xml deleted file mode 100644 index f635b55847..0000000000 --- a/internals2/ze1/zendapi/functions/shutdown_memory_manager.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - shutdown_memory_manager - ... - - - - &reftitle.description; - #include <zend_alloc.h> - - shutdown_memory_manager - intsilent - intfull_shutdown - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - silent - - - ... - - - - - full_shutdown - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/start_memory_manager.xml b/internals2/ze1/zendapi/functions/start_memory_manager.xml deleted file mode 100644 index 74276bb6e2..0000000000 --- a/internals2/ze1/zendapi/functions/start_memory_manager.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - start_memory_manager - ... - - - - &reftitle.description; - #include <zend_alloc.h> - - start_memory_manager - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_alter_ini_entry.xml b/internals2/ze1/zendapi/functions/zend_alter_ini_entry.xml deleted file mode 100644 index bf10468890..0000000000 --- a/internals2/ze1/zendapi/functions/zend_alter_ini_entry.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_alter_ini_entry - ... - - - - &reftitle.description; - #include <zend_ini.h> - - intzend_alter_ini_entry - char*name - uintname_length - char*new_value - uintnew_value_length - intmodify_type - intstage - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_length - - - ... - - - - - new_value - - - ... - - - - - new_value_length - - - ... - - - - - modify_type - - - ... - - - - - stage - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_auto_global_disable_jit.xml b/internals2/ze1/zendapi/functions/zend_auto_global_disable_jit.xml deleted file mode 100644 index e3de48df2d..0000000000 --- a/internals2/ze1/zendapi/functions/zend_auto_global_disable_jit.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_auto_global_disable_jit - ... - - - - &reftitle.description; - #include <zend_compile.h> - - intzend_auto_global_disable_jit - char*varname - zend_uintvarname_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - varname - - - ... - - - - - varname_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_bailout.xml b/internals2/ze1/zendapi/functions/zend_bailout.xml deleted file mode 100644 index 43ae52c582..0000000000 --- a/internals2/ze1/zendapi/functions/zend_bailout.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_bailout - ... - - - - &reftitle.description; - #include <zend.h> - - zend_bailout - ... - - - ... - - - - - &reftitle.parameters; - - - - - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_call_function.xml b/internals2/ze1/zendapi/functions/zend_call_function.xml deleted file mode 100644 index c2fd48be04..0000000000 --- a/internals2/ze1/zendapi/functions/zend_call_function.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_call_function - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_call_function - zend_fcall_info*fci - zend_fcall_info_cache*fci_cache - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - fci - - - ... - - - - - fci_cache - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_call_method.xml b/internals2/ze1/zendapi/functions/zend_call_method.xml deleted file mode 100644 index c8be058605..0000000000 --- a/internals2/ze1/zendapi/functions/zend_call_method.xml +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - zend_call_method - ... - - - - &reftitle.description; - #include <zend_interfaces.h> - - zval*zend_call_method - zval**object_pp - zend_class_entry*obj_ce - zend_function**fn_proxy - char*function_name - intfunction_name_len - zval**retval_ptr_ptr - intparam_count - zval*arg1 - zval*arg2 - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - object_pp - - - ... - - - - - obj_ce - - - ... - - - - - fn_proxy - - - ... - - - - - function_name - - - ... - - - - - function_name_len - - - ... - - - - - retval_ptr_ptr - - - ... - - - - - param_count - - - ... - - - - - arg1 - - - ... - - - - - arg2 - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_call_method_with_0_params.xml b/internals2/ze1/zendapi/functions/zend_call_method_with_0_params.xml deleted file mode 100644 index 61d7d23732..0000000000 --- a/internals2/ze1/zendapi/functions/zend_call_method_with_0_params.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_call_method_with_0_params - ... - - - - &reftitle.description; - #include <zend_interfaces.h> - - zval*zend_call_method_with_0_params - ...obj - zend_class_entry*obj_ce - zend_function**fn_proxy - char*function_name - ...retval - - - ... - - - - - &reftitle.parameters; - - - - obj - - - ... - - - - - obj_ce - - - ... - - - - - fn_proxy - - - ... - - - - - function_name - - - ... - - - - - retval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_call_method_with_1_params.xml b/internals2/ze1/zendapi/functions/zend_call_method_with_1_params.xml deleted file mode 100644 index 95c58a1db3..0000000000 --- a/internals2/ze1/zendapi/functions/zend_call_method_with_1_params.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_call_method_with_1_params - ... - - - - &reftitle.description; - #include <zend_interfaces.h> - - zval*zend_call_method_with_1_params - ...obj - zend_class_entry*obj_ce - zend_function**fn_proxy - char*function_name - ...retval - zval*arg1 - - - ... - - - - - &reftitle.parameters; - - - - obj - - - ... - - - - - obj_ce - - - ... - - - - - fn_proxy - - - ... - - - - - function_name - - - ... - - - - - retval - - - ... - - - - - arg1 - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_call_method_with_2_params.xml b/internals2/ze1/zendapi/functions/zend_call_method_with_2_params.xml deleted file mode 100644 index 165d655c62..0000000000 --- a/internals2/ze1/zendapi/functions/zend_call_method_with_2_params.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_call_method_with_2_params - ... - - - - &reftitle.description; - #include <zend_interfaces.h> - - zval*zend_call_method_with_2_params - ...obj - zend_class_entry*obj_ce - zend_function**fn_proxy - char*function_name - ...retval - zval*arg1 - zval*arg2 - - - ... - - - - - &reftitle.parameters; - - - - obj - - - ... - - - - - obj_ce - - - ... - - - - - fn_proxy - - - ... - - - - - function_name - - - ... - - - - - retval - - - ... - - - - - arg1 - - - ... - - - - - arg2 - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_case_fold_string.xml b/internals2/ze1/zendapi/functions/zend_case_fold_string.xml deleted file mode 100644 index 1828ff7df1..0000000000 --- a/internals2/ze1/zendapi/functions/zend_case_fold_string.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_case_fold_string - ... - - - - &reftitle.description; - #include <zend_unicode.h> - - zend_case_fold_string - UChar**dest - int32_t*dest_len - UChar*src - int32_tsrc_len - uint32_toptions - UErrorCode*status - - - ... - - - - - &reftitle.parameters; - - - - dest - - - ... - - - - - dest_len - - - ... - - - - - src - - - ... - - - - - src_len - - - ... - - - - - options - - - ... - - - - - status - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_check_magic_method_implementation.xml b/internals2/ze1/zendapi/functions/zend_check_magic_method_implementation.xml deleted file mode 100644 index 86ca8239fd..0000000000 --- a/internals2/ze1/zendapi/functions/zend_check_magic_method_implementation.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_check_magic_method_implementation - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_check_magic_method_implementation - zend_class_entry*ce - zend_function*fptr - interror_type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - fptr - - - ... - - - - - error_type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_check_private.xml b/internals2/ze1/zendapi/functions/zend_check_private.xml deleted file mode 100644 index 795d14b395..0000000000 --- a/internals2/ze1/zendapi/functions/zend_check_private.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_check_private - ... - - - - &reftitle.description; - #include <zend_object_handlers.h> - - intzend_check_private - union _zend_function*fbc - zend_class_entry*ce - char*function_name_strval - intfunction_name_strlen - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - fbc - - - ... - - - - - ce - - - ... - - - - - function_name_strval - - - ... - - - - - function_name_strlen - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_check_property_access.xml b/internals2/ze1/zendapi/functions/zend_check_property_access.xml deleted file mode 100644 index b76d7c5634..0000000000 --- a/internals2/ze1/zendapi/functions/zend_check_property_access.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_check_property_access - ... - - - - &reftitle.description; - #include <zend_object_handlers.h> - - intzend_check_property_access - zend_object*zobj - zend_ucharutype - void*prop_info_name - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - zobj - - - ... - - - - - utype - - - ... - - - - - prop_info_name - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_check_protected.xml b/internals2/ze1/zendapi/functions/zend_check_protected.xml deleted file mode 100644 index 07b883c48f..0000000000 --- a/internals2/ze1/zendapi/functions/zend_check_protected.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_check_protected - ... - - - - &reftitle.description; - #include <zend_object_handlers.h> - - intzend_check_protected - zend_class_entry*ce - zend_class_entry*scope - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - scope - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_class_implements.xml b/internals2/ze1/zendapi/functions/zend_class_implements.xml deleted file mode 100644 index 80fec7475e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_class_implements.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_class_implements - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_class_implements - zend_class_entry*class_entry - magicTSRMLS_DC - intnum_interfaces - ... - - - ... - - - - - &reftitle.parameters; - - - - class_entry - - - ... - - - - - TSRMLS_DC - - - ... - - - - - num_interfaces - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_cleanup_class_data.xml b/internals2/ze1/zendapi/functions/zend_cleanup_class_data.xml deleted file mode 100644 index b99ace44fe..0000000000 --- a/internals2/ze1/zendapi/functions/zend_cleanup_class_data.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_cleanup_class_data - ... - - - - &reftitle.description; - #include <zend_compile.h> - - intzend_cleanup_class_data - zend_class_entry**pce - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - pce - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_cleanup_function_data.xml b/internals2/ze1/zendapi/functions/zend_cleanup_function_data.xml deleted file mode 100644 index 21582beb27..0000000000 --- a/internals2/ze1/zendapi/functions/zend_cleanup_function_data.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_cleanup_function_data - ... - - - - &reftitle.description; - #include <zend_compile.h> - - intzend_cleanup_function_data - zend_function*function - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - function - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_clear_exception.xml b/internals2/ze1/zendapi/functions/zend_clear_exception.xml deleted file mode 100644 index 3529aea042..0000000000 --- a/internals2/ze1/zendapi/functions/zend_clear_exception.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_clear_exception - ... - - - - &reftitle.description; - #include <zend_exceptions.h> - - zend_clear_exception - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_cmp_unicode_and_literal.xml b/internals2/ze1/zendapi/functions/zend_cmp_unicode_and_literal.xml deleted file mode 100644 index f4acb26ce0..0000000000 --- a/internals2/ze1/zendapi/functions/zend_cmp_unicode_and_literal.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_cmp_unicode_and_literal - ... - - - - &reftitle.description; - #include <zend_unicode.h> - - intzend_cmp_unicode_and_literal - UChar*ustr - int32_tulen - char*str - int32_tslen - - - ... - - - - - &reftitle.parameters; - - - - ustr - - - ... - - - - - ulen - - - ... - - - - - str - - - ... - - - - - slen - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_cmp_unicode_and_string.xml b/internals2/ze1/zendapi/functions/zend_cmp_unicode_and_string.xml deleted file mode 100644 index b9422355c0..0000000000 --- a/internals2/ze1/zendapi/functions/zend_cmp_unicode_and_string.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_cmp_unicode_and_string - ... - - - - &reftitle.description; - #include <zend_unicode.h> - - intzend_cmp_unicode_and_string - UChar*ustr - char*str - uintlen - - - ... - - - - - &reftitle.parameters; - - - - ustr - - - ... - - - - - str - - - ... - - - - - len - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_convert_encodings.xml b/internals2/ze1/zendapi/functions/zend_convert_encodings.xml deleted file mode 100644 index 9e456d7eb2..0000000000 --- a/internals2/ze1/zendapi/functions/zend_convert_encodings.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_convert_encodings - ... - - - - &reftitle.description; - #include <zend_unicode.h> - - zend_convert_encodings - UConverter*target_conv - UConverter*source_conv - char**target - int32_t*target_len - const char*source - int32_tsource_len - UErrorCode*status - - - ... - - - - - &reftitle.parameters; - - - - target_conv - - - ... - - - - - source_conv - - - ... - - - - - target - - - ... - - - - - target_len - - - ... - - - - - source - - - ... - - - - - source_len - - - ... - - - - - status - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_convert_from_unicode.xml b/internals2/ze1/zendapi/functions/zend_convert_from_unicode.xml deleted file mode 100644 index 3df0b46633..0000000000 --- a/internals2/ze1/zendapi/functions/zend_convert_from_unicode.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_convert_from_unicode - ... - - - - &reftitle.description; - #include <zend_unicode.h> - - zend_convert_from_unicode - UConverter*conv - char**target - int32_t*target_len - const UChar*source - int32_tsource_len - UErrorCode*status - - - ... - - - - - &reftitle.parameters; - - - - conv - - - ... - - - - - target - - - ... - - - - - target_len - - - ... - - - - - source - - - ... - - - - - source_len - - - ... - - - - - status - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_convert_scanner_output.xml b/internals2/ze1/zendapi/functions/zend_convert_scanner_output.xml deleted file mode 100644 index 20a5477bb7..0000000000 --- a/internals2/ze1/zendapi/functions/zend_convert_scanner_output.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_convert_scanner_output - ... - - - - &reftitle.description; - #include <zend_compile.h> - - int32_tzend_convert_scanner_output - UChar**target - int32_t*target_len - const char*source - int32_tsource_len - UErrorCode*status - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - target - - - ... - - - - - target_len - - - ... - - - - - source - - - ... - - - - - source_len - - - ... - - - - - status - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_convert_to_unicode.xml b/internals2/ze1/zendapi/functions/zend_convert_to_unicode.xml deleted file mode 100644 index 2cf7f54571..0000000000 --- a/internals2/ze1/zendapi/functions/zend_convert_to_unicode.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_convert_to_unicode - ... - - - - &reftitle.description; - #include <zend_unicode.h> - - zend_convert_to_unicode - UConverter*conv - UChar**target - int32_t*target_len - const char*source - int32_tsource_len - UErrorCode*status - - - ... - - - - - &reftitle.parameters; - - - - conv - - - ... - - - - - target - - - ... - - - - - target_len - - - ... - - - - - source - - - ... - - - - - source_len - - - ... - - - - - status - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_copy_ini_directives.xml b/internals2/ze1/zendapi/functions/zend_copy_ini_directives.xml deleted file mode 100644 index 84d5d70f49..0000000000 --- a/internals2/ze1/zendapi/functions/zend_copy_ini_directives.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_copy_ini_directives - ... - - - - &reftitle.description; - #include <zend_ini.h> - - intzend_copy_ini_directives - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_copy_parameters_array.xml b/internals2/ze1/zendapi/functions/zend_copy_parameters_array.xml deleted file mode 100644 index 9beea0574c..0000000000 --- a/internals2/ze1/zendapi/functions/zend_copy_parameters_array.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_copy_parameters_array - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_copy_parameters_array - intparam_count - zval*argument_array - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - param_count - - - ... - - - - - argument_array - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_class_constant.xml b/internals2/ze1/zendapi/functions/zend_declare_class_constant.xml deleted file mode 100644 index ca77b3725f..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_class_constant.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_declare_class_constant - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_class_constant - zend_class_entry*ce - char*name - size_tname_length - zval*value - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_class_constant_bool.xml b/internals2/ze1/zendapi/functions/zend_declare_class_constant_bool.xml deleted file mode 100644 index 02412e3128..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_class_constant_bool.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_declare_class_constant_bool - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_class_constant_bool - zend_class_entry*ce - char*name - size_tname_length - zend_boolvalue - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_class_constant_double.xml b/internals2/ze1/zendapi/functions/zend_declare_class_constant_double.xml deleted file mode 100644 index 02b219b1bf..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_class_constant_double.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_declare_class_constant_double - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_class_constant_double - zend_class_entry*ce - char*name - size_tname_length - doublevalue - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_class_constant_long.xml b/internals2/ze1/zendapi/functions/zend_declare_class_constant_long.xml deleted file mode 100644 index e734d5781b..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_class_constant_long.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_declare_class_constant_long - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_class_constant_long - zend_class_entry*ce - char*name - size_tname_length - longvalue - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_class_constant_string.xml b/internals2/ze1/zendapi/functions/zend_declare_class_constant_string.xml deleted file mode 100644 index d3e7167b08..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_class_constant_string.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_declare_class_constant_string - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_class_constant_string - zend_class_entry*ce - char*name - size_tname_length - char*value - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_class_constant_stringl.xml b/internals2/ze1/zendapi/functions/zend_declare_class_constant_stringl.xml deleted file mode 100644 index cee0b21583..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_class_constant_stringl.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_declare_class_constant_stringl - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_class_constant_stringl - zend_class_entry*ce - char*name - size_tname_length - char*value - size_tvalue_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - value_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_property.xml b/internals2/ze1/zendapi/functions/zend_declare_property.xml deleted file mode 100644 index 5e118ba507..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_property.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_declare_property - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_property - zend_class_entry*ce - char*name - intname_length - zval*property - intaccess_type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - property - - - ... - - - - - access_type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_property_bool.xml b/internals2/ze1/zendapi/functions/zend_declare_property_bool.xml deleted file mode 100644 index cd2a623c62..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_property_bool.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_declare_property_bool - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_property_bool - zend_class_entry*ce - char*name - intname_length - longvalue - intaccess_type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - access_type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_property_double.xml b/internals2/ze1/zendapi/functions/zend_declare_property_double.xml deleted file mode 100644 index 71084779f9..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_property_double.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_declare_property_double - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_property_double - zend_class_entry*ce - char*name - intname_length - doublevalue - intaccess_type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - access_type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_property_ex.xml b/internals2/ze1/zendapi/functions/zend_declare_property_ex.xml deleted file mode 100644 index 3fcf554f24..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_property_ex.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - zend_declare_property_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_property_ex - zend_class_entry*ce - char*name - intname_length - zval*property - intaccess_type - char*doc_comment - intdoc_comment_len - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - property - - - ... - - - - - access_type - - - ... - - - - - doc_comment - - - ... - - - - - doc_comment_len - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_property_long.xml b/internals2/ze1/zendapi/functions/zend_declare_property_long.xml deleted file mode 100644 index e7d08298d9..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_property_long.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_declare_property_long - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_property_long - zend_class_entry*ce - char*name - intname_length - longvalue - intaccess_type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - access_type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_property_null.xml b/internals2/ze1/zendapi/functions/zend_declare_property_null.xml deleted file mode 100644 index cfa56ce241..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_property_null.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_declare_property_null - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_property_null - zend_class_entry*ce - char*name - intname_length - intaccess_type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - access_type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_property_string.xml b/internals2/ze1/zendapi/functions/zend_declare_property_string.xml deleted file mode 100644 index 31e385e3e0..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_property_string.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_declare_property_string - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_property_string - zend_class_entry*ce - char*name - intname_length - char*value - intaccess_type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - access_type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_declare_property_stringl.xml b/internals2/ze1/zendapi/functions/zend_declare_property_stringl.xml deleted file mode 100644 index 7dba2b19dc..0000000000 --- a/internals2/ze1/zendapi/functions/zend_declare_property_stringl.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_declare_property_stringl - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_declare_property_stringl - zend_class_entry*ce - char*name - intname_length - char*value - intvalue_len - intaccess_type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - value_len - - - ... - - - - - access_type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_delete_global_variable.xml b/internals2/ze1/zendapi/functions/zend_delete_global_variable.xml deleted file mode 100644 index 0b5ff665fc..0000000000 --- a/internals2/ze1/zendapi/functions/zend_delete_global_variable.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_delete_global_variable - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_delete_global_variable - char*name - intname_len - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_len - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_destroy_file_handle.xml b/internals2/ze1/zendapi/functions/zend_destroy_file_handle.xml deleted file mode 100644 index 150df13f22..0000000000 --- a/internals2/ze1/zendapi/functions/zend_destroy_file_handle.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_destroy_file_handle - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_destroy_file_handle - zend_file_handle*file_handle - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - file_handle - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_disable_class.xml b/internals2/ze1/zendapi/functions/zend_disable_class.xml deleted file mode 100644 index ecf242d847..0000000000 --- a/internals2/ze1/zendapi/functions/zend_disable_class.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_disable_class - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_disable_class - char*class_name - uintclass_name_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - class_name - - - ... - - - - - class_name_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_disable_function.xml b/internals2/ze1/zendapi/functions/zend_disable_function.xml deleted file mode 100644 index fd9d409893..0000000000 --- a/internals2/ze1/zendapi/functions/zend_disable_function.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_disable_function - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_disable_function - char*function_name - uintfunction_name_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - function_name - - - ... - - - - - function_name_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_do_fcall.xml b/internals2/ze1/zendapi/functions/zend_do_fcall.xml deleted file mode 100644 index 87fdfcec48..0000000000 --- a/internals2/ze1/zendapi/functions/zend_do_fcall.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_do_fcall - ... - - - - &reftitle.description; - #include <zend_execute.h> - - intzend_do_fcall - ZEND_OPCODE_HANDLER_ARGS - - - ... - - - - - &reftitle.parameters; - - - - ZEND_OPCODE_HANDLER_ARGS - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_do_implement_interface.xml b/internals2/ze1/zendapi/functions/zend_do_implement_interface.xml deleted file mode 100644 index 99d7b0ce53..0000000000 --- a/internals2/ze1/zendapi/functions/zend_do_implement_interface.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_do_implement_interface - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_do_implement_interface - zend_class_entry*ce - zend_class_entry*iface - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - iface - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_do_inherit_interfaces.xml b/internals2/ze1/zendapi/functions/zend_do_inherit_interfaces.xml deleted file mode 100644 index 34853e05cb..0000000000 --- a/internals2/ze1/zendapi/functions/zend_do_inherit_interfaces.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_do_inherit_interfaces - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_do_inherit_interfaces - zend_class_entry*ce - zend_class_entry*iface - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - iface - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_do_inheritance.xml b/internals2/ze1/zendapi/functions/zend_do_inheritance.xml deleted file mode 100644 index 57b0306ff1..0000000000 --- a/internals2/ze1/zendapi/functions/zend_do_inheritance.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_do_inheritance - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_do_inheritance - zend_class_entry*ce - zend_class_entry*parent_ce - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - parent_ce - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_error.xml b/internals2/ze1/zendapi/functions/zend_error.xml deleted file mode 100644 index dc91357942..0000000000 --- a/internals2/ze1/zendapi/functions/zend_error.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_error - エラーメッセージを生成し、エラー処理を起動させる - - - - &reftitle.description; - #include <zend.h> - #include <zend_errors.h> - - zend_error - inttype - const char*format - ... - - - ... - - - - - &reftitle.parameters; - - - - type - - - E_ERRORE_WARNING、 - E_PARSEE_NOTICE、 - E_CORE_ERRORE_CORE_WARNING、 - E_COMPILE_ERRORE_COMPILE_WARNING、 - E_USER_ERRORE_USER_WARNING、 - E_USER_NOTICEE_STRICT あるいは - E_RECOVERABLE_ERROR のいずれか。 - - - - - format - - - printf 形式の書式文字列。 - - - - - ... - - - format 文字列に対応する出力パラメータ。 - - - - - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_eval_string.xml b/internals2/ze1/zendapi/functions/zend_eval_string.xml deleted file mode 100644 index 14a547c96e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_eval_string.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_eval_string - ... - - - - &reftitle.description; - #include <zend_execute.h> - - intzend_eval_string - char*str - zval*retval_ptr - char*string_name - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - str - - - ... - - - - - retval_ptr - - - ... - - - - - string_name - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_eval_string_ex.xml b/internals2/ze1/zendapi/functions/zend_eval_string_ex.xml deleted file mode 100644 index 73636c482c..0000000000 --- a/internals2/ze1/zendapi/functions/zend_eval_string_ex.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_eval_string_ex - ... - - - - &reftitle.description; - #include <zend_execute.h> - - intzend_eval_string_ex - char*str - zval*retval_ptr - char*string_name - inthandle_exceptions - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - str - - - ... - - - - - retval_ptr - - - ... - - - - - string_name - - - ... - - - - - handle_exceptions - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_exception_error.xml b/internals2/ze1/zendapi/functions/zend_exception_error.xml deleted file mode 100644 index 39851e7415..0000000000 --- a/internals2/ze1/zendapi/functions/zend_exception_error.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_exception_error - ... - - - - &reftitle.description; - #include <zend_exceptions.h> - - zend_exception_error - zval*exception - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - exception - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_exception_get_default.xml b/internals2/ze1/zendapi/functions/zend_exception_get_default.xml deleted file mode 100644 index 44f5ca19a0..0000000000 --- a/internals2/ze1/zendapi/functions/zend_exception_get_default.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_exception_get_default - ... - - - - &reftitle.description; - #include <zend_exceptions.h> - - zend_class_entry*zend_exception_get_default - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_execute_scripts.xml b/internals2/ze1/zendapi/functions/zend_execute_scripts.xml deleted file mode 100644 index 566ce276c0..0000000000 --- a/internals2/ze1/zendapi/functions/zend_execute_scripts.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_execute_scripts - ... - - - - &reftitle.description; - #include <zend_compile.h> - - intzend_execute_scripts - inttype - magicTSRMLS_DC - zval**retval - intfile_count - ... - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - retval - - - ... - - - - - file_count - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_fetch_class.xml b/internals2/ze1/zendapi/functions/zend_fetch_class.xml deleted file mode 100644 index de67c06fc6..0000000000 --- a/internals2/ze1/zendapi/functions/zend_fetch_class.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_fetch_class - ... - - - - &reftitle.description; - #include <zend_execute.h> - - zend_class_entry*zend_fetch_class - char*class_name - uintclass_name_len - intfetch_type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - class_name - - - ... - - - - - class_name_len - - - ... - - - - - fetch_type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_fetch_debug_backtrace.xml b/internals2/ze1/zendapi/functions/zend_fetch_debug_backtrace.xml deleted file mode 100644 index d2dca52457..0000000000 --- a/internals2/ze1/zendapi/functions/zend_fetch_debug_backtrace.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_fetch_debug_backtrace - ... - - - - &reftitle.description; - #include <zend_builtin_functions.h> - - zend_fetch_debug_backtrace - zval*return_value - intskip_last - intprovide_object - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - return_value - - - ... - - - - - skip_last - - - ... - - - - - provide_object - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_fetch_list_dtor_id.xml b/internals2/ze1/zendapi/functions/zend_fetch_list_dtor_id.xml deleted file mode 100644 index ad43376798..0000000000 --- a/internals2/ze1/zendapi/functions/zend_fetch_list_dtor_id.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_fetch_list_dtor_id - ... - - - - &reftitle.description; - #include <zend_list.h> - - intzend_fetch_list_dtor_id - char*type_name - - - ... - - - - - &reftitle.parameters; - - - - type_name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_fetch_resource.xml b/internals2/ze1/zendapi/functions/zend_fetch_resource.xml deleted file mode 100644 index d68d92a345..0000000000 --- a/internals2/ze1/zendapi/functions/zend_fetch_resource.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_fetch_resource - ... - - - - &reftitle.description; - #include <zend_list.h> - - void*zend_fetch_resource - zval**passed_id - magicTSRMLS_DC - intdefault_id - char*resource_type_name - int*found_resource_type - intnum_resource_types - ... - - - ... - - - - - &reftitle.parameters; - - - - passed_id - - - ... - - - - - TSRMLS_DC - - - ... - - - - - default_id - - - ... - - - - - resource_type_name - - - ... - - - - - found_resource_type - - - ... - - - - - num_resource_types - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_file_handle_dtor.xml b/internals2/ze1/zendapi/functions/zend_file_handle_dtor.xml deleted file mode 100644 index 79c6d4670f..0000000000 --- a/internals2/ze1/zendapi/functions/zend_file_handle_dtor.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_file_handle_dtor - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_file_handle_dtor - zend_file_handle*fh - - - ... - - - - - &reftitle.parameters; - - - - fh - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_function_dtor.xml b/internals2/ze1/zendapi/functions/zend_function_dtor.xml deleted file mode 100644 index cbeb980e76..0000000000 --- a/internals2/ze1/zendapi/functions/zend_function_dtor.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_function_dtor - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_function_dtor - zend_function*function - - - ... - - - - - &reftitle.parameters; - - - - function - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_class_entry.xml b/internals2/ze1/zendapi/functions/zend_get_class_entry.xml deleted file mode 100644 index 0a682a6b7e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_class_entry.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_get_class_entry - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_class_entry*zend_get_class_entry - zval*zobject - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - zobject - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_compiled_filename.xml b/internals2/ze1/zendapi/functions/zend_get_compiled_filename.xml deleted file mode 100644 index 96726c8de5..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_compiled_filename.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_get_compiled_filename - ... - - - - &reftitle.description; - #include <zend_compile.h> - - char*zend_get_compiled_filename - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_compiled_lineno.xml b/internals2/ze1/zendapi/functions/zend_get_compiled_lineno.xml deleted file mode 100644 index 0108f7f12e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_compiled_lineno.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_get_compiled_lineno - ... - - - - &reftitle.description; - #include <zend_compile.h> - - intzend_get_compiled_lineno - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_compiled_script_encoding.xml b/internals2/ze1/zendapi/functions/zend_get_compiled_script_encoding.xml deleted file mode 100644 index 03e76f5f82..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_compiled_script_encoding.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_get_compiled_script_encoding - ... - - - - &reftitle.description; - #include <zend_compile.h> - - char*zend_get_compiled_script_encoding - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_compiled_variable_name.xml b/internals2/ze1/zendapi/functions/zend_get_compiled_variable_name.xml deleted file mode 100644 index 8ccdcff960..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_compiled_variable_name.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_get_compiled_variable_name - ... - - - - &reftitle.description; - #include <zend_compile.h> - - char*zend_get_compiled_variable_name - zend_op_array*op_array - zend_uintvar - int*name_len - - - ... - - - - - &reftitle.parameters; - - - - op_array - - - ... - - - - - var - - - ... - - - - - name_len - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_compiled_variable_value.xml b/internals2/ze1/zendapi/functions/zend_get_compiled_variable_value.xml deleted file mode 100644 index 10039eea27..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_compiled_variable_value.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_get_compiled_variable_value - ... - - - - &reftitle.description; - #include <zend_execute.h> - - zval**zend_get_compiled_variable_value - zend_execute_data*execute_data_ptr - zend_uintvar - - - ... - - - - - &reftitle.parameters; - - - - execute_data_ptr - - - ... - - - - - var - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_configuration_directive.xml b/internals2/ze1/zendapi/functions/zend_get_configuration_directive.xml deleted file mode 100644 index ef3b749136..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_configuration_directive.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_get_configuration_directive - ... - - - - &reftitle.description; - #include <zend.h> - - intzend_get_configuration_directive - char*name - uintname_length - zval*contents - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_length - - - ... - - - - - contents - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_constant.xml b/internals2/ze1/zendapi/functions/zend_get_constant.xml deleted file mode 100644 index 2ec4832cee..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_constant.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_get_constant - ... - - - - &reftitle.description; - #include <zend_constants.h> - - intzend_get_constant - char*name - uintname_len - zval*result - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_len - - - ... - - - - - result - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_error_exception.xml b/internals2/ze1/zendapi/functions/zend_get_error_exception.xml deleted file mode 100644 index 020e8a7bf6..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_error_exception.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_get_error_exception - ... - - - - &reftitle.description; - #include <zend_exceptions.h> - - zend_class_entry*zend_get_error_exception - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_executed_filename.xml b/internals2/ze1/zendapi/functions/zend_get_executed_filename.xml deleted file mode 100644 index 5d1eb1c904..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_executed_filename.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_get_executed_filename - ... - - - - &reftitle.description; - #include <zend_execute.h> - - char*zend_get_executed_filename - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_executed_lineno.xml b/internals2/ze1/zendapi/functions/zend_get_executed_lineno.xml deleted file mode 100644 index d5c5ceea8d..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_executed_lineno.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_get_executed_lineno - ... - - - - &reftitle.description; - #include <zend_execute.h> - - uintzend_get_executed_lineno - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_hash_value.xml b/internals2/ze1/zendapi/functions/zend_get_hash_value.xml deleted file mode 100644 index dd1b0254c4..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_hash_value.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_get_hash_value - ... - - - - &reftitle.description; - #include <zend_hash.h> - - ulongzend_get_hash_value - char*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_module_started.xml b/internals2/ze1/zendapi/functions/zend_get_module_started.xml deleted file mode 100644 index fa8ac52e09..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_module_started.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_get_module_started - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_get_module_started - char*module_name - - - ... - - - - - &reftitle.parameters; - - - - module_name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_module_version.xml b/internals2/ze1/zendapi/functions/zend_get_module_version.xml deleted file mode 100644 index 9a5b4f78f3..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_module_version.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_get_module_version - ... - - - - &reftitle.description; - #include <zend_API.h> - - char*zend_get_module_version - char*module_name - - - ... - - - - - &reftitle.parameters; - - - - module_name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_object_classname.xml b/internals2/ze1/zendapi/functions/zend_get_object_classname.xml deleted file mode 100644 index 662f8235f2..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_object_classname.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_get_object_classname - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_get_object_classname - zval*object - char**class_name - zend_uint*class_name_len - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - object - - - ... - - - - - class_name - - - ... - - - - - class_name_len - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_parameters.xml b/internals2/ze1/zendapi/functions/zend_get_parameters.xml deleted file mode 100644 index f73770f4ff..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_parameters.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_get_parameters - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_get_parameters - intht - intparam_count - ... - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - param_count - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_parameters_array.xml b/internals2/ze1/zendapi/functions/zend_get_parameters_array.xml deleted file mode 100644 index 1450627976..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_parameters_array.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_get_parameters_array - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_get_parameters_array - intht - intparam_count - zval**argument_array - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - param_count - - - ... - - - - - argument_array - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_parameters_array_ex.xml b/internals2/ze1/zendapi/functions/zend_get_parameters_array_ex.xml deleted file mode 100644 index 15bc299173..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_parameters_array_ex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_get_parameters_array_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_get_parameters_array_ex - intparam_count - zval***argument_array - - - ... - - - - - &reftitle.parameters; - - - - param_count - - - ... - - - - - argument_array - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_parameters_ex.xml b/internals2/ze1/zendapi/functions/zend_get_parameters_ex.xml deleted file mode 100644 index 4de9118a5c..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_parameters_ex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_get_parameters_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_get_parameters_ex - intparam_count - ... - - - ... - - - - - &reftitle.parameters; - - - - param_count - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_scanned_file_offset.xml b/internals2/ze1/zendapi/functions/zend_get_scanned_file_offset.xml deleted file mode 100644 index c1ea831d3c..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_scanned_file_offset.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_get_scanned_file_offset - ... - - - - &reftitle.description; - #include <zend_compile.h> - - intzend_get_scanned_file_offset - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_std_object_handlers.xml b/internals2/ze1/zendapi/functions/zend_get_std_object_handlers.xml deleted file mode 100644 index 26caa91313..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_std_object_handlers.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_get_std_object_handlers - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - zend_object_handlers*zend_get_std_object_handlers - magic - - - ... - - - - - &reftitle.parameters; - - - - - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_unified_string_type.xml b/internals2/ze1/zendapi/functions/zend_get_unified_string_type.xml deleted file mode 100644 index fd92db91ae..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_unified_string_type.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_get_unified_string_type - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_ucharzend_get_unified_string_type - intnum_args - magicTSRMLS_DC - ... - - - ... - - - - - &reftitle.parameters; - - - - num_args - - - ... - - - - - TSRMLS_DC - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_user_opcode_handler.xml b/internals2/ze1/zendapi/functions/zend_get_user_opcode_handler.xml deleted file mode 100644 index 91bb60b427..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_user_opcode_handler.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_get_user_opcode_handler - ... - - - - &reftitle.description; - #include <zend_execute.h> - - opcode_handler_tzend_get_user_opcode_handler - zend_ucharopcode - - - ... - - - - - &reftitle.parameters; - - - - opcode - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_zval_ptr.xml b/internals2/ze1/zendapi/functions/zend_get_zval_ptr.xml deleted file mode 100644 index 6fb6864742..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_zval_ptr.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_get_zval_ptr - ... - - - - &reftitle.description; - #include <zend_execute.h> - - zval*zend_get_zval_ptr - znode*node - temp_variable*Ts - zend_free_op*should_free - inttype - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - node - - - ... - - - - - Ts - - - ... - - - - - should_free - - - ... - - - - - type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_get_zval_ptr_ptr.xml b/internals2/ze1/zendapi/functions/zend_get_zval_ptr_ptr.xml deleted file mode 100644 index 2d603fa643..0000000000 --- a/internals2/ze1/zendapi/functions/zend_get_zval_ptr_ptr.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_get_zval_ptr_ptr - ... - - - - &reftitle.description; - #include <zend_execute.h> - - zval**zend_get_zval_ptr_ptr - znode*node - temp_variable*Ts - zend_free_op*should_free - inttype - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - node - - - ... - - - - - Ts - - - ... - - - - - should_free - - - ... - - - - - type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_add.xml b/internals2/ze1/zendapi/functions/zend_hash_add.xml deleted file mode 100644 index 5d11a7a48f..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_add.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_hash_add - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_add - HashTable*ht - char*arKey - uintnKeyLength - void*pData - uintnDataSize - void**pDest - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - pData - - - ... - - - - - nDataSize - - - ... - - - - - pDest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_add_empty_element.xml b/internals2/ze1/zendapi/functions/zend_hash_add_empty_element.xml deleted file mode 100644 index c3cc7291b2..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_add_empty_element.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_hash_add_empty_element - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_add_empty_element - HashTable*ht - char*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_apply.xml b/internals2/ze1/zendapi/functions/zend_hash_apply.xml deleted file mode 100644 index 67429a4812..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_apply.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_hash_apply - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_apply - HashTable*ht - apply_func_tapply_func - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - apply_func - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_apply_with_argument.xml b/internals2/ze1/zendapi/functions/zend_hash_apply_with_argument.xml deleted file mode 100644 index a0ace00948..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_apply_with_argument.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_hash_apply_with_argument - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_apply_with_argument - HashTable*ht - apply_func_arg_tapply_func - void* - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - apply_func - - - ... - - - - - - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_apply_with_arguments.xml b/internals2/ze1/zendapi/functions/zend_hash_apply_with_arguments.xml deleted file mode 100644 index fc21d4cf15..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_apply_with_arguments.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_hash_apply_with_arguments - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_apply_with_arguments - HashTable*ht - apply_func_args_tapply_func - int - ... - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - apply_func - - - ... - - - - - int - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_clean.xml b/internals2/ze1/zendapi/functions/zend_hash_clean.xml deleted file mode 100644 index 655795e88a..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_clean.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_hash_clean - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_clean - HashTable*ht - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_compare.xml b/internals2/ze1/zendapi/functions/zend_hash_compare.xml deleted file mode 100644 index 2e079efd40..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_compare.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_hash_compare - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_compare - HashTable*ht1 - HashTable*ht2 - compare_func_tcompar - zend_boolordered - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ht1 - - - ... - - - - - ht2 - - - ... - - - - - compar - - - ... - - - - - ordered - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_copy.xml b/internals2/ze1/zendapi/functions/zend_hash_copy.xml deleted file mode 100644 index b4fbbb280e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_copy.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_hash_copy - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_copy - HashTable*target - HashTable*source - copy_ctor_func_tpCopyConstructor - void*tmp - uintsize - - - ... - - - - - &reftitle.parameters; - - - - target - - - ... - - - - - source - - - ... - - - - - pCopyConstructor - - - ... - - - - - tmp - - - ... - - - - - size - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_del.xml b/internals2/ze1/zendapi/functions/zend_hash_del.xml deleted file mode 100644 index e4d77bdc45..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_del.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_hash_del - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_del - HashTable*ht - char*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_del_key_or_index.xml b/internals2/ze1/zendapi/functions/zend_hash_del_key_or_index.xml deleted file mode 100644 index c3e4713267..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_del_key_or_index.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_hash_del_key_or_index - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_del_key_or_index - HashTable*ht - char*arKey - uintnKeyLength - ulongh - intflag - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - h - - - ... - - - - - flag - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_destroy.xml b/internals2/ze1/zendapi/functions/zend_hash_destroy.xml deleted file mode 100644 index 3f89cfdf17..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_destroy.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_hash_destroy - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_destroy - HashTable*ht - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_exists.xml b/internals2/ze1/zendapi/functions/zend_hash_exists.xml deleted file mode 100644 index f5e4b54410..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_exists.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_hash_exists - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_exists - HashTable*ht - char*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_find.xml b/internals2/ze1/zendapi/functions/zend_hash_find.xml deleted file mode 100644 index 9007bdb944..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_find.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_hash_find - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_find - HashTable*ht - char*arKey - uintnKeyLength - void**pData - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - pData - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_func.xml b/internals2/ze1/zendapi/functions/zend_hash_func.xml deleted file mode 100644 index 93425f46eb..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_func.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_hash_func - ... - - - - &reftitle.description; - #include <zend_hash.h> - - ulongzend_hash_func - char*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_get_current_data.xml b/internals2/ze1/zendapi/functions/zend_hash_get_current_data.xml deleted file mode 100644 index c59397fe8a..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_get_current_data.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_hash_get_current_data - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_get_current_data - HashTable*ht - void**pData - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - pData - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_get_current_data_ex.xml b/internals2/ze1/zendapi/functions/zend_hash_get_current_data_ex.xml deleted file mode 100644 index fcc067302e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_get_current_data_ex.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_hash_get_current_data_ex - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_get_current_data_ex - HashTable*ht - void**pData - HashPosition*pos - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - pData - - - ... - - - - - pos - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_get_current_key.xml b/internals2/ze1/zendapi/functions/zend_hash_get_current_key.xml deleted file mode 100644 index 0b1cf95757..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_get_current_key.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_hash_get_current_key - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_get_current_key - HashTable*ht - char**str_index - ulong*num_index - zend_boolduplicate - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - str_index - - - ... - - - - - num_index - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_get_current_key_ex.xml b/internals2/ze1/zendapi/functions/zend_hash_get_current_key_ex.xml deleted file mode 100644 index 73e22d6884..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_get_current_key_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_hash_get_current_key_ex - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_get_current_key_ex - HashTable*ht - char**str_index - uint*str_length - ulong*num_index - zend_boolduplicate - HashPosition*pos - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - str_index - - - ... - - - - - str_length - - - ... - - - - - num_index - - - ... - - - - - duplicate - - - ... - - - - - pos - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_get_current_key_type.xml b/internals2/ze1/zendapi/functions/zend_hash_get_current_key_type.xml deleted file mode 100644 index 9f08865f49..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_get_current_key_type.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_hash_get_current_key_type - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_get_current_key_type - HashTable*ht - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_get_current_key_type_ex.xml b/internals2/ze1/zendapi/functions/zend_hash_get_current_key_type_ex.xml deleted file mode 100644 index c1e8f3d2db..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_get_current_key_type_ex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_hash_get_current_key_type_ex - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_get_current_key_type_ex - HashTable*ht - HashPosition*pos - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - pos - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_graceful_destroy.xml b/internals2/ze1/zendapi/functions/zend_hash_graceful_destroy.xml deleted file mode 100644 index d5e4c47b97..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_graceful_destroy.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_hash_graceful_destroy - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_graceful_destroy - HashTable*ht - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_graceful_reverse_destroy.xml b/internals2/ze1/zendapi/functions/zend_hash_graceful_reverse_destroy.xml deleted file mode 100644 index 583576db01..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_graceful_reverse_destroy.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_hash_graceful_reverse_destroy - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_graceful_reverse_destroy - HashTable*ht - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_index_del.xml b/internals2/ze1/zendapi/functions/zend_hash_index_del.xml deleted file mode 100644 index c23c952b61..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_index_del.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_hash_index_del - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_index_del - HashTable*ht - ulongh - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - h - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_index_exists.xml b/internals2/ze1/zendapi/functions/zend_hash_index_exists.xml deleted file mode 100644 index f39dd3c8ab..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_index_exists.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_hash_index_exists - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_index_exists - HashTable*ht - ulongh - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - h - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_index_find.xml b/internals2/ze1/zendapi/functions/zend_hash_index_find.xml deleted file mode 100644 index 8a7081e118..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_index_find.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_hash_index_find - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_index_find - HashTable*ht - ulongh - void**pData - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - h - - - ... - - - - - pData - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_index_update.xml b/internals2/ze1/zendapi/functions/zend_hash_index_update.xml deleted file mode 100644 index 69e6ea5e38..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_index_update.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_hash_index_update - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_index_update - HashTable*ht - ulongh - void*pData - uintnDataSize - void**pDest - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - h - - - ... - - - - - pData - - - ... - - - - - nDataSize - - - ... - - - - - pDest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_init.xml b/internals2/ze1/zendapi/functions/zend_hash_init.xml deleted file mode 100644 index 0e4cb82ac3..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_init.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_hash_init - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_init - HashTable*ht - uintnSize - hash_func_tpHashFunction - dtor_func_tpDestructor - zend_boolpersistent - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - nSize - - - ... - - - - - pHashFunction - - - ... - - - - - pDestructor - - - ... - - - - - persistent - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_init_ex.xml b/internals2/ze1/zendapi/functions/zend_hash_init_ex.xml deleted file mode 100644 index 9953d39ea8..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_init_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_hash_init_ex - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_init_ex - HashTable*ht - uintnSize - hash_func_tpHashFunction - dtor_func_tpDestructor - zend_boolpersistent - zend_boolbApplyProtection - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - nSize - - - ... - - - - - pHashFunction - - - ... - - - - - pDestructor - - - ... - - - - - persistent - - - ... - - - - - bApplyProtection - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_internal_pointer_end.xml b/internals2/ze1/zendapi/functions/zend_hash_internal_pointer_end.xml deleted file mode 100644 index d08ac00fc2..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_internal_pointer_end.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_hash_internal_pointer_end - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_internal_pointer_end - HashTable*ht - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_internal_pointer_end_ex.xml b/internals2/ze1/zendapi/functions/zend_hash_internal_pointer_end_ex.xml deleted file mode 100644 index dec3505ff7..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_internal_pointer_end_ex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_hash_internal_pointer_end_ex - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_internal_pointer_end_ex - HashTable*ht - HashPosition*pos - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - pos - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_internal_pointer_reset.xml b/internals2/ze1/zendapi/functions/zend_hash_internal_pointer_reset.xml deleted file mode 100644 index eaa228ecd9..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_internal_pointer_reset.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_hash_internal_pointer_reset - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_internal_pointer_reset - HashTable*ht - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_internal_pointer_reset_ex.xml b/internals2/ze1/zendapi/functions/zend_hash_internal_pointer_reset_ex.xml deleted file mode 100644 index 5f96454468..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_internal_pointer_reset_ex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_hash_internal_pointer_reset_ex - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_internal_pointer_reset_ex - HashTable*ht - HashPosition*pos - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - pos - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_merge.xml b/internals2/ze1/zendapi/functions/zend_hash_merge.xml deleted file mode 100644 index 47093dd7b0..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_merge.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_hash_merge - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_merge - HashTable*target - HashTable*source - copy_ctor_func_tpCopyConstructor - void*tmp - uintsize - intoverwrite - - - ... - - - - - &reftitle.parameters; - - - - target - - - ... - - - - - source - - - ... - - - - - pCopyConstructor - - - ... - - - - - tmp - - - ... - - - - - size - - - ... - - - - - overwrite - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_merge_ex.xml b/internals2/ze1/zendapi/functions/zend_hash_merge_ex.xml deleted file mode 100644 index 9f0fe18640..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_merge_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_hash_merge_ex - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_merge_ex - HashTable*target - HashTable*source - copy_ctor_func_tpCopyConstructor - uintsize - merge_checker_func_tpMergeSource - void*pParam - - - ... - - - - - &reftitle.parameters; - - - - target - - - ... - - - - - source - - - ... - - - - - pCopyConstructor - - - ... - - - - - size - - - ... - - - - - pMergeSource - - - ... - - - - - pParam - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_minmax.xml b/internals2/ze1/zendapi/functions/zend_hash_minmax.xml deleted file mode 100644 index f50a004f49..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_minmax.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_hash_minmax - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_minmax - HashTable*ht - compare_func_tcompar - intflag - void**pData - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - compar - - - ... - - - - - flag - - - ... - - - - - pData - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_move_backwards.xml b/internals2/ze1/zendapi/functions/zend_hash_move_backwards.xml deleted file mode 100644 index 226999367f..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_move_backwards.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_hash_move_backwards - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_move_backwards - HashTable*ht - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_move_backwards_ex.xml b/internals2/ze1/zendapi/functions/zend_hash_move_backwards_ex.xml deleted file mode 100644 index 493926cf70..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_move_backwards_ex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_hash_move_backwards_ex - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_move_backwards_ex - HashTable*ht - HashPosition*pos - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - pos - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_move_forward.xml b/internals2/ze1/zendapi/functions/zend_hash_move_forward.xml deleted file mode 100644 index ee6f22e060..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_move_forward.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_hash_move_forward - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_move_forward - HashTable*ht - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_move_forward_ex.xml b/internals2/ze1/zendapi/functions/zend_hash_move_forward_ex.xml deleted file mode 100644 index 666813ac16..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_move_forward_ex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_hash_move_forward_ex - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_move_forward_ex - HashTable*ht - HashPosition*pos - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - pos - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_next_free_element.xml b/internals2/ze1/zendapi/functions/zend_hash_next_free_element.xml deleted file mode 100644 index c2e26057a0..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_next_free_element.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_hash_next_free_element - ... - - - - &reftitle.description; - #include <zend_hash.h> - - ulongzend_hash_next_free_element - HashTable*ht - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_next_index_insert.xml b/internals2/ze1/zendapi/functions/zend_hash_next_index_insert.xml deleted file mode 100644 index 0894ef46d6..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_next_index_insert.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_hash_next_index_insert - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_next_index_insert - HashTable*ht - void*pData - uintnDataSize - void**pDest - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - pData - - - ... - - - - - nDataSize - - - ... - - - - - pDest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_num_elements.xml b/internals2/ze1/zendapi/functions/zend_hash_num_elements.xml deleted file mode 100644 index beb454109f..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_num_elements.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_hash_num_elements - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_num_elements - HashTable*ht - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_quick_add.xml b/internals2/ze1/zendapi/functions/zend_hash_quick_add.xml deleted file mode 100644 index 28e98fca9d..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_quick_add.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_hash_quick_add - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_quick_add - HashTable*ht - char*arKey - uintnKeyLength - ulongh - void*pData - uintnDataSize - void**pDest - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - h - - - ... - - - - - pData - - - ... - - - - - nDataSize - - - ... - - - - - pDest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_quick_exists.xml b/internals2/ze1/zendapi/functions/zend_hash_quick_exists.xml deleted file mode 100644 index 8801ca0256..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_quick_exists.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_hash_quick_exists - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_quick_exists - HashTable*ht - char*arKey - uintnKeyLength - ulongh - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - h - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_quick_find.xml b/internals2/ze1/zendapi/functions/zend_hash_quick_find.xml deleted file mode 100644 index aa5c71d515..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_quick_find.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_hash_quick_find - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_quick_find - HashTable*ht - char*arKey - uintnKeyLength - ulongh - void**pData - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - h - - - ... - - - - - pData - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_quick_update.xml b/internals2/ze1/zendapi/functions/zend_hash_quick_update.xml deleted file mode 100644 index 4cddea93d4..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_quick_update.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_hash_quick_update - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_quick_update - HashTable*ht - char*arKey - uintnKeyLength - ulongh - void*pData - uintnDataSize - void**pDest - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - h - - - ... - - - - - pData - - - ... - - - - - nDataSize - - - ... - - - - - pDest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_rehash.xml b/internals2/ze1/zendapi/functions/zend_hash_rehash.xml deleted file mode 100644 index c89bb5d14d..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_rehash.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_hash_rehash - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_rehash - HashTable*ht - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_reverse_apply.xml b/internals2/ze1/zendapi/functions/zend_hash_reverse_apply.xml deleted file mode 100644 index 53ed044d43..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_reverse_apply.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_hash_reverse_apply - ... - - - - &reftitle.description; - #include <zend_hash.h> - - zend_hash_reverse_apply - HashTable*ht - apply_func_tapply_func - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - apply_func - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_sort.xml b/internals2/ze1/zendapi/functions/zend_hash_sort.xml deleted file mode 100644 index 7ed414c832..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_sort.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_hash_sort - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_sort - HashTable*ht - sort_func_tsort_func - compare_func_tcompare_func - intrenumber - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - sort_func - - - ... - - - - - compare_func - - - ... - - - - - renumber - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_update.xml b/internals2/ze1/zendapi/functions/zend_hash_update.xml deleted file mode 100644 index 2bf2023966..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_update.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_hash_update - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_update - HashTable*ht - char*arKey - uintnKeyLength - void*pData - uintnDataSize - void**pDest - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - pData - - - ... - - - - - nDataSize - - - ... - - - - - pDest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_update_current_key.xml b/internals2/ze1/zendapi/functions/zend_hash_update_current_key.xml deleted file mode 100644 index 2498fdf7ae..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_update_current_key.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_hash_update_current_key - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_update_current_key - HashTable*ht - intkey_type - char*str_index - uintstr_length - ulongnum_index - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - key_type - - - ... - - - - - str_index - - - ... - - - - - str_length - - - ... - - - - - num_index - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_hash_update_current_key_ex.xml b/internals2/ze1/zendapi/functions/zend_hash_update_current_key_ex.xml deleted file mode 100644 index f2865e8f59..0000000000 --- a/internals2/ze1/zendapi/functions/zend_hash_update_current_key_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_hash_update_current_key_ex - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_hash_update_current_key_ex - HashTable*ht - intkey_type - char*str_index - uintstr_length - ulongnum_index - HashPosition*pos - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - key_type - - - ... - - - - - str_index - - - ... - - - - - str_length - - - ... - - - - - num_index - - - ... - - - - - pos - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_highlight.xml b/internals2/ze1/zendapi/functions/zend_highlight.xml deleted file mode 100644 index fde7c4c809..0000000000 --- a/internals2/ze1/zendapi/functions/zend_highlight.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_highlight - ... - - - - &reftitle.description; - #include <zend_highlight.h> - - zend_highlight - zend_syntax_highlighter_ini*syntax_highlighter_ini - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - syntax_highlighter_ini - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_html_putc.xml b/internals2/ze1/zendapi/functions/zend_html_putc.xml deleted file mode 100644 index f3e96216f7..0000000000 --- a/internals2/ze1/zendapi/functions/zend_html_putc.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_html_putc - ... - - - - &reftitle.description; - #include <zend_highlight.h> - - zend_html_putc - charc - - - ... - - - - - &reftitle.parameters; - - - - c - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_html_puts.xml b/internals2/ze1/zendapi/functions/zend_html_puts.xml deleted file mode 100644 index 134e8158f4..0000000000 --- a/internals2/ze1/zendapi/functions/zend_html_puts.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_html_puts - ... - - - - &reftitle.description; - #include <zend_highlight.h> - - zend_html_puts - const char*s - uintlen - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - s - - - ... - - - - - len - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_ini_deactivate.xml b/internals2/ze1/zendapi/functions/zend_ini_deactivate.xml deleted file mode 100644 index 841d9be296..0000000000 --- a/internals2/ze1/zendapi/functions/zend_ini_deactivate.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_ini_deactivate - ... - - - - &reftitle.description; - #include <zend_ini.h> - - intzend_ini_deactivate - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_ini_double.xml b/internals2/ze1/zendapi/functions/zend_ini_double.xml deleted file mode 100644 index 81d6d83ceb..0000000000 --- a/internals2/ze1/zendapi/functions/zend_ini_double.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_ini_double - ... - - - - &reftitle.description; - #include <zend_ini.h> - - doublezend_ini_double - char*name - uintname_length - intorig - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_length - - - ... - - - - - orig - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_ini_global_shutdown.xml b/internals2/ze1/zendapi/functions/zend_ini_global_shutdown.xml deleted file mode 100644 index 6cdf534742..0000000000 --- a/internals2/ze1/zendapi/functions/zend_ini_global_shutdown.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_ini_global_shutdown - ... - - - - &reftitle.description; - #include <zend_ini.h> - - intzend_ini_global_shutdown - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_ini_long.xml b/internals2/ze1/zendapi/functions/zend_ini_long.xml deleted file mode 100644 index 26dd024f45..0000000000 --- a/internals2/ze1/zendapi/functions/zend_ini_long.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_ini_long - ... - - - - &reftitle.description; - #include <zend_ini.h> - - longzend_ini_long - char*name - uintname_length - intorig - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_length - - - ... - - - - - orig - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_ini_refresh_caches.xml b/internals2/ze1/zendapi/functions/zend_ini_refresh_caches.xml deleted file mode 100644 index 5240ee06e0..0000000000 --- a/internals2/ze1/zendapi/functions/zend_ini_refresh_caches.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_ini_refresh_caches - ... - - - - &reftitle.description; - #include <zend_ini.h> - - zend_ini_refresh_caches - intstage - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - stage - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_ini_register_displayer.xml b/internals2/ze1/zendapi/functions/zend_ini_register_displayer.xml deleted file mode 100644 index 13c39d6758..0000000000 --- a/internals2/ze1/zendapi/functions/zend_ini_register_displayer.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_ini_register_displayer - ... - - - - &reftitle.description; - #include <zend_ini.h> - - intzend_ini_register_displayer - char*name - uintname_length - void(*displayer - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_length - - - ... - - - - - (*displayer - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_ini_shutdown.xml b/internals2/ze1/zendapi/functions/zend_ini_shutdown.xml deleted file mode 100644 index 760a7a0526..0000000000 --- a/internals2/ze1/zendapi/functions/zend_ini_shutdown.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_ini_shutdown - ... - - - - &reftitle.description; - #include <zend_ini.h> - - intzend_ini_shutdown - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_ini_sort_entries.xml b/internals2/ze1/zendapi/functions/zend_ini_sort_entries.xml deleted file mode 100644 index 01e05bf38a..0000000000 --- a/internals2/ze1/zendapi/functions/zend_ini_sort_entries.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_ini_sort_entries - ... - - - - &reftitle.description; - #include <zend_ini.h> - - zend_ini_sort_entries - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_ini_startup.xml b/internals2/ze1/zendapi/functions/zend_ini_startup.xml deleted file mode 100644 index 49496b8bb6..0000000000 --- a/internals2/ze1/zendapi/functions/zend_ini_startup.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_ini_startup - ... - - - - &reftitle.description; - #include <zend_ini.h> - - intzend_ini_startup - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_ini_string.xml b/internals2/ze1/zendapi/functions/zend_ini_string.xml deleted file mode 100644 index 202fade10b..0000000000 --- a/internals2/ze1/zendapi/functions/zend_ini_string.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_ini_string - ... - - - - &reftitle.description; - #include <zend_ini.h> - - char*zend_ini_string - char*name - uintname_length - intorig - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_length - - - ... - - - - - orig - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_initialize_class_data.xml b/internals2/ze1/zendapi/functions/zend_initialize_class_data.xml deleted file mode 100644 index 79908f3133..0000000000 --- a/internals2/ze1/zendapi/functions/zend_initialize_class_data.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_initialize_class_data - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_initialize_class_data - zend_class_entry*ce - zend_boolnullify_handlers - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - nullify_handlers - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_is_auto_global.xml b/internals2/ze1/zendapi/functions/zend_is_auto_global.xml deleted file mode 100644 index c5c41dfa0d..0000000000 --- a/internals2/ze1/zendapi/functions/zend_is_auto_global.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_is_auto_global - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_boolzend_is_auto_global - char*name - uintname_len - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_len - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_is_callable.xml b/internals2/ze1/zendapi/functions/zend_is_callable.xml deleted file mode 100644 index fbc9392211..0000000000 --- a/internals2/ze1/zendapi/functions/zend_is_callable.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_is_callable - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_boolzend_is_callable - zval*callable - uintcheck_flags - zval*callable_name - - - ... - - - - - &reftitle.parameters; - - - - callable - - - ... - - - - - check_flags - - - ... - - - - - callable_name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_is_callable_ex.xml b/internals2/ze1/zendapi/functions/zend_is_callable_ex.xml deleted file mode 100644 index 0f186f8c47..0000000000 --- a/internals2/ze1/zendapi/functions/zend_is_callable_ex.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_is_callable_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_boolzend_is_callable_ex - zval*callable - uintcheck_flags - zval*callable_name - zend_class_entry**ce_ptr - zend_function**fptr_ptr - zval***zobj_ptr_ptr - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - callable - - - ... - - - - - check_flags - - - ... - - - - - callable_name - - - ... - - - - - ce_ptr - - - ... - - - - - fptr_ptr - - - ... - - - - - zobj_ptr_ptr - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_is_compiling.xml b/internals2/ze1/zendapi/functions/zend_is_compiling.xml deleted file mode 100644 index 969e641216..0000000000 --- a/internals2/ze1/zendapi/functions/zend_is_compiling.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_is_compiling - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_boolzend_is_compiling - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_is_executing.xml b/internals2/ze1/zendapi/functions/zend_is_executing.xml deleted file mode 100644 index e2beeaf6fc..0000000000 --- a/internals2/ze1/zendapi/functions/zend_is_executing.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_is_executing - ... - - - - &reftitle.description; - #include <zend_execute.h> - - zend_boolzend_is_executing - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_is_true.xml b/internals2/ze1/zendapi/functions/zend_is_true.xml deleted file mode 100644 index 531ff3ec26..0000000000 --- a/internals2/ze1/zendapi/functions/zend_is_true.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_is_true - ... - - - - &reftitle.description; - #include <zend_execute.h> - - intzend_is_true - zval*op - - - ... - - - - - &reftitle.parameters; - - - - op - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_is_valid_identifier.xml b/internals2/ze1/zendapi/functions/zend_is_valid_identifier.xml deleted file mode 100644 index e71e025b14..0000000000 --- a/internals2/ze1/zendapi/functions/zend_is_valid_identifier.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_is_valid_identifier - ... - - - - &reftitle.description; - #include <zend_unicode.h> - - intzend_is_valid_identifier - UChar*ident - int32_tident_len - - - ... - - - - - &reftitle.parameters; - - - - ident - - - ... - - - - - ident_len - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_list_addref.xml b/internals2/ze1/zendapi/functions/zend_list_addref.xml deleted file mode 100644 index fe13d96bd2..0000000000 --- a/internals2/ze1/zendapi/functions/zend_list_addref.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_list_addref - ... - - - - &reftitle.description; - #include <zend_list.h> - - intzend_list_addref - intid - - - ... - - - - - &reftitle.parameters; - - - - id - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_list_delete.xml b/internals2/ze1/zendapi/functions/zend_list_delete.xml deleted file mode 100644 index ee986b9e52..0000000000 --- a/internals2/ze1/zendapi/functions/zend_list_delete.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_list_delete - ... - - - - &reftitle.description; - #include <zend_list.h> - - intzend_list_delete - intid - - - ... - - - - - &reftitle.parameters; - - - - id - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_list_find.xml b/internals2/ze1/zendapi/functions/zend_list_find.xml deleted file mode 100644 index f5742f18aa..0000000000 --- a/internals2/ze1/zendapi/functions/zend_list_find.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_list_find - ... - - - - &reftitle.description; - #include <zend_list.h> - - void*zend_list_find - intid - int*type - - - ... - - - - - &reftitle.parameters; - - - - id - - - ... - - - - - type - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_list_insert.xml b/internals2/ze1/zendapi/functions/zend_list_insert.xml deleted file mode 100644 index 1f1420a99b..0000000000 --- a/internals2/ze1/zendapi/functions/zend_list_insert.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_list_insert - ... - - - - &reftitle.description; - #include <zend_list.h> - - intzend_list_insert - void*ptr - inttype - - - ... - - - - - &reftitle.parameters; - - - - ptr - - - ... - - - - - type - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_lookup_class.xml b/internals2/ze1/zendapi/functions/zend_lookup_class.xml deleted file mode 100644 index 1648bcf972..0000000000 --- a/internals2/ze1/zendapi/functions/zend_lookup_class.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_lookup_class - ... - - - - &reftitle.description; - #include <zend_execute.h> - - intzend_lookup_class - char*name - intname_length - zend_class_entry***ce - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_length - - - ... - - - - - ce - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_make_callable.xml b/internals2/ze1/zendapi/functions/zend_make_callable.xml deleted file mode 100644 index fa84c20a7a..0000000000 --- a/internals2/ze1/zendapi/functions/zend_make_callable.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_make_callable - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_boolzend_make_callable - zval*callable - zval*callable_name - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - callable - - - ... - - - - - callable_name - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_make_compiled_string_description.xml b/internals2/ze1/zendapi/functions/zend_make_compiled_string_description.xml deleted file mode 100644 index 1f1b60b4a5..0000000000 --- a/internals2/ze1/zendapi/functions/zend_make_compiled_string_description.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_make_compiled_string_description - ... - - - - &reftitle.description; - #include <zend_compile.h> - - char*zend_make_compiled_string_description - char*name - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_make_printable_zval.xml b/internals2/ze1/zendapi/functions/zend_make_printable_zval.xml deleted file mode 100644 index 5c43f26dd6..0000000000 --- a/internals2/ze1/zendapi/functions/zend_make_printable_zval.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_make_printable_zval - ... - - - - &reftitle.description; - #include <zend.h> - - zend_make_printable_zval - zval*expr - zval*expr_copy - int*use_copy - - - ... - - - - - &reftitle.parameters; - - - - expr - - - ... - - - - - expr_copy - - - ... - - - - - use_copy - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_make_string_zval.xml b/internals2/ze1/zendapi/functions/zend_make_string_zval.xml deleted file mode 100644 index c0f217ecdb..0000000000 --- a/internals2/ze1/zendapi/functions/zend_make_string_zval.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_make_string_zval - ... - - - - &reftitle.description; - #include <zend.h> - - zend_make_string_zval - zval*expr - zval*expr_copy - int*use_copy - - - ... - - - - - &reftitle.parameters; - - - - expr - - - ... - - - - - expr_copy - - - ... - - - - - use_copy - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_make_unicode_zval.xml b/internals2/ze1/zendapi/functions/zend_make_unicode_zval.xml deleted file mode 100644 index 84fec8a6d7..0000000000 --- a/internals2/ze1/zendapi/functions/zend_make_unicode_zval.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_make_unicode_zval - ... - - - - &reftitle.description; - #include <zend.h> - - zend_make_unicode_zval - zval*expr - zval*expr_copy - int*use_copy - - - ... - - - - - &reftitle.parameters; - - - - expr - - - ... - - - - - expr_copy - - - ... - - - - - use_copy - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_mangle_property_name.xml b/internals2/ze1/zendapi/functions/zend_mangle_property_name.xml deleted file mode 100644 index 4c8d3a5d77..0000000000 --- a/internals2/ze1/zendapi/functions/zend_mangle_property_name.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_mangle_property_name - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_mangle_property_name - char**dest - int*dest_length - char*src1 - intsrc1_length - char*src2 - intsrc2_length - intinternal - - - ... - - - - - &reftitle.parameters; - - - - dest - - - ... - - - - - dest_length - - - ... - - - - - src1 - - - ... - - - - - src1_length - - - ... - - - - - src2 - - - ... - - - - - src2_length - - - ... - - - - - internal - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_merge_properties.xml b/internals2/ze1/zendapi/functions/zend_merge_properties.xml deleted file mode 100644 index b5ee195005..0000000000 --- a/internals2/ze1/zendapi/functions/zend_merge_properties.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_merge_properties - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_merge_properties - zval*obj - HashTable*properties - intdestroy_ht - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - obj - - - ... - - - - - properties - - - ... - - - - - destroy_ht - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_message_dispatcher.xml b/internals2/ze1/zendapi/functions/zend_message_dispatcher.xml deleted file mode 100644 index a78d425904..0000000000 --- a/internals2/ze1/zendapi/functions/zend_message_dispatcher.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_message_dispatcher - ... - - - - &reftitle.description; - #include <zend.h> - - zend_message_dispatcher - longmessage - void*data - - - ... - - - - - &reftitle.parameters; - - - - message - - - ... - - - - - data - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_normalize_identifier.xml b/internals2/ze1/zendapi/functions/zend_normalize_identifier.xml deleted file mode 100644 index 93e57d2846..0000000000 --- a/internals2/ze1/zendapi/functions/zend_normalize_identifier.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_normalize_identifier - ... - - - - &reftitle.description; - #include <zend_unicode.h> - - intzend_normalize_identifier - UChar**dest - int32_t*dest_len - UChar*ident - int32_tident_len - zend_boolfold_case - - - ... - - - - - &reftitle.parameters; - - - - dest - - - ... - - - - - dest_len - - - ... - - - - - ident - - - ... - - - - - ident_len - - - ... - - - - - fold_case - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_object_create_proxy.xml b/internals2/ze1/zendapi/functions/zend_object_create_proxy.xml deleted file mode 100644 index 7f25a49071..0000000000 --- a/internals2/ze1/zendapi/functions/zend_object_create_proxy.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_object_create_proxy - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - zval*zend_object_create_proxy - zval*object - zval*member - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - object - - - ... - - - - - member - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_object_store_ctor_failed.xml b/internals2/ze1/zendapi/functions/zend_object_store_ctor_failed.xml deleted file mode 100644 index 088051b76d..0000000000 --- a/internals2/ze1/zendapi/functions/zend_object_store_ctor_failed.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_object_store_ctor_failed - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - zend_object_store_ctor_failed - zval*zobject - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - zobject - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_object_store_get_object.xml b/internals2/ze1/zendapi/functions/zend_object_store_get_object.xml deleted file mode 100644 index 3227165c6a..0000000000 --- a/internals2/ze1/zendapi/functions/zend_object_store_get_object.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_object_store_get_object - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - void*zend_object_store_get_object - zval*object - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - object - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_object_store_set_object.xml b/internals2/ze1/zendapi/functions/zend_object_store_set_object.xml deleted file mode 100644 index 6fb8e5d7c2..0000000000 --- a/internals2/ze1/zendapi/functions/zend_object_store_set_object.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_object_store_set_object - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - zend_object_store_set_object - zval*zobject - void*object - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - zobject - - - ... - - - - - object - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_clone_members.xml b/internals2/ze1/zendapi/functions/zend_objects_clone_members.xml deleted file mode 100644 index 1382bcf8f0..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_clone_members.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_objects_clone_members - ... - - - - &reftitle.description; - #include <zend_objects.h> - - zend_objects_clone_members - zend_object*new_object - zend_object_valuenew_obj_val - zend_object*old_object - zend_object_handlehandle - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - new_object - - - ... - - - - - new_obj_val - - - ... - - - - - old_object - - - ... - - - - - handle - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_clone_obj.xml b/internals2/ze1/zendapi/functions/zend_objects_clone_obj.xml deleted file mode 100644 index b6fece2b1e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_clone_obj.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_objects_clone_obj - ... - - - - &reftitle.description; - #include <zend_objects.h> - - zend_object_valuezend_objects_clone_obj - zval*object - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - object - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_destroy_object.xml b/internals2/ze1/zendapi/functions/zend_objects_destroy_object.xml deleted file mode 100644 index 2dff387f84..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_destroy_object.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_objects_destroy_object - ... - - - - &reftitle.description; - #include <zend_objects.h> - - zend_objects_destroy_object - zend_object*object - zend_object_handlehandle - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - object - - - ... - - - - - handle - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_free_object_storage.xml b/internals2/ze1/zendapi/functions/zend_objects_free_object_storage.xml deleted file mode 100644 index 9704b51b73..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_free_object_storage.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_objects_free_object_storage - ... - - - - &reftitle.description; - #include <zend_objects.h> - - zend_objects_free_object_storage - zend_object*object - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - object - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_get_address.xml b/internals2/ze1/zendapi/functions/zend_objects_get_address.xml deleted file mode 100644 index 0a63d8be9f..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_get_address.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_objects_get_address - ... - - - - &reftitle.description; - #include <zend_objects.h> - - zend_object*zend_objects_get_address - zval*object - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - object - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_new.xml b/internals2/ze1/zendapi/functions/zend_objects_new.xml deleted file mode 100644 index d1beac55c9..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_new.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_objects_new - ... - - - - &reftitle.description; - #include <zend_objects.h> - - zend_object_valuezend_objects_new - zend_object**object - zend_class_entry*class_type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - object - - - ... - - - - - class_type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_store_add_ref.xml b/internals2/ze1/zendapi/functions/zend_objects_store_add_ref.xml deleted file mode 100644 index dcb6f625e8..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_store_add_ref.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_objects_store_add_ref - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - zend_objects_store_add_ref - zval*object - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - object - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_store_call_destructors.xml b/internals2/ze1/zendapi/functions/zend_objects_store_call_destructors.xml deleted file mode 100644 index e777a98ccc..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_store_call_destructors.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_objects_store_call_destructors - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - zend_objects_store_call_destructors - zend_objects_store*objects - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - objects - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_store_clone_obj.xml b/internals2/ze1/zendapi/functions/zend_objects_store_clone_obj.xml deleted file mode 100644 index 16b5b99ec0..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_store_clone_obj.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_objects_store_clone_obj - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - zend_object_valuezend_objects_store_clone_obj - zval*object - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - object - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_store_del_ref.xml b/internals2/ze1/zendapi/functions/zend_objects_store_del_ref.xml deleted file mode 100644 index 27c3bfe2d8..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_store_del_ref.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_objects_store_del_ref - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - zend_objects_store_del_ref - zval*object - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - object - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_store_destroy.xml b/internals2/ze1/zendapi/functions/zend_objects_store_destroy.xml deleted file mode 100644 index a9f2c978d3..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_store_destroy.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_objects_store_destroy - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - zend_objects_store_destroy - zend_objects_store*objects - - - ... - - - - - &reftitle.parameters; - - - - objects - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_store_free_object_storage.xml b/internals2/ze1/zendapi/functions/zend_objects_store_free_object_storage.xml deleted file mode 100644 index 5a49c9f7ad..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_store_free_object_storage.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_objects_store_free_object_storage - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - zend_objects_store_free_object_storage - zend_objects_store*objects - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - objects - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_store_init.xml b/internals2/ze1/zendapi/functions/zend_objects_store_init.xml deleted file mode 100644 index c06caed131..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_store_init.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_objects_store_init - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - zend_objects_store_init - zend_objects_store*objects - zend_uintinit_size - - - ... - - - - - &reftitle.parameters; - - - - objects - - - ... - - - - - init_size - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_store_mark_destructed.xml b/internals2/ze1/zendapi/functions/zend_objects_store_mark_destructed.xml deleted file mode 100644 index edfb62335a..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_store_mark_destructed.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_objects_store_mark_destructed - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - zend_objects_store_mark_destructed - zend_objects_store*objects - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - objects - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_objects_store_put.xml b/internals2/ze1/zendapi/functions/zend_objects_store_put.xml deleted file mode 100644 index 7f0b71c89c..0000000000 --- a/internals2/ze1/zendapi/functions/zend_objects_store_put.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_objects_store_put - ... - - - - &reftitle.description; - #include <zend_objects_API.h> - - zend_object_handlezend_objects_store_put - void*object - zend_objects_store_dtor_tdtor - zend_objects_free_object_storage_tstorage - zend_objects_store_clone_tclone - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - object - - - ... - - - - - dtor - - - ... - - - - - storage - - - ... - - - - - clone - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_output_debug_string.xml b/internals2/ze1/zendapi/functions/zend_output_debug_string.xml deleted file mode 100644 index cef149213f..0000000000 --- a/internals2/ze1/zendapi/functions/zend_output_debug_string.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_output_debug_string - ... - - - - &reftitle.description; - #include <zend.h> - - zend_output_debug_string - zend_booltrigger_break - char*format - ... - - - ... - - - - - &reftitle.parameters; - - - - trigger_break - - - ... - - - - - format - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_parse_ini_file.xml b/internals2/ze1/zendapi/functions/zend_parse_ini_file.xml deleted file mode 100644 index ee86c8e46e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_parse_ini_file.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_parse_ini_file - ... - - - - &reftitle.description; - #include <zend_ini.h> - - intzend_parse_ini_file - zend_file_handle*fh - zend_boolunbuffered_errors - zend_ini_parser_cb_tini_parser_cb - void*arg - - - ... - - - - - &reftitle.parameters; - - - - fh - - - ... - - - - - unbuffered_errors - - - ... - - - - - ini_parser_cb - - - ... - - - - - arg - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_parse_method_parameters.xml b/internals2/ze1/zendapi/functions/zend_parse_method_parameters.xml deleted file mode 100644 index 9b081e13fb..0000000000 --- a/internals2/ze1/zendapi/functions/zend_parse_method_parameters.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_parse_method_parameters - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_parse_method_parameters - intnum_args - magicTSRMLS_DC - zval*this_ptr - char*type_spec - ... - - - ... - - - - - &reftitle.parameters; - - - - num_args - - - ... - - - - - TSRMLS_DC - - - ... - - - - - this_ptr - - - ... - - - - - type_spec - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_parse_method_parameters_ex.xml b/internals2/ze1/zendapi/functions/zend_parse_method_parameters_ex.xml deleted file mode 100644 index 0b55b80862..0000000000 --- a/internals2/ze1/zendapi/functions/zend_parse_method_parameters_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_parse_method_parameters_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_parse_method_parameters_ex - intflags - intnum_args - magicTSRMLS_DC - zval*this_ptr - char*type_spec - ... - - - ... - - - - - &reftitle.parameters; - - - - flags - - - ... - - - - - num_args - - - ... - - - - - TSRMLS_DC - - - ... - - - - - this_ptr - - - ... - - - - - type_spec - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_parse_parameters.xml b/internals2/ze1/zendapi/functions/zend_parse_parameters.xml deleted file mode 100644 index 80f810ad73..0000000000 --- a/internals2/ze1/zendapi/functions/zend_parse_parameters.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_parse_parameters - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_parse_parameters - intnum_args - magicTSRMLS_DC - char*type_spec - ... - - - ... - - - - - &reftitle.parameters; - - - - num_args - - - ... - - - - - TSRMLS_DC - - - ... - - - - - type_spec - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_parse_parameters_ex.xml b/internals2/ze1/zendapi/functions/zend_parse_parameters_ex.xml deleted file mode 100644 index 23dba77ac0..0000000000 --- a/internals2/ze1/zendapi/functions/zend_parse_parameters_ex.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_parse_parameters_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_parse_parameters_ex - intflags - intnum_args - magicTSRMLS_DC - char*type_spec - ... - - - ... - - - - - &reftitle.parameters; - - - - flags - - - ... - - - - - num_args - - - ... - - - - - TSRMLS_DC - - - ... - - - - - type_spec - - - ... - - - - - ... - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_prepare_scanner_converters.xml b/internals2/ze1/zendapi/functions/zend_prepare_scanner_converters.xml deleted file mode 100644 index 92eb13b12f..0000000000 --- a/internals2/ze1/zendapi/functions/zend_prepare_scanner_converters.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_prepare_scanner_converters - ... - - - - &reftitle.description; - #include <zend_compile.h> - - intzend_prepare_scanner_converters - const char*onetime_encoding - intrun_time - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - onetime_encoding - - - ... - - - - - run_time - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_print_flat_zval_r.xml b/internals2/ze1/zendapi/functions/zend_print_flat_zval_r.xml deleted file mode 100644 index a81501e9f2..0000000000 --- a/internals2/ze1/zendapi/functions/zend_print_flat_zval_r.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_print_flat_zval_r - ... - - - - &reftitle.description; - #include <zend.h> - - zend_print_flat_zval_r - zval*expr - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - expr - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_print_variable.xml b/internals2/ze1/zendapi/functions/zend_print_variable.xml deleted file mode 100644 index 4993073862..0000000000 --- a/internals2/ze1/zendapi/functions/zend_print_variable.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_print_variable - ... - - - - &reftitle.description; - #include <zend_variables.h> - - intzend_print_variable - zval*var - - - ... - - - - - &reftitle.parameters; - - - - var - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_print_zval.xml b/internals2/ze1/zendapi/functions/zend_print_zval.xml deleted file mode 100644 index fac7f619f8..0000000000 --- a/internals2/ze1/zendapi/functions/zend_print_zval.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_print_zval - ... - - - - &reftitle.description; - #include <zend.h> - - intzend_print_zval - zval*expr - intindent - - - ... - - - - - &reftitle.parameters; - - - - expr - - - ... - - - - - indent - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_print_zval_ex.xml b/internals2/ze1/zendapi/functions/zend_print_zval_ex.xml deleted file mode 100644 index eb1e3716d7..0000000000 --- a/internals2/ze1/zendapi/functions/zend_print_zval_ex.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_print_zval_ex - ... - - - - &reftitle.description; - #include <zend.h> - - intzend_print_zval_ex - zend_write_func_twrite_func - zval*expr - intindent - - - ... - - - - - &reftitle.parameters; - - - - write_func - - - ... - - - - - expr - - - ... - - - - - indent - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_print_zval_r.xml b/internals2/ze1/zendapi/functions/zend_print_zval_r.xml deleted file mode 100644 index 4578cd5f9a..0000000000 --- a/internals2/ze1/zendapi/functions/zend_print_zval_r.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_print_zval_r - ... - - - - &reftitle.description; - #include <zend.h> - - zend_print_zval_r - zval*expr - intindent - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - expr - - - ... - - - - - indent - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_print_zval_r_ex.xml b/internals2/ze1/zendapi/functions/zend_print_zval_r_ex.xml deleted file mode 100644 index d25a5e7590..0000000000 --- a/internals2/ze1/zendapi/functions/zend_print_zval_r_ex.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_print_zval_r_ex - ... - - - - &reftitle.description; - #include <zend.h> - - zend_print_zval_r_ex - zend_write_func_twrite_func - zval*expr - intindent - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - write_func - - - ... - - - - - expr - - - ... - - - - - indent - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_qsort.xml b/internals2/ze1/zendapi/functions/zend_qsort.xml deleted file mode 100644 index 0d98e16dd4..0000000000 --- a/internals2/ze1/zendapi/functions/zend_qsort.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_qsort - ... - - - - &reftitle.description; - #include <zend_qsort.h> - - zend_qsort - void*base - size_tnmemb - size_tsiz - compare_func_tcompare - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - base - - - ... - - - - - nmemb - - - ... - - - - - siz - - - ... - - - - - compare - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_read_property.xml b/internals2/ze1/zendapi/functions/zend_read_property.xml deleted file mode 100644 index bfebe611af..0000000000 --- a/internals2/ze1/zendapi/functions/zend_read_property.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_read_property - ... - - - - &reftitle.description; - #include <zend_API.h> - - zval*zend_read_property - zend_class_entry*scope - zval*object - char*name - intname_length - zend_boolsilent - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - silent - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_read_static_property.xml b/internals2/ze1/zendapi/functions/zend_read_static_property.xml deleted file mode 100644 index 4e4fb1afc8..0000000000 --- a/internals2/ze1/zendapi/functions/zend_read_static_property.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_read_static_property - ... - - - - &reftitle.description; - #include <zend_API.h> - - zval*zend_read_static_property - zend_class_entry*scope - char*name - intname_length - zend_boolsilent - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - silent - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_auto_global.xml b/internals2/ze1/zendapi/functions/zend_register_auto_global.xml deleted file mode 100644 index 0ce1957168..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_auto_global.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_register_auto_global - ... - - - - &reftitle.description; - #include <zend_compile.h> - - intzend_register_auto_global - char*name - uintname_len - zend_auto_global_callbackauto_global_callback - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_len - - - ... - - - - - auto_global_callback - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_constant.xml b/internals2/ze1/zendapi/functions/zend_register_constant.xml deleted file mode 100644 index cdfbd8caf8..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_constant.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_register_constant - ... - - - - &reftitle.description; - #include <zend_constants.h> - - intzend_register_constant - zend_constant*c - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - c - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_default_classes.xml b/internals2/ze1/zendapi/functions/zend_register_default_classes.xml deleted file mode 100644 index f40908963d..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_default_classes.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_register_default_classes - ... - - - - &reftitle.description; - #include <zend_exceptions.h> - - zend_register_default_classes - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_double_constant.xml b/internals2/ze1/zendapi/functions/zend_register_double_constant.xml deleted file mode 100644 index b65478db4d..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_double_constant.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_register_double_constant - ... - - - - &reftitle.description; - #include <zend_constants.h> - - zend_register_double_constant - char*name - uintname_len - doubledval - intflags - intmodule_number - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_len - - - ... - - - - - dval - - - ... - - - - - flags - - - ... - - - - - module_number - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_functions.xml b/internals2/ze1/zendapi/functions/zend_register_functions.xml deleted file mode 100644 index d7c9c0ba59..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_functions.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_register_functions - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_register_functions - zend_class_entry*scope - zend_function_entry*functions - HashTable*function_table - inttype - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - functions - - - ... - - - - - function_table - - - ... - - - - - type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_ini_entries.xml b/internals2/ze1/zendapi/functions/zend_register_ini_entries.xml deleted file mode 100644 index 6c03bfe118..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_ini_entries.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_register_ini_entries - ... - - - - &reftitle.description; - #include <zend_ini.h> - - intzend_register_ini_entries - zend_ini_entry*ini_entry - intmodule_number - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ini_entry - - - ... - - - - - module_number - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_interfaces.xml b/internals2/ze1/zendapi/functions/zend_register_interfaces.xml deleted file mode 100644 index 267678686b..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_interfaces.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_register_interfaces - ... - - - - &reftitle.description; - #include <zend_interfaces.h> - - zend_register_interfaces - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_internal_class.xml b/internals2/ze1/zendapi/functions/zend_register_internal_class.xml deleted file mode 100644 index 9c4b8c4328..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_internal_class.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_register_internal_class - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_class_entry*zend_register_internal_class - zend_class_entry*class_entry - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - class_entry - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_internal_class_ex.xml b/internals2/ze1/zendapi/functions/zend_register_internal_class_ex.xml deleted file mode 100644 index f669dd8fd5..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_internal_class_ex.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_register_internal_class_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_class_entry*zend_register_internal_class_ex - zend_class_entry*class_entry - zend_class_entry*parent_ce - char*parent_name - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - class_entry - - - ... - - - - - parent_ce - - - ... - - - - - parent_name - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_internal_interface.xml b/internals2/ze1/zendapi/functions/zend_register_internal_interface.xml deleted file mode 100644 index 04406d1e60..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_internal_interface.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_register_internal_interface - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_class_entry*zend_register_internal_interface - zend_class_entry*orig_class_entry - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - orig_class_entry - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_internal_module.xml b/internals2/ze1/zendapi/functions/zend_register_internal_module.xml deleted file mode 100644 index dfeb46f080..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_internal_module.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_register_internal_module - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_module_entry*zend_register_internal_module - zend_module_entry*module_entry - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - module_entry - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_list_destructors.xml b/internals2/ze1/zendapi/functions/zend_register_list_destructors.xml deleted file mode 100644 index 7476d31db1..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_list_destructors.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_register_list_destructors - ... - - - - &reftitle.description; - #include <zend_list.h> - - intzend_register_list_destructors - void (*ld)(void*) - void (*pld)(void*) - intmodule_number - - - ... - - - - - &reftitle.parameters; - - - - ) - - - ... - - - - - ) - - - ... - - - - - module_number - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_list_destructors_ex.xml b/internals2/ze1/zendapi/functions/zend_register_list_destructors_ex.xml deleted file mode 100644 index 9d81137334..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_list_destructors_ex.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_register_list_destructors_ex - ... - - - - &reftitle.description; - #include <zend_list.h> - - intzend_register_list_destructors_ex - rsrc_dtor_func_tld - rsrc_dtor_func_tpld - char*type_name - intmodule_number - - - ... - - - - - &reftitle.parameters; - - - - ld - - - ... - - - - - pld - - - ... - - - - - type_name - - - ... - - - - - module_number - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_long_constant.xml b/internals2/ze1/zendapi/functions/zend_register_long_constant.xml deleted file mode 100644 index 5fca247845..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_long_constant.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_register_long_constant - ... - - - - &reftitle.description; - #include <zend_constants.h> - - zend_register_long_constant - char*name - uintname_len - longlval - intflags - intmodule_number - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_len - - - ... - - - - - lval - - - ... - - - - - flags - - - ... - - - - - module_number - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_module.xml b/internals2/ze1/zendapi/functions/zend_register_module.xml deleted file mode 100644 index e2e7f40540..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_module.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - zend_register_module - ... - - - - &reftitle.description; - - intzend_register_module - zend_module_entry*module_entry - - - ... - - - - - &reftitle.parameters; - - - - - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_module_ex.xml b/internals2/ze1/zendapi/functions/zend_register_module_ex.xml deleted file mode 100644 index a977f60478..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_module_ex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_register_module_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_module_entry*zend_register_module_ex - zend_module_entry*module - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_resource.xml b/internals2/ze1/zendapi/functions/zend_register_resource.xml deleted file mode 100644 index b00ee1703e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_resource.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_register_resource - ... - - - - &reftitle.description; - #include <zend_list.h> - - intzend_register_resource - zval*rsrc_result - void*rsrc_pointer - intrsrc_type - - - ... - - - - - &reftitle.parameters; - - - - rsrc_result - - - ... - - - - - rsrc_pointer - - - ... - - - - - rsrc_type - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_string_constant.xml b/internals2/ze1/zendapi/functions/zend_register_string_constant.xml deleted file mode 100644 index 70043e1469..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_string_constant.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_register_string_constant - ... - - - - &reftitle.description; - #include <zend_constants.h> - - zend_register_string_constant - char*name - uintname_len - char*strval - intflags - intmodule_number - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_len - - - ... - - - - - strval - - - ... - - - - - flags - - - ... - - - - - module_number - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_register_stringl_constant.xml b/internals2/ze1/zendapi/functions/zend_register_stringl_constant.xml deleted file mode 100644 index 6129161a6c..0000000000 --- a/internals2/ze1/zendapi/functions/zend_register_stringl_constant.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_register_stringl_constant - ... - - - - &reftitle.description; - #include <zend_constants.h> - - zend_register_stringl_constant - char*name - uintname_len - char*strval - uintstrlen - intflags - intmodule_number - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_len - - - ... - - - - - strval - - - ... - - - - - strlen - - - ... - - - - - flags - - - ... - - - - - module_number - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_reset_all_cv.xml b/internals2/ze1/zendapi/functions/zend_reset_all_cv.xml deleted file mode 100644 index 9863cad360..0000000000 --- a/internals2/ze1/zendapi/functions/zend_reset_all_cv.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_reset_all_cv - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_reset_all_cv - HashTable*symbol_table - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - symbol_table - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_reset_locale_deps.xml b/internals2/ze1/zendapi/functions/zend_reset_locale_deps.xml deleted file mode 100644 index 12607af20b..0000000000 --- a/internals2/ze1/zendapi/functions/zend_reset_locale_deps.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_reset_locale_deps - ... - - - - &reftitle.description; - #include <zend.h> - - zend_reset_locale_deps - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_restore_compiled_filename.xml b/internals2/ze1/zendapi/functions/zend_restore_compiled_filename.xml deleted file mode 100644 index 13e0d55ae4..0000000000 --- a/internals2/ze1/zendapi/functions/zend_restore_compiled_filename.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_restore_compiled_filename - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_restore_compiled_filename - char*original_compiled_filename - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - original_compiled_filename - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_restore_compiled_script_encoding.xml b/internals2/ze1/zendapi/functions/zend_restore_compiled_script_encoding.xml deleted file mode 100644 index 69d15ab5bf..0000000000 --- a/internals2/ze1/zendapi/functions/zend_restore_compiled_script_encoding.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_restore_compiled_script_encoding - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_restore_compiled_script_encoding - char*original_script_enc - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - original_script_enc - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_restore_ini_entry.xml b/internals2/ze1/zendapi/functions/zend_restore_ini_entry.xml deleted file mode 100644 index c3c951462c..0000000000 --- a/internals2/ze1/zendapi/functions/zend_restore_ini_entry.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_restore_ini_entry - ... - - - - &reftitle.description; - #include <zend_ini.h> - - intzend_restore_ini_entry - char*name - uintname_length - intstage - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_length - - - ... - - - - - stage - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_rsrc_list_get_rsrc_type.xml b/internals2/ze1/zendapi/functions/zend_rsrc_list_get_rsrc_type.xml deleted file mode 100644 index 85a2820122..0000000000 --- a/internals2/ze1/zendapi/functions/zend_rsrc_list_get_rsrc_type.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_rsrc_list_get_rsrc_type - ... - - - - &reftitle.description; - #include <zend_list.h> - - char*zend_rsrc_list_get_rsrc_type - intresource - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - resource - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_set_compiled_filename.xml b/internals2/ze1/zendapi/functions/zend_set_compiled_filename.xml deleted file mode 100644 index 89e76fe60a..0000000000 --- a/internals2/ze1/zendapi/functions/zend_set_compiled_filename.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_set_compiled_filename - ... - - - - &reftitle.description; - #include <zend_compile.h> - - char*zend_set_compiled_filename - char*new_compiled_filename - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - new_compiled_filename - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_set_compiled_script_encoding.xml b/internals2/ze1/zendapi/functions/zend_set_compiled_script_encoding.xml deleted file mode 100644 index 235852970e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_set_compiled_script_encoding.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_set_compiled_script_encoding - ... - - - - &reftitle.description; - #include <zend_compile.h> - - char*zend_set_compiled_script_encoding - char*new_script_enc - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - new_script_enc - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_set_memory_limit.xml b/internals2/ze1/zendapi/functions/zend_set_memory_limit.xml deleted file mode 100644 index 3f1c6d7f0a..0000000000 --- a/internals2/ze1/zendapi/functions/zend_set_memory_limit.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_set_memory_limit - ... - - - - &reftitle.description; - #include <zend_alloc.h> - - intzend_set_memory_limit - unsigned intmemory_limit - - - ... - - - - - &reftitle.parameters; - - - - memory_limit - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_set_timeout.xml b/internals2/ze1/zendapi/functions/zend_set_timeout.xml deleted file mode 100644 index c9c21e09b6..0000000000 --- a/internals2/ze1/zendapi/functions/zend_set_timeout.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_set_timeout - ... - - - - &reftitle.description; - #include <zend_execute.h> - - zend_set_timeout - longseconds - - - ... - - - - - &reftitle.parameters; - - - - seconds - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_set_user_opcode_handler.xml b/internals2/ze1/zendapi/functions/zend_set_user_opcode_handler.xml deleted file mode 100644 index 5f8127b3cf..0000000000 --- a/internals2/ze1/zendapi/functions/zend_set_user_opcode_handler.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_set_user_opcode_handler - ... - - - - &reftitle.description; - #include <zend_execute.h> - - intzend_set_user_opcode_handler - zend_ucharopcode - opcode_handler_thandler - - - ... - - - - - &reftitle.parameters; - - - - opcode - - - ... - - - - - handler - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_startup_module.xml b/internals2/ze1/zendapi/functions/zend_startup_module.xml deleted file mode 100644 index fd277af36a..0000000000 --- a/internals2/ze1/zendapi/functions/zend_startup_module.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_startup_module - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_startup_module - zend_module_entry*module_entry - - - ... - - - - - &reftitle.parameters; - - - - module_entry - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_startup_module_ex.xml b/internals2/ze1/zendapi/functions/zend_startup_module_ex.xml deleted file mode 100644 index 4966c8777f..0000000000 --- a/internals2/ze1/zendapi/functions/zend_startup_module_ex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_startup_module_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_startup_module_ex - zend_module_entry*module - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_startup_modules.xml b/internals2/ze1/zendapi/functions/zend_startup_modules.xml deleted file mode 100644 index 08e2ff00e6..0000000000 --- a/internals2/ze1/zendapi/functions/zend_startup_modules.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_startup_modules - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_startup_modules - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_std_call_user_call.xml b/internals2/ze1/zendapi/functions/zend_std_call_user_call.xml deleted file mode 100644 index 0296dd4057..0000000000 --- a/internals2/ze1/zendapi/functions/zend_std_call_user_call.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_std_call_user_call - ... - - - - &reftitle.description; - #include <zend_object_handlers.h> - - zend_std_call_user_call - INTERNAL_FUNCTION_PARAMETERS - - - ... - - - - - &reftitle.parameters; - - - - INTERNAL_FUNCTION_PARAMETERS - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_std_cast_object_tostring.xml b/internals2/ze1/zendapi/functions/zend_std_cast_object_tostring.xml deleted file mode 100644 index 20f75d3b51..0000000000 --- a/internals2/ze1/zendapi/functions/zend_std_cast_object_tostring.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_std_cast_object_tostring - ... - - - - &reftitle.description; - #include <zend_object_handlers.h> - - intzend_std_cast_object_tostring - zval*readobj - zval*writeobj - inttype - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - readobj - - - ... - - - - - writeobj - - - ... - - - - - type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_std_get_static_property.xml b/internals2/ze1/zendapi/functions/zend_std_get_static_property.xml deleted file mode 100644 index b3937046bf..0000000000 --- a/internals2/ze1/zendapi/functions/zend_std_get_static_property.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_std_get_static_property - ... - - - - &reftitle.description; - #include <zend_object_handlers.h> - - zval**zend_std_get_static_property - zend_class_entry*ce - zend_uchartype - void*property_name - intproperty_name_len - zend_boolsilent - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - type - - - ... - - - - - property_name - - - ... - - - - - property_name_len - - - ... - - - - - silent - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_std_unset_static_property.xml b/internals2/ze1/zendapi/functions/zend_std_unset_static_property.xml deleted file mode 100644 index 9a8605a4d1..0000000000 --- a/internals2/ze1/zendapi/functions/zend_std_unset_static_property.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_std_unset_static_property - ... - - - - &reftitle.description; - #include <zend_object_handlers.h> - - zend_boolzend_std_unset_static_property - zend_class_entry*ce - zend_uchartype - void*property_name - intproperty_name_len - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - type - - - ... - - - - - property_name - - - ... - - - - - property_name_len - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_stream_close.xml b/internals2/ze1/zendapi/functions/zend_stream_close.xml deleted file mode 100644 index 1f1856a474..0000000000 --- a/internals2/ze1/zendapi/functions/zend_stream_close.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_stream_close - ... - - - - &reftitle.description; - #include <zend_stream.h> - - zend_stream_close - ...handle - - - ... - - - - - &reftitle.parameters; - - - - handle - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_stream_ferror.xml b/internals2/ze1/zendapi/functions/zend_stream_ferror.xml deleted file mode 100644 index f59e4f1687..0000000000 --- a/internals2/ze1/zendapi/functions/zend_stream_ferror.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_stream_ferror - ... - - - - &reftitle.description; - #include <zend_stream.h> - - intzend_stream_ferror - zend_file_handle*file_handle - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - file_handle - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_stream_fixup.xml b/internals2/ze1/zendapi/functions/zend_stream_fixup.xml deleted file mode 100644 index 5969016086..0000000000 --- a/internals2/ze1/zendapi/functions/zend_stream_fixup.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_stream_fixup - ... - - - - &reftitle.description; - #include <zend_stream.h> - - intzend_stream_fixup - zend_file_handle*file_handle - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - file_handle - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_stream_ftell.xml b/internals2/ze1/zendapi/functions/zend_stream_ftell.xml deleted file mode 100644 index b3a51ff090..0000000000 --- a/internals2/ze1/zendapi/functions/zend_stream_ftell.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_stream_ftell - ... - - - - &reftitle.description; - #include <zend_stream.h> - - longzend_stream_ftell - zend_file_handle*file_handle - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - file_handle - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_stream_getc.xml b/internals2/ze1/zendapi/functions/zend_stream_getc.xml deleted file mode 100644 index 134db9fa51..0000000000 --- a/internals2/ze1/zendapi/functions/zend_stream_getc.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_stream_getc - ... - - - - &reftitle.description; - #include <zend_stream.h> - - intzend_stream_getc - zend_file_handle*file_handle - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - file_handle - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_stream_open.xml b/internals2/ze1/zendapi/functions/zend_stream_open.xml deleted file mode 100644 index d3bc5e1426..0000000000 --- a/internals2/ze1/zendapi/functions/zend_stream_open.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_stream_open - ... - - - - &reftitle.description; - #include <zend_stream.h> - - intzend_stream_open - const char*filename - zend_file_handle*handle - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - filename - - - ... - - - - - handle - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_stream_read.xml b/internals2/ze1/zendapi/functions/zend_stream_read.xml deleted file mode 100644 index 0ca74905ca..0000000000 --- a/internals2/ze1/zendapi/functions/zend_stream_read.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_stream_read - ... - - - - &reftitle.description; - #include <zend_stream.h> - - size_tzend_stream_read - zend_file_handle*file_handle - char*buf - size_tlen - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - file_handle - - - ... - - - - - buf - - - ... - - - - - len - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_strip.xml b/internals2/ze1/zendapi/functions/zend_strip.xml deleted file mode 100644 index 4ce18bf7de..0000000000 --- a/internals2/ze1/zendapi/functions/zend_strip.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_strip - ... - - - - &reftitle.description; - #include <zend_highlight.h> - - zend_strip - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_strndup.xml b/internals2/ze1/zendapi/functions/zend_strndup.xml deleted file mode 100644 index 314c49a719..0000000000 --- a/internals2/ze1/zendapi/functions/zend_strndup.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_strndup - ... - - - - &reftitle.description; - #include <zend_alloc.h> - - char*zend_strndup - const char*s - unsigned intlength - - - ... - - - - - &reftitle.parameters; - - - - s - - - ... - - - - - length - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_strtod.xml b/internals2/ze1/zendapi/functions/zend_strtod.xml deleted file mode 100644 index e350dba6f9..0000000000 --- a/internals2/ze1/zendapi/functions/zend_strtod.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_strtod - ... - - - - &reftitle.description; - #include <zend_strtod.h> - - doublezend_strtod - const char*s00 - char**se - - - ... - - - - - &reftitle.parameters; - - - - s00 - - - ... - - - - - se - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_symtable_del.xml b/internals2/ze1/zendapi/functions/zend_symtable_del.xml deleted file mode 100644 index 4971e36318..0000000000 --- a/internals2/ze1/zendapi/functions/zend_symtable_del.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_symtable_del - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_symtable_del - HashTable*ht - char*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_symtable_exists.xml b/internals2/ze1/zendapi/functions/zend_symtable_exists.xml deleted file mode 100644 index 3b36364731..0000000000 --- a/internals2/ze1/zendapi/functions/zend_symtable_exists.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_symtable_exists - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_symtable_exists - HashTable*ht - char*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_symtable_find.xml b/internals2/ze1/zendapi/functions/zend_symtable_find.xml deleted file mode 100644 index ee2c93d815..0000000000 --- a/internals2/ze1/zendapi/functions/zend_symtable_find.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_symtable_find - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_symtable_find - HashTable*ht - char*arKey - uintnKeyLength - void**pData - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - pData - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_symtable_update.xml b/internals2/ze1/zendapi/functions/zend_symtable_update.xml deleted file mode 100644 index fb26605292..0000000000 --- a/internals2/ze1/zendapi/functions/zend_symtable_update.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_symtable_update - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_symtable_update - HashTable*ht - char*arKey - uintnKeyLength - void*pData - uintnDataSize - void**pDest - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - pData - - - ... - - - - - nDataSize - - - ... - - - - - pDest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_symtable_update_current_key.xml b/internals2/ze1/zendapi/functions/zend_symtable_update_current_key.xml deleted file mode 100644 index 504caabd15..0000000000 --- a/internals2/ze1/zendapi/functions/zend_symtable_update_current_key.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_symtable_update_current_key - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_symtable_update_current_key - HashTable*ht - char*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_throw_exception_object.xml b/internals2/ze1/zendapi/functions/zend_throw_exception_object.xml deleted file mode 100644 index 4ec04140d2..0000000000 --- a/internals2/ze1/zendapi/functions/zend_throw_exception_object.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_throw_exception_object - ... - - - - &reftitle.description; - #include <zend_exceptions.h> - - zend_throw_exception_object - zval*exception - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - exception - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_timeout.xml b/internals2/ze1/zendapi/functions/zend_timeout.xml deleted file mode 100644 index 75bf96ea26..0000000000 --- a/internals2/ze1/zendapi/functions/zend_timeout.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_timeout - ... - - - - &reftitle.description; - #include <zend_execute.h> - - zend_timeout - intdummy - - - ... - - - - - &reftitle.parameters; - - - - dummy - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_declare_property.xml b/internals2/ze1/zendapi/functions/zend_u_declare_property.xml deleted file mode 100644 index 15d52cec1e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_declare_property.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_u_declare_property - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_u_declare_property - zend_class_entry*ce - zend_uchartype - void*name - intname_length - zval*property - intaccess_type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - type - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - property - - - ... - - - - - access_type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_declare_property_ex.xml b/internals2/ze1/zendapi/functions/zend_u_declare_property_ex.xml deleted file mode 100644 index 8e185b6292..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_declare_property_ex.xml +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - zend_u_declare_property_ex - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_u_declare_property_ex - zend_class_entry*ce - zend_uchartype - void*name - intname_length - zval*property - intaccess_type - char*doc_comment - intdoc_comment_len - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - ce - - - ... - - - - - type - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - property - - - ... - - - - - access_type - - - ... - - - - - doc_comment - - - ... - - - - - doc_comment_len - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_delete_global_variable.xml b/internals2/ze1/zendapi/functions/zend_u_delete_global_variable.xml deleted file mode 100644 index 7c3f2ffaba..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_delete_global_variable.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_u_delete_global_variable - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_u_delete_global_variable - zend_uchartype - void*name - intname_len - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - name - - - ... - - - - - name_len - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_eval_string.xml b/internals2/ze1/zendapi/functions/zend_u_eval_string.xml deleted file mode 100644 index 2ab5ba8e84..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_eval_string.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_u_eval_string - ... - - - - &reftitle.description; - #include <zend_execute.h> - - intzend_u_eval_string - zend_uchartype - void*str - zval*retval_ptr - char*string_name - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - str - - - ... - - - - - retval_ptr - - - ... - - - - - string_name - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_eval_string_ex.xml b/internals2/ze1/zendapi/functions/zend_u_eval_string_ex.xml deleted file mode 100644 index f98e12527a..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_eval_string_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_u_eval_string_ex - ... - - - - &reftitle.description; - #include <zend_execute.h> - - intzend_u_eval_string_ex - zend_uchartype - void*str - zval*retval_ptr - char*string_name - inthandle_exceptions - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - str - - - ... - - - - - retval_ptr - - - ... - - - - - string_name - - - ... - - - - - handle_exceptions - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_fetch_class.xml b/internals2/ze1/zendapi/functions/zend_u_fetch_class.xml deleted file mode 100644 index 191c71122e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_fetch_class.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_u_fetch_class - ... - - - - &reftitle.description; - #include <zend_execute.h> - - zend_class_entry*zend_u_fetch_class - zend_uchartype - void*class_name - uintclass_name_len - intfetch_type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - class_name - - - ... - - - - - class_name_len - - - ... - - - - - fetch_type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_get_constant.xml b/internals2/ze1/zendapi/functions/zend_u_get_constant.xml deleted file mode 100644 index f3dfd5fcd2..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_get_constant.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_u_get_constant - ... - - - - &reftitle.description; - #include <zend_constants.h> - - intzend_u_get_constant - zend_uchartype - void*name - uintname_len - zval*result - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - name - - - ... - - - - - name_len - - - ... - - - - - result - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_get_hash_value.xml b/internals2/ze1/zendapi/functions/zend_u_get_hash_value.xml deleted file mode 100644 index e2dfcc96c3..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_get_hash_value.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_u_get_hash_value - ... - - - - &reftitle.description; - #include <zend_hash.h> - - ulongzend_u_get_hash_value - zend_uchartype - char*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_add.xml b/internals2/ze1/zendapi/functions/zend_u_hash_add.xml deleted file mode 100644 index 4d6aceb065..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_add.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_u_hash_add - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_hash_add - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - void*pData - uintnDataSize - void**pDest - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - pData - - - ... - - - - - nDataSize - - - ... - - - - - pDest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_add_empty_element.xml b/internals2/ze1/zendapi/functions/zend_u_hash_add_empty_element.xml deleted file mode 100644 index 93326c41b1..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_add_empty_element.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_u_hash_add_empty_element - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_hash_add_empty_element - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_del.xml b/internals2/ze1/zendapi/functions/zend_u_hash_del.xml deleted file mode 100644 index f3a2ef8246..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_del.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_u_hash_del - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_hash_del - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_del_key_or_index.xml b/internals2/ze1/zendapi/functions/zend_u_hash_del_key_or_index.xml deleted file mode 100644 index a12be701b2..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_del_key_or_index.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_u_hash_del_key_or_index - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_hash_del_key_or_index - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - ulongh - intflag - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - h - - - ... - - - - - flag - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_exists.xml b/internals2/ze1/zendapi/functions/zend_u_hash_exists.xml deleted file mode 100644 index b67a0f32e8..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_exists.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_u_hash_exists - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_hash_exists - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_find.xml b/internals2/ze1/zendapi/functions/zend_u_hash_find.xml deleted file mode 100644 index 2b35d81834..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_find.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_u_hash_find - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_hash_find - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - void**pData - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - pData - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_func.xml b/internals2/ze1/zendapi/functions/zend_u_hash_func.xml deleted file mode 100644 index aebb5cd28c..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_func.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_u_hash_func - ... - - - - &reftitle.description; - #include <zend_hash.h> - - ulongzend_u_hash_func - zend_uchartype - char*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_init.xml b/internals2/ze1/zendapi/functions/zend_u_hash_init.xml deleted file mode 100644 index f032abc7d5..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_init.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_u_hash_init - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_hash_init - HashTable*ht - uintnSize - hash_func_tpHashFunction - dtor_func_tpDestructor - zend_boolpersistent - zend_boolunicode - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - nSize - - - ... - - - - - pHashFunction - - - ... - - - - - pDestructor - - - ... - - - - - persistent - - - ... - - - - - unicode - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_init_ex.xml b/internals2/ze1/zendapi/functions/zend_u_hash_init_ex.xml deleted file mode 100644 index a02e60c8fb..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_init_ex.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_u_hash_init_ex - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_hash_init_ex - HashTable*ht - uintnSize - hash_func_tpHashFunction - dtor_func_tpDestructor - zend_boolpersistent - zend_boolunicode - zend_boolbApplyProtection - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - nSize - - - ... - - - - - pHashFunction - - - ... - - - - - pDestructor - - - ... - - - - - persistent - - - ... - - - - - unicode - - - ... - - - - - bApplyProtection - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_quick_add.xml b/internals2/ze1/zendapi/functions/zend_u_hash_quick_add.xml deleted file mode 100644 index 6ff31fd43b..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_quick_add.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - zend_u_hash_quick_add - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_hash_quick_add - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - ulongh - void*pData - uintnDataSize - void**pDest - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - h - - - ... - - - - - pData - - - ... - - - - - nDataSize - - - ... - - - - - pDest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_quick_exists.xml b/internals2/ze1/zendapi/functions/zend_u_hash_quick_exists.xml deleted file mode 100644 index 482704c300..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_quick_exists.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_u_hash_quick_exists - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_hash_quick_exists - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - ulongh - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - h - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_quick_find.xml b/internals2/ze1/zendapi/functions/zend_u_hash_quick_find.xml deleted file mode 100644 index b924988eb9..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_quick_find.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_u_hash_quick_find - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_hash_quick_find - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - ulongh - void**pData - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - h - - - ... - - - - - pData - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_quick_update.xml b/internals2/ze1/zendapi/functions/zend_u_hash_quick_update.xml deleted file mode 100644 index 9b5adc2eaf..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_quick_update.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - zend_u_hash_quick_update - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_hash_quick_update - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - ulongh - void*pData - uintnDataSize - void**pDest - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - h - - - ... - - - - - pData - - - ... - - - - - nDataSize - - - ... - - - - - pDest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_hash_update.xml b/internals2/ze1/zendapi/functions/zend_u_hash_update.xml deleted file mode 100644 index 1796e33431..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_hash_update.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_u_hash_update - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_hash_update - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - void*pData - uintnDataSize - void**pDest - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - pData - - - ... - - - - - nDataSize - - - ... - - - - - pDest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_is_auto_global.xml b/internals2/ze1/zendapi/functions/zend_u_is_auto_global.xml deleted file mode 100644 index af15296b40..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_is_auto_global.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_u_is_auto_global - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_boolzend_u_is_auto_global - zend_uchartype - void*name - uintname_len - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - name - - - ... - - - - - name_len - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_lookup_class.xml b/internals2/ze1/zendapi/functions/zend_u_lookup_class.xml deleted file mode 100644 index d0ef19da55..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_lookup_class.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_u_lookup_class - ... - - - - &reftitle.description; - #include <zend_execute.h> - - intzend_u_lookup_class - zend_uchartype - void*name - intname_length - zend_class_entry***ce - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - ce - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_lookup_class_ex.xml b/internals2/ze1/zendapi/functions/zend_u_lookup_class_ex.xml deleted file mode 100644 index 8704aa8262..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_lookup_class_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_u_lookup_class_ex - ... - - - - &reftitle.description; - #include <zend_execute.h> - - intzend_u_lookup_class_ex - zend_uchartype - void*name - intname_length - intuse_autoload - zend_class_entry***ce - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - use_autoload - - - ... - - - - - ce - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_mangle_property_name.xml b/internals2/ze1/zendapi/functions/zend_u_mangle_property_name.xml deleted file mode 100644 index 08467efdd3..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_mangle_property_name.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - zend_u_mangle_property_name - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_u_mangle_property_name - char**dest - int*dest_length - zend_uchartype - char*src1 - intsrc1_length - char*src2 - intsrc2_length - intinternal - - - ... - - - - - &reftitle.parameters; - - - - dest - - - ... - - - - - dest_length - - - ... - - - - - type - - - ... - - - - - src1 - - - ... - - - - - src1_length - - - ... - - - - - src2 - - - ... - - - - - src2_length - - - ... - - - - - internal - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_register_constant.xml b/internals2/ze1/zendapi/functions/zend_u_register_constant.xml deleted file mode 100644 index f530de5ec8..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_register_constant.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_u_register_constant - ... - - - - &reftitle.description; - #include <zend_constants.h> - - intzend_u_register_constant - zend_uchartype - zend_constant*c - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - c - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_symtable_del.xml b/internals2/ze1/zendapi/functions/zend_u_symtable_del.xml deleted file mode 100644 index 9218137216..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_symtable_del.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_u_symtable_del - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_symtable_del - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_symtable_exists.xml b/internals2/ze1/zendapi/functions/zend_u_symtable_exists.xml deleted file mode 100644 index 453ce84af3..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_symtable_exists.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_u_symtable_exists - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_symtable_exists - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_symtable_find.xml b/internals2/ze1/zendapi/functions/zend_u_symtable_find.xml deleted file mode 100644 index 5f072d1f6d..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_symtable_find.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_u_symtable_find - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_symtable_find - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - void**pData - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - pData - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_symtable_update.xml b/internals2/ze1/zendapi/functions/zend_u_symtable_update.xml deleted file mode 100644 index a8960a9683..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_symtable_update.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_u_symtable_update - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_symtable_update - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - void*pData - uintnDataSize - void**pDest - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - pData - - - ... - - - - - nDataSize - - - ... - - - - - pDest - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_symtable_update_current_key.xml b/internals2/ze1/zendapi/functions/zend_u_symtable_update_current_key.xml deleted file mode 100644 index cd8c5ff9de..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_symtable_update_current_key.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_u_symtable_update_current_key - ... - - - - &reftitle.description; - #include <zend_hash.h> - - intzend_u_symtable_update_current_key - HashTable*ht - zend_uchartype - void*arKey - uintnKeyLength - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - type - - - ... - - - - - arKey - - - ... - - - - - nKeyLength - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_u_unmangle_property_name.xml b/internals2/ze1/zendapi/functions/zend_u_unmangle_property_name.xml deleted file mode 100644 index 7ae153e69e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_u_unmangle_property_name.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_u_unmangle_property_name - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_u_unmangle_property_name - zend_uchartype - char*mangled_property - char**prop_name - char**class_name - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - mangled_property - - - ... - - - - - prop_name - - - ... - - - - - class_name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_unmangle_property_name.xml b/internals2/ze1/zendapi/functions/zend_unmangle_property_name.xml deleted file mode 100644 index 191d958074..0000000000 --- a/internals2/ze1/zendapi/functions/zend_unmangle_property_name.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zend_unmangle_property_name - ... - - - - &reftitle.description; - #include <zend_compile.h> - - zend_unmangle_property_name - char*mangled_property - char**prop_name - char**class_name - - - ... - - - - - &reftitle.parameters; - - - - mangled_property - - - ... - - - - - prop_name - - - ... - - - - - class_name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_unregister_functions.xml b/internals2/ze1/zendapi/functions/zend_unregister_functions.xml deleted file mode 100644 index 1d53f3aeba..0000000000 --- a/internals2/ze1/zendapi/functions/zend_unregister_functions.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_unregister_functions - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_unregister_functions - zend_function_entry*functions - intcount - HashTable*function_table - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - functions - - - ... - - - - - count - - - ... - - - - - function_table - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_unregister_ini_entries.xml b/internals2/ze1/zendapi/functions/zend_unregister_ini_entries.xml deleted file mode 100644 index 0ec0dc42db..0000000000 --- a/internals2/ze1/zendapi/functions/zend_unregister_ini_entries.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_unregister_ini_entries - ... - - - - &reftitle.description; - #include <zend_ini.h> - - zend_unregister_ini_entries - intmodule_number - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - module_number - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_unset_timeout.xml b/internals2/ze1/zendapi/functions/zend_unset_timeout.xml deleted file mode 100644 index c3d36e1ddf..0000000000 --- a/internals2/ze1/zendapi/functions/zend_unset_timeout.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zend_unset_timeout - ... - - - - &reftitle.description; - #include <zend_execute.h> - - zend_unset_timeout - TSRMLS_D - - - ... - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_class_constants.xml b/internals2/ze1/zendapi/functions/zend_update_class_constants.xml deleted file mode 100644 index 89629c3461..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_class_constants.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_update_class_constants - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_class_constants - zend_class_entry*class_type - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - class_type - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_property.xml b/internals2/ze1/zendapi/functions/zend_update_property.xml deleted file mode 100644 index 84d5d9b055..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_property.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_update_property - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_property - zend_class_entry*scope - zval*object - char*name - intname_length - zval*value - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_property_ascii_string.xml b/internals2/ze1/zendapi/functions/zend_update_property_ascii_string.xml deleted file mode 100644 index cfbbdd25f8..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_property_ascii_string.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_update_property_ascii_string - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_property_ascii_string - zend_class_entry*scope - zval*object - char*name - intname_length - char*value - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_property_ascii_stringl.xml b/internals2/ze1/zendapi/functions/zend_update_property_ascii_stringl.xml deleted file mode 100644 index 7f74eb0bda..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_property_ascii_stringl.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_update_property_ascii_stringl - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_property_ascii_stringl - zend_class_entry*scope - zval*object - char*name - intname_length - char*value - intvalue_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - value_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_property_bool.xml b/internals2/ze1/zendapi/functions/zend_update_property_bool.xml deleted file mode 100644 index ee21980c0e..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_property_bool.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_update_property_bool - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_property_bool - zend_class_entry*scope - zval*object - char*name - intname_length - longvalue - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_property_double.xml b/internals2/ze1/zendapi/functions/zend_update_property_double.xml deleted file mode 100644 index a165768263..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_property_double.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_update_property_double - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_property_double - zend_class_entry*scope - zval*object - char*name - intname_length - doublevalue - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_property_long.xml b/internals2/ze1/zendapi/functions/zend_update_property_long.xml deleted file mode 100644 index 9a11c6c516..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_property_long.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_update_property_long - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_property_long - zend_class_entry*scope - zval*object - char*name - intname_length - longvalue - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_property_null.xml b/internals2/ze1/zendapi/functions/zend_update_property_null.xml deleted file mode 100644 index 3d7cec14d9..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_property_null.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_update_property_null - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_property_null - zend_class_entry*scope - zval*object - char*name - intname_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_property_rt_string.xml b/internals2/ze1/zendapi/functions/zend_update_property_rt_string.xml deleted file mode 100644 index a5c703cbc7..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_property_rt_string.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_update_property_rt_string - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_property_rt_string - zend_class_entry*scope - zval*object - char*name - intname_length - char*value - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_property_rt_stringl.xml b/internals2/ze1/zendapi/functions/zend_update_property_rt_stringl.xml deleted file mode 100644 index fd689ead3c..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_property_rt_stringl.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_update_property_rt_stringl - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_property_rt_stringl - zend_class_entry*scope - zval*object - char*name - intname_length - char*value - intvalue_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - value_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_property_string.xml b/internals2/ze1/zendapi/functions/zend_update_property_string.xml deleted file mode 100644 index 1ab60cfdf9..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_property_string.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_update_property_string - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_property_string - zend_class_entry*scope - zval*object - char*name - intname_length - char*value - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_property_stringl.xml b/internals2/ze1/zendapi/functions/zend_update_property_stringl.xml deleted file mode 100644 index b780a17642..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_property_stringl.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_update_property_stringl - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_property_stringl - zend_class_entry*scope - zval*object - char*name - intname_length - char*value - intvalue_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - value_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_property_unicode.xml b/internals2/ze1/zendapi/functions/zend_update_property_unicode.xml deleted file mode 100644 index d6417063cf..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_property_unicode.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_update_property_unicode - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_property_unicode - zend_class_entry*scope - zval*object - char*name - intname_length - UChar*value - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_property_unicodel.xml b/internals2/ze1/zendapi/functions/zend_update_property_unicodel.xml deleted file mode 100644 index 845a9ae64f..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_property_unicodel.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - zend_update_property_unicodel - ... - - - - &reftitle.description; - #include <zend_API.h> - - zend_update_property_unicodel - zend_class_entry*scope - zval*object - char*name - intname_length - UChar*value - intvalue_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - object - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - value_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_static_property.xml b/internals2/ze1/zendapi/functions/zend_update_static_property.xml deleted file mode 100644 index d90986413f..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_static_property.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_update_static_property - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_update_static_property - zend_class_entry*scope - char*name - intname_length - zval*value - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_static_property_ascii_string.xml b/internals2/ze1/zendapi/functions/zend_update_static_property_ascii_string.xml deleted file mode 100644 index fa99e4dc97..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_static_property_ascii_string.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_update_static_property_ascii_string - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_update_static_property_ascii_string - zend_class_entry*scope - char*name - intname_length - char*value - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_static_property_ascii_stringl.xml b/internals2/ze1/zendapi/functions/zend_update_static_property_ascii_stringl.xml deleted file mode 100644 index 4ea8c6d8bd..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_static_property_ascii_stringl.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_update_static_property_ascii_stringl - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_update_static_property_ascii_stringl - zend_class_entry*scope - char*name - intname_length - char*value - intvalue_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - value_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_static_property_bool.xml b/internals2/ze1/zendapi/functions/zend_update_static_property_bool.xml deleted file mode 100644 index 73c5d990ad..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_static_property_bool.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_update_static_property_bool - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_update_static_property_bool - zend_class_entry*scope - char*name - intname_length - longvalue - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_static_property_double.xml b/internals2/ze1/zendapi/functions/zend_update_static_property_double.xml deleted file mode 100644 index e12da6be44..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_static_property_double.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_update_static_property_double - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_update_static_property_double - zend_class_entry*scope - char*name - intname_length - doublevalue - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_static_property_long.xml b/internals2/ze1/zendapi/functions/zend_update_static_property_long.xml deleted file mode 100644 index d68d332eeb..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_static_property_long.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_update_static_property_long - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_update_static_property_long - zend_class_entry*scope - char*name - intname_length - longvalue - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_static_property_null.xml b/internals2/ze1/zendapi/functions/zend_update_static_property_null.xml deleted file mode 100644 index 190b107c9c..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_static_property_null.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - zend_update_static_property_null - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_update_static_property_null - zend_class_entry*scope - char*name - intname_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_static_property_rt_string.xml b/internals2/ze1/zendapi/functions/zend_update_static_property_rt_string.xml deleted file mode 100644 index 76c80a3bc4..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_static_property_rt_string.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_update_static_property_rt_string - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_update_static_property_rt_string - zend_class_entry*scope - char*name - intname_length - char*value - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_static_property_rt_stringl.xml b/internals2/ze1/zendapi/functions/zend_update_static_property_rt_stringl.xml deleted file mode 100644 index b871496d1a..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_static_property_rt_stringl.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_update_static_property_rt_stringl - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_update_static_property_rt_stringl - zend_class_entry*scope - char*name - intname_length - char*value - intvalue_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - value_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_static_property_string.xml b/internals2/ze1/zendapi/functions/zend_update_static_property_string.xml deleted file mode 100644 index 2517c81159..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_static_property_string.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_update_static_property_string - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_update_static_property_string - zend_class_entry*scope - char*name - intname_length - char*value - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_static_property_stringl.xml b/internals2/ze1/zendapi/functions/zend_update_static_property_stringl.xml deleted file mode 100644 index e8a9d68503..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_static_property_stringl.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_update_static_property_stringl - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_update_static_property_stringl - zend_class_entry*scope - char*name - intname_length - char*value - intvalue_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - value_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_static_property_unicode.xml b/internals2/ze1/zendapi/functions/zend_update_static_property_unicode.xml deleted file mode 100644 index d2c64738e4..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_static_property_unicode.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - zend_update_static_property_unicode - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_update_static_property_unicode - zend_class_entry*scope - char*name - intname_length - UChar*value - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_update_static_property_unicodel.xml b/internals2/ze1/zendapi/functions/zend_update_static_property_unicodel.xml deleted file mode 100644 index 114af385e9..0000000000 --- a/internals2/ze1/zendapi/functions/zend_update_static_property_unicodel.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - zend_update_static_property_unicodel - ... - - - - &reftitle.description; - #include <zend_API.h> - - intzend_update_static_property_unicodel - zend_class_entry*scope - char*name - intname_length - UChar*value - intvalue_length - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - scope - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - value - - - ... - - - - - value_length - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_ustrndup.xml b/internals2/ze1/zendapi/functions/zend_ustrndup.xml deleted file mode 100644 index f4534a82f5..0000000000 --- a/internals2/ze1/zendapi/functions/zend_ustrndup.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zend_ustrndup - ... - - - - &reftitle.description; - #include <zend_alloc.h> - - UChar*zend_ustrndup - const UChar*s - uintlength - - - ... - - - - - &reftitle.parameters; - - - - s - - - ... - - - - - length - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_wrong_param_count.xml b/internals2/ze1/zendapi/functions/zend_wrong_param_count.xml deleted file mode 100644 index df6f48f484..0000000000 --- a/internals2/ze1/zendapi/functions/zend_wrong_param_count.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - zend_wrong_param_count - - 関数やメソッドのコールの際に、 - パラメータ数が間違っていた場合の標準エラーメッセージを生成する - - - - - &reftitle.description; - #include <zend_API.h> - - zend_wrong_param_count - magicTSRMLS_D - - - zend_wrong_param_count は、 - 関数やメソッドに渡すパラメータの数が間違っていた場合に表示される - 標準警告メッセージを生成します。この関数は、正しい関数名やクラス名を - (必要に応じて) 自動的にエラーメッセージの中に含めます。 - - - 通常は、この関数を直接コールする代わりに - ZEND_WRONG_PARAM_COUNT マクロおよび - ZEND_WRONG_PARAM_COUNT_WITH_RETVAL マクロを使用します。 - これにより、引数 TSRMLS_C をタイプする手間を省きます。 - - - - - &reftitle.parameters; - - - - TSRMLS_D - - - スレッドコンテキスト。 - - - - - - - - - - diff --git a/internals2/ze1/zendapi/functions/zend_zval_type_name.xml b/internals2/ze1/zendapi/functions/zend_zval_type_name.xml deleted file mode 100644 index 4e39944a26..0000000000 --- a/internals2/ze1/zendapi/functions/zend_zval_type_name.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - zend_zval_type_name - 指定した zval に対応する PHP の型の名前を返す - - - - &reftitle.description; - #include <zend_API.h> - - char*zend_zval_type_name - zval*arg - - - zend_zval_type_name は、 - arg が指す zval - の現在の値の PHP 型の名前を返します。 - - - - - &reftitle.parameters; - - - - arg - - - 調べたい zval へのポインタ。 - - - - - - - - - &reftitle.returnvalues; - - PHP 型の名前を表す文字列へのポインタを返します。 - - - - - - diff --git a/internals2/ze1/zendapi/functions/zval_add_ref.xml b/internals2/ze1/zendapi/functions/zval_add_ref.xml deleted file mode 100644 index 12cff70b3a..0000000000 --- a/internals2/ze1/zendapi/functions/zval_add_ref.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zval_add_ref - ... - - - - &reftitle.description; - #include <zend_variables.h> - - zval_add_ref - zval**p - - - ... - - - - - &reftitle.parameters; - - - - p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zval_internal_dtor.xml b/internals2/ze1/zendapi/functions/zval_internal_dtor.xml deleted file mode 100644 index 3f04bf5d54..0000000000 --- a/internals2/ze1/zendapi/functions/zval_internal_dtor.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zval_internal_dtor - ... - - - - &reftitle.description; - #include <zend_variables.h> - - zval_internal_dtor - zval*zvalue - - - ... - - - - - &reftitle.parameters; - - - - zvalue - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zval_internal_ptr_dtor.xml b/internals2/ze1/zendapi/functions/zval_internal_ptr_dtor.xml deleted file mode 100644 index 0ba2b1ad09..0000000000 --- a/internals2/ze1/zendapi/functions/zval_internal_ptr_dtor.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zval_internal_ptr_dtor - ... - - - - &reftitle.description; - #include <zend_variables.h> - - zval_internal_ptr_dtor - zval**zvalue - - - ... - - - - - &reftitle.parameters; - - - - zvalue - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zval_ptr_dtor.xml b/internals2/ze1/zendapi/functions/zval_ptr_dtor.xml deleted file mode 100644 index d759494f5e..0000000000 --- a/internals2/ze1/zendapi/functions/zval_ptr_dtor.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - zval_ptr_dtor - ... - - - - &reftitle.description; - #include <zend_variables.h> - - zval_ptr_dtor - zval**zval_ptr - - - ... - - - - - &reftitle.parameters; - - - - zval_ptr - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zval_string_to_unicode.xml b/internals2/ze1/zendapi/functions/zval_string_to_unicode.xml deleted file mode 100644 index 54ebeef9e8..0000000000 --- a/internals2/ze1/zendapi/functions/zval_string_to_unicode.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zval_string_to_unicode - ... - - - - &reftitle.description; - #include <zend_unicode.h> - - intzval_string_to_unicode - zval*string - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - string - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zval_string_to_unicode_ex.xml b/internals2/ze1/zendapi/functions/zval_string_to_unicode_ex.xml deleted file mode 100644 index 3ede7a7932..0000000000 --- a/internals2/ze1/zendapi/functions/zval_string_to_unicode_ex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zval_string_to_unicode_ex - ... - - - - &reftitle.description; - #include <zend_unicode.h> - - intzval_string_to_unicode_ex - zval*string - UConverter*conv - - - ... - - - - - &reftitle.parameters; - - - - string - - - ... - - - - - conv - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zval_unicode_to_string.xml b/internals2/ze1/zendapi/functions/zval_unicode_to_string.xml deleted file mode 100644 index 90983d3f77..0000000000 --- a/internals2/ze1/zendapi/functions/zval_unicode_to_string.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zval_unicode_to_string - ... - - - - &reftitle.description; - #include <zend_unicode.h> - - intzval_unicode_to_string - zval*string - UConverter*conv - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - string - - - ... - - - - - conv - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/functions/zval_update_constant.xml b/internals2/ze1/zendapi/functions/zval_update_constant.xml deleted file mode 100644 index 0c783b9184..0000000000 --- a/internals2/ze1/zendapi/functions/zval_update_constant.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - zval_update_constant - ... - - - - &reftitle.description; - #include <zend_execute.h> - - intzval_update_constant - zval**pp - void*arg - magicTSRMLS_DC - - - ... - - - - - &reftitle.parameters; - - - - pp - - - ... - - - - - arg - - - ... - - - - - TSRMLS_DC - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/index.xml b/internals2/ze1/zendapi/index.xml deleted file mode 100644 index c005155f92..0000000000 --- a/internals2/ze1/zendapi/index.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - &ZendAPI; - &internals2.ze1.zendapi.intro; - &internals2.ze1.zendapi.overview; - &internals2.ze1.zendapi.possibilities; - &internals2.ze1.zendapi.layout; - &internals2.ze1.zendapi.build; - &internals2.ze1.zendapi.creating; - &internals2.ze1.zendapi.using; - &internals2.ze1.zendapi.troubleshooting; - &internals2.ze1.zendapi.structure; - &internals2.ze1.zendapi.arguments; - &internals2.ze1.zendapi.variables; - &internals2.ze1.zendapi.copy-constructor; - &internals2.ze1.zendapi.returning; - &internals2.ze1.zendapi.printing; - &internals2.ze1.zendapi.startup-and-shutdown; - &internals2.ze1.zendapi.calling-user-functions; - &internals2.ze1.zendapi.ini-file-support; - &internals2.ze1.zendapi.where-to-go; - &internals2.ze1.zendapi.configuration-macros; - &internals2.ze1.zendapi.api-macros; - - - - diff --git a/internals2/ze1/zendapi/ini-file-support.xml b/internals2/ze1/zendapi/ini-file-support.xml deleted file mode 100644 index 0f486c74ec..0000000000 --- a/internals2/ze1/zendapi/ini-file-support.xml +++ /dev/null @@ -1,214 +0,0 @@ - - - - - ini ファイルのサポート - - PHP 4 では ini ファイルのサポートが設計しなおされています。 - デフォルトの初期エントリをコード中で直接指定したり、 - それらの値を実行時に読み込んで変更したり、 - 変更があったことを通知するためのメッセージハンドラを作成したりすることができます。 - - - あなたのモジュール用の .ini セクションを作成するには、 - PHP_INI_BEGIN() マクロでセクションの開始位置を指定、 - PHP_INI_END() マクロでセクションを終了位置を指定して、 - その中に PHP_INI_ENTRY() を使用してエントリを作成します。 - - - - PHP_INI_ENTRY() マクロは 4 つのパラメータを受け取ります。 - パラメータの内容は、それぞれエントリ名、エントリの値、変更の権限、 - そして変更通知ハンドラへのポインタとなります。 - エントリ名とエントリの値は、たとえ実際の値が整数であったとしても - 文字列で指定しなければなりません。 - - - 権限は、3 種類に分けられます。 - PHP_INI_SYSTEMphp.ini - ファイルでしか変更できません。PHP_INI_USER - は、実行時にユーザーが設定を上書きすることができます。上書きするには - .htaccess のような別の設定ファイルを使用します。 - そして PHP_INI_ALL の場合は無制限に値を変更することができます。 - 4 種類目として PHP_INI_PERDIR というものもありますが、 - この振る舞いについては検証することができません。 - yet. - - - 4 番目のパラメータには、変更通知ハンドラへのポインタを指定します。 - これらの ini エントリが変更された際に、ハンドラがコールされます。 - ハンドラを宣言するには、PHP_INI_MH マクロを使用します。 - - - - 変更ハンドラの変数 new_value に、 - 新しい値がに文字列として渡されます。 - PHP_INI_MH の定義を見ると、 - それ以外にもいくつかのパラメータがあることがわかるでしょう。 - - - - これらの定義は php_ini.h で確認できます。 - メッセージハンドラの内部では、エントリ全体を含む構造体・ - 新しい値・その長さ・そして 3 つのオプションの引数にアクセスすることができます。 - 3 つのオプションの引数を指定するには、 - PHP_INI_ENTRY1 (追加の引数を 1 つ指定する)、 - PHP_INI_ENTRY2 (追加の引数を 2 つ指定する) - そして PHP_INI_ENTRY3 (追加の引数を 3 つ指定する) - のそれぞれのマクロを使用します。 - - - 変更通知ハンドラを使用すべき場面としては以下のようなものがあります。 - 高速にアクセスするために ini エントリをローカルにキャッシュしたり、 - 値が変更された際に何らかのタスクを実行したりといった場合です。 - 例えば、特定のホストと常に接続を確率している拡張モジュールにおいて - ホスト名が変更された場合に、今の接続を自動的に終了させて - 新しい接続を確率するなどといったものが考えられます。 - - - - に示すマクロを使用することによっても、 - ini エントリへのアクセスは可能です。 - - - PHP の ini エントリにアクセスするためのマクロ - - - - - - マクロ - 説明 - - - INI_INT(name) - - エントリ name の現在の値を - integer (long) で返します。 - - - - INI_FLT(name) - - エントリ name の現在の値を - float (double) で返します。 - - - - INI_STR(name) - - エントリ name の現在の値を文字列で返します。 - 注意: 文字列は複製されず、 - 内部データへのポインタが返されます。後でこのデータにアクセスするには、 - ローカルメモリに複製しなければなりません。 - - - - INI_BOOL(name) - - エントリ name の現在の値を - Boolean (zend_bool で定義されるもので、 - その実体は、現在は unsigned char) で返します。 - - - - INI_ORIG_INT(name) - - エントリ name の元の値を - integer (long) で返します。 - - - - INI_ORIG_FLT(name) - - エントリ name の元の値を - float (double) で返します。 - - - - INI_ORIG_STR(name) - - エントリ name の元の値を文字列で返します。 - 注意: 文字列は複製されず、 - 内部データへのポインタが返されます。後でこのデータにアクセスするには、 - ローカルメモリに複製しなければなりません。 - - - - INI_ORIG_BOOL(name) - - エントリ name の元の値を - Boolean (zend_bool で定義されるもので、 - その実体は、現在は unsigned char) で返します。 - - - - -
- - 最後に、あなたが作成した ini エントリについて PHP に教えてあげなければなりません。 - モジュールのスタートアップ関数およびシャットダウン関数の中で、マクロ - REGISTER_INI_ENTRIES() および UNREGISTER_INI_ENTRIES() - を使用します。 - - - - -
- diff --git a/internals2/ze1/zendapi/intro.xml b/internals2/ze1/zendapi/intro.xml deleted file mode 100644 index bd492291fc..0000000000 --- a/internals2/ze1/zendapi/intro.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - はじめに - - Those who know don't talk. (知ってる人は教えようとしない) - Those who talk don't know. (教えてる人はあまり知らない) - - - - 時には、「あるがままの」PHP では要件を満たさないことがあります。平均的な - ユーザーがこのような事態に陥ることはまずありませんが、プロがアプリケーションを - 作成していると、速度面や機能面ですぐに PHP の限界に達してしまいます。 - 言語の制限により、新機能が常にネイティブ実装されるとは限りません。 - そんな場合には、たった 1 行のコードのために大げさなライブラリを利用 - しなければならず非常に不便です。このような PHP の欠点に打ち勝つための - なんらかの手段が必要です。 - - - もしこの域に達したなら、PHP の心臓部に手を触れ、その中身(PHP を動かして - いる C のコード)を探ってみるとよいでしょう。 - - - - この情報は、現在はかなり時代遅れになっています。 - PHP 4 の初期バージョンで使用されていた、 - 初期の ZendEngine 1.0 の API しか網羅していない部分もあります。 - - - より新しい情報は、PHP のソースに含まれる各種 README ファイル、 - あるいは Zend の Web サイトにある - Internals - を参照ください。 - - - - diff --git a/internals2/ze1/zendapi/layout.xml b/internals2/ze1/zendapi/layout.xml deleted file mode 100644 index f211de5944..0000000000 --- a/internals2/ze1/zendapi/layout.xml +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - ソース配置 - - - この章の残りの部分に進む前に、お好みの Web サーバーの (変更されていない) - ソースを取得しておきましょう。ここでは、Apache - ( で取得できます) を使用します。また、もちろん PHP のソース - ( にあります - 言うまでもないですよね?) も必要です。 - - - PHP の動作環境を自分でコンパイルして作成できるようにしておいて - ください! この方法についてはここでは触れませんが、この章の内容を - 学習しようとするのなら、最低限知っておくべき基本的な内容です。 - - - - コードの内容について説明する前に、PHP のファイルを探索する助けになるよう - ソースツリーの内容に慣れておくべきです。これは、拡張モジュールを - 開発したりデバッグしたりする際の必須技能です。 - - - - 以下の表では、主なディレクトリの内容について説明しています。 - - - - - - - - ディレクトリ - 内容 - - - php-src - - PHP 本体のソースファイルおよびヘッダファイル。 - PHP の API 定義やマクロなどはここにあります (重要)。 - それ以外のものは、このディレクトリの下位階層にあります。 - - - - php-src/ext - - 動的モジュール、組み込みモジュールのソース置き場。 - デフォルトでは、PHP 本体のソースツリーに統合された「公式」 - モジュールが配置されています。PHP 4.0 以降、これらの標準 - 拡張モジュールを (そのモジュールがサポートしていれば) - 動的モジュールとしてコンパイルすることが可能となりました。 - - - - php-src/main - - このディレクトリには PHP 本体のマクロや定義があります (重要)。 - - - - php-src/pear - - PHP Extension and Application Repository (PEAR) のディレクトリです。 - ここには PEAR のコアファイルが含まれます。 - - - - php-src/sapi - - さまざまなサーバー用の抽象化レイヤのコードを含みます。 - - - - TSRM - - Zend および PHP の "Thread Safe Resource Manager" (TSRM) - の場所です。 - - - - ZendEngine2 - - Zend エンジンのファイルがあります。この中で、Zend の API - 定義やマクロなどのすべてが見つけられるでしょう (重要)。 - - - - - - - PHP パッケージに含まれるすべてのファイルについて取り上げることは - この章の範囲を超えています。しかし、以下のファイルについては - 詳しく見ておくべきでしょう。 - - - - PHP の main ディレクトリにある php-src/main/php.h。 - このファイルには PHP のマクロおよび API 定義の大半が含まれています。 - - - - - Zend ディレクトリにある php-src/Zend/zend.h。 - このファイルには Zend のマクロおよび定義の大半が含まれています。 - - - - - これもまた Zend ディレクトリにある php-src/Zend/zend_API.h。 - ここでは Zend の API を定義しています。 - - - - これらのファイルからインクルードされているいくつかのファイルについても - 見ておきましょう。例えば、Zend エンジンの実行や PHP の初期化ファイルの - サポートに関連するファイルが含まれます。これらのファイルを読んだ後で、 - パッケージ全体を見回し、ファイルやモジュールの相互依存性 - - 各ファイル・モジュールがお互いにどのようにかかわりあっているのか、 - どのようにお互いを使用しているのか - を調べましょう。これにより、 - PHP のコーディングスタイルにも慣れることができます。PHP を - 拡張しようと思うなら、早いうちにこのスタイルに適応すべきです。 - - - - 拡張規約 - - Zend は、ある規約に基づいて構築されています。 - この標準規約を破ることを避けるため、 - 以下の節で説明する規則を守らなければなりません。 - - - - - マクロ - - 重要なタスクのほぼ全てについて、Zend では便利なマクロを定義しています。 - 以下の表および図で、基本的な関数・構造体およびマクロについて - 説明しています。マクロ定義のほとんどは - zend.h あるいは zend_API.h - にあります。この章を勉強したあとで、 - これらのファイルをじっくり読んでみることをお勧めします - (もちろん今この場で読んでもよいのですが、 - まだこの段階ではすべてを理解することはできないでしょう)。 - - - - - メモリ管理 - - 特にサーバーソフトウェアにとって、リソース管理は重大な問題です。 - メモリは最も貴重なリソースのひとつなので、 - メモリ管理には最大限の注意を払わねばなりません。 - メモリ管理の一部は Zend によって抽象化されており、 - この抽象化を使用すべきなのは明白です。この抽象化を使用することにより、 - Zend はすべてのメモリ割り当てを完全に制御できるようになります。 - そのブロックが使用中なのかどうかを Zend が判断し、 - 未使用のブロックや参照されていないブロックを自動的に開放することで - メモリリークを防ぐことができます。 - このために使用する関数を、以下の表にまとめます。 - - - - - - - 関数 - 説明 - - - emalloc - malloc の代わりに使用します。 - - - efree - free の代わりに使用します。 - - - estrdup - strdup の代わりに使用します。 - - - estrndup - strndup の代わりに使用します。 - estrdup より高速で、バイナリセーフです。 - 複製する文字列の長さが事前にわかっている場合には、 - この関数を使用することを推奨します。 - - - ecalloc - calloc の代わりに使用します。 - - - erealloc - realloc の代わりに使用します。 - - - - - emalloc および - estrdupestrndup、 - ecallocerealloc - は、内部メモリを確保します。efree - は、これらの関数で確保したブロックを開放します。 - e* 関数が管理するメモリは、 - 現在のプロセス内でローカルであるものとして扱われます。 - このプロセスによって実行されているスクリプトが終了すると、 - すぐにメモリが破棄されます。 - - - スクリプトの終了後も残り続けるメモリを確保するために、 - malloc および free - を使用することも可能です。しかし、これらの関数を使用するのは - Zend API がどうしてもそれを要求している場合に限定し、 - 最大限の注意を払うようにしてください。それ以外の場合に使用すると、 - メモリリークが発生する恐れがあります。 - - - Zend は、マルチスレッド Web サーバーをサポートするための - スレッドセーフなりソース管理機能も提供しています。 - この機能を使用する場合は、複数スレッドを同時に実行できるようにするため、 - すべてのグローバル変数をローカルの構造体に割り当てなければなりません。 - この文書が書かれた時点では Zend のスレッドセーフモードはまだ完成していません。 - そのため、この文書ではこれ以上この機能について取り上げません。 - - - - - ディレクトリ関数およびファイル関数 - - Zend モジュール内では、以下のディレクトリ関数およびファイル関数を使用しなければなりません。 - これらの関数の機能はそれぞれ対応する C 関数と同じですが、 - さらにスレッドレベルでの仮想実行ディレクトリがサポートされています。 - - - - - - - Zend 関数 - 標準 C 関数 - - - V_GETCWD - getcwd - - - V_FOPEN - fopen - - - V_OPEN - open - - - V_CHDIR - chdir - - - V_GETWD - getwd - - - V_CHDIR_FILE - - ファイルのパスを引数として受け取り、 - 現在の実行ディレクトリをそのファイルのディレクトリに移動します。 - - - - V_STAT - stat - - - V_LSTAT - lstat - - - - - - - - 文字列の処理 - - Zend エンジンでは、文字列はその他の値 - (整数値、論理値など) と少し異なる方法で処理されます。 - これらの値を保存するために、追加のメモリを確保する必要はありません。 - 関数から文字列を返したい場合は、新しい文字列変数を - シンボルテーブルかそれに類似のものに登録します。 - その文字列が使用するメモリは、先ほど説明した e* - 関数で事前に確保しておかなければなりません - (この段階では、まだあまりピンとこないかもしれません。 - とりあえずは頭の片隅に置いておいてください。あとでもう一度説明します)。 - - - - - 複雑な型 - - 配列やオブジェクトのような複雑な型については、扱いかたが異なります。 - Zend はこれらの型を扱うための API を提供しており、 - これらの型はハッシュテーブルとして保存されます。 - - - - これ以降のサンプルソースでは、 - 読みやすさを考慮して integer などの単純な型のみを使用します。 - より高度な型を作成する方法については、この章の後半で説明します。 - - - - - diff --git a/internals2/ze1/zendapi/macros/display_ini_entries.xml b/internals2/ze1/zendapi/macros/display_ini_entries.xml deleted file mode 100644 index 62e4ce744a..0000000000 --- a/internals2/ze1/zendapi/macros/display_ini_entries.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - DISPLAY_INI_ENTRIES - ... - - - - &reftitle.description; - #include <zend_ini.h> - - DISPLAY_INI_ENTRIES - ... - - - ... - - - - - &reftitle.parameters; - - - - - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/ini_bool.xml b/internals2/ze1/zendapi/macros/ini_bool.xml deleted file mode 100644 index a2d044b0c2..0000000000 --- a/internals2/ze1/zendapi/macros/ini_bool.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - INI_BOOL - ... - - - - &reftitle.description; - #include <zend_ini.h> - - longINI_BOOL - ...name) ((zend_bool - - - ... - - - - - &reftitle.parameters; - - - - name) ((zend_bool - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/ini_flt.xml b/internals2/ze1/zendapi/macros/ini_flt.xml deleted file mode 100644 index 2c543a3242..0000000000 --- a/internals2/ze1/zendapi/macros/ini_flt.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - INI_FLT - ... - - - - &reftitle.description; - #include <zend_ini.h> - - doubleINI_FLT - char*name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/ini_int.xml b/internals2/ze1/zendapi/macros/ini_int.xml deleted file mode 100644 index a994c0962e..0000000000 --- a/internals2/ze1/zendapi/macros/ini_int.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - INI_INT - ... - - - - &reftitle.description; - #include <zend_ini.h> - - longINI_INT - char*name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/ini_orig_bool.xml b/internals2/ze1/zendapi/macros/ini_orig_bool.xml deleted file mode 100644 index 8ecbbf859a..0000000000 --- a/internals2/ze1/zendapi/macros/ini_orig_bool.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - INI_ORIG_BOOL - ... - - - - &reftitle.description; - #include <zend_ini.h> - - longINI_ORIG_BOOL - ...name) ((zend_bool - - - ... - - - - - &reftitle.parameters; - - - - name) ((zend_bool - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/ini_orig_flt.xml b/internals2/ze1/zendapi/macros/ini_orig_flt.xml deleted file mode 100644 index 9f24f46689..0000000000 --- a/internals2/ze1/zendapi/macros/ini_orig_flt.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - INI_ORIG_FLT - ... - - - - &reftitle.description; - #include <zend_ini.h> - - doubleINI_ORIG_FLT - char*name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/ini_orig_int.xml b/internals2/ze1/zendapi/macros/ini_orig_int.xml deleted file mode 100644 index 9ab01f5d64..0000000000 --- a/internals2/ze1/zendapi/macros/ini_orig_int.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - INI_ORIG_INT - ... - - - - &reftitle.description; - #include <zend_ini.h> - - longINI_ORIG_INT - char*name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/ini_orig_str.xml b/internals2/ze1/zendapi/macros/ini_orig_str.xml deleted file mode 100644 index 793d2afe3c..0000000000 --- a/internals2/ze1/zendapi/macros/ini_orig_str.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - INI_ORIG_STR - ... - - - - &reftitle.description; - #include <zend_ini.h> - - char*INI_ORIG_STR - char*name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/ini_str.xml b/internals2/ze1/zendapi/macros/ini_str.xml deleted file mode 100644 index 29fed6d325..0000000000 --- a/internals2/ze1/zendapi/macros/ini_str.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - INI_STR - ... - - - - &reftitle.description; - #include <zend_ini.h> - - char*INI_STR - char*name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/register_double_constant.xml b/internals2/ze1/zendapi/macros/register_double_constant.xml deleted file mode 100644 index a72f6fedf3..0000000000 --- a/internals2/ze1/zendapi/macros/register_double_constant.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - REGISTER_DOUBLE_CONSTANT - ... - - - - &reftitle.description; - #include <zend_constants.h> - - REGISTER_DOUBLE_CONSTANT - char*name - doubledval - intflags - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - dval - - - ... - - - - - flags - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/register_ini_boolean.xml b/internals2/ze1/zendapi/macros/register_ini_boolean.xml deleted file mode 100644 index 7aafcaa1ef..0000000000 --- a/internals2/ze1/zendapi/macros/register_ini_boolean.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - REGISTER_INI_BOOLEAN - ... - - - - &reftitle.description; - #include <zend_ini.h> - - intREGISTER_INI_BOOLEAN - char*name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/register_ini_displayer.xml b/internals2/ze1/zendapi/macros/register_ini_displayer.xml deleted file mode 100644 index 89474361b3..0000000000 --- a/internals2/ze1/zendapi/macros/register_ini_displayer.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - REGISTER_INI_DISPLAYER - ... - - - - &reftitle.description; - #include <zend_ini.h> - - intREGISTER_INI_DISPLAYER - char*name - ...displayer - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - displayer - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/register_ini_entries.xml b/internals2/ze1/zendapi/macros/register_ini_entries.xml deleted file mode 100644 index a26a5e5b83..0000000000 --- a/internals2/ze1/zendapi/macros/register_ini_entries.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - REGISTER_INI_ENTRIES - ... - - - - &reftitle.description; - #include <zend_ini.h> - - intREGISTER_INI_ENTRIES - ... - - - ... - - - - - &reftitle.parameters; - - - - - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/register_long_constant.xml b/internals2/ze1/zendapi/macros/register_long_constant.xml deleted file mode 100644 index 91be229dfb..0000000000 --- a/internals2/ze1/zendapi/macros/register_long_constant.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - REGISTER_LONG_CONSTANT - ... - - - - &reftitle.description; - #include <zend_constants.h> - - REGISTER_LONG_CONSTANT - char*name - longlval - intflags - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - lval - - - ... - - - - - flags - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/register_main_double_constant.xml b/internals2/ze1/zendapi/macros/register_main_double_constant.xml deleted file mode 100644 index 9fac68d958..0000000000 --- a/internals2/ze1/zendapi/macros/register_main_double_constant.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - REGISTER_MAIN_DOUBLE_CONSTANT - ... - - - - &reftitle.description; - #include <zend_constants.h> - - REGISTER_MAIN_DOUBLE_CONSTANT - char*name - doubledval - intflags - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - dval - - - ... - - - - - flags - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/register_main_long_constant.xml b/internals2/ze1/zendapi/macros/register_main_long_constant.xml deleted file mode 100644 index 5676f29006..0000000000 --- a/internals2/ze1/zendapi/macros/register_main_long_constant.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - REGISTER_MAIN_LONG_CONSTANT - ... - - - - &reftitle.description; - #include <zend_constants.h> - - REGISTER_MAIN_LONG_CONSTANT - char*name - longlval - intflags - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - lval - - - ... - - - - - flags - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/register_main_string_constant.xml b/internals2/ze1/zendapi/macros/register_main_string_constant.xml deleted file mode 100644 index adac44eac6..0000000000 --- a/internals2/ze1/zendapi/macros/register_main_string_constant.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - REGISTER_MAIN_STRING_CONSTANT - ... - - - - &reftitle.description; - #include <zend_constants.h> - - REGISTER_MAIN_STRING_CONSTANT - char*name - ...str - intflags - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - str - - - ... - - - - - flags - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/register_main_stringl_constant.xml b/internals2/ze1/zendapi/macros/register_main_stringl_constant.xml deleted file mode 100644 index 1ee45ace9f..0000000000 --- a/internals2/ze1/zendapi/macros/register_main_stringl_constant.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - REGISTER_MAIN_STRINGL_CONSTANT - ... - - - - &reftitle.description; - #include <zend_constants.h> - - REGISTER_MAIN_STRINGL_CONSTANT - char*name - ...str - ...len - intflags - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - str - - - ... - - - - - len - - - ... - - - - - flags - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/register_string_constant.xml b/internals2/ze1/zendapi/macros/register_string_constant.xml deleted file mode 100644 index 3c8bb17828..0000000000 --- a/internals2/ze1/zendapi/macros/register_string_constant.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - REGISTER_STRING_CONSTANT - ... - - - - &reftitle.description; - #include <zend_constants.h> - - REGISTER_STRING_CONSTANT - char*name - ...str - intflags - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - str - - - ... - - - - - flags - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/register_stringl_constant.xml b/internals2/ze1/zendapi/macros/register_stringl_constant.xml deleted file mode 100644 index 6c70e8eb6c..0000000000 --- a/internals2/ze1/zendapi/macros/register_stringl_constant.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - REGISTER_STRINGL_CONSTANT - ... - - - - &reftitle.description; - #include <zend_constants.h> - - REGISTER_STRINGL_CONSTANT - char*name - ...str - ...len - intflags - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - str - - - ... - - - - - len - - - ... - - - - - flags - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_ascii_string.xml b/internals2/ze1/zendapi/macros/return_ascii_string.xml deleted file mode 100644 index c3416f7498..0000000000 --- a/internals2/ze1/zendapi/macros/return_ascii_string.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - RETURN_ASCII_STRING - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_ASCII_STRING - ???t - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - t - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_ascii_stringl.xml b/internals2/ze1/zendapi/macros/return_ascii_stringl.xml deleted file mode 100644 index 3af8948106..0000000000 --- a/internals2/ze1/zendapi/macros/return_ascii_stringl.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - RETURN_ASCII_STRINGL - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_ASCII_STRINGL - ???t - ???l - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - t - - - ... - - - - - l - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_binary.xml b/internals2/ze1/zendapi/macros/return_binary.xml deleted file mode 100644 index 750df62982..0000000000 --- a/internals2/ze1/zendapi/macros/return_binary.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - RETURN_BINARY - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_BINARY - ???s - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - s - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_binaryl.xml b/internals2/ze1/zendapi/macros/return_binaryl.xml deleted file mode 100644 index fca4f2438f..0000000000 --- a/internals2/ze1/zendapi/macros/return_binaryl.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - RETURN_BINARYL - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_BINARYL - ???s - ???l - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - s - - - ... - - - - - l - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_bool.xml b/internals2/ze1/zendapi/macros/return_bool.xml deleted file mode 100644 index 5cb2710d44..0000000000 --- a/internals2/ze1/zendapi/macros/return_bool.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - RETURN_BOOL - bool 値を関数から返す - - - - &reftitle.description; - #include <zend_API.h> - - RETURN_BOOL - zend_boolb - - - RETURN_BOOL は、 - 指定した関数の return_value - に b を設定し、呼び出し元の関数に制御を戻します。 - - - - - &reftitle.parameters; - - - - b - - - 返す bool 値。 - - - - - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_double.xml b/internals2/ze1/zendapi/macros/return_double.xml deleted file mode 100644 index 84807f2c8f..0000000000 --- a/internals2/ze1/zendapi/macros/return_double.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - RETURN_DOUBLE - double 値を関数から返す - - - - &reftitle.description; - #include <zend_API.h> - - RETURN_DOUBLE - doubled - - - RETURN_DOUBLE は、 - 指定した関数の return_value - に d を設定し、呼び出し元の関数に制御を戻します。 - - - - - &reftitle.parameters; - - - - d - - - 返す double 値。 - - - - - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_empty_binary.xml b/internals2/ze1/zendapi/macros/return_empty_binary.xml deleted file mode 100644 index 182fe35521..0000000000 --- a/internals2/ze1/zendapi/macros/return_empty_binary.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - RETURN_EMPTY_BINARY - ... - - - - &reftitle.description; - #include <zend_API.h> - - RETURN_EMPTY_BINARY - - - ... - - - - - &reftitle.parameters; - - - - - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_empty_string.xml b/internals2/ze1/zendapi/macros/return_empty_string.xml deleted file mode 100644 index 4e89253b6e..0000000000 --- a/internals2/ze1/zendapi/macros/return_empty_string.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - RETURN_EMPTY_STRING - 空の string 値を関数から返す - - - - &reftitle.description; - #include <zend_API.h> - - RETURN_EMPTY_STRING - - - この関数は、空の文字列を返します。 - 事前に文字列を作成する必要はありません。 - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_empty_unicode.xml b/internals2/ze1/zendapi/macros/return_empty_unicode.xml deleted file mode 100644 index 866b4404e1..0000000000 --- a/internals2/ze1/zendapi/macros/return_empty_unicode.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - RETURN_EMPTY_UNICODE - ... - - - - &reftitle.description; - #include <zend_API.h> - - RETURN_EMPTY_UNICODE - - - ... - - - - - &reftitle.parameters; - - - - - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_long.xml b/internals2/ze1/zendapi/macros/return_long.xml deleted file mode 100644 index 96a897ab6b..0000000000 --- a/internals2/ze1/zendapi/macros/return_long.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - RETURN_LONG - long 値を関数から返す - - - - &reftitle.description; - #include <zend_API.h> - - RETURN_LONG - longl - - - RETURN_LONG は、 - 指定した関数の return_value - に l を設定し、呼び出し元の関数に制御を戻します。 - - - - - &reftitle.parameters; - - - - l - - - 返す long 値。 - - - - - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_null.xml b/internals2/ze1/zendapi/macros/return_null.xml deleted file mode 100644 index 7d5dcdb94f..0000000000 --- a/internals2/ze1/zendapi/macros/return_null.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - RETURN_NULL - null 値を関数から返す - - - - &reftitle.description; - #include <zend_API.h> - - RETURN_NULL - - - RETURN_BOOL は、 - 指定した関数の return_value - に &null; を設定し、呼び出し元の関数に制御を戻します。 - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_resource.xml b/internals2/ze1/zendapi/macros/return_resource.xml deleted file mode 100644 index b18b8e7537..0000000000 --- a/internals2/ze1/zendapi/macros/return_resource.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - RETURN_RESOURCE - resource を関数から返す - - - - &reftitle.description; - #include <zend_API.h> - - RETURN_RESOURCE - resourcer - - - RETURN_RESOURCE は、 - 指定した関数の return_value - に r を設定し、呼び出し元の関数に制御を戻します。 - - - - - &reftitle.parameters; - - - - r - - - 返すリソース。 - - - - - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_rt_string.xml b/internals2/ze1/zendapi/macros/return_rt_string.xml deleted file mode 100644 index 0c4712537c..0000000000 --- a/internals2/ze1/zendapi/macros/return_rt_string.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - RETURN_RT_STRING - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_RT_STRING - ???t - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - t - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_rt_stringl.xml b/internals2/ze1/zendapi/macros/return_rt_stringl.xml deleted file mode 100644 index 2c15ea0595..0000000000 --- a/internals2/ze1/zendapi/macros/return_rt_stringl.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - RETURN_RT_STRINGL - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_RT_STRINGL - ???t - ???l - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - t - - - ... - - - - - l - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_string.xml b/internals2/ze1/zendapi/macros/return_string.xml deleted file mode 100644 index 9eadf656b7..0000000000 --- a/internals2/ze1/zendapi/macros/return_string.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - RETURN_STRING - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_STRING - ???s - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - s - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_stringl.xml b/internals2/ze1/zendapi/macros/return_stringl.xml deleted file mode 100644 index 9dbb0d25eb..0000000000 --- a/internals2/ze1/zendapi/macros/return_stringl.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - RETURN_STRINGL - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_STRINGL - ???s - ???l - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - s - - - ... - - - - - l - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_text.xml b/internals2/ze1/zendapi/macros/return_text.xml deleted file mode 100644 index 3a1044810a..0000000000 --- a/internals2/ze1/zendapi/macros/return_text.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - RETURN_TEXT - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_TEXT - ???t - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - t - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_textl.xml b/internals2/ze1/zendapi/macros/return_textl.xml deleted file mode 100644 index ddddd63045..0000000000 --- a/internals2/ze1/zendapi/macros/return_textl.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - RETURN_TEXTL - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_TEXTL - ???t - ???l - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - t - - - ... - - - - - l - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_u_string.xml b/internals2/ze1/zendapi/macros/return_u_string.xml deleted file mode 100644 index 8d6d1b307f..0000000000 --- a/internals2/ze1/zendapi/macros/return_u_string.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - RETURN_U_STRING - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_U_STRING - ???conv - ???t - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - conv - - - ... - - - - - t - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_u_stringl.xml b/internals2/ze1/zendapi/macros/return_u_stringl.xml deleted file mode 100644 index 5a29a5da61..0000000000 --- a/internals2/ze1/zendapi/macros/return_u_stringl.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - RETURN_U_STRINGL - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_U_STRINGL - ???conv - ???t - ???l - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - conv - - - ... - - - - - t - - - ... - - - - - l - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_unicode.xml b/internals2/ze1/zendapi/macros/return_unicode.xml deleted file mode 100644 index ed689478d2..0000000000 --- a/internals2/ze1/zendapi/macros/return_unicode.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - RETURN_UNICODE - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_UNICODE - ???u - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - u - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_unicodel.xml b/internals2/ze1/zendapi/macros/return_unicodel.xml deleted file mode 100644 index 4b3552d491..0000000000 --- a/internals2/ze1/zendapi/macros/return_unicodel.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - RETURN_UNICODEL - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???RETURN_UNICODEL - ???u - ???l - ???duplicate - - - ... - - - - - &reftitle.parameters; - - - - u - - - ... - - - - - l - - - ... - - - - - duplicate - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/return_zval.xml b/internals2/ze1/zendapi/macros/return_zval.xml deleted file mode 100644 index 945df7733b..0000000000 --- a/internals2/ze1/zendapi/macros/return_zval.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - RETURN_ZVAL - zval 値を関数から返す - - - - &reftitle.description; - #include <zend_API.h> - - RETURN_ZVAL - zval *zv - boolcopy - booldtor - - - ... - - - - - &reftitle.parameters; - - - - zv - - - 返す zval へのポインタ。 - - - - - copy - - - 返す前に zv のコピーを作成するかどうか。 - - - - - dtor - - - 関数から返す前に元の値を破棄する。これは、 - 関数内で一時的に zv - を作成した際に必要となります。 - - - - - - - - - - diff --git a/internals2/ze1/zendapi/macros/unregister_ini_entries.xml b/internals2/ze1/zendapi/macros/unregister_ini_entries.xml deleted file mode 100644 index bb9ea7fb4b..0000000000 --- a/internals2/ze1/zendapi/macros/unregister_ini_entries.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - UNREGISTER_INI_ENTRIES - ... - - - - &reftitle.description; - #include <zend_ini.h> - - UNREGISTER_INI_ENTRIES - ... - - - ... - - - - - &reftitle.parameters; - - - - - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_arrval.xml b/internals2/ze1/zendapi/macros/z_arrval.xml deleted file mode 100644 index 2593b7c8b9..0000000000 --- a/internals2/ze1/zendapi/macros/z_arrval.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_ARRVAL - ... - - - - &reftitle.description; - #include <zend_operators.h> - - HashTableZ_ARRVAL - zvalzval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_arrval_p.xml b/internals2/ze1/zendapi/macros/z_arrval_p.xml deleted file mode 100644 index d88fc98dc3..0000000000 --- a/internals2/ze1/zendapi/macros/z_arrval_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_ARRVAL_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - HashTableZ_ARRVAL_P - zval *zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_arrval_pp.xml b/internals2/ze1/zendapi/macros/z_arrval_pp.xml deleted file mode 100644 index f3376bb10e..0000000000 --- a/internals2/ze1/zendapi/macros/z_arrval_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_ARRVAL_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - HashTableZ_ARRVAL_PP - zval **zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_binlen.xml b/internals2/ze1/zendapi/macros/z_binlen.xml deleted file mode 100644 index e30c3f895e..0000000000 --- a/internals2/ze1/zendapi/macros/z_binlen.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_BINLEN - ... - - - - &reftitle.description; - #include <zend_operators.h> - - char *Z_BINLEN - zvalzval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_binlen_p.xml b/internals2/ze1/zendapi/macros/z_binlen_p.xml deleted file mode 100644 index 02e2d3ff57..0000000000 --- a/internals2/ze1/zendapi/macros/z_binlen_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_BINLEN_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - char *Z_BINLEN_P - zval *zval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_binlen_pp.xml b/internals2/ze1/zendapi/macros/z_binlen_pp.xml deleted file mode 100644 index c748047fa1..0000000000 --- a/internals2/ze1/zendapi/macros/z_binlen_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_BINLEN_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - char *Z_BINLEN_PP - zval **zval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_binval.xml b/internals2/ze1/zendapi/macros/z_binval.xml deleted file mode 100644 index 536b6b4073..0000000000 --- a/internals2/ze1/zendapi/macros/z_binval.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_BINVAL - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_BINVAL - ???zval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_binval_p.xml b/internals2/ze1/zendapi/macros/z_binval_p.xml deleted file mode 100644 index 9f5a22e7c5..0000000000 --- a/internals2/ze1/zendapi/macros/z_binval_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_BINVAL_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_BINVAL_P - ???zval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_binval_pp.xml b/internals2/ze1/zendapi/macros/z_binval_pp.xml deleted file mode 100644 index 76df7cb8ec..0000000000 --- a/internals2/ze1/zendapi/macros/z_binval_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_BINVAL_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_BINVAL_PP - ???zval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_bval.xml b/internals2/ze1/zendapi/macros/z_bval.xml deleted file mode 100644 index a2bfa34023..0000000000 --- a/internals2/ze1/zendapi/macros/z_bval.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - Z_BVAL - zvallval 要素を bool で返す - - - - &reftitle.description; - #include <zend_operators.h> - - zend_boolZ_BVAL - zvalzv - - - Z_BVAL は、zv の - lval 要素を zend_bool - にキャストしたものを返します。 - - - - - &reftitle.parameters; - - - - zv - - - 結果を取り出す zval 構造体。 - - - - - - - - - &reftitle.returnvalues; - - zv の - lval 要素を zend_bool - にキャストしたものを返します。これは - &true; あるいは &false; のいずれかとなります。 - - - - - &reftitle.seealso; - - zvallval フィールドに - zend_bool としてアクセスするその他のマクロについては - Z_BVAL_P および Z_BVAL_PP - を参照ください。 - - - zval ** からその他の値を取り出すマクロについては - Z_ARRVAL, Z_BINLEN, - Z_BINVAL, , - Z_DVAL, Z_LVAL, - Z_OBJCE, Z_OBJ_HANDLE, - Z_OBJ_HANDLER, Z_OBJ_HT, - Z_OBJPROP, Z_OBJVAL, - Z_RESVAL, Z_STRLEN, - Z_STRVAL, Z_TYPE, - Z_UNILEN, Z_UNIVAL, - Z_USTRCPLEN, Z_USTRLEN, - および Z_USTRVAL を参照ください。 - - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_bval_p.xml b/internals2/ze1/zendapi/macros/z_bval_p.xml deleted file mode 100644 index 3cb1688217..0000000000 --- a/internals2/ze1/zendapi/macros/z_bval_p.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - Z_BVAL_P - zval ポインタが指す先の lval 要素を bool で返す - - - - &reftitle.description; - #include <zend_operators.h> - - zend_boolZ_BVAL_P - zval *zval_p - - - Z_BVAL_P は、zval_p - が指す先の zval 構造体の - lval 要素を zend_bool - にキャストしたものを返します。 - - - - - &reftitle.parameters; - - - - zval_p - - - 結果を取り出す zval 構造体へのポインタ。 - - - - - - - - - &reftitle.returnvalues; - - zval_p が指す先の zval 構造体の - lval 要素を zend_bool - にキャストしたものを返します。これは - &true; あるいは &false; のいずれかとなります。 - - - - - &reftitle.seealso; - - zvallval フィールドに - zend_bool としてアクセスするその他のマクロについては - Z_BVAL および Z_BVAL_PP - を参照ください。 - - - zval ** からその他の値を取り出すマクロについては - Z_ARRVAL_P, Z_BINLEN_P, - Z_BINVAL_P, , - Z_DVAL_P, Z_LVAL_P, - Z_OBJCE_P, Z_OBJ_HANDLE_P, - Z_OBJ_HANDLER_P, Z_OBJ_HT_P, - Z_OBJPROP_P, Z_OBJVAL_P, - Z_RESVAL_P, Z_STRLEN_P, - Z_STRVAL_P, Z_TYPE_P, - Z_UNILEN_P, Z_UNIVAL_P, - Z_USTRCPLEN_P, Z_USTRLEN_P, - および Z_USTRVAL_P を参照ください。 - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_bval_pp.xml b/internals2/ze1/zendapi/macros/z_bval_pp.xml deleted file mode 100644 index 22b83d4d82..0000000000 --- a/internals2/ze1/zendapi/macros/z_bval_pp.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - Z_BVAL_PP - zval ポインタへのポインタが指す先の lval 要素を bool で返す - - - - &reftitle.description; - #include <zend_operators.h> - - zend_boolZ_BVAL_PP - zval **zval_pp - - - Z_BVAL_PP は、zval_pp - が間接的に指す先の zval 構造体の - lval 要素を zend_bool - にキャストしたものを返します。 - - - - - &reftitle.parameters; - - - - zval_pp - - - 結果を取り出す zval 構造体へのポインタへのポインタ。 - - - - - - - - - &reftitle.returnvalues; - - zval_pp が指すポインタが指す先の zval 構造体の - lval 要素を zend_bool - にキャストしたものを返します。これは - &true; あるいは &false; のいずれかとなります。 - - - - - &reftitle.seealso; - - zvallval フィールドに - zend_bool としてアクセスするその他のマクロについては - Z_BVAL および Z_BVAL_P - を参照ください。 - - - zval ** からその他の値を取り出すマクロについては - Z_ARRVAL_PP, Z_BINLEN_PP, - Z_BINVAL_PP, , - Z_DVAL_PP, Z_LVAL_PP, - Z_OBJCE_PP, Z_OBJ_HANDLE_PP, - Z_OBJ_HANDLER_PP, Z_OBJ_HT_PP, - Z_OBJPROP_PP, Z_OBJVAL_PP, - Z_RESVAL_PP, Z_STRLEN_PP, - Z_STRVAL_PP, Z_TYPE_PP, - Z_UNILEN_PP, Z_UNIVAL_PP, - Z_USTRCPLEN_PP, Z_USTRLEN_PP, - および Z_USTRVAL_PP を参照ください。 - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_dbg.xml b/internals2/ze1/zendapi/macros/z_dbg.xml deleted file mode 100644 index 5498063ef5..0000000000 --- a/internals2/ze1/zendapi/macros/z_dbg.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_DBG - ... - - - - &reftitle.description; - #include <zend.h> - - ???Z_DBG - ???expr - - - ... - - - - - &reftitle.parameters; - - - - expr - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_dval.xml b/internals2/ze1/zendapi/macros/z_dval.xml deleted file mode 100644 index efa643490c..0000000000 --- a/internals2/ze1/zendapi/macros/z_dval.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_DVAL - zval の dval 要素を返す - - - - &reftitle.description; - #include <zend_operators.h> - - doubleZ_DVAL - zvalzval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_dval_p.xml b/internals2/ze1/zendapi/macros/z_dval_p.xml deleted file mode 100644 index a814aa88c0..0000000000 --- a/internals2/ze1/zendapi/macros/z_dval_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_DVAL_P - zval ポインタが指す先の dval 要素を返す - - - - &reftitle.description; - #include <zend_operators.h> - - doubleZ_DVAL_P - zval *zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_dval_pp.xml b/internals2/ze1/zendapi/macros/z_dval_pp.xml deleted file mode 100644 index 5a1be9416c..0000000000 --- a/internals2/ze1/zendapi/macros/z_dval_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_DVAL_PP - zval ポインタへのポインタが指す先の dval 要素を返す - - - - &reftitle.description; - #include <zend_operators.h> - - doubleZ_DVAL_PP - zval **zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_lval.xml b/internals2/ze1/zendapi/macros/z_lval.xml deleted file mode 100644 index 33cd3d6efc..0000000000 --- a/internals2/ze1/zendapi/macros/z_lval.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_LVAL - ... - - - - &reftitle.description; - #include <zend_operators.h> - - longZ_LVAL - zvalzval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_lval_p.xml b/internals2/ze1/zendapi/macros/z_lval_p.xml deleted file mode 100644 index 899a538fce..0000000000 --- a/internals2/ze1/zendapi/macros/z_lval_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_LVAL_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - longZ_LVAL_P - zval *zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_lval_pp.xml b/internals2/ze1/zendapi/macros/z_lval_pp.xml deleted file mode 100644 index d8797d310a..0000000000 --- a/internals2/ze1/zendapi/macros/z_lval_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_LVAL_PP - zval ポインタへのポインタが指す先の lval 要素を返す - - - - &reftitle.description; - #include <zend_operators.h> - - longZ_LVAL_PP - zval **zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_obj_class_name_p.xml b/internals2/ze1/zendapi/macros/z_obj_class_name_p.xml deleted file mode 100644 index 3fb0245aa4..0000000000 --- a/internals2/ze1/zendapi/macros/z_obj_class_name_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJ_CLASS_NAME_P - ... - - - - &reftitle.description; - #include <zend_execute.h> - - ???Z_OBJ_CLASS_NAME_P - ???zval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_obj_handle.xml b/internals2/ze1/zendapi/macros/z_obj_handle.xml deleted file mode 100644 index 7b6623c4f1..0000000000 --- a/internals2/ze1/zendapi/macros/z_obj_handle.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJ_HANDLE - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJ_HANDLE - ???zval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_obj_handle_p.xml b/internals2/ze1/zendapi/macros/z_obj_handle_p.xml deleted file mode 100644 index fbff2ae48e..0000000000 --- a/internals2/ze1/zendapi/macros/z_obj_handle_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJ_HANDLE_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJ_HANDLE_P - ???zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_obj_handle_pp.xml b/internals2/ze1/zendapi/macros/z_obj_handle_pp.xml deleted file mode 100644 index ca4a26c11c..0000000000 --- a/internals2/ze1/zendapi/macros/z_obj_handle_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJ_HANDLE_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJ_HANDLE_PP - ???zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_obj_handler.xml b/internals2/ze1/zendapi/macros/z_obj_handler.xml deleted file mode 100644 index 34c2291af0..0000000000 --- a/internals2/ze1/zendapi/macros/z_obj_handler.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - Z_OBJ_HANDLER - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJ_HANDLER - ???zval - ???hf - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - hf - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_obj_handler_p.xml b/internals2/ze1/zendapi/macros/z_obj_handler_p.xml deleted file mode 100644 index 26a2056321..0000000000 --- a/internals2/ze1/zendapi/macros/z_obj_handler_p.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - Z_OBJ_HANDLER_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJ_HANDLER_P - ???zval_p - ???h - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - h - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_obj_handler_pp.xml b/internals2/ze1/zendapi/macros/z_obj_handler_pp.xml deleted file mode 100644 index 7be8d6af9d..0000000000 --- a/internals2/ze1/zendapi/macros/z_obj_handler_pp.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - Z_OBJ_HANDLER_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJ_HANDLER_PP - ???zval_p - ???h - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - h - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_obj_ht.xml b/internals2/ze1/zendapi/macros/z_obj_ht.xml deleted file mode 100644 index a729059d87..0000000000 --- a/internals2/ze1/zendapi/macros/z_obj_ht.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJ_HT - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJ_HT - ???zval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_obj_ht_p.xml b/internals2/ze1/zendapi/macros/z_obj_ht_p.xml deleted file mode 100644 index abdb4dc752..0000000000 --- a/internals2/ze1/zendapi/macros/z_obj_ht_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJ_HT_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJ_HT_P - ???zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_obj_ht_pp.xml b/internals2/ze1/zendapi/macros/z_obj_ht_pp.xml deleted file mode 100644 index 1f09a7261e..0000000000 --- a/internals2/ze1/zendapi/macros/z_obj_ht_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJ_HT_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJ_HT_PP - ???zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_objce.xml b/internals2/ze1/zendapi/macros/z_objce.xml deleted file mode 100644 index b5e806ada4..0000000000 --- a/internals2/ze1/zendapi/macros/z_objce.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJCE - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJCE - ???zval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_objce_p.xml b/internals2/ze1/zendapi/macros/z_objce_p.xml deleted file mode 100644 index b2c393c430..0000000000 --- a/internals2/ze1/zendapi/macros/z_objce_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJCE_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJCE_P - ???zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_objce_pp.xml b/internals2/ze1/zendapi/macros/z_objce_pp.xml deleted file mode 100644 index 2c118f1f99..0000000000 --- a/internals2/ze1/zendapi/macros/z_objce_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJCE_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJCE_PP - ???zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_objprop.xml b/internals2/ze1/zendapi/macros/z_objprop.xml deleted file mode 100644 index a8621a9ac7..0000000000 --- a/internals2/ze1/zendapi/macros/z_objprop.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJPROP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJPROP - ???zval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_objprop_p.xml b/internals2/ze1/zendapi/macros/z_objprop_p.xml deleted file mode 100644 index 3cf250193a..0000000000 --- a/internals2/ze1/zendapi/macros/z_objprop_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJPROP_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJPROP_P - ???zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_objprop_pp.xml b/internals2/ze1/zendapi/macros/z_objprop_pp.xml deleted file mode 100644 index 7d31cd0d6d..0000000000 --- a/internals2/ze1/zendapi/macros/z_objprop_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJPROP_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJPROP_PP - ???zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_objval.xml b/internals2/ze1/zendapi/macros/z_objval.xml deleted file mode 100644 index 1129677e40..0000000000 --- a/internals2/ze1/zendapi/macros/z_objval.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJVAL - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJVAL - ???zval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_objval_p.xml b/internals2/ze1/zendapi/macros/z_objval_p.xml deleted file mode 100644 index ca8c11165c..0000000000 --- a/internals2/ze1/zendapi/macros/z_objval_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJVAL_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJVAL_P - ???zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_objval_pp.xml b/internals2/ze1/zendapi/macros/z_objval_pp.xml deleted file mode 100644 index 835f8e934d..0000000000 --- a/internals2/ze1/zendapi/macros/z_objval_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_OBJVAL_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_OBJVAL_PP - ???zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_resval.xml b/internals2/ze1/zendapi/macros/z_resval.xml deleted file mode 100644 index 38adf2883b..0000000000 --- a/internals2/ze1/zendapi/macros/z_resval.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_RESVAL - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_RESVAL - ???zval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_resval_p.xml b/internals2/ze1/zendapi/macros/z_resval_p.xml deleted file mode 100644 index d180ac81f1..0000000000 --- a/internals2/ze1/zendapi/macros/z_resval_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_RESVAL_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_RESVAL_P - ???zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_resval_pp.xml b/internals2/ze1/zendapi/macros/z_resval_pp.xml deleted file mode 100644 index 92e3b4d46c..0000000000 --- a/internals2/ze1/zendapi/macros/z_resval_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_RESVAL_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - ???Z_RESVAL_PP - ???zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_strlen.xml b/internals2/ze1/zendapi/macros/z_strlen.xml deleted file mode 100644 index a26491e9ae..0000000000 --- a/internals2/ze1/zendapi/macros/z_strlen.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_STRLEN - ... - - - - &reftitle.description; - #include <zend_operators.h> - - intZ_STRLEN - zvalzval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_strlen_p.xml b/internals2/ze1/zendapi/macros/z_strlen_p.xml deleted file mode 100644 index 670b4997a0..0000000000 --- a/internals2/ze1/zendapi/macros/z_strlen_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_STRLEN_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - intZ_STRLEN_P - zval *zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_strlen_pp.xml b/internals2/ze1/zendapi/macros/z_strlen_pp.xml deleted file mode 100644 index ac49d039f4..0000000000 --- a/internals2/ze1/zendapi/macros/z_strlen_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_STRLEN_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - intZ_STRLEN_PP - zval **zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_strval.xml b/internals2/ze1/zendapi/macros/z_strval.xml deleted file mode 100644 index a38303ea60..0000000000 --- a/internals2/ze1/zendapi/macros/z_strval.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_STRVAL - ... - - - - &reftitle.description; - #include <zend_operators.h> - - char *Z_STRVAL - zvalzval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_strval_p.xml b/internals2/ze1/zendapi/macros/z_strval_p.xml deleted file mode 100644 index f7c4716a23..0000000000 --- a/internals2/ze1/zendapi/macros/z_strval_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_STRVAL_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - char *Z_STRVAL_P - zval *zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_strval_pp.xml b/internals2/ze1/zendapi/macros/z_strval_pp.xml deleted file mode 100644 index 93e4e2d001..0000000000 --- a/internals2/ze1/zendapi/macros/z_strval_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_STRVAL_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - char *Z_STRVAL_PP - zval **zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_type.xml b/internals2/ze1/zendapi/macros/z_type.xml deleted file mode 100644 index bad49f5a72..0000000000 --- a/internals2/ze1/zendapi/macros/z_type.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_TYPE - zval の type フィールドを取得する - - - - &reftitle.description; - #include <zend_operators.h> - - zend_ucharZ_TYPE - zvalzv - - - zval の type フィールドを返します。 - - - - - &reftitle.parameters; - - - - zv - - - zval 構造体。 - - - - - - - - - &reftitle.returnvalues; - - zv の type フィールドを返します。 - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_type_p.xml b/internals2/ze1/zendapi/macros/z_type_p.xml deleted file mode 100644 index 03d09a48f0..0000000000 --- a/internals2/ze1/zendapi/macros/z_type_p.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - Z_TYPE_P - zval ポインタから type フィールドを取得する - - - - &reftitle.description; - #include <zend_operators.h> - - zend_ucharZ_TYPE_P - zval *zval_p - - - zval_p が指す先の - zval 構造体から type フィールドを返します。 - - - - - &reftitle.parameters; - - - - zval_p - - - zval へのポインタ。 - - - - - - - - - &reftitle.returnvalues; - - zval の type を返します。 - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_type_pp.xml b/internals2/ze1/zendapi/macros/z_type_pp.xml deleted file mode 100644 index 8f32f61c6a..0000000000 --- a/internals2/ze1/zendapi/macros/z_type_pp.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - Z_TYPE_PP - zval ポインタのポインタから type フィールドを取得する - - - - &reftitle.description; - #include <zend_operators.h> - - zend_ucharZ_TYPE_PP - zval **zval_pp - - - zval_pp が指す先のポインタが指す - zval 構造体から type フィールドを返します。 - - - - - &reftitle.parameters; - - - - zval_pp - - - zval 構造体へのポインタへのポインタ。 - - - - - - - - - &reftitle.returnvalues; - - zval の type を返します。 - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_unilen.xml b/internals2/ze1/zendapi/macros/z_unilen.xml deleted file mode 100644 index 77ae6f137a..0000000000 --- a/internals2/ze1/zendapi/macros/z_unilen.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_UNILEN - ... - - - - &reftitle.description; - #include <zend_operators.h> - - intZ_UNILEN - zvalzval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_unilen_p.xml b/internals2/ze1/zendapi/macros/z_unilen_p.xml deleted file mode 100644 index 9130c1c9cd..0000000000 --- a/internals2/ze1/zendapi/macros/z_unilen_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_UNILEN_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - intZ_UNILEN_P - zval *zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_unilen_pp.xml b/internals2/ze1/zendapi/macros/z_unilen_pp.xml deleted file mode 100644 index 8159cae4c8..0000000000 --- a/internals2/ze1/zendapi/macros/z_unilen_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_UNILEN_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - intZ_UNILEN_PP - zval **zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_unival.xml b/internals2/ze1/zendapi/macros/z_unival.xml deleted file mode 100644 index 19a8a487f3..0000000000 --- a/internals2/ze1/zendapi/macros/z_unival.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_UNIVAL - ... - - - - &reftitle.description; - #include <zend_operators.h> - - char *Z_UNIVAL - zvalzval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_unival_p.xml b/internals2/ze1/zendapi/macros/z_unival_p.xml deleted file mode 100644 index af6164cd63..0000000000 --- a/internals2/ze1/zendapi/macros/z_unival_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_UNIVAL_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - char *Z_UNIVAL_P - zval *zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_unival_pp.xml b/internals2/ze1/zendapi/macros/z_unival_pp.xml deleted file mode 100644 index db52ba5706..0000000000 --- a/internals2/ze1/zendapi/macros/z_unival_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_UNIVAL_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - char *Z_UNIVAL_PP - zval **zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_ustrcplen.xml b/internals2/ze1/zendapi/macros/z_ustrcplen.xml deleted file mode 100644 index d1fe0567a3..0000000000 --- a/internals2/ze1/zendapi/macros/z_ustrcplen.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_USTRCPLEN - ... - - - - &reftitle.description; - #include <zend_operators.h> - - int32_tZ_USTRCPLEN - zvalzval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_ustrcplen_p.xml b/internals2/ze1/zendapi/macros/z_ustrcplen_p.xml deleted file mode 100644 index 5d94511bf6..0000000000 --- a/internals2/ze1/zendapi/macros/z_ustrcplen_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_USTRCPLEN_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - int32_tZ_USTRCPLEN_P - zval *zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_ustrcplen_pp.xml b/internals2/ze1/zendapi/macros/z_ustrcplen_pp.xml deleted file mode 100644 index e71909f7ed..0000000000 --- a/internals2/ze1/zendapi/macros/z_ustrcplen_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_USTRCPLEN_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - int32_tZ_USTRCPLEN_PP - zval **zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_ustrlen.xml b/internals2/ze1/zendapi/macros/z_ustrlen.xml deleted file mode 100644 index 1c632fc792..0000000000 --- a/internals2/ze1/zendapi/macros/z_ustrlen.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_USTRLEN - ... - - - - &reftitle.description; - #include <zend_operators.h> - - int32_tZ_USTRLEN - zvalzval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_ustrlen_p.xml b/internals2/ze1/zendapi/macros/z_ustrlen_p.xml deleted file mode 100644 index 3d67365ad8..0000000000 --- a/internals2/ze1/zendapi/macros/z_ustrlen_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_USTRLEN_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - int32_tZ_USTRLEN_P - zval *zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_ustrlen_pp.xml b/internals2/ze1/zendapi/macros/z_ustrlen_pp.xml deleted file mode 100644 index 020fac01ca..0000000000 --- a/internals2/ze1/zendapi/macros/z_ustrlen_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_USTRLEN_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - int32_tZ_USTRLEN_PP - zval **zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_ustrval.xml b/internals2/ze1/zendapi/macros/z_ustrval.xml deleted file mode 100644 index 772d41878c..0000000000 --- a/internals2/ze1/zendapi/macros/z_ustrval.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_USTRVAL - ... - - - - &reftitle.description; - #include <zend_operators.h> - - UChar *Z_USTRVAL - zvalzval - - - ... - - - - - &reftitle.parameters; - - - - zval - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_ustrval_p.xml b/internals2/ze1/zendapi/macros/z_ustrval_p.xml deleted file mode 100644 index 66f83148c2..0000000000 --- a/internals2/ze1/zendapi/macros/z_ustrval_p.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_USTRVAL_P - ... - - - - &reftitle.description; - #include <zend_operators.h> - - UChar *Z_USTRVAL_P - zval *zval_p - - - ... - - - - - &reftitle.parameters; - - - - zval_p - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/z_ustrval_pp.xml b/internals2/ze1/zendapi/macros/z_ustrval_pp.xml deleted file mode 100644 index e97db03a90..0000000000 --- a/internals2/ze1/zendapi/macros/z_ustrval_pp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Z_USTRVAL_PP - ... - - - - &reftitle.description; - #include <zend_operators.h> - - UChar *Z_USTRVAL_PP - zval **zval_pp - - - ... - - - - - &reftitle.parameters; - - - - zval_pp - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_abstract_me.xml b/internals2/ze1/zendapi/macros/zend_abstract_me.xml deleted file mode 100644 index 9da6f82cd8..0000000000 --- a/internals2/ze1/zendapi/macros/zend_abstract_me.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - ZEND_ABSTRACT_ME - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_ABSTRACT_ME - ???classname - ???name - ???arg_info - - - ... - - - - - &reftitle.parameters; - - - - classname - - - ... - - - - - name - - - ... - - - - - arg_info - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_arg_array_info.xml b/internals2/ze1/zendapi/macros/zend_arg_array_info.xml deleted file mode 100644 index 388b1917bd..0000000000 --- a/internals2/ze1/zendapi/macros/zend_arg_array_info.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - ZEND_ARG_ARRAY_INFO - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_ARG_ARRAY_INFO - ???pass_by_ref - ???name - ???allow_null - - - ... - - - - - &reftitle.parameters; - - - - pass_by_ref - - - ... - - - - - name - - - ... - - - - - allow_null - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_arg_info.xml b/internals2/ze1/zendapi/macros/zend_arg_info.xml deleted file mode 100644 index d77f7fafbd..0000000000 --- a/internals2/ze1/zendapi/macros/zend_arg_info.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - ZEND_ARG_INFO - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_ARG_INFO - ???pass_by_ref - ???name - - - ... - - - - - &reftitle.parameters; - - - - pass_by_ref - - - ... - - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_arg_obj_info.xml b/internals2/ze1/zendapi/macros/zend_arg_obj_info.xml deleted file mode 100644 index 61ac0dffc5..0000000000 --- a/internals2/ze1/zendapi/macros/zend_arg_obj_info.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - ZEND_ARG_OBJ_INFO - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_ARG_OBJ_INFO - ???pass_by_ref - ???name - ???classname - ???allow_null - - - ... - - - - - &reftitle.parameters; - - - - pass_by_ref - - - ... - - - - - name - - - ... - - - - - classname - - - ... - - - - - allow_null - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_arg_pass_info.xml b/internals2/ze1/zendapi/macros/zend_arg_pass_info.xml deleted file mode 100644 index a903b5916c..0000000000 --- a/internals2/ze1/zendapi/macros/zend_arg_pass_info.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_ARG_PASS_INFO - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_ARG_PASS_INFO - ???pass_by_ref - - - ... - - - - - &reftitle.parameters; - - - - pass_by_ref - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_begin_arg_info.xml b/internals2/ze1/zendapi/macros/zend_begin_arg_info.xml deleted file mode 100644 index 1cc19a4185..0000000000 --- a/internals2/ze1/zendapi/macros/zend_begin_arg_info.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - ZEND_BEGIN_ARG_INFO - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_BEGIN_ARG_INFO - ???name - ???pass_rest_by_reference - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - pass_rest_by_reference - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_begin_arg_info_ex.xml b/internals2/ze1/zendapi/macros/zend_begin_arg_info_ex.xml deleted file mode 100644 index ffebad3120..0000000000 --- a/internals2/ze1/zendapi/macros/zend_begin_arg_info_ex.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - ZEND_BEGIN_ARG_INFO_EX - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_BEGIN_ARG_INFO_EX - ???name - ???pass_rest_by_reference - ???return_reference - ???required_num_args - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - pass_rest_by_reference - - - ... - - - - - return_reference - - - ... - - - - - required_num_args - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_begin_module_globals.xml b/internals2/ze1/zendapi/macros/zend_begin_module_globals.xml deleted file mode 100644 index 83c1e9add6..0000000000 --- a/internals2/ze1/zendapi/macros/zend_begin_module_globals.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_BEGIN_MODULE_GLOBALS - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_BEGIN_MODULE_GLOBALS - ???module_name - - - ... - - - - - &reftitle.parameters; - - - - module_name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_coll_result.xml b/internals2/ze1/zendapi/macros/zend_coll_result.xml deleted file mode 100644 index 362ca64cfd..0000000000 --- a/internals2/ze1/zendapi/macros/zend_coll_result.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_COLL_RESULT - ... - - - - &reftitle.description; - #include <zend.h> - - ???ZEND_COLL_RESULT - ???n - - - ... - - - - - &reftitle.parameters; - - - - n - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_declare_module_globals.xml b/internals2/ze1/zendapi/macros/zend_declare_module_globals.xml deleted file mode 100644 index 4c2026a947..0000000000 --- a/internals2/ze1/zendapi/macros/zend_declare_module_globals.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_DECLARE_MODULE_GLOBALS - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_DECLARE_MODULE_GLOBALS - ???module_name - - - ... - - - - - &reftitle.parameters; - - - - module_name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_define_property.xml b/internals2/ze1/zendapi/macros/zend_define_property.xml deleted file mode 100644 index 0843390c52..0000000000 --- a/internals2/ze1/zendapi/macros/zend_define_property.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - ZEND_DEFINE_PROPERTY - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_DEFINE_PROPERTY - ???class_ptr - ???name - ???value - ???mask - - - ... - - - - - &reftitle.parameters; - - - - class_ptr - - - ... - - - - - name - - - ... - - - - - value - - - ... - - - - - mask - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_end_arg_info.xml b/internals2/ze1/zendapi/macros/zend_end_arg_info.xml deleted file mode 100644 index f9afe83f15..0000000000 --- a/internals2/ze1/zendapi/macros/zend_end_arg_info.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_END_ARG_INFO - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_END_ARG_INFO - ??? - - - ... - - - - - &reftitle.parameters; - - - - - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_end_module_globals.xml b/internals2/ze1/zendapi/macros/zend_end_module_globals.xml deleted file mode 100644 index c333bd258c..0000000000 --- a/internals2/ze1/zendapi/macros/zend_end_module_globals.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_END_MODULE_GLOBALS - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_END_MODULE_GLOBALS - ???module_name - - - ... - - - - - &reftitle.parameters; - - - - module_name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_extern_module_globals.xml b/internals2/ze1/zendapi/macros/zend_extern_module_globals.xml deleted file mode 100644 index 803f25d5ec..0000000000 --- a/internals2/ze1/zendapi/macros/zend_extern_module_globals.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_EXTERN_MODULE_GLOBALS - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_EXTERN_MODULE_GLOBALS - ???module_name - - - ... - - - - - &reftitle.parameters; - - - - module_name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_falias.xml b/internals2/ze1/zendapi/macros/zend_falias.xml deleted file mode 100644 index e05c368089..0000000000 --- a/internals2/ze1/zendapi/macros/zend_falias.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - ZEND_FALIAS - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_FALIAS - ???name - ???alias - ???arg_info - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - alias - - - ... - - - - - arg_info - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_fe.xml b/internals2/ze1/zendapi/macros/zend_fe.xml deleted file mode 100644 index 3dc69b606f..0000000000 --- a/internals2/ze1/zendapi/macros/zend_fe.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - ZEND_FE - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_FE - ???name - ???arg_info - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - arg_info - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_fentry.xml b/internals2/ze1/zendapi/macros/zend_fentry.xml deleted file mode 100644 index fd94b8fea8..0000000000 --- a/internals2/ze1/zendapi/macros/zend_fentry.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - ZEND_FENTRY - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_FENTRY - ???zend_name - ???name - ???arg_info - ???flags - - - ... - - - - - &reftitle.parameters; - - - - zend_name - - - ... - - - - - name - - - ... - - - - - arg_info - - - ... - - - - - flags - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_fetch_resource.xml b/internals2/ze1/zendapi/macros/zend_fetch_resource.xml deleted file mode 100644 index 01997ada3c..0000000000 --- a/internals2/ze1/zendapi/macros/zend_fetch_resource.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - ZEND_FETCH_RESOURCE - ... - - - - &reftitle.description; - #include <zend_list.h> - - ???ZEND_FETCH_RESOURCE - ???rsrc - ???rsrc_type - ???passed_id - ???default_id - ???resource_type_name - ???resource_type - - - ... - - - - - &reftitle.parameters; - - - - rsrc - - - ... - - - - - rsrc_type - - - ... - - - - - passed_id - - - ... - - - - - default_id - - - ... - - - - - resource_type_name - - - ... - - - - - resource_type - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_fetch_resource2.xml b/internals2/ze1/zendapi/macros/zend_fetch_resource2.xml deleted file mode 100644 index b0abfa52a2..0000000000 --- a/internals2/ze1/zendapi/macros/zend_fetch_resource2.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - ZEND_FETCH_RESOURCE2 - ... - - - - &reftitle.description; - #include <zend_list.h> - - ???ZEND_FETCH_RESOURCE2 - ???rsrc - ???rsrc_type - ???passed_id - ???default_id - ???resource_type_name - ???resource_type1 - ???resource_type2 - - - ... - - - - - &reftitle.parameters; - - - - rsrc - - - ... - - - - - rsrc_type - - - ... - - - - - passed_id - - - ... - - - - - default_id - - - ... - - - - - resource_type_name - - - ... - - - - - resource_type1 - - - ... - - - - - resource_type2 - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_fn.xml b/internals2/ze1/zendapi/macros/zend_fn.xml deleted file mode 100644 index 33b8a3da48..0000000000 --- a/internals2/ze1/zendapi/macros/zend_fn.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_FN - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_FN - ???name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_fn_scope_name.xml b/internals2/ze1/zendapi/macros/zend_fn_scope_name.xml deleted file mode 100644 index 1c91b68a36..0000000000 --- a/internals2/ze1/zendapi/macros/zend_fn_scope_name.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_FN_SCOPE_NAME - ... - - - - &reftitle.description; - #include <zend_compile.h> - - ???ZEND_FN_SCOPE_NAME - ???function - - - ... - - - - - &reftitle.parameters; - - - - function - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_function.xml b/internals2/ze1/zendapi/macros/zend_function.xml deleted file mode 100644 index b1478a9497..0000000000 --- a/internals2/ze1/zendapi/macros/zend_function.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_FUNCTION - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_FUNCTION - ???name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_get_module.xml b/internals2/ze1/zendapi/macros/zend_get_module.xml deleted file mode 100644 index a84e903b8f..0000000000 --- a/internals2/ze1/zendapi/macros/zend_get_module.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_GET_MODULE - ... - - - - &reftitle.description; - #include <zend_API.h> - - ZEND_GET_MODULE - char *name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_get_resource_type_id.xml b/internals2/ze1/zendapi/macros/zend_get_resource_type_id.xml deleted file mode 100644 index a71e9f9d9d..0000000000 --- a/internals2/ze1/zendapi/macros/zend_get_resource_type_id.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - ZEND_GET_RESOURCE_TYPE_ID - ... - - - - &reftitle.description; - #include <zend_list.h> - - ???ZEND_GET_RESOURCE_TYPE_ID - ???le_id - ???le_type_name - - - ... - - - - - &reftitle.parameters; - - - - le_id - - - ... - - - - - le_type_name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_ini_begin.xml b/internals2/ze1/zendapi/macros/zend_ini_begin.xml deleted file mode 100644 index 61d2471100..0000000000 --- a/internals2/ze1/zendapi/macros/zend_ini_begin.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_INI_BEGIN - ... - - - - &reftitle.description; - #include <zend_ini.h> - - ???ZEND_INI_BEGIN - ??? - - - ... - - - - - &reftitle.parameters; - - - - - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_ini_disp.xml b/internals2/ze1/zendapi/macros/zend_ini_disp.xml deleted file mode 100644 index 5427407aa4..0000000000 --- a/internals2/ze1/zendapi/macros/zend_ini_disp.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_INI_DISP - ... - - - - &reftitle.description; - #include <zend_ini.h> - - ???ZEND_INI_DISP - ???name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_ini_end.xml b/internals2/ze1/zendapi/macros/zend_ini_end.xml deleted file mode 100644 index f688619ca9..0000000000 --- a/internals2/ze1/zendapi/macros/zend_ini_end.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_INI_END - ... - - - - &reftitle.description; - #include <zend_ini.h> - - ???ZEND_INI_END - ??? - - - ... - - - - - &reftitle.parameters; - - - - - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_ini_entry.xml b/internals2/ze1/zendapi/macros/zend_ini_entry.xml deleted file mode 100644 index b3bf54870f..0000000000 --- a/internals2/ze1/zendapi/macros/zend_ini_entry.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - ZEND_INI_ENTRY - ... - - - - &reftitle.description; - #include <zend_ini.h> - - ???ZEND_INI_ENTRY - ???name - ???default_value - ???modifiable - ???on_modify - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - default_value - - - ... - - - - - modifiable - - - ... - - - - - on_modify - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_ini_entry1.xml b/internals2/ze1/zendapi/macros/zend_ini_entry1.xml deleted file mode 100644 index ce800ff167..0000000000 --- a/internals2/ze1/zendapi/macros/zend_ini_entry1.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - ZEND_INI_ENTRY1 - ... - - - - &reftitle.description; - #include <zend_ini.h> - - ???ZEND_INI_ENTRY1 - ???name - ???default_value - ???modifiable - ???on_modify - ???arg1 - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - default_value - - - ... - - - - - modifiable - - - ... - - - - - on_modify - - - ... - - - - - arg1 - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_ini_entry1_ex.xml b/internals2/ze1/zendapi/macros/zend_ini_entry1_ex.xml deleted file mode 100644 index 566d53ad62..0000000000 --- a/internals2/ze1/zendapi/macros/zend_ini_entry1_ex.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - ZEND_INI_ENTRY1_EX - ... - - - - &reftitle.description; - #include <zend_ini.h> - - ???ZEND_INI_ENTRY1_EX - ???name - ???default_value - ???modifiable - ???on_modify - ???arg1 - ???displayer - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - default_value - - - ... - - - - - modifiable - - - ... - - - - - on_modify - - - ... - - - - - arg1 - - - ... - - - - - displayer - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_ini_entry2.xml b/internals2/ze1/zendapi/macros/zend_ini_entry2.xml deleted file mode 100644 index 250f62743f..0000000000 --- a/internals2/ze1/zendapi/macros/zend_ini_entry2.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - ZEND_INI_ENTRY2 - ... - - - - &reftitle.description; - #include <zend_ini.h> - - ???ZEND_INI_ENTRY2 - ???name - ???default_value - ???modifiable - ???on_modify - ???arg1 - ???arg2 - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - default_value - - - ... - - - - - modifiable - - - ... - - - - - on_modify - - - ... - - - - - arg1 - - - ... - - - - - arg2 - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_ini_entry2_ex.xml b/internals2/ze1/zendapi/macros/zend_ini_entry2_ex.xml deleted file mode 100644 index cbfa1cd8a8..0000000000 --- a/internals2/ze1/zendapi/macros/zend_ini_entry2_ex.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - ZEND_INI_ENTRY2_EX - ... - - - - &reftitle.description; - #include <zend_ini.h> - - ???ZEND_INI_ENTRY2_EX - ???name - ???default_value - ???modifiable - ???on_modify - ???arg1 - ???arg2 - ???displayer - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - default_value - - - ... - - - - - modifiable - - - ... - - - - - on_modify - - - ... - - - - - arg1 - - - ... - - - - - arg2 - - - ... - - - - - displayer - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_ini_entry3.xml b/internals2/ze1/zendapi/macros/zend_ini_entry3.xml deleted file mode 100644 index fd692b7f12..0000000000 --- a/internals2/ze1/zendapi/macros/zend_ini_entry3.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - ZEND_INI_ENTRY3 - ... - - - - &reftitle.description; - #include <zend_ini.h> - - ???ZEND_INI_ENTRY3 - ???name - ???default_value - ???modifiable - ???on_modify - ???arg1 - ???arg2 - ???arg3 - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - default_value - - - ... - - - - - modifiable - - - ... - - - - - on_modify - - - ... - - - - - arg1 - - - ... - - - - - arg2 - - - ... - - - - - arg3 - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_ini_entry3_ex.xml b/internals2/ze1/zendapi/macros/zend_ini_entry3_ex.xml deleted file mode 100644 index 9485a8171c..0000000000 --- a/internals2/ze1/zendapi/macros/zend_ini_entry3_ex.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - ZEND_INI_ENTRY3_EX - ... - - - - &reftitle.description; - #include <zend_ini.h> - - ???ZEND_INI_ENTRY3_EX - ???name - ???default_value - ???modifiable - ???on_modify - ???arg1 - ???arg2 - ???arg3 - ???displayer - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - default_value - - - ... - - - - - modifiable - - - ... - - - - - on_modify - - - ... - - - - - arg1 - - - ... - - - - - arg2 - - - ... - - - - - arg3 - - - ... - - - - - displayer - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_ini_entry_ex.xml b/internals2/ze1/zendapi/macros/zend_ini_entry_ex.xml deleted file mode 100644 index f4b251256a..0000000000 --- a/internals2/ze1/zendapi/macros/zend_ini_entry_ex.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - ZEND_INI_ENTRY_EX - ... - - - - &reftitle.description; - #include <zend_ini.h> - - ???ZEND_INI_ENTRY_EX - ???name - ???default_value - ???modifiable - ???on_modify - ???displayer - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - default_value - - - ... - - - - - modifiable - - - ... - - - - - on_modify - - - ... - - - - - displayer - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_ini_mh.xml b/internals2/ze1/zendapi/macros/zend_ini_mh.xml deleted file mode 100644 index fdf845b046..0000000000 --- a/internals2/ze1/zendapi/macros/zend_ini_mh.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_INI_MH - ... - - - - &reftitle.description; - #include <zend_ini.h> - - ???ZEND_INI_MH - ???name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_init_module_globals.xml b/internals2/ze1/zendapi/macros/zend_init_module_globals.xml deleted file mode 100644 index f14b339df5..0000000000 --- a/internals2/ze1/zendapi/macros/zend_init_module_globals.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - ZEND_INIT_MODULE_GLOBALS - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_INIT_MODULE_GLOBALS - ???module_name - ???globals_ctor - ???globals_dtor - - - ... - - - - - &reftitle.parameters; - - - - module_name - - - ... - - - - - globals_ctor - - - ... - - - - - globals_dtor - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_init_symtable.xml b/internals2/ze1/zendapi/macros/zend_init_symtable.xml deleted file mode 100644 index 8131679855..0000000000 --- a/internals2/ze1/zendapi/macros/zend_init_symtable.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_INIT_SYMTABLE - ... - - - - &reftitle.description; - #include <zend_hash.h> - - ???ZEND_INIT_SYMTABLE - ???ht - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_init_symtable_ex.xml b/internals2/ze1/zendapi/macros/zend_init_symtable_ex.xml deleted file mode 100644 index ec95fa3e66..0000000000 --- a/internals2/ze1/zendapi/macros/zend_init_symtable_ex.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - ZEND_INIT_SYMTABLE_EX - ... - - - - &reftitle.description; - #include <zend_hash.h> - - ???ZEND_INIT_SYMTABLE_EX - ???ht - ???n - ???persistent - - - ... - - - - - &reftitle.parameters; - - - - ht - - - ... - - - - - n - - - ... - - - - - persistent - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_log_xor.xml b/internals2/ze1/zendapi/macros/zend_log_xor.xml deleted file mode 100644 index b4e1dcc099..0000000000 --- a/internals2/ze1/zendapi/macros/zend_log_xor.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - ZEND_LOG_XOR - ... - - - - &reftitle.description; - #include <zend.h> - - ???ZEND_LOG_XOR - ???a - ???b - - - ... - - - - - &reftitle.parameters; - - - - a - - - ... - - - - - b - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_malias.xml b/internals2/ze1/zendapi/macros/zend_malias.xml deleted file mode 100644 index badb8cc62c..0000000000 --- a/internals2/ze1/zendapi/macros/zend_malias.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - ZEND_MALIAS - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_MALIAS - ???classname - ???name - ???alias - ???arg_info - ???flags - - - ... - - - - - &reftitle.parameters; - - - - classname - - - ... - - - - - name - - - ... - - - - - alias - - - ... - - - - - arg_info - - - ... - - - - - flags - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_me.xml b/internals2/ze1/zendapi/macros/zend_me.xml deleted file mode 100644 index 013c2b0ccd..0000000000 --- a/internals2/ze1/zendapi/macros/zend_me.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - ZEND_ME - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_ME - ???classname - ???name - ???arg_info - ???flags - - - ... - - - - - &reftitle.parameters; - - - - classname - - - ... - - - - - name - - - ... - - - - - arg_info - - - ... - - - - - flags - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_me_mapping.xml b/internals2/ze1/zendapi/macros/zend_me_mapping.xml deleted file mode 100644 index dfa5834578..0000000000 --- a/internals2/ze1/zendapi/macros/zend_me_mapping.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - ZEND_ME_MAPPING - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_ME_MAPPING - ???name - ???func_name - ???arg_types - ???flags - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - func_name - - - ... - - - - - arg_types - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_method.xml b/internals2/ze1/zendapi/macros/zend_method.xml deleted file mode 100644 index 350cd99d92..0000000000 --- a/internals2/ze1/zendapi/macros/zend_method.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - ZEND_METHOD - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_METHOD - ???classname - ???name - - - ... - - - - - &reftitle.parameters; - - - - classname - - - ... - - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_mod_conflicts.xml b/internals2/ze1/zendapi/macros/zend_mod_conflicts.xml deleted file mode 100644 index c24b6d251a..0000000000 --- a/internals2/ze1/zendapi/macros/zend_mod_conflicts.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MOD_CONFLICTS - ... - - - - &reftitle.description; - #include <zend_modules.h> - - ZEND_MOD_CONFLICTS - char *name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_mod_conflicts_ex.xml b/internals2/ze1/zendapi/macros/zend_mod_conflicts_ex.xml deleted file mode 100644 index e530667f9f..0000000000 --- a/internals2/ze1/zendapi/macros/zend_mod_conflicts_ex.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - ZEND_MOD_CONFLICTS_EX - ... - - - - &reftitle.description; - #include <zend_modules.h> - - ZEND_MOD_CONFLICTS_EX - char *name - char *rel - char *ver - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - rel - - - ... - - - - - ver - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_mod_optional.xml b/internals2/ze1/zendapi/macros/zend_mod_optional.xml deleted file mode 100644 index 821d238519..0000000000 --- a/internals2/ze1/zendapi/macros/zend_mod_optional.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MOD_OPTIONAL - ... - - - - &reftitle.description; - #include <zend_modules.h> - - ZEND_MOD_OPTIONAL - char *name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_mod_optional_ex.xml b/internals2/ze1/zendapi/macros/zend_mod_optional_ex.xml deleted file mode 100644 index 8a95f956bd..0000000000 --- a/internals2/ze1/zendapi/macros/zend_mod_optional_ex.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - ZEND_MOD_OPTIONAL_EX - ... - - - - &reftitle.description; - #include <zend_modules.h> - - ZEND_MOD_OPTIONAL_EX - char *name - char *rel - char *ver - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - rel - - - ... - - - - - ver - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_mod_required.xml b/internals2/ze1/zendapi/macros/zend_mod_required.xml deleted file mode 100644 index 07fc791e59..0000000000 --- a/internals2/ze1/zendapi/macros/zend_mod_required.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - ZEND_MOD_REQUIRED - 必要な拡張モジュールについての単純な依存性エントリを作成する - - - - &reftitle.description; - #include <zend_modules.h> - - ZEND_MOD_REQUIRED - char *ext_name - - - ZEND_MOD_REQUIRED は、 - ext_name で指定した拡張モジュールについての - zend_module_dep エントリを作成します。 - 出来上がるエントリはシンプルなもので、バージョンの指定は含まれません。 - バージョンの依存性も指定することができる、このマクロの拡張版については - ZEND_MOD_REQUIRED_EX を参照ください。 - - - - - &reftitle.parameters; - - - - ext_name - - - 必要な拡張モジュールの名前。 - - - - - - - - - &reftitle.returnvalues; - - 必要な拡張モジュールの依存性を登録するためのコードを返します。 - - - - - &reftitle.seealso; - - 拡張モジュールのバージョンの依存性も指定したい場合は - ZEND_MOD_REQUIRED_EX を参照ください。 - - - ZEND_MOD_OPTIONAL、 - ZEND_MOD_OPTIONAL_EX、 - ZEND_MOD_CONFLICTS および - ZEND_MOD_CONFLICTS_EX も参照ください。 - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_mod_required_ex.xml b/internals2/ze1/zendapi/macros/zend_mod_required_ex.xml deleted file mode 100644 index 592c6663cd..0000000000 --- a/internals2/ze1/zendapi/macros/zend_mod_required_ex.xml +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - ZEND_MOD_REQUIRED_EX - 必要な拡張モジュールとそのバージョンについての完全な依存性エントリを作成する - - - - &reftitle.description; - #include <zend_modules.h> - - ZEND_MOD_REQUIRED_EX - char *name - char *rel - char *ver - - - ZEND_MOD_REQUIRED_EX は、 - ext_name で指定した拡張モジュールについての - zend_module_dep エントリを作成します。 - バージョン情報についての指定も含み、たとえば - "バージョン x.y まで"、 - "バージョン x.y 以降"、あるいは "バージョン x.y 限定" - などが指定できます。 - - - - バージョン指定の比較は、現在は実装されていません。 - つまり、現時点では ZEND_MOD_REUQUIRE と - ZEND_MOD_REQUIRE_EX は同じ動作をすることになります。 - - - - - - &reftitle.parameters; - - - - name - - - 必要な拡張モジュールの名前。 - - - - - rel - - - 比較演算子。eqlt、 - legt あるいは ge - のいずれか。 - - - - - ver - - - バージョン文字列。 - - - - - - - - - &reftitle.returnvalues; - - 必要な拡張モジュールの依存性を登録するためのコードを返します。 - - - - - &reftitle.seealso; - - 拡張モジュールのバージョンの依存性の指定が不要な場合は - ZEND_MOD_REQUIRED を参照ください。 - - - ZEND_MOD_OPTIONAL、 - ZEND_MOD_OPTIONAL_EX、 - ZEND_MOD_CONFLICTS および - ZEND_MOD_CONFLICTS_EX も参照ください。 - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_module_activate_d.xml b/internals2/ze1/zendapi/macros/zend_module_activate_d.xml deleted file mode 100644 index d813555311..0000000000 --- a/internals2/ze1/zendapi/macros/zend_module_activate_d.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MODULE_ACTIVATE_D - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_MODULE_ACTIVATE_D - ???module - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_module_activate_n.xml b/internals2/ze1/zendapi/macros/zend_module_activate_n.xml deleted file mode 100644 index a7846f0a48..0000000000 --- a/internals2/ze1/zendapi/macros/zend_module_activate_n.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MODULE_ACTIVATE_N - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_MODULE_ACTIVATE_N - ???module - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_module_deactivate_d.xml b/internals2/ze1/zendapi/macros/zend_module_deactivate_d.xml deleted file mode 100644 index 711fdc7fb2..0000000000 --- a/internals2/ze1/zendapi/macros/zend_module_deactivate_d.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MODULE_DEACTIVATE_D - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_MODULE_DEACTIVATE_D - ???module - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_module_deactivate_n.xml b/internals2/ze1/zendapi/macros/zend_module_deactivate_n.xml deleted file mode 100644 index 72656c9f34..0000000000 --- a/internals2/ze1/zendapi/macros/zend_module_deactivate_n.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MODULE_DEACTIVATE_N - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_MODULE_DEACTIVATE_N - ???module - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_module_info_d.xml b/internals2/ze1/zendapi/macros/zend_module_info_d.xml deleted file mode 100644 index 8dd060414d..0000000000 --- a/internals2/ze1/zendapi/macros/zend_module_info_d.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MODULE_INFO_D - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_MODULE_INFO_D - ???module - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_module_info_n.xml b/internals2/ze1/zendapi/macros/zend_module_info_n.xml deleted file mode 100644 index f9f50f4b66..0000000000 --- a/internals2/ze1/zendapi/macros/zend_module_info_n.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MODULE_INFO_N - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_MODULE_INFO_N - ???module - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_module_post_zend_deactivate_d.xml b/internals2/ze1/zendapi/macros/zend_module_post_zend_deactivate_d.xml deleted file mode 100644 index 500043c015..0000000000 --- a/internals2/ze1/zendapi/macros/zend_module_post_zend_deactivate_d.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MODULE_POST_ZEND_DEACTIVATE_D - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_MODULE_POST_ZEND_DEACTIVATE_D - ???module - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_module_post_zend_deactivate_n.xml b/internals2/ze1/zendapi/macros/zend_module_post_zend_deactivate_n.xml deleted file mode 100644 index f4d338cb5d..0000000000 --- a/internals2/ze1/zendapi/macros/zend_module_post_zend_deactivate_n.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MODULE_POST_ZEND_DEACTIVATE_N - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_MODULE_POST_ZEND_DEACTIVATE_N - ???module - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_module_shutdown_d.xml b/internals2/ze1/zendapi/macros/zend_module_shutdown_d.xml deleted file mode 100644 index 0dbabe5bf1..0000000000 --- a/internals2/ze1/zendapi/macros/zend_module_shutdown_d.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MODULE_SHUTDOWN_D - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_MODULE_SHUTDOWN_D - ???module - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_module_shutdown_n.xml b/internals2/ze1/zendapi/macros/zend_module_shutdown_n.xml deleted file mode 100644 index 5e9faad2f9..0000000000 --- a/internals2/ze1/zendapi/macros/zend_module_shutdown_n.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MODULE_SHUTDOWN_N - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_MODULE_SHUTDOWN_N - ???module - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_module_startup_d.xml b/internals2/ze1/zendapi/macros/zend_module_startup_d.xml deleted file mode 100644 index e03db0838c..0000000000 --- a/internals2/ze1/zendapi/macros/zend_module_startup_d.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MODULE_STARTUP_D - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_MODULE_STARTUP_D - ???module - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_module_startup_n.xml b/internals2/ze1/zendapi/macros/zend_module_startup_n.xml deleted file mode 100644 index 05c58ba62a..0000000000 --- a/internals2/ze1/zendapi/macros/zend_module_startup_n.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_MODULE_STARTUP_N - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_MODULE_STARTUP_N - ???module - - - ... - - - - - &reftitle.parameters; - - - - module - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_named_fe.xml b/internals2/ze1/zendapi/macros/zend_named_fe.xml deleted file mode 100644 index 37c6a89404..0000000000 --- a/internals2/ze1/zendapi/macros/zend_named_fe.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - ZEND_NAMED_FE - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_NAMED_FE - ???zend_name - ???name - ???arg_info - - - ... - - - - - &reftitle.parameters; - - - - zend_name - - - ... - - - - - name - - - ... - - - - - arg_info - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_named_function.xml b/internals2/ze1/zendapi/macros/zend_named_function.xml deleted file mode 100644 index 3139929e4a..0000000000 --- a/internals2/ze1/zendapi/macros/zend_named_function.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_NAMED_FUNCTION - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_NAMED_FUNCTION - ???name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_normalize_bool.xml b/internals2/ze1/zendapi/macros/zend_normalize_bool.xml deleted file mode 100644 index 17084811dc..0000000000 --- a/internals2/ze1/zendapi/macros/zend_normalize_bool.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_NORMALIZE_BOOL - ... - - - - &reftitle.description; - #include <zend.h> - - ???ZEND_NORMALIZE_BOOL - ???n - - - ... - - - - - &reftitle.parameters; - - - - n - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_num_args.xml b/internals2/ze1/zendapi/macros/zend_num_args.xml deleted file mode 100644 index 703c6355bb..0000000000 --- a/internals2/ze1/zendapi/macros/zend_num_args.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - ZEND_NUM_ARGS - ... - - - - &reftitle.description; - #include <zend_API.h> - - intZEND_NUM_ARGS - - - ZEND_NUM_ARGS は、 - 現在の PHP 関数の呼び出し元から渡された引数の数を返します。 - - - - - &reftitle.returnvalues; - - 現在の PHP 関数の呼び出し元から渡された引数の数を返します。 - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_putc.xml b/internals2/ze1/zendapi/macros/zend_putc.xml deleted file mode 100644 index 43f2001061..0000000000 --- a/internals2/ze1/zendapi/macros/zend_putc.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - ZEND_PUTC - ひとつの文字をデフォルトの出力ストリームに書き込む - - - - &reftitle.description; - #include <zend.h> - - intZEND_PUTC - charc - - - ひとつの文字 c を、 - デフォルトの出力ストリームに書き込みます。 - - - - - &reftitle.parameters; - - - - c - - - 出力する文字。 - - - - - - - - - &reftitle.returnvalues; - - 書き込んだ文字の数、あるいはエラー時に -1 を返します。 - - - - - &reftitle.seealso; - - ZEND_PUTS および ZEND_WRITE - も参照ください。 - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_puts.xml b/internals2/ze1/zendapi/macros/zend_puts.xml deleted file mode 100644 index cee80f9a2a..0000000000 --- a/internals2/ze1/zendapi/macros/zend_puts.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - ZEND_PUTS - 文字列をデフォルトの出力ストリームに書き込む - - - - &reftitle.description; - #include <zend.h> - - intZEND_PUTS - char *str - - - ゼロ終端の文字列 str を、 - デフォルトの出力ストリームに書き込みます。 - - - - - &reftitle.parameters; - - - - str - - - 出力する文字列。 - - - - - - - - - &reftitle.returnvalues; - - 書き込んだ文字の数、あるいはエラー時に -1 を返します。 - - - - - &reftitle.seealso; - - ZEND_PUTC および ZEND_WRITE - も参照ください。 - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_register_resource.xml b/internals2/ze1/zendapi/macros/zend_register_resource.xml deleted file mode 100644 index d1213bd949..0000000000 --- a/internals2/ze1/zendapi/macros/zend_register_resource.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - ZEND_REGISTER_RESOURCE - ... - - - - &reftitle.description; - #include <zend_list.h> - - ???ZEND_REGISTER_RESOURCE - ???rsrc_result - ???rsrc_pointer - ???rsrc_type - - - ... - - - - - &reftitle.parameters; - - - - rsrc_result - - - ... - - - - - rsrc_pointer - - - ... - - - - - rsrc_type - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_rsrc_dtor_func.xml b/internals2/ze1/zendapi/macros/zend_rsrc_dtor_func.xml deleted file mode 100644 index 5a7dd9a9f4..0000000000 --- a/internals2/ze1/zendapi/macros/zend_rsrc_dtor_func.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_RSRC_DTOR_FUNC - ... - - - - &reftitle.description; - #include <zend_list.h> - - ???ZEND_RSRC_DTOR_FUNC - ???name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_set_global_var.xml b/internals2/ze1/zendapi/macros/zend_set_global_var.xml deleted file mode 100644 index 7e3080d47c..0000000000 --- a/internals2/ze1/zendapi/macros/zend_set_global_var.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - ZEND_SET_GLOBAL_VAR - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_SET_GLOBAL_VAR - ???name - ???var - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - var - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_set_global_var_with_length.xml b/internals2/ze1/zendapi/macros/zend_set_global_var_with_length.xml deleted file mode 100644 index 8420f9bbd7..0000000000 --- a/internals2/ze1/zendapi/macros/zend_set_global_var_with_length.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - ZEND_SET_GLOBAL_VAR_WITH_LENGTH - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_SET_GLOBAL_VAR_WITH_LENGTH - ???name - ???name_length - ???var - ???_refcount - ???_is_ref - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - name_length - - - ... - - - - - var - - - ... - - - - - _refcount - - - ... - - - - - _is_ref - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_set_symbol.xml b/internals2/ze1/zendapi/macros/zend_set_symbol.xml deleted file mode 100644 index 7e1b6ccb7e..0000000000 --- a/internals2/ze1/zendapi/macros/zend_set_symbol.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - ZEND_SET_SYMBOL - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_SET_SYMBOL - ???symtable - ???name - ???var - - - ... - - - - - &reftitle.parameters; - - - - symtable - - - ... - - - - - name - - - ... - - - - - var - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_set_symbol_with_length.xml b/internals2/ze1/zendapi/macros/zend_set_symbol_with_length.xml deleted file mode 100644 index 79a0cc91d9..0000000000 --- a/internals2/ze1/zendapi/macros/zend_set_symbol_with_length.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - ZEND_SET_SYMBOL_WITH_LENGTH - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_SET_SYMBOL_WITH_LENGTH - ???symtable - ???name - ???name_length - ???var - ???_refcount - ???_is_ref - - - ... - - - - - &reftitle.parameters; - - - - symtable - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - var - - - ... - - - - - _refcount - - - ... - - - - - _is_ref - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_strl.xml b/internals2/ze1/zendapi/macros/zend_strl.xml deleted file mode 100644 index 5d5fdcd788..0000000000 --- a/internals2/ze1/zendapi/macros/zend_strl.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - ZEND_STRL - 文字列のポインタとその長さを一度に渡す - - - - &reftitle.description; - #include <zend.h> - - ZEND_STRL - char *str - - - これは、文字列とその長さの両方を要する関数に静的な文字列を渡す際に使用できる便利なマクロです。 - 同じ文字列を何度もソースコードに記述したり、 - 新たな変数を用意したりする手間が省けます。 - - - <function>ZEND_STRL</function> の例 - - - - - - - - &reftitle.parameters; - - - - str - - - ゼロ終端の文字列へのポインタ。 - - - - - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_strs.xml b/internals2/ze1/zendapi/macros/zend_strs.xml deleted file mode 100644 index eb8c9ca804..0000000000 --- a/internals2/ze1/zendapi/macros/zend_strs.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - ZEND_STRS - 文字列のポインタとバッファの大きさを一度に渡す - - - - &reftitle.description; - #include <zend.h> - - ZEND_STRS - char *str - - - これは、文字列とバッファの長さの両方を要する関数に静的な文字列を渡す際に使用できる便利なマクロです。 - 同じ文字列を何度もソースコードに記述したり、 - 新たな変数を用意したりする手間が省けます。 - - - - - &reftitle.parameters; - - - - str - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_truth.xml b/internals2/ze1/zendapi/macros/zend_truth.xml deleted file mode 100644 index 6505745bc3..0000000000 --- a/internals2/ze1/zendapi/macros/zend_truth.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - ZEND_TRUTH - 値を zend_bool にキャストする - - - - &reftitle.description; - #include <zend.h> - - zend_boolZEND_TRUTH - mixedx - - - シンプルなマクロです。実際の中身は ((x) ? 1 : 0) - となっています。 - - - - - &reftitle.parameters; - - - - x - - - キャストしたい値。 - - - - - - - - - &reftitle.returnvalues; - - x が &true; とみなされる場合に 1、 - それ以外の場合は 0 を返します。 - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_u_converter.xml b/internals2/ze1/zendapi/macros/zend_u_converter.xml deleted file mode 100644 index 65393fae61..0000000000 --- a/internals2/ze1/zendapi/macros/zend_u_converter.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_U_CONVERTER - ... - - - - &reftitle.description; - #include <zend_unicode.h> - - ???ZEND_U_CONVERTER - ???c - - - ... - - - - - &reftitle.parameters; - - - - c - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_u_equal.xml b/internals2/ze1/zendapi/macros/zend_u_equal.xml deleted file mode 100644 index 486e19c057..0000000000 --- a/internals2/ze1/zendapi/macros/zend_u_equal.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - ZEND_U_EQUAL - ... - - - - &reftitle.description; - #include <zend.h> - - ???ZEND_U_EQUAL - ???type - ???ustr - ???ulen - ???str - ???slen - - - ... - - - - - &reftitle.parameters; - - - - type - - - ... - - - - - ustr - - - ... - - - - - ulen - - - ... - - - - - str - - - ... - - - - - slen - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_u_set_symbol_with_length.xml b/internals2/ze1/zendapi/macros/zend_u_set_symbol_with_length.xml deleted file mode 100644 index 6c301c61f1..0000000000 --- a/internals2/ze1/zendapi/macros/zend_u_set_symbol_with_length.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - ZEND_U_SET_SYMBOL_WITH_LENGTH - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_U_SET_SYMBOL_WITH_LENGTH - ???symtable - ???type - ???name - ???name_length - ???var - ???_refcount - ???_is_ref - - - ... - - - - - &reftitle.parameters; - - - - symtable - - - ... - - - - - type - - - ... - - - - - name - - - ... - - - - - name_length - - - ... - - - - - var - - - ... - - - - - _refcount - - - ... - - - - - _is_ref - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_uv.xml b/internals2/ze1/zendapi/macros/zend_uv.xml deleted file mode 100644 index 37a995dc31..0000000000 --- a/internals2/ze1/zendapi/macros/zend_uv.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_UV - ... - - - - &reftitle.description; - #include <zend.h> - - ???ZEND_UV - ???name - - - ... - - - - - &reftitle.parameters; - - - - name - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_verify_resource.xml b/internals2/ze1/zendapi/macros/zend_verify_resource.xml deleted file mode 100644 index 1788f3234a..0000000000 --- a/internals2/ze1/zendapi/macros/zend_verify_resource.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_VERIFY_RESOURCE - ... - - - - &reftitle.description; - #include <zend_list.h> - - ???ZEND_VERIFY_RESOURCE - ???rsrc - - - ... - - - - - &reftitle.parameters; - - - - rsrc - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_write.xml b/internals2/ze1/zendapi/macros/zend_write.xml deleted file mode 100644 index 7a42d5165b..0000000000 --- a/internals2/ze1/zendapi/macros/zend_write.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - ZEND_WRITE - 文字バッファをデフォルトの出力ストリームに書き込む - - - - &reftitle.description; - #include <zend.h> - - intZEND_WRITE - char *str - intstr_len - - - str が指す先のバッファから、 - str_len バイトのデータを - デフォルトの出力ストリームに書き込みます。 - - - - - &reftitle.parameters; - - - - str - - - 文字バッファへのポインタ。 - - - - - str_len - - - バッファの長さ。 - - - - - - - - - &reftitle.returnvalues; - - 書き込んだ文字の数、あるいはエラー時に -1 を返します。 - - - - - &reftitle.seealso; - - ZEND_PUTC および ZEND_PUTS - も参照ください。 - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_wrong_param_count.xml b/internals2/ze1/zendapi/macros/zend_wrong_param_count.xml deleted file mode 100644 index b868dfe0e2..0000000000 --- a/internals2/ze1/zendapi/macros/zend_wrong_param_count.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - ZEND_WRONG_PARAM_COUNT - ... - - - - &reftitle.description; - #include <zend_API.h> - - ???ZEND_WRONG_PARAM_COUNT - ??? - - - ... - - - - - &reftitle.parameters; - - - - - - - ... - - - - - - - - - &reftitle.returnvalues; - - ... - - - - - - diff --git a/internals2/ze1/zendapi/macros/zend_wrong_param_count_with_retval.xml b/internals2/ze1/zendapi/macros/zend_wrong_param_count_with_retval.xml deleted file mode 100644 index a1f16339bd..0000000000 --- a/internals2/ze1/zendapi/macros/zend_wrong_param_count_with_retval.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - ZEND_WRONG_PARAM_COUNT_WITH_RETVAL - 標準のエラーメッセージを作成し、独自の値を返す - - - - &reftitle.description; - #include <zend_API.h> - #include <zend_API.h> - - voidZEND_WRONG_PARAM_COUNT_WITH_RETVAL - mixedreturn_value - - このマクロは API の一部ではありますが、バンドルされているモジュールや PECL 拡張モジュールでは使われていません。 - - ZEND_WRONG_PARAM_COUNT_WITH_RETVAL は、 - 関数やクラスメソッドに渡すパラメータの数を間違えたときの警告メッセージを生成します。 - そして、そのパラメータを呼び出し元の関数に返します。 - このマクロは、正しい関数名と (必要に応じて) クラス名を自動的にエラーメッセージに含めます。 - - - この関数の呼び出し元に、 - return_value パラメータを返します。 - - - ZEND_WRONG_PARAM_COUNT_WITH_RETVAL は、実際は - zend_wrong_param_count の便利なラッパーです。 - - - - - diff --git a/internals2/ze1/zendapi/overview.xml b/internals2/ze1/zendapi/overview.xml deleted file mode 100644 index d5c2b92d08..0000000000 --- a/internals2/ze1/zendapi/overview.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - 概要 - - 「PHP を拡張する」と言うのは簡単ですが、実際に行うのは大変なことです。 - PHP は数メガバイトのソースコードからなる成熟したツールに発展して - きており、このようなシステムをハックするには、学ばねばならないことが - あります。この章を構成するにあたり、我々は「実際に作業することによって - 学んでもらう」という手法をとることにしました。これは科学的とは言えないし - プロフェッショナルな方法でもありません。しかし、楽しく学ぶことが - できて最終的によい結果に終わると考えたのです。 - 以下の節では、最も基本的な拡張モジュールをお手軽に作成する方法を - 学びます。その後で、Zend API の高度な機能について学びます。 - もうひとつの方法としては、機能・デザイン・ヒント・裏技などを - 一気に学ぶ、つまり実践的な手法の前にまず大きな絵の全体を見せてしまう - というものがあります。何の小細工もせずにすむという点で、こちらの - 方法のほうが「よりよい」ものではあるのですが、この方法は - 非常にフラストレーションがたまり、時間と気力をかなり消費するもの - でもあります。そのため、我々は前者の方法をとることにしたのです。 - - - この章では PHP の内部動作についてできる限りの知識を伝えるように - 心がけています。しかしながら、いつどんなときでも 100% 動作する - 完璧な PHP 拡張モジュール作成ガイドを提供するのは不可能であることを - 知っておいてください。PHP は巨大で複雑なパッケージであるので、 - 実際に手を動かしながら勉強していかないと内部構造は理解できないでしょう。 - そのため、実際のソースとともに作業を進めていくことを推奨します。 - - - - Zend とは何 ? そして PHP とは何 ? - - Zend という名前は PHP のコアとなる言語エンジンを - 指します。PHP は、外部から見た際のシステム全体を - 指す単語です。最初はすこし紛らわしく感じるかもしれませんが、これは - そんなに複雑な話ではありません - (以下を参照ください)。 - Web スクリプトのインタプリタを実装するには、3 つのパートが必要です。 - - - - インタプリタ (interpreter) は - 入力コードを解析し、変換し、そして実行します。 - - - - - 機能 (functionality) は、言語の機能 - (関数など) を実装します。 - - - - - インターフェイス (interface) は、 - Web サーバーなどと会話をします。 - - - - 1 のすべてと 2 の一部を担当するのが Zend で、2 および 3 を - 担当するのが PHP です。この 2 つをあわせることで PHP パッケージが - 完成します。Zend 自身は言語のコアのみを受け持つもので、 - 事前に定義された関数などの PHP の基本部分のみを実装します。 - PHP が、この言語の優れた可能性を作り出しているすべての - 拡張モジュールを受け持ちます。 - - PHP の内部構造 - - - - - - - これ以降のセクションでは、PHP を拡張するにはどこをどのように変更すれば - よいのかを説明します。 - - - - diff --git a/internals2/ze1/zendapi/possibilities.xml b/internals2/ze1/zendapi/possibilities.xml deleted file mode 100644 index 1f58ab99e4..0000000000 --- a/internals2/ze1/zendapi/possibilities.xml +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - 拡張の可能性 - - 先ほど - 示したとおり、PHP を拡張するには 3 つの方法があります。それは - 外部モジュール・組み込みモジュール・Zend エンジン - の 3 つです。以下の節で、これらそれぞれについて考えます。 - - - 外部モジュール - - 外部モジュールは、スクリプトの実行時に dl - 関数を使用して読み込みます。この関数は、ディスクから共有オブジェクトを - 読み込んで、呼び出し元のスクリプトからその機能を使用できるように - します。スクリプトが終了すると、外部モジュールはメモリから削除 - されます。この方法には利点も欠点もあります。それを以下の表にまとめます。 - - - - - - - - 利点 - 欠点 - - - - PHP をコンパイルせずに外部モジュールを使用できる。 - - - スクリプトが実行されるたび (アクセスされるたび) に - 共有オブジェクトを読み込む必要があり、速度が非常に遅くなる。 - - - - - その機能を「外部にまかせる」ことにより、PHP のサイズを - 小さく抑えられる。 - - - 外部の追加ファイルによってディスクを散らかしてしまう。 - - - - - - そのモジュールの機能を使用するすべてのスクリプトが - dl をコールするか、あるいは - php.ini の中の - extension タグを変更する - (この方法が適切でない場合もある) - 必要がある。 - - - - - - 要するに、外部モジュールが有用なのは以下のような場合です。 - サードパーティの製品・PHP のちょっとした機能拡張で、めったに - 使われないもの・単なるテスト目的で作成するものなど。 - 追加機能を手っ取り早く開発するには、外部モジュールが最適です。 - 頻繁に使用するものであったり大規模な実装であったり、あるいは - 複雑なコードの場合などは、欠点が利点を上回ってしまうでしょう。 - - - サードパーティは、php.ini の - extension タグを使用して PHP に拡張モジュールを - 追加することを考えるかもしれません。これらの拡張モジュールは - 本体のパッケージとは完全に切り離されます (これは、商用の環境では - とても便利な機能です)。商用製品を配布する場合は、単に追加モジュール - のみを含むディスクやアーカイブを出荷すればよいのであり、他の - 拡張モジュールが使用できなくなるような PHP バイナリを作成する - 必要がなくなります。 - - - - - 組み込みモジュール - - 組み込みモジュールは、PHP のコンパイル時に直接組み込まれ、PHP - プロセスと一緒に動作します。すべてのスクリプトで、その機能が - 使用可能となります。外部モジュールの場合と同様、組み込みモジュールに - ついても利点と欠点があります。それを以下の表にまとめます。 - - - - - - - 利点 - 欠点 - - - - いちいちモジュールを読み込む必要がない。 - なにもしなくてもその機能が使用できる。 - - - 組み込みモジュールを更新するには PHP を再コンパイル - する必要がある。 - - - - - 別の外部ファイルでディスクを散らかすことはない。 - すべては PHP のバイナリに組み込まれる。 - - - PHP バイナリのサイズが大きくなり、メモリ消費量も増える。 - - - - - - 比較的変更の少ない安定した関数のライブラリで、平均以上の速度を - 要求するものであったり、あるいは多くのスクリプトから頻繁に - 使用されるようなライブラリなどの場合は、組み込みモジュールに - するのが最適です。PHP を再コンパイルしなければならないという - 問題は、それによって得られるスピードや使いやすさにくらべたら - たいしたことはありません。しかし、小さな変更が頻繁に繰り返される - ような場合には、組み込みモジュールは不適当です。 - - - - - Zend エンジン - - もちろん、拡張機能を Zend エンジンに直接組み込むこともできます。 - 言語そのものの振る舞いを変更したい場合、あるいは言語のコアに - 特別な関数を直接組み込む必要がある場合などには、この方式がよいでしょう。 - しかし、一般的には Zend エンジンを変更することは避けるべきです。 - ここを変更してしまうとその他の部分で非互換性が発生する可能性があり、 - 特別に変更された Zend エンジンに対応できる人は誰もいなくなるでしょう。 - 変更内容を PHP のソースから切り離すことができなくなりますし、 - また「公式」なソースリポジトリからアップデートを行うと、変更内容が - 上書きされてしまいます。そのため、この手法はよくないものと - 考えられています。使用することはめったにないため、この文書では - この手法については取り上げません。 - - - - diff --git a/internals2/ze1/zendapi/printing.xml b/internals2/ze1/zendapi/printing.xml deleted file mode 100644 index 25e974a3b0..0000000000 --- a/internals2/ze1/zendapi/printing.xml +++ /dev/null @@ -1,224 +0,0 @@ - - - - - 情報の表示 - - スクリプト内で print を使用したときのように、 - あなたのモジュールから出力ストリームにメッセージを表示しなければならない場面は - よくあることでしょう。PHP では、警告メッセージの出力や - phpinfo 用の出力の生成などの一般的なタスクのための関数を - 用意しています。以下の節で、その詳細を説明します。 - これらの関数の使用例については CD-ROM を参照ください。 - - - <function>zend_printf</function> - - zend_printf は、標準の - printf と同じような動作をしますが、 - 出力先が Zend の出力ストリームとなります。 - - - - - <function>zend_error</function> - - zend_error は、エラーメッセージを生成するために使用します。 - この関数は 2 つの引数を受け取ります。最初の引数はエラーの型 - (zend_errors.h を参照ください)、 - そして 2 番目の引数がエラーメッセージとなります。 - - - - 指定できる値を にまとめます - (以下 を参照ください)。 - これらの値は、php.ini でも参照されます。 - 選んだ型によっては、エラーメッセージがログに記録されます。 - - Zend の定義済みエラーメッセージ - - - - - - エラー - 説明 - - - E_ERROR - - エラーを発生させ、その場でスクリプトの実行を停止します。 - - - - E_WARNING - - 一般的な警告を発生させ、そのまま続行します。 - - - - E_PARSE - - パーサのエラーを発生させ、そのまま続行します。 - - - - E_NOTICE - - 通知を発生させ、そのまま続行します。 - php.ini のデフォルト設定では、 - この型のエラーメッセージは表示されないようになっていることに注意しましょう。 - - - - E_CORE_ERROR - - コアによる内部エラーです。ユーザーが作成したモジュールでは - 使用してはいけません。 - - - - E_COMPILE_ERROR - - コンパイラによる内部エラーです。ユーザーが作成したモジュールでは - 使用してはいけません。 - - - - E_COMPILE_WARNING - - コンパイラによる内部警告です。ユーザーが作成したモジュールでは - 使用してはいけません。 - - - - -
- - ブラウザへの警告メッセージの表示 - - - - -
-
- - - <function>phpinfo</function> の出力内容 - - 実際にモジュールを作成してみると、そのモジュールについての情報を - phpinfo に表示してみたくなるでしょう - (モジュール名だけは、モジュール一覧のところにデフォルトで表示されます)。 - PHP allows - you to create your own section in the phpinfo output with - the ZEND_MINFO() function. - この関数はモジュール記述子ブロック (先ほど説明しました) - に配置しなければなりません。スクリプトが phpinfo - をコールした際には、常にこの関数がコールされます。 - - - ZEND_MINFO 関数を指定すると、PHP は - phpinfo の出力に自動的にセクションを追加します。 - ここには見出しとしてモジュール名が含められます。 - それ以外のすべてはあなた自身が書式設定して表示する必要があります。 - - - 一般的には、まず php_info_print_table_start - を使用して HTML テーブルのヘッダを作成した後で、 - 標準関数 php_info_print_table_header - および php_info_print_table_row を使用します。 - これらの関数は、どちらも引数としてカラム数 (整数) - とカラムの内容 (文字列) をとります。 - に、ソースの例とその出力を示します。 - テーブルのフッタを表示するには、php_info_print_table_end - を使用します。 - - - - ソースコードおよび <function>phpinfo</function> - の出力のスクリーンショット - - - - - - phpinfo() の出力 - - - - - - - - - 実行時の情報 - - 現在実行中のファイル名など、実行時の情報を表示することも可能です。 - 現在実行中の関数名を取得するには、関数 - get_active_function_name を使用します。 - この関数は何も引数を受け取らず、関数名へのポインタを返します。 - 現在実行中のファイル名を取得するには、関数 - zend_get_executed_filename を使用します。 - この関数は executor グローバルにアクセスします。これは - TSRMLS_C マクロを使用して渡されます。 - executor グローバルは、Zend から直接コールされたすべての関数 - (この章で先ほど説明した INTERNAL_FUNCTION_PARAMETERS - の一部です) で自動的に使用可能となります。 - 自動的に使用可能にならないような関数で executor グローバルにアクセスしたい場合は、 - その関数内でいちど TSRMLS_FETCH() マクロをコールします。 - これにより、グローバルの内容がローカルスコープに読み込まれます。 - - - 最後に、現在実行中の行番号を取得するには、関数 - zend_get_executed_lineno を使用します。 - この関数も、引数として executor グローバルを受け取ります。 - これらの関数の使用例については - - を参照ください。 - - - 実行時の情報の表示 - - - - - 実行時の情報の表示 - - - - - - -
- diff --git a/internals2/ze1/zendapi/returning.xml b/internals2/ze1/zendapi/returning.xml deleted file mode 100644 index ccf5a6528a..0000000000 --- a/internals2/ze1/zendapi/returning.xml +++ /dev/null @@ -1,202 +0,0 @@ - - - - - 値を返す - - あなたの関数から PHP に値を返す方法については、既に簡単に説明しました。 - ここではより詳細に説明します。返り値は return_value - 変数を用いて渡されます。この変数は関数の引数として渡されたものです。 - return_value 引数は zval コンテナで構成されており - (前の章の呼び出しインターフェイスのところを参照ください)、 - 自由に変更することができます。コンテナ自身はすでに割り当て済みなので、 - 改めて MAKE_STD_ZVAL を実行する必要はありません。 - その内容に直接アクセスすることが可能です。 - - - 関数から返す値を作成しやすくするため、そして zval - コンテナの内部構造にアクセスしやすくするために、 - いくつかのマクロが定義されています。 - - および - にまとめたこれらのマクロは、対応する型と値を自動的に設定します。 - - - - のマクロは、自動的に関数から値を - return します。一方 - のマクロは単に値を - 設定する だけです。関数から値を返すことはありません。 - - - - 関数から値を返すための、定義済みマクロ - - - - - - マクロ - 説明 - - - RETURN_RESOURCE(resource) - リソースを返します。 - - - RETURN_BOOL(bool) - Boolean を返します。 - - - RETURN_NULL() - 何も返しません (NULL 値を返します)。 - - - RETURN_LONG(long) - long を返します。 - - - RETURN_DOUBLE(double) - double を返します。 - - - - RETURN_STRING(string, duplicate) - - - 文字列を返します。duplicate フラグでは、 - estrdup を使用して文字列を複製するかどうかを指定します。 - - - - - RETURN_STRINGL(string, length, duplicate) - - - 指定した長さの文字列を返します。それ以外の振る舞いは - RETURN_STRING と同じです。 - しかし、このマクロは高速でバイナリセーフです。 - - - - RETURN_EMPTY_STRING() - 空の文字列を返します。 - - - RETURN_FALSE - false を返します。 - - - RETURN_TRUE - true を返します。 - - - -
- - 関数の返り値を設定するための、定義済みマクロ - - - - - - マクロ - 説明 - - - RETVAL_RESOURCE(resource) - 指定したリソースを返り値に設定します。 - - - RETVAL_BOOL(bool) - 指定した Boolean 値を返り値に設定します。 - - - RETVAL_NULL - NULL を返り値に設定します。 - - - RETVAL_LONG(long) - - 指定した long 値に返り値を設定します。 - - - - RETVAL_DOUBLE(double) - - 指定した double 値に返り値を設定します。 - - - - - RETVAL_STRING(string, duplicate) - - - 指定した文字列に返り値を設定します。必要に応じて - Zend 内部メモリに文字列をコピーします - (RETURN_STRING も参照ください)。 - - - - - RETVAL_STRINGL(string, length, duplicate) - - - 指定した文字列を返り値に指定し、その長さが - length となるようにします - (RETVAL_STRING も参照ください)。 - このマクロは高速でバイナリセーフです。 - 文字列の長さがわかっている場合は常にこのマクロを使用すべきです。 - - - - - RETVAL_EMPTY_STRING - - - 空の文字列を返り値に指定します。 - - - - RETVAL_FALSE - - false を返り値に指定します。 - - - - RETVAL_TRUE - - true を返り値に指定します。 - - - - -
- - 配列やオブジェクトのような複雑な型を返すには - array_init および - object_init を使用し、対応するハッシュ関数を - return_value に使用します。 - これらの型は簡単に作成することはできないので、定義済みのマクロは存在しません。 - -
- diff --git a/internals2/ze1/zendapi/startup-and-shutdown.xml b/internals2/ze1/zendapi/startup-and-shutdown.xml deleted file mode 100644 index 9f5ef27362..0000000000 --- a/internals2/ze1/zendapi/startup-and-shutdown.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - スタートアップ関数およびシャットダウン関数 - - スタートアップ関数およびシャットダウン関数は、モジュールの - 一回限りの初期化/後処理のために使用します。 - この章で以前に説明したように (Zend モジュール記述子の - ブロックを参照ください)、モジュール単位およびリクエスト単位の - スタートアップ/シャットダウンイベントが存在します。 - - - モジュールのスタートアップ関数およびシャットダウン関数は、 - モジュールが読み込まれ、初期化が必要な場合にコールされます。 - リクエストのスタートアップ関数およびシャットダウン関数は、 - リクエストが処理されるたび (つまり、ファイルが実行されるたび) - に毎回コールされます。 - - - 動的拡張モジュールでは、モジュールおよびリクエストの - スタートアップ/シャットダウンイベントが同時に発生します。 - - - これらの関数の宣言および実装は、マクロを使用して行います。 - 詳細は、さきほどの節 "Zend モジュールブロックの宣言" - を参照ください。 - - - diff --git a/internals2/ze1/zendapi/structure.xml b/internals2/ze1/zendapi/structure.xml deleted file mode 100644 index 505929abb5..0000000000 --- a/internals2/ze1/zendapi/structure.xml +++ /dev/null @@ -1,727 +0,0 @@ - - - - - ソースコードについての議論 - - さあ、今やあなたは安全なビルド環境を手にいれ、 - モジュールを PHP に組み込めるようになりました。 - そろそろ全体像について話を始める時期でしょう。 - - - モジュールの構造 - - すべての PHP モジュールは、共通の構造に従っています。 - - - - ヘッダファイルのインクルード - (必要なすべてのマクロ、API、define などをインクルードするため) - - - - - エクスポートする関数の C での宣言 - (Zend 関数ブロックの宣言のために必要) - - - - Zend 関数ブロックの宣言 - - - Zend モジュールブロックの宣言 - - - get_module の実装 - - - エクスポートするすべての関数の実装 - - - - - - ヘッダファイルのインクルード - - モジュールに組み込まなければならない唯一のヘッダファイルは - php.h で、これは PHP ディレクトリにあります。 - このファイルは、新しいモジュールを使用できるようにビルドするための - すべてのマクロ定義、API 定義を含みます。 - - - 豆知識: - モジュール固有の定義を含むヘッダファイルを、 - 別に分けて作成しておくとよいでしょう。 - エクスポートされるすべての関数の定義をこのヘッダファイルに含め、 - そしてこのファイルで php.h をインクルードします。 - ext_skel を使用して雛形を作成したのなら、 - すでにこの形式のヘッダファイルが出来上がっているはずです。 - - - - - エクスポートする関数の宣言 - - エクスポートする (つまり PHP の新しいネイティブ関数として使用できるようにする) - 関数を宣言するためには、Zend が提供するマクロを使用します。 - 宣言は、このように行います。 - - - - - - ZEND_FUNCTION は、Zend の内部 API - を満たす新しい C 関数を宣言します。内部 API を満たすとは、 - その関数の型が void であり、パラメータとして - INTERNAL_FUNCTION_PARAMETERS (別のマクロ) - を受け取るということです。さらに、関数名の先頭に zif - を付加します。これらの定義を満たす宣言の例は、次のようになります。 - - - - INTERNAL_FUNCTION_PARAMETERS - を展開した結果は、次のようになります。 - - - - - - インタプリタおよびエグゼキュータのコアは PHP 本体のパッケージとは分離されているので、 - マクロや関数群を定義するもうひとつの API が作られました。これが - Zend API です。今のところ Zend API は、 - かつて PHP が担当していた機能のうちのごくわずかしか処理できません。 - PHP の関数の多くは Zend のマクロに書き下ろされており、 - その内部で Zend API をコールしています。 - おすすめのやりかたは、まずできる限り Zend API を使用することです。 - というのは古い API は互換性のためだけに残されているものだからです。 - 例えば、zval 型と pval 型はまったく同じものです。 - zval は Zend での定義で、pval - は PHP での定義です (実際のところ、現在 pval - は zval のエイリアスとなっています)。 - INTERNAL_FUNCTION_PARAMETERS は Zend のマクロなので、 - 上の宣言には zval が用いられています。 - コードを書く際には、新しい Zend API のために常に - zval を使うようにしましょう。 - - - この宣言のパラメータリストは非常に重要です。これらは常に頭に入れておくようにしましょう。 - ( を参照ください)。 - - PHP からコールされた際に関数に渡される Zend のパラメータ - - - - - - パラメータ - 説明 - - - ht - - Zend の関数に渡す引数の数。これを直接操作してはいけません。値を取得する際には - ZEND_NUM_ARGS() を使用してください。 - - - - - return_value - - この変数は、あなたの関数から PHP に返す値を渡すために使用します。 - この変数にアクセスするには、定義済みマクロを使用するのがベストです。 - マクロについては後で説明します。 - - - - this_ptr - - この変数を使用すると、関数がオブジェクト内で使用されている場合に - そのオブジェクトにアクセスすることができます。このポインタを取得するには - 関数 getThis を使用します。 - - - - return_value_used - - このフラグは、この関数の返す値が実際に呼び出し元のスクリプトで使われるのかどうかを指定します。 - 0 は、返り値が使われないことを表します。 - 1 は、呼び出し元が返り値を期待していることを表します。 - このフラグの値により、関数が正しく使用されているかどうかを確認します。また、 - 値を返す処理に負荷がかかる場合などに、このフラグによって速度の最適化を行います - (array.c で、このような使用法を用いています)。 - - - - executor_globals - - この変数は、Zend エンジンのグローバル設定へのポインタです。 - これが便利なのは、例えば新しい変数を作成するときです (詳細はあとで説明します)。 - エグゼキュータのグローバル設定は、マクロ TSRMLS_FETCH() - を使うことによってもあなたの関数で使用できます。 - - - - -
-
-
- - - Zend 関数ブロックの宣言 - - エクスポートする関数の宣言が完了しました。こんどはさらにそれを - Zend に登録しなければなりません。関数のリストを登録するには、 - zend_function_entry の配列を使用します。 - この配列には、外部に公開するすべての関数について - PHP で使用する場合の名前と C ソース内で定義されている名前が含まれています。 - 内部的には、zend_function_entry は - - のように定義されています。 - - - - 内部での <envar>zend_function_entry</envar> の宣言 - - - - - - - - - - エントリ - 説明 - - - fname - - PHP で使用する場合の名前を表します (例えば - fopenmysql_connect など。 - 今回の例では first_module)。 - - - - handler - - この関数コールを処理する C 関数へのポインタ。 - 例えば、先ほど説明した標準マクロ - INTERNAL_FUNCTION_PARAMETERS - を参照ください。 - - - - func_arg_types - - パラメータに対して、参照渡しを強制させるようにできます。 - 通常は NULL を設定しておくべきです。 - - - - - - - 上の例では、このような宣言になります。 - - - - リストの最後のエントリは、必ず - ZEND_FE_END でなければなりません。 - エクスポートされる関数の一覧が終わることを Zend が知るために、 - このエントリが必要となります。 - - - マクロ ZEND_FE ('Zend Function - Entry' を省略したものです) は、構造体のエントリを単純に - zend_function_entry に展開します。 - これらのマクロは特別な命名規約を持っていることに注意しましょう。 - あなたが作成する C 関数の名前には、前に zif_ - をつけることになります。つまり、ZEND_FE(first_module) - は zif_first_module という名前の - C 関数を参照するということです。このマクロと手書きのエントリを混ぜて使用する場合には - (お勧めしません) これを頭に入れておきましょう。 - - - 豆知識: zif_* という名前の関数でコンパイルエラーが出た場合は、 - ZEND_FE で定義した関数がかかわっています。 - - - が、 - 関数の定義に使用できるすべてのマクロの一覧です。 - - - 関数定義用のマクロ - - - - - - マクロ名 - 説明 - - - ZEND_FE(name, arg_types) - - zend_function_entryname - という名前の関数エントリを定義します。対応する C の関数が必要です。 - arg_typesNULL に設定しなければなりません。 - この関数は、自動的に C の関数名を生成します。その名前は - PHP の関数名の先頭に zif_ をつけたものになります。 - 例えば ZEND_FE("first_module", NULL) とすると - PHP の関数 first_module を登録したことになり、 - それを C の関数 zif_first_module と関連付けます。 - ZEND_FUNCTION と組み合わせて使用します。 - - - - - ZEND_NAMED_FE(php_name, name, arg_types) - - - php_name という名前で PHP の関数を定義し、 - それを対応する C の関数 name に関連付けます。 - arg_typesNULL - に設定しなければなりません。ZEND_FE - のように自動的に名前を決められたくない場合にこの関数を使用します。 - ZEND_NAMED_FUNCTION と組み合わせて使用します。 - - - - - ZEND_FALIAS(name, alias, arg_types) - - - alias という名前で、 - name のエイリアスを定義します。 - arg_typesNULL - に設定しなければなりません。対応する C の関数は不要です。 - その代わりに、エイリアスの対象を参照します。 - - - - PHP_FE(name, arg_types) - - 古い PHP の API で、ZEND_FE と同じものです。 - - - - - PHP_NAMED_FE(runtime_name, name, arg_types) - - - 古い PHP の API で、ZEND_NAMED_FE と同じものです。 - - - - -
- - 注意: ZEND_FE と - PHP_FUNCTION を組み合わせて使用したり、あるいは - PHP_FEZEND_FUNCTION - を組み合わせて使用したりすることはできません。しかし、 - 各関数について ZEND_FE と - ZEND_FUNCTION、あるいは PHP_FE - と PHP_FUNCTION という組み合わせが守られているのなら、 - それらを混用することは可能です。 - しかし、混用することは 推奨しません。 - ZEND_* マクロだけを使用するようにしましょう。 - -
- - - Zend モジュールブロックの宣言 - - このブロックは構造体 zend_module_entry - に保存され、モジュールの内容について Zend に示すために必要な - すべての情報が含まれます。このモジュールの内部定義は - - で確認できます。 - - - 内部での <envar>zend_module_entry</envar> の宣言 - - - - - - - - - - エントリ - 説明 - - - - - - size, zend_api, - zend_debug および zts - - - 通常は - "STANDARD_MODULE_HEADER" を指定します。 - これは、4 つのメンバにそれぞれ - zend_module_entory 全体のサイズ、ZEND_MODULE_API_NO、 - デバッグビルドか通常ビルドのどちらであるか (ZEND_DEBUG) - そして ZTS が有効かどうか (USING_ZTS) - を代入します。 - - - - name - - モジュール名を指定します (例えば "File - functions""Socket functions"、 - "Crypt" など)。この名前は、 - phpinfo の "Additional - Modules" 欄で使用されます。 - - - - functions - - 先ほど説明した Zend 関数ブロックへのポインタ。 - - - - module_startup_func - - この関数はモジュールの初期化時にコールされ、 - 最初の一度だけ行う初期化処理 (例えばメモリの確保など) - で使用します。初期化に失敗した場合には FAILURE、 - 成功した場合には SUCCESS を返します。 - このフィールドを使用しない場合は、NULL - を指定します。関数を宣言するには、マクロ - ZEND_MINIT を使用します。 - - - - module_shutdown_func - - この関数はモジュールのシャットダウン時にコールされ、 - 最後に一度だけ行う後処理 (例えばメモリの開放など) で使用します。 - これは module_startup_func に対応するものです。 - で使用します。後処理に失敗した場合には FAILURE、 - 成功した場合には SUCCESS を返します。 - このフィールドを使用しない場合は、NULL - を指定します。関数を宣言するには、マクロ - ZEND_MSHUTDOWN を使用します。 - - - - request_startup_func - - この関数はページがリクエストされるたびにコールされ、 - リクエストを処理する際の前処理で使用します。 - 処理に失敗した場合には FAILURE、 - 成功した場合には SUCCESS を返します。 - 注意: 動的モジュールの場合は - リクエストがあるまでは読み込まれないので、 - リクエストスタートアップ関数は、 - モジュールスタートアップ関数の直後にコールされます - (これら二つの初期化イベントが同時に発生します)。 - このフィールドを使用しない場合は、NULL - を指定します。関数を宣言するには、マクロ - ZEND_RINIT を使用します。 - - - - request_shutdown_func - - この関数はページのリクエストが終了するたびにコールされます。 - ちょうど request_startup_func に対応するものです。 - 処理に失敗した場合には FAILURE、 - 成功した場合には SUCCESS を返します。 - 注意: 動的モジュールの場合は - リクエストがあるまでは読み込まれないので、 - リクエストシャットダウン関数の直後に - モジュールシャットダウンハンドラがコールされます - (これら二つの後処理イベントが同時に発生します)。 - このフィールドを使用しない場合は、NULL - を指定します。関数を宣言するには、マクロ - ZEND_RSHUTDOWN を使用します。 - - - - info_func - - スクリプト内で phpinfo がコールされると、 - Zend は現在読み込まれているすべてのモジュールについてこの関数をコールします。 - つまり、その出力結果に何らかの "あしあと" を残すチャンスが - すべてのモジュールに与えられるわけです。一般的には、 - これを使用して環境情報や東経情報を出力します。 - このフィールドを使用しない場合は、NULL - を指定します。関数を宣言するには、マクロ - ZEND_MINFO を使用します。 - - - - version - - モジュールのバージョン。バージョン番号をまだつけたくない場合は - NO_VERSION_YET が使用できます。しかし、 - 何らかのバージョン文字列を指定することを推奨します。 - バージョン文字列は、例えば次のようなものになります - (バージョンの若い順に並べています): "2.5-dev"、 - "2.5RC1""2.5" あるいは - "2.5pl3"。 - - - - それ以外の構造体の要素 - - これらは内部的に使用されるもので、マクロ - STANDARD_MODULE_PROPERTIES_EX - を使用して事前に設定されます。これらの要素に値を代入してはいけません。 - STANDARD_MODULE_PROPERTIES_EX を使用するのは、 - グローバルなスタートアップ関数、シャットダウン関数を使用する場合のみです。 - それ以外の場合は STANDARD_MODULE_PROPERTIES - を直接使用します。 - - - - - - - - 今回の例では、この構造体を次のように実装します。 - - - - これは、基本的に必要最小限の設定です。モジュール名は First - Module とし、関数一覧の参照を設定し、 - スタートアップ関数やシャットダウン関数はすべて未使用としています。 - - - 参照用として、スタートアップ関数およびシャットダウン関数に関するマクロを - にまとめておきます。 - これらは今回の例では使用しませんが、後で説明します。 - スタートアップ関数やシャットダウン関数を宣言する際にはこれらのマクロを使用すべきです。 - というのもこれらの関数には特別なパラメータ - (INIT_FUNC_ARGS および - SHUTDOWN_FUNC_ARGS) を渡さなければならず、 - 定義済みマクロを使用することでこれらが自動的に関数宣言に組み込まれるからです。 - 仮にこれらの関数を (マクロを使用せずに) 手動で宣言したとしましょう。 - もし PHP の開発者が何らかの事情で引数を変更したとすると、 - それに追従するためにあなたは自分のモジュールのソースを変更しなければならなくなります。 - - - スタートアップ関数、シャットダウン関数を宣言するためのマクロ - - - - - - マクロ - 説明 - - - ZEND_MINIT(module) - - モジュールの開始時の関数を宣言します。 - 関数名は zend_minit_<module> (例えば - zend_minit_first_module) のようになります。 - ZEND_MINIT_FUNCTION と組み合わせて使用します。 - - - - ZEND_MSHUTDOWN(module) - - モジュールのシャットダウン時の関数を宣言します。 - 関数名は zend_mshutdown_<module> (例えば - zend_mshutdown_first_module) のようになります。 - ZEND_MSHUTDOWN_FUNCTION と組み合わせて使用します。 - - - - ZEND_RINIT(module) - - リクエストの開始時の関数を宣言します。 - 関数名は zend_rinit_<module> (例えば - zend_rinit_first_module) のようになります。 - ZEND_RINIT_FUNCTION と組み合わせて使用します。 - - - - ZEND_RSHUTDOWN(module) - - リクエストのシャットダウン時の関数を宣言します。 - 関数名は zend_rshutdown_<module> (例えば - zend_rshutdown_first_module) のようになります。 - ZEND_RSHUTDOWN_FUNCTION と組み合わせて使用します。 - - - - ZEND_MINFO(module) - - モジュール情報を出力する関数を宣言します。 - phpinfo がコールされた際に使用されます。 - 関数名は zend_info_<module> (例えば - zend_info_first_module) のようになります。 - ZEND_MINFO_FUNCTION と組み合わせて使用します。 - - - - -
-
- - - <function>get_module</function> の作成 - - これは特別な関数で、すべての動的読み込みモジュールで使用されます。 - これを作成するため、まずは ZEND_GET_MODULE - を見てみましょう。 - - - - - - 関数の実装が、条件付きコンパイル文で囲まれています。なぜかというと、 - get_module 関数が必要となるのは - あなたのモジュールが動的モジュールとしてビルドされる場合だけだからです。 - コンパイラのコマンドで COMPILE_DL_FIRSTMOD - を定義することにより (動的モジュールとしてビルドするための - コンパイル手順については上記を参照ください)、 - 動的モジュールとしてビルドするのか組み込みモジュールとしてビルドするのかを - 指示することができます。組み込みモジュールを作成する場合は、 - get_module の実装は単純に取り除かれます。 - - - get_module は、 - Zend がモジュールを読み込む際にコールされます。 - 例えば、スクリプト内で dl - がコールされた場合などです。この関数の目的は、モジュール情報ブロックを - Zend に返し、モジュールの内容をエンジンに教えることです。 - - - 動的モジュールで get_module - 関数を実装しなかった場合、 - Zend がそのモジュールにアクセスしようとした際にエラーとなります。 - - - - - エクスポートするすべての関数の実装 - - あとは、エクスポートする関数を実装すれば終わりです。 - first_module では、例としてこのような関数を使用します。 - - - - 関数の宣言には ZEND_FUNCTION を使用します。 - これは、関数エントリテーブルにおける ZEND_FE - に対応しています (こちらについては先ほど説明しました)。 - - - 関数宣言の後には、引数のチェックおよびその内容の取得、 - 引数の変換、そして返り値の作成などのコードが続きます - (これらの詳細は後述します)。 - - - - - まとめ - - 基本的に、これですべてです。PHP モジュールを構成するのに、 - これ以上のものは必要ありません。組み込みのモジュールについても - その構造は動的モジュールと同じです。 - ここまでに説明した内容を身に着けておけば、今後 PHP - モジュールのソースファイルを読んでいく際につまづくこともなくなるでしょう。 - - - さあ、これ以降の節で PHP の内部構造について学び、 - 強力な拡張モジュールを作っていきましょう。 - - -
- diff --git a/internals2/ze1/zendapi/troubleshooting.xml b/internals2/ze1/zendapi/troubleshooting.xml deleted file mode 100644 index 7b481d9ddb..0000000000 --- a/internals2/ze1/zendapi/troubleshooting.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - トラブルシューティング - - 実際のところ、静的モジュールおよび動的モジュールをコンパイルする際に - 行えるトラブルシューティングはそれほど多くありません。発生する - 可能性のある唯一の問題は、コンパイラが「……が未定義」のような - メッセージを出すことくらいです。このような場合は、 - すべてのヘッダファイルが存在し、コンパイルコマンドでそれらへのパスを - 正しく設定しているかどうかを確認しましょう。 - すべてが正しく配置されていることを確実にするには、PHP ソースツリーを - 新しく展開しなおし、ext ディレクトリ内に - ファイルをコピーして自動ビルドを使用します。これにより、 - 安全なコンパイル環境が保証されます。これが失敗した場合には - 手動でのコンパイルを試みます。 - - - モジュール内で関数が見つからないというメッセージを PHP から受け取る - こともあるかもしれません (もしサンプルソースを変更せずにそのまま - 使用したのなら、これは起こりえません)。モジュール内から - アクセスしようとしている外部関数にスペルミスがあれば、それは - シンボルテーブルに "未リンクのシンボル" として残るでしょう。 - PHP から動的に読み込んでリンクされる際に、これらは型エラーの - ために読み込みに失敗します。本体のバイナリに対応するシンボルが - 存在しないからです。このような場合は、モジュールファイルの中から - 間違った宣言や外部参照を見つけ出します。この問題は、動的モジュール - 固有のものであることに注意しましょう。静的モジュールとして - 作成した場合は、この問題はコンパイル時に発覚します。 - - - diff --git a/internals2/ze1/zendapi/using.xml b/internals2/ze1/zendapi/using.xml deleted file mode 100644 index 53cd538523..0000000000 --- a/internals2/ze1/zendapi/using.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - 拡張モジュールの使用 - - 選択したビルド方式によって、新しい PHP バイナリを Web サーバーにリンクする - (あるいは CGI として実行する) か .so (共有オブジェクト) ファイルを - 作成するかのいずれかとなります。ファイル first_module.c - を共有オブジェクトとしてコンパイルしたのなら、結果として - first_module.so が出来上がります。これを - 使用するために最初にしなければならないことは、出来上がったファイルを - PHP からアクセス可能な位置に配置することです。とりあえず試してみるなら、 - そのファイルを htdocs ディレクトリにコピーして - のソースで試してみましょう。 - PHP バイナリに組み込む形式でコンパイルした場合は - dl のコールを省略します。そのモジュールの - 機能はスクリプト内からすぐに利用可能です。 - - - セキュリティを確保するため、動的モジュールを公開ディレクトリに - 配置してはいけません。公開ディレクトリに - 配置することもできなくはないですし - それによってテストも簡単にできますが、実運用環境では - 別のディレクトリに配置すべきです。 - - - - - first_module.so をテストするためのファイル - - -]]> - - - - この PHP ファイルをコールした結果は、以下のようになります。 - - - - - - 必要なら、dl 関数をコールすることによって - 動的モジュールを読み込みます。この関数は - 指定した共有オブジェクトを探し、それを読み込み、そして - その関数を PHP から使用できるようにします。 - このモジュールが提供する関数は - first_module - で、ひとつのパラメータを受け取ってそれを整数に変換し、 - 変換結果を返します。 - - - 同じ結果が得られましたか? おめでとう! - はじめての PHP 拡張のビルドがこれで完了しました。 - - - diff --git a/internals2/ze1/zendapi/variables.xml b/internals2/ze1/zendapi/variables.xml deleted file mode 100644 index cd93c77024..0000000000 --- a/internals2/ze1/zendapi/variables.xml +++ /dev/null @@ -1,1305 +0,0 @@ - - - - - 変数の作成 - - あなたの作成する拡張モジュールが PHP スクリプトとの間でデータ交換を行うにあたって、 - もっとも重要な問題は変数の作成です。この節では、 - PHP がサポートする変数の型を扱う方法を示します。 - - - 概要 - - 実行中のスクリプトによって「外部から」見える変数を新しく作成するには、 - まず新しい zval コンテナを確保してそこに値を格納し、 - それを Zend の内部シンボルテーブルに登録しなければなりません。 - これは、変数を作成する際のお決まりの手順です。 - - - - - - マクロ MAKE_STD_ZVAL は、ALLOC_ZVAL - を使用して新しい zval コンテナを確保し、 - INIT_ZVAL でそれを初期化します。 - これを書いている時点の Zend の実装では、初期化 - というのは参照カウンタを 1 にして - is_ref フラグをクリアすることを指します。 - しかし、これは今後拡張される可能性があります。そのため、 - ALLOC_ZVAL を直接使用するのではなく - MAKE_STD_ZVAL を用いるようにしておくことが大切です。 - 実行速度を最適化したい場合 (そして、ここで明示的に - zval コンテナを初期化する必要がない場合) - は ALLOC_ZVAL を使用することも可能です。 - しかし、データの整合性を保証できなくなるため、 - この方法は推奨されません。 - - - ZEND_SET_SYMBOL の役割は、新しい変数を - Zend のシンボルテーブルに登録することです。このマクロは、 - その値が既にシンボルテーブルに存在するかどうかを調べ、 - もし存在すれば新しいシンボルを参照に変換します - (古い zval コンテナが使用していたメモリは、 - 自動的に開放されます)。速度を気にする必要がない場合には - この方法がお勧めです。メモリの使用量を抑えることができます。 - - - ZEND_SET_SYMBOL は、マクロ EG - 経由で Zend executor のグローバル変数を使用することに注意しましょう。 - EG(active_symbol_table) を指定することで、 - 現在アクティブなシンボルテーブルを、アクティブなローカルスコープで扱えるようになります。 - ローカルスコープは、その関数が関数内でコールされたかどうかによって異なります。 - - - とにかく速度を最適化したい、メモリの消費量はあまり気にしない - という場合には、同じ値が既存の変数に登録されているかどうかの - チェックを省略することができます。その代わりに、 - zend_hash_update を使用して - 強制的にシンボルテーブルに挿入します。 - - - - これは、ほとんどのモジュールで使用されている標準的な方法です。 - - - 上の例で作成された変数は、常にローカルスコープにあります。 - つまり、その関数がコールされたコンテキスト内に存在するということです。 - 新しい変数をグローバルスコープに作成するにも同じメソッドを使用しますが、 - 別のシンボルテーブルを参照します。 - - - - 今回は、EG(symbol_table) - によって参照される本体のグローバルシンボルテーブルを使用して - ZEND_SET_SYMBOL マクロがコールされています。 - - - 注意: 変数 active_symbol_table - はポインタですが、symbol_table はそうではありません。 - これは、 - EG(active_symbol_table) および - &EG(symbol_table) を - ZEND_SET_SYMBOL へのパラメータとして使用する必要があるからです - - ここにはポインタが必要です。 - - - 同様に、より効率的なバージョンとして、 - シンボルテーブルの更新をハードコーディングすることもできます。 - - - - は、ふたつの変数を作成する例です。 - local_variable はローカルスコープ、そして - global_variable はグローバルスコープとなります (図 9.7 - を参照ください)。完全な例は CD-ROM にあります。 - - - 注意: グローバル変数は、実際には関数内からアクセスできないことにお気づきでしょう。 - これは、PHP ソース内で global $global_variable; - のようにローカルスコープにインポートしていないからです。 - - - スコープが異なる変数の作成 - - - - - スコープが異なる変数の作成 - - - - - - - - - Long (整数型) - - さあ、それではデータを変数に代入していきましょう。まずは long - 型からです。long は PHP の整数型で、非常にシンプルな形式で保存されます。 - この章の最初のほうで説明した zval.value コンテナの - 構造を見てみましょう。long 型のデータは、共用体の - lval フィールドに直接格納されることがおわかりでしょう。 - long 型に対応する type の値は - IS_LONG です - ( を参照ください)。 - - long の作成 - - - - - あるいは、マクロ ZVAL_LONG を使用することもできます。 - - - - - - - - Double (浮動小数点型) - - double 型は PHP の浮動小数点型で、long 型と同様に簡単に代入できます。 - この値もまた共用体に直接格納されるからです。 - zval.value コンテナで対応するメンバは - dval です。また、対応する type は - IS_DOUBLE となります。 - - - - あるいは、マクロ ZVAL_DOUBLE を使用することもできます。 - - - - - - - - 文字列 - - 文字列についてはもう少し手間を掛けなければなりません。 - 先に説明したように、Zend の内部データ構造に関連付けられる - すべての文字列は、Zend 自身のメモリ管理関数を使用して管理しなければなりません。 - 静的な文字列を参照したり、標準関数を使用して割り当てた文字列を使用することはできません。 - 文字列を代入するには、zval.value コンテナの構造体 - str にアクセスしなければなりません。 - 対応する type は IS_STRING です。 - - - - ここでの、Zend の estrdup の使用法に注意しましょう。 - もちろん、定義済みのマクロ ZVAL_STRING を使用することも可能です。 - - - - ZVAL_STRING は、3 番目のパラメータをとることができます。 - これは、指定した文字列が (estrdup を使用して) - 複製されるべきかどうかを指定します。このパラメータに - 1 を指定すると、文字列が複製されます。 - 0 の場合は、渡されたポインタを - そのまま変数の内容として使用します。これは、すでに Zend - の内部メモリに割り当てられている文字列を参照する変数を - 作成する場合に便利です。 - - - ある場所で文字列を切り捨てたい場合、 - あるいは文字列の長さが事前にわかっている場合は、ZVAL_STRINGL(zval, - string, length, duplicate) を使用して - 新しい文字列の長さを明示的に指定することができます。 - このマクロは ZVAL_STRING より高速に動作し、 - バイナリセーフです。 - - - 空の文字列を作成するには、文字列の長さを 0 - にしたうえで、中身に empty_string を使用します。 - - - - もちろん、これを行うためのマクロもあります - (ZVAL_EMPTY_STRING)。 - - - - - - - - 論理型 - - 論理型の作り方は long 型と同じです。ただ、type は - IS_BOOL となります。 - lval に指定できる値は - 0 および 1 です。 - - - - この型に対応するマクロは ZVAL_BOOL - (値を指定できます)、そして ZVAL_TRUE - および ZVAL_FALSE (それぞれ、値を明示的に - TRUE および FALSE - に設定します) です。 - - - - - 配列 - - 配列は、Zend の内部ハッシュテーブルに格納されます。 - このハッシュテーブルにアクセスするには zend_hash_* - API を使用します。配列を作成するたびに、新しいハッシュテーブルの - ハンドルが必要となります。これは、zval.value - コンテナのメンバ ht に格納されます。 - - - 単に配列を作成するためだけの API があります。これは非常に便利です。 - 新しい配列を開始するには、array_init - をコールします。 - - - - array_init は、常に SUCCESS - を返します。 - - - 配列に新しい要素を追加するには、 - やりたいことに応じてさまざまな関数を使用できます。 - 、 - および - - で、これらの関数について説明しています。これらの関数はすべて、 - 失敗した場合に FAILURE、 - 成功した場合に SUCCESS を返します。 - - - 連想配列用の Zend の API - - - - - - - 関数 - 説明 - - - - add_assoc_long(zval *array, char *key, long n); - - long 型の要素を追加します。 - - - - add_assoc_unset(zval *array, char *key); - 未設定の要素を追加します。 - - - - add_assoc_bool(zval *array, char *key, int b); - - Boolean 要素を追加します。 - - - - add_assoc_resource(zval *array, char *key, int r); - - リソースを配列に追加します。 - - - - add_assoc_double(zval *array, char *key, double d); - - 浮動小数点値を追加します。 - - - - add_assoc_string(zval *array, char *key, char *str, int duplicate); - - - 文字列を配列に追加します。フラグ duplicate は、 - 文字列の内容を Zend の内部メモリにコピーする必要があるかどうかを指定します。 - - - - - - add_assoc_stringl(zval *array, char *key, char *str, uint length, int duplicate); - - - - 長さ length の文字列を配列に追加します。 - それ以外は add_assoc_string と同じです。 - - - - add_assoc_zval(zval *array, char *key, zval *value); - zval を配列に追加します。別の配列やオブジェクト、ストリームなどを追加する際に便利です。 - - - -
- - 数値添字配列用の Zend の API その 1 - - - - - - - 関数 - 説明 - - - add_index_long(zval *array, uint idx, long - n); - long 型の要素を追加します。 - - - add_index_unset(zval *array, uint - idx); - 未設定の要素を追加します。 - - - add_index_bool(zval *array, uint idx, int - b); - Boolean 要素を追加します。 - - - add_index_resource(zval *array, uint idx, int - r); - リソースを配列に追加します。 - - - add_index_double(zval *array, uint idx, double - d); - 浮動小数点値を追加します。 - - - add_index_string(zval *array, uint idx, char - *str, int duplicate); - - 文字列を配列に追加します。フラグ duplicate は、 - 文字列の内容を Zend の内部メモリにコピーする必要があるかどうかを指定します。 - - - - add_index_stringl(zval *array, uint idx, char - *str, uint length, int duplicate); - - 長さ length の文字列を配列に追加します。 - この関数は高速でバイナリセーフです。 - それ以外は add_index_string と同じです。 - - - - add_index_zval(zval *array, uint idx, zval *value); - zval を配列に追加します。別の配列やオブジェクト、ストリームなどを追加する際に便利です。 - - - -
- - 数値添字配列用の Zend の API その 2 - - - - - - - 関数 - 説明 - - - add_next_index_long(zval *array, long - n); - long 型の要素を追加します。 - - - add_next_index_unset(zval - *array); - 未設定の要素を追加します。 - - - add_next_index_bool(zval *array, int - b); - Boolean 要素を追加します。 - - - add_next_index_resource(zval *array, int - r); - リソースを配列に追加します。 - - - add_next_index_double(zval *array, double - d); - 浮動小数点値を追加します。 - - - add_next_index_string(zval *array, char *str, - int duplicate); - - 文字列を配列に追加します。フラグ duplicate は、 - 文字列の内容を Zend の内部メモリにコピーする必要があるかどうかを指定します。 - - - - add_next_index_stringl(zval *array, char *str, - uint length, int duplicate); - - 長さ length の文字列を配列に追加します。 - この関数は高速でバイナリセーフです。 - それ以外は add_index_string と同じです。 - - - - add_next_index_zval(zval *array, zval *value); - zval を配列に追加します。別の配列やオブジェクト、ストリームなどを追加する際に便利です。 - - - -
- - これらの関数はすべて、Zend 内部のハッシュ API を抽象化して使用しやすくしたものです。 - もちろん、ハッシュ関数を直接使用することも可能です。例えば、すでに割り当て済みの - zval コンテナを配列に挿入する場合などが考えられます。 - これを行うには、連想配列の場合は zend_hash_update - ( を参照ください)、 - 数値添字配列の場合は zend_hash_index_update - ( を参照ください) - を使用します。 - - 連想配列への要素の追加 - - - - - - 数値添字配列への要素の追加 - - - - - - - add_next_index_* の機能をエミュレートするには、 - これを使用します。 - - - - - - 注意: 関数から配列を返すには、まず - array_init を使用し、それ以降の操作は定義済み変数 - return_value で行います - (エクスポートする関数への引数として渡します。 - 呼び出しインターフェイスについての先ほどの議論を参照ください)。 - ここで MAKE_STD_ZVAL を使用してはいけません。 - - - Tip: 毎回 - new_array->value.ht を書く手間を省くためには - HASH_OF(new_array) を使用します。 - これは、互換性やコーディングスタイルの観点からもお勧めです。 - -
- - - オブジェクト - - オブジェクトは配列に変換できる (その逆も可能) ので、 - PHP の配列と多くの共通点があるであろうことはお気づきでしょう。 - オブジェクトを処理するには、同じようなハッシュ関数を使用しますが、 - オブジェクトを作成する際には異なる API を使用します。 - - - オブジェクトを初期化するには、関数 - object_init を使用します。 - - - - - で説明している関数を使用すると、 - オブジェクトにメンバを追加することができます。 - - - オブジェクトを作成するための Zend の API - - - - - - - 関数 - 説明 - - - add_property_long(zval *object, char *key, long - l); - long 型をオブジェクトに追加します。 - - - add_property_unset(zval *object, char - *key); - 未設定のプロパティをオブジェクトに追加します。 - - - add_property_bool(zval *object, char *key, int - b); - Boolean をオブジェクトに追加します。 - - - add_property_resource(zval *object, char *key, - long r); - リソースをオブジェクトに追加します。 - - - add_property_double(zval *object, char *key, - double d); - double 型をオブジェクトに追加します。 - - - add_property_string(zval *object, char *key, - char *str, int duplicate); - 文字列をオブジェクトに追加します。 - - - add_property_stringl(zval *object, char *key, - char *str, uint length, int duplicate); - - 指定した長さの文字列をオブジェクトに追加します。この関数は - add_property_string より高速で、バイナリセーフです。 - - - - - - add_property_zval(zval *obect, char *key, zval *container): - - - zval コンテナをオブジェクトに追加します。 - これは、整数値や文字列のような単純なものではなく - 配列やその他のオブジェクトなどをプロパティとして追加する際に有用です。 - - - - - -
-
- - - リソース - - リソースは、PHP における特殊なデータ型です。 - リソース (resources) は何らかの特定の型を表すわけではなく、 - さまざまな情報を扱うための抽象化した方法を表しています。 - リソースは、Zend の内部では特別なリストの中に保持されます。 - リストの各エントリは、そのリソースが指すデータを表す型定義を持っています。 - Zend は、内部でリソースを扱う際には、常にこれを使用します。 - リソースに直接アクセスすることはできず、提供されている API - を通じてアクセスしなければなりません。特定のリソースに対する - 参照がすべて失われると、対応するシャットダウン関数がすぐにコールされます。 - - - 例えば、リソースは、 - データベースへのリンクやファイル記述子を格納するために使用されます。 - 事実上の標準実装となっているのは - MySQL モジュールです。しかし、例えば Oracle モジュールのような - その他のモジュールでもリソースを使用しています。 - - - 実際のところ、あなたが関数内で処理したい任意のデータへのポインタ - (例: 構造体へのポインタ) を、リソースとして使用することができます。 - ユーザーがこのデータにアクセスするには、ひとつのリソース変数を - 関数に渡すだけでいいようになります。 - - - - - 新しいリソースを作成するには、そのリソースを開放するためのハンドラを - 登録しなければなりません。リソースにはあらゆる種類のデータを保存できるので、 - Zend は、それが不要になった際にどのように開放するのかを知っておく必要があるのです。 - これを実現するために、自分が作成したリソース開放ハンドラを Zend - に登録します。これは、(手動・自動にかかわらず) - リソースを開放することになった際に、Zend によってコールされます。 - リソースハンドラを Zend に登録すると、そのリソースについての - リソース型ハンドルが Zend から返されます。 - このハンドルは、後でこの型のリソースにアクセスする際には常に必要となり、 - たいていは拡張モジュール内のグローバルな静的変数として保存されます。 - スレッドセーフであるかどうかについて心配する必要はありません。 - なぜなら、リソースハンドラの登録は - モジュールの初期化時に一度行うだけだからです。 - - - リソースハンドラを登録するための Zend の関数は、次のように宣言されています。 - - - - - - この関数には、二種類の異なるリソース破壊ハンドラを渡すことが可能です。 - それぞれ、通常のリソース用のものと持続的なリソース用のものになります。 - 持続的なリソースとは、例えばデータベース接続などに使用されるものです。 - リソースを登録する際には、これらのどちらかのハンドラを必ず指定しなければなりません。 - もう一方のほうには、単に NULL を渡すようにします。 - - - zend_register_list_destructors_ex - は、次のパラメータを受け取ります。 - - - - - - - ld - - 通常のリソース用のリソース破壊ハンドラコールバック。 - - - - pld - - 持続的なリソース用のリソース破壊ハンドラコールバック。 - - - - type_name - - そのリソースの名前を表す文字列。 - PHP 内で一意になるような名前をつけるよう心がけましょう。 - ユーザーが例えば var_dump($resource); - をコールした際に、この名前が表示されます。 - - - - module_number - - module_number は、 - PHP_MINIT_FUNCTION - 関数の中で自動的に使用可能となります。 - そのため、単純にそれを渡すだけです。 - - - - - - 返り値は、作成した - リソース型 - の一意な ID となる整数値です。 - - - リソース破壊ハンドラ (通常版および持続的リソース版のどちらも) - のプロトタイプは次のようになります。 - void resource_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC); - rsrc に渡されるのは、次のような構造体へのポインタです。 - - - - メンバ void *ptr が、 - リソースへの実際のポインタとなります。 - - - これでやるべきことがわかりました。Zend に登録したいリソースを、 - 実際に定義してみましょう。 - ここでは、ふたつの整数型メンバからなる単純な構造体を考えます。 - - - - このリソースを破壊するハンドラは、おそらく次のようなものとなるでしょう。 - -ptr; - - // ここで、そのリソースに対して必要な作業を行います。たとえば - // ファイルやソケットを閉じたり、内部で新たに確保したメモリを開放したりなどです。 - // もちろん、このリソース自身が使っているメモリを開放することも忘れないようにしましょう。 - - do_whatever_needs_to_be_done_with_the_resource(my_rsrc); -} -]]> - - - - 注意すべき点: もしそのリソースが複雑な構造体であり、 - その内部で実行時に確保したメモリへのポインタを含んでいる場合は、 - リソース自身のメモリを開放する - 前に - 実行時に確保したメモリを開放しなければなりません。 - - - - - ここまでで、 - - どんなリソースなのか - そのリソースを破壊する際のハンドラ - - の定義が終了しました。それでは残りの作業を進めましょう。 - - 拡張モジュール内のグローバル変数を作成し、 - リソース ID を保持させる。必要に応じて、 - これは全ての関数からアクセス可能となる - リソース名を定義する - リソース破壊ハンドラを記述する - そしてそのハンドラを登録する - - -ptr; - do_whatever_needs_to_be_done_with_the_resource(my_rsrc); - } - - [...] - - PHP_MINIT_FUNCTION(my_extension) { - - // 'module_number' は、PHP_MINIT_FUNCTION() 関数の - // 定義で既に提供されていることに注意しましょう。 - - le_myresource = zend_register_list_destructors_ex(my_destruction_handler, NULL, le_myresource_name, module_number); - - // 別のリソースを登録したり、グローバル変数や定数を - // 初期化したりします。 - } -]]> - - - - 実際に新しいリソースを登録するには、 - zend_register_resource 関数あるいは - ZEND_REGISTER_RESOURE マクロのいずれかを使用します。 - これらはどちらも zend_list.h で定義されています。 - それぞれの引数は一対一対応しているので、 - 将来の互換性を考えると常にマクロを使用するようにすることをお勧めします。 - - - - - - - - - - rsrc_result - これは、事前に初期化済みの - zval * コンテナです。 - - - rsrc_pointer - 保存したいリソースへのポインタ。 - - - rsrc_type - - リソース破壊ハンドラを登録した際に受け取る型。 - 命名規約に従うなら、これは - le_myresource となります。 - - - - - - 返り値は、そのリソースに対応する一意な整数値になります。 - - - 新しいリソースを登録する際に実際には何が行われているのかというと、 - まずそれが Zend の内部リストに挿入されます。そして、 - 結果は単に与えられた zval * - コンテナに保存されます。 - -value.lval = rsrc_id; - rsrc_result->type = IS_RESOURCE; - } - - return rsrc_id; -]]> - - 返される rsrc_id は、 - 新しく登録されたリソースを表す一意な識別子となります。 - マクロ RETURN_RESOURE を使用して、 - これを利用者に返すことができます。 - RETURN_RESOURCE(rsrc_id) - - - そのリソースをすぐに利用者に返したいのなら、 - return_value を - zval * コンテナに設定するのが一般的な方法です。 - - - - - Zend はこれ以降、このリソースに対するすべての参照を管理できるようになります。 - リソースへの参照がすべて失われると、リソースに対して事前に定義した - デストラクタがすぐにコールされます。この設定の利点は、 - あなたのモジュール内で発生するメモリリークを気にしなくてもすむということです。 - 呼び出し元スクリプトで割り当てているすべてのメモリはリソースを参照しています。 - メモリが必要なくなったとスクリプトが判断した時点で、 - Zend はすぐにそれを検出して通知してくれます。 - - - さて、利用者がリソースを取得したあとで、 - それをまたあなたの作成した関数に渡してきたとしましょう。 - zval * コンテナ内の - value.lval にはあなたのリソースのキーが含まれているので、 - それを使用して次のマクロでリソースを取得することができます。 - ZEND_FETCH_RESOURCE: - - - - - - - - - - rsrc - - これは、あなたが事前に登録したリソースを指すポインタです。 - - - - rsrc_type - - これは、ポインタに対する型キャスト引数、例えば - myresource * などです。 - - - - rsrc_id - - これは、利用者があなたの関数に渡した - zval * コンテナのアドレスです。例えば - zval *z_resource が指定された場合には - &z_resource となります。 - - - - default_rsrc_id - - これは、リソースが取得できなかった場合は -1 が返された場合などのための - デフォルトのリソース ID です。 - - - - resource_type_name - - これは、要求されたリソースの名前です。 - リソースが見つからなかった場合や無効なリソースだった場合に、 - 意味のあるエラーメッセージを作成するためにこの文字列を使用します。 - - - - resource_type - - リソース破壊ハンドラを登録した際に返すリソース型です。 - 今回の例では、これは le_myresource でした。 - - - - - - このマクロは何も値を返しません。これは開発者の利便性のためで、 - TSRMLS 引数のことを考慮したものです。リソースを読み込む段階でチェックが行われます。 - リソースの取得時にエラーが発生した場合は、このマクロは - 警告メッセージをスローし、PHP 関数は NULL - を返します。 - - - リソースをリストから強制的に削除するには、関数 - zend_list_delete を使用します。 - また事前に割り当てた値への新たな参照を作成した場合 - (例えば、デフォルトのデータベースリンクを再利用する場合) - などは、強制的に参照カウンタを増加させることができます。 - このような場合は、関数 zend_list_addref - を使用します。事前に割り当てたリソースエントリを探すには - zend_list_find を使用します。 - これらの完全な API は、zend_list.h - で確認できます。 - - - - - 自動グローバル変数の作成のためのマクロ - - 先ほど説明したマクロに加え、 - 単純なグローバル変数を簡単に作成するためのマクロがあります。 - これらは、例えばグローバルなフラグなどを作成する際に知っておくと便利です。 - あまり行儀のよいやり方ではありませんが、 - - で説明するマクロはまさにこの作業を行うためのものです。 - これらは zval を確保する必要がありません。 - 単純に、変数名と値を渡すだけでいいのです。 - - - グローバル変数の作成のためのマクロ - - - - - - - マクロ - 説明 - - - SET_VAR_STRING(name, value) - 新しい文字列を作成します。 - - - SET_VAR_STRINGL(name, value, - length) - - 新しい文字列を、指定した長さで作成します。このマクロは - SET_VAR_STRING より高速で、バイナリセーフです。 - - - - SET_VAR_LONG(name, value) - 新しい long を作成します。 - - - SET_VAR_DOUBLE(name, value) - 新しい double を作成します。 - - - -
-
- - - 定数の作成 - - Zend は (通常の変数ではなく) 真の定数の作成もサポートしています。 - 定数へのアクセスにはドル記号 ($) - の接頭辞が不要で、すべてのスコープで使用可能です。 - 例としては TRUE や - FALSE などがあります。 - - - 独自の定数を作成するには、 - のマクロを使用します。 - これらのマクロは、指定した名前と値の定数を作成します。 - - - 各定数に対して、フラグを指定することもできます。 - - - - CONST_CS - - この定数名は、大文字小文字を区別して扱われます。 - - - - - CONST_PERSISTENT - - この定数は持続的に扱われ、この定数を保持しているプロセスが - 終了した後も「忘れられる」ことはありません。 - - - - これらのフラグは、OR で組み合わせて使用します。 - // "long" 型の新しい定数を登録します。 - REGISTER_LONG_CONSTANT("NEW_MEANINGFUL_CONSTANT", 324, CONST_CS | - CONST_PERSISTENT); - マクロには、ふたつの形式があります。 - REGISTER_*_CONSTANT および - REGISTER_MAIN_*_CONSTANT です。 - 最初の形式は、定数を現在のモジュールにバインドします。 - これらの定数は、そのモジュールがメモリから開放されるとすぐに、 - シンボルテーブルから削除されます。二番目の形式が作成する定数は、 - モジュールとは独立してシンボルテーブルに残り続けます。 - - - 定数を作成するためのマクロ - - - - - - マクロ - 説明 - - - - REGISTER_LONG_CONSTANT(name, value, flags) - REGISTER_MAIN_LONG_CONSTANT(name, value, flags) - - long 型の新しい定数を登録します。 - - - - REGISTER_DOUBLE_CONSTANT(name, value, flags) - REGISTER_MAIN_DOUBLE_CONSTANT(name, value, flags) - - double 型の新しい定数を登録します。 - - - - REGISTER_STRING_CONSTANT(name, value, flags) - REGISTER_MAIN_STRING_CONSTANT(name, value, flags) - - - 文字列型の新しい定数を登録します。指定した文字列は、Zend - の内部メモリ上に存在しなければなりません。 - - - - - REGISTER_STRINGL_CONSTANT(name, value, length, flags) - REGISTER_MAIN_STRINGL_CONSTANT(name, value, length, - flags) - - - 文字列型の新しい定数を登録します。文字列の長さを、 - 明示的に length と指定します。 - 指定した文字列は、Zend の内部メモリ上に存在しなければなりません。 - - - - -
-
-
- diff --git a/internals2/ze1/zendapi/where-to-go.xml b/internals2/ze1/zendapi/where-to-go.xml deleted file mode 100644 index 91696f2f64..0000000000 --- a/internals2/ze1/zendapi/where-to-go.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - 次に進むべき道 - - ここでは PHP について多くのことを学びました。あなたは、今や - 動的ロード可能なモジュールや静的にリンクされた拡張モジュールの - 作成方法を身につけています。PHP や Zend が変数を内部でどのように - 管理しているのか、そして変数を作成したりそれにアクセスするには - どうすればいいのかもわかるようになりました。 - 各種情報の表示・シンボルテーブルへの変数の自動登録などの - お決まりの手続きを行う関数についても知っています。 - - - この章の中には「リファレンス的な」部分も多々ありましたが、 - あなたが独自の拡張モジュールを書き始めるための手助けとなることを - 望んでいます。 - ところで、スペースの都合上 - 省略せざるを得なかった内容が多くあります。 - ぜひ、時間をとってヘッダファイルや既存のモジュールについて - 勉強してみることをお勧めします (特に - ext/standard ディレクトリのモジュールや - MySQL モジュールがお勧めです。これらのモジュールには - 一般的な機能がすべて実装されています)。 - これらを勉強することで、(ここで取り上げられなかった機能も含めた) - API 関数の使用方法を身につけることができるでしょう。 - - - diff --git a/language-defs.ent b/language-defs.ent index bb4c249750..2c08f6ceed 100644 --- a/language-defs.ent +++ b/language-defs.ent @@ -1,6 +1,6 @@ - + @@ -45,7 +45,7 @@ - + @@ -79,6 +79,7 @@ + &Changelog;'> 定義済みクラス'> クラス概要'> +列挙型概要'> 定義済み定数'> コンストラクタ'> 説明'> @@ -99,7 +101,7 @@ supplemental files to mark section titles --> インデックス'> インターフェイス概要'> メソッド'> -MySQL ネイティブドライバ限定'> +MySQL Native Driver 限定'> 注意'> パラメータ'> オプション'> @@ -107,8 +109,14 @@ supplemental files to mark section titles --> 要件'> リソース型'> 実行時設定'> -返り値'> +戻り値'> 参考'> インストール/設定'> Unicode'> 利用法'> + + +スーパーグローバル'> diff --git a/language-snippets.ent b/language-snippets.ent index 8203dd1919..1c115dd8c2 100644 --- a/language-snippets.ent +++ b/language-snippets.ent @@ -1,7 +1,7 @@ - - + + @@ -20,22 +20,47 @@ xmlns="http://docbook.org/ns/docbook">この関数は PHP 5.3.0 で この機能を使用しないことを強く推奨します。'> -この関数が生成する値は、暗号学的に安全ではありません。そのため、これを暗号として使ってはいけません。暗号学的に安全な値が必要な場合は、random_intrandom_bytes あるいは openssl_random_pseudo_bytes を使いましょう。'> + + + この関数が生成する値は、暗号学的にセキュアではありません。そのため、これを暗号や、戻り値を推測できないことが必須の値として使っては いけません。 + + + 暗号学的にセキュアな乱数が必要な場合は、Random\RandomizerRandom\Engine\Secure と一緒に使いましょう。簡単なユースケースの場合、random_intrandom_bytes 関数が、オペレーティングシステムの CSPRNG を使った、 便利で安全な API を提供します。 + +'> + + + + Mt19937 (メルセンヌ・ツイスター) エンジンは、シードとして32ビットの整数だけを受け入れます。よって、219937-1 もの周期を持つにも関わらず、あり得るランダムなシーケンスの数はたかだか 232 (つまり 4,294,967,296) しかありません。 + + + 暗黙、または明示的にランダムなシードに依存する場合、 + 重複がそれ(4,294,967,296 個)よりもかなり早く発生します。 + 誕生日のパラドックスによると、80,000 個以下のランダムなシードを生成した場合でも、 + 50% の確率でシードが重複します。 + ざっと 30,000 個のランダムなシードを生成すると、10% の確率でシードが重複します。 + + + このため、無視できる確率以上に重複したシーケンスが発生してはいけないアプリケーションでは、Mt19937 は適していません。 + 再現可能なシードが必須の場合、 + Random\Engine\Xoshiro256StarStarRandom\Engine\PcgOneseq128XslRr64 + が、ずっと大きなシードをサポートしているため、衝突の可能性が低いです。 + 再現可能なシードが必須でない場合、 + Random\Engine\Secure + が、暗号学的にセキュアなランダム性を提供します。 + +'> この関数はバイナリデータに対応しています。 '> -この関数はロケールを認識し、入力を現在設定されているロケールに従って処理します。しかしながら、この入力の処理はシングルバイトの文字セットでのみ動作します。マルチバイト文字(大半の西ヨーロッパ言語以外のそれが該当します)を扱う必要がある場合、mbstring や intl 拡張モジュールを調べてみて下さい。'> - この関数の結果は キャッシュされます。詳細は、clearstatcache を参照してください。'> -コンテキストのサポートは、 -PHP 5.0.0 で追加されました。contexts の説明に関しては、 - を参照してください。'> +ストリームコンテキストリソース'> プログラムがこの関数で始まる場合、 バックグラウンドで処理を続けさせるには、 @@ -44,6 +69,8 @@ PHP 5.0.0 で追加されました。contexts の説明に関 Windowsでは、exec 関数はコマンドを起動するために最初に cmd.exe を起動します。cmd.exe を起動せずに外部プログラムを起動したい場合は、proc_open 関数を bypass_shell オプションを指定して使うようにしてください。'> +Windows の NTFS ファイルシステムには、ファイル名で使う場合にサポートしていない文字があります。具体的には、<|>*?": です。末尾にドットがあるファイル名もサポートしていません。いくつかの展開ツールと異なり、このメソッドはこれらの文字をアンダースコアで置き換えませんし、そのようなファイルを展開すると失敗します。'> + 関数名の代わりに、オブジェクトへの リファレンスを格納した配列とメソッド名を指定することもできます。'> @@ -52,7 +79,7 @@ PHP 5.0.0 で追加されました。contexts の説明に関 前のコールバックからスローされた例外がキャッチされていない場合はコールされません。'> -引数を参照渡しにすると、その引数への変更がすべてこの関数の返り値に反映されます。 +引数をリファレンス渡しにすると、その引数への変更がすべてこの関数の返り値に反映されます。 PHP 7 からは、引数が値渡しされた場合には現在の値も返されるようになりました。'> この関数は、 @@ -61,6 +88,12 @@ PHP 7 からは、引数が値渡しされた場合には現在の値も返さ もし、この値を渡さなければならない場合、戻り値を変数に割り当て、 その変数を渡してください。'> + +PHP 8.0.0 以降における func_*() 関数ファミリは、名前付き引数に関しては、ほぼ透過的に動作するはずです。つまり、渡された全ての引数は位置を指定したかのように扱われ、引数が指定されない場合は、デフォルト値で置き換えられるということです。 +この関数は、未知の名前付きの可変長引数を無視します。 +未知の名前付き引数は、可変長引数を通じてのみアクセスできます。 +'> + マッキントッシュコンピュータ上で作成されたファイルを読み込む際に、 PHP が行末を認識できないという問題が発生した場合、 @@ -96,15 +129,6 @@ ZTS (Zend Thread Safety) を有効にしてビルドした PHPインタプリタ によりランダム数生成器にシードを与える必要はありません。 これは、この処理が自動的に行われるためです。'> - -register_globals: -重要な注意PHP 4.2.0 以降、PHP ディレクティブ -register_globals -のデフォルト値は off となっています。 -PHP コミュニティは、ユーザーがこのディレクティブの設定に依存せず、 -&link.superglobals; のような他の手段を使用することを推奨します。 -'> - これは 'スーパーグローバル' あるいは自動グローバル変数と呼ばれるものです。 スクリプト全体を通してすべてのスコープで使用することができます。 @@ -116,6 +140,8 @@ PHP コミュニティは、ユーザーがこのディレクティブの設定 return パラメータを使う場合、この関数は内部的に出力バッファリングを使います。 そのため、ob_start コールバック関数の中では使えません。'> +return パラメータを使う場合、かつ PHP 7.1.0 より前のバージョンでは、この関数は内部的な出力バッファリングを使っていました。この場合、ob_start のコールバック関数の中では使えません。'> + 時刻の精度は、 ファイルシステムによって異なることがあります。'> @@ -140,7 +166,21 @@ PHP コミュニティは、ユーザーがこのディレクティブの設定 - 比較結果が等しくなる二つの要素があった場合、ソートした配列におけるそれらの並び順は不定となります。 + 比較結果が等しくなる二つの要素があった場合、それらの並び順は保持されます。PHP 8.0.0 より前のバージョンでは、ソートした配列におけるそれらの並び順は不定でした。 + + +'> + + + + この関数をコールすると、配列の内部ポインタは最初の要素にリセットされます。 + + +"> + + + + この関数を実行しても何も起こりません。PHP 8.0.0 より前のバージョンでは、この関数はリソースを閉じるのに使われていました。 '> @@ -183,6 +223,9 @@ URL を使用することができます。ファイル名の指定方法に関 のリリースにおいて変更される可能性があります。 このモジュールは自己責任で使用してください。'> + + + この機能は PHP 5.3.0 で 非推奨 となりました。 @@ -228,6 +271,11 @@ xmlns="http://docbook.org/ns/docbook">この機能は PHP 7.1.0 で xmlns="http://docbook.org/ns/docbook">この関数は PHP 7.1.0 で 非推奨になります。この関数に頼らないことを強く推奨します。'> +この関数は PHP 7.0.0 で +非推奨となり、PHP 8.0.0 で削除 +されました。この関数に頼らないことを強く推奨します。'> + この関数は PHP 7.1.0 で 非推奨となり、PHP 7.2.0 で削除 @@ -237,10 +285,20 @@ xmlns="http://docbook.org/ns/docbook">この関数は PHP 7.1.0 で xmlns="http://docbook.org/ns/docbook">この機能は PHP 7.2.0 で 非推奨になります。この機能に頼らないことを強く推奨します。'> +この機能は PHP 7.2.0 で +非推奨 になり、PHP 8.0.0 で 削除 +されました。この機能に頼らないことを強く推奨します。'> + この関数は PHP 7.2.0 で 非推奨になります。この関数に頼らないことを強く推奨します。'> +この関数は PHP 7.2.0 で +非推奨 になり、PHP 8.0.0 で 削除 +されました。この関数に頼らないことを強く推奨します。'> + この機能は PHP 7.3.0 で 非推奨になります。この機能に頼らないことを強く推奨します。'> @@ -249,6 +307,11 @@ xmlns="http://docbook.org/ns/docbook">この機能は PHP 7.3.0 で xmlns="http://docbook.org/ns/docbook">この関数は PHP 7.3.0 で 非推奨になります。この関数に頼らないことを強く推奨します。'> +この関数は PHP 7.3.0 で +非推奨 になり、PHP 8.0.0 で 削除 +されました。この関数に頼らないことを強く推奨します。'> + この機能は PHP 7.4.0 で 非推奨になります。この機能に頼らないことを強く推奨します。'> @@ -257,7 +320,56 @@ xmlns="http://docbook.org/ns/docbook">この機能は PHP 7.4.0 で xmlns="http://docbook.org/ns/docbook">この関数は PHP 7.4.0 で 非推奨になります。この関数に頼らないことを強く推奨します。'> -きっと +この関数は PHP 7.4.0 で +非推奨 になり、PHP 8.0.0 で 削除 +されました。この関数に頼らないことを強く推奨します。'> + + +この機能は、PHP 8.0.0 で 削除されました +'> + +この関数は PHP 8.0.0 で +非推奨になります。この関数に頼らないことを強く推奨します。'> + +この機能は PHP 8.1.0 で +非推奨になります。この機能に頼らないことを強く推奨します。'> + +この関数は PHP 8.1.0 で +非推奨になります。この関数に頼らないことを強く推奨します。'> + +この関数は PHP 8.2.0 で +非推奨になります。この関数に頼らないことを強く推奨します。'> + +この機能は PHP 8.3.0 で +非推奨になります。この機能に頼らないことを強く推奨します。'> + +この関数は PHP 8.3.0 で +非推奨になります。この関数に頼らないことを強く推奨します。'> + +この機能は PHP 8.4.0 で +非推奨になります。この機能に頼らないことを強く推奨します。'> + +この関数は PHP 8.4.0 で +非推奨になります。この関数に頼らないことを強く推奨します。'> + +この機能は PHP 8.5.0 で +非推奨 になります。この機能に頼らないことを強く推奨します。'> + +この関数は PHP 8.5.0 で +非推奨になります。この関数に頼らないことを強く推奨します。'> + +きっと 将来 削除 されるでしょう。'> @@ -315,6 +427,14 @@ PHP 7.0.0 で 削除 されました。 xmlns="http://docbook.org/ns/docbook">この機能は PHP 7.4.0 で 削除 されました。'> +このエイリアスは PHP 7.2.0 で 非推奨 となり、PHP 8.0.0 で 削除 されました。'> + +このエイリアスは PHP 7.4.0 で 非推奨 となり、PHP 8.0.0 で 削除 されました。'> + +このエイリアスは PHP 8.0.0 で 非推奨 になりました。'> + +このエイリアスは PHP 8.0.0 で 削除 されました。'> + この関数は、 実験的 なものです。この関数の動作・ 名前・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP @@ -323,7 +443,7 @@ PHP 7.4.0 で 削除 されました。 IMAP、recode、 -YAZ および Cyrus +YAZ 拡張モジュールは、組み合わせて使用することはできません。 これは、これらすべてが同一の内部シンボルを使用しているためです。 注意: Yaz 2.0 以降ではこの問題は発生しません。'> @@ -334,14 +454,6 @@ CGI モードで公開したサーバーは、いくつかの脆弱性の標的 CGI セキュリティ のセクションを参照してください。'> -ディレクティブに関する注意: -magic_quotes_gpcPHP ディレクティブmagic_quotes_gpc のデフォルトは -on です。この場合、すべての GET, POST, COOKIE データに -ついて addslashes が実行されます。 -これらを取り除くため stripslashes を使用することが -できます。'> - @@ -457,6 +569,14 @@ PHP では、https:// ラッパーでストリームをオー '> +この関数は PHP 8.1.0 で +非推奨 になります。この関数に頼らないことを強く推奨します。 + +この関数の代替として、これらが使えます: + +'> + @@ -483,8 +603,34 @@ PHP では、https:// ラッパーでストリームをオー 上の例の PHP 7.1 での出力は、このようになります。'> +上の例の PHP 7.2 での出力は、このようになります。'> + 上の例の PHP 7.3 での出力は、このようになります。'> +上の例の PHP 8 での出力は、このようになります。:'> + +上の例の PHP 8 での出力は、たとえば以下のようになります。:'> + +上の例の PHP 8.0 での出力は、このようになります。:'> + +上の例の PHP 8.1 での出力は、このようになります。:'> + +上の例の PHP 8.2 での出力は、このようになります。:'> + +上の例の PHP 8.2 での出力は、たとえば以下のようになります。:'> + +上の例の PHP 8.3 での出力は、このようになります。:'> + +上の例の PHP 8.3 での出力は、たとえば以下のようになります。:'> + +上の例の PHP 8.4 での出力は、このようになります。:'> + +上の例の PHP 8.4 での出力は、たとえば以下のようになります。:'> + +上の例の PHP 8.5 での出力は、このようになります。:'> + +上の例の PHP 8.5 での出力は、たとえば以下のようになります。:'> + 上の例の 32 ビットマシンでの出力は、このようになります。'> 上の例の 64 ビットマシンでの出力は、このようになります。'> @@ -505,16 +651,104 @@ PHP では、https:// ラッパーでストリームをオー 入力配列のポインタを、使用した後にリセット (reset) します。'> + + 8.0.0 + + callback がリファレンス渡しされる引数を期待している場合、 + この関数は E_WARNING を発生させるようになりました。 + +'> + + + 8.0.0 + + この関数は、引数をひとつだけ渡しても呼び出せるようになりました。 + これより前のバージョンでは、少なくともふたつの引数が必須でした。 + +'> + 配列ソート関数の比較'> -callback 型に関する情報'> + + flags + + + オプションの第二引数 flags によりソートの動作を修正可能です。 + 使える値は下記の通りです: + + + ソートタイプのフラグ: + + + SORT_REGULAR - 通常通りに項目を比較します。 + 詳細は 比較演算子 で説明されています。 + + + SORT_NUMERIC - 数値として項目を比較します。 + + + SORT_STRING - 文字列として項目を比較します。 + + + + SORT_LOCALE_STRING - 現在のロケールに基づいて、文字列として項目を比較します。 + 比較に使うロケールは、setlocale 関数で変更できます。 + + + + + SORT_NATURAL - 要素の比較を文字列として行い、 + natsort と同様の「自然順」で比較します。 + + + + + SORT_FLAG_CASE - SORT_STRING や + SORT_NATURAL と (ビットORで) 組み合わせて使い、 + 文字列のソートで大文字小文字を区別しないようにします。 + + + + + + +'> + + + &return.callbacksort; + +&callback.cmp; + + + float のような 非整数 を比較関数が返すと、その返り値を内部的に int にキャストして使います。 + つまり、0.990.1 といった値は整数値 0 にキャストされ、 + 値が等しいとみなされます。 + +'> + + + + ソートに使うコールバック関数は、任意の配列からの任意の値を、もともとの順番に関係なく、任意の順番で処理できなければいけません。なぜなら、個々の配列は、他の配列と比較する前に最初にソートされるからです。 -定義済みの変数 -配列は register_long_arrays -ディレクティブにより無効にすることができます。'> + サンプルコードは、以下のようになります: + + 1]]; +// $item1 と $item2 は "string", 1, ["value" => 1] のいずれでも構いません +$compareFunc = static function ($item1, $item2) { + $value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1); + $value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2); + return $value1 <=> $value2; +}; +?> +]]> + + +'> -integerを使用する際、 +intを使用する際、 その値はバイト単位で測られます。 この FAQ に記載された 短縮表記を使用することも可能です。'> @@ -547,11 +781,7 @@ DLL ファイルを PHP のフォルダから Windows のシステムディレ -リソース'> - -foreach'> - -yield'> +match'> コンテキスト についての説明は、 マニュアルの コンテキスト の節を参照ください。'> @@ -561,6 +791,13 @@ DLL ファイルを PHP のフォルダから Windows のシステムディレ + + 8.2.0 + + 戻り値の型が、&true; になりました。これより前のバージョンでは、bool でした。 + +'> + @@ -569,7 +806,9 @@ DLL ファイルを PHP のフォルダから Windows のシステムディレ - + + + この関数は論理値 &false; を返す可能性がありますが、&false; として評価される値を返す可能性もあります。 @@ -578,6 +817,43 @@ DLL ファイルを PHP のフォルダから Windows のシステムディレ ===演算子 を 使用してください。'> + + + 8.1.0 + + この関数を &object; に対してコールすることは、推奨されなくなりました。 + &object; に対して最初に get_mangled_object_vars を使って配列に変換するか、ArrayIterator のような Iterator を実装したクラスのメソッドを使ってください。 + + + + 7.4.0 + + SPL クラスのインスタンスは、プロパティを持たない空のオブジェクトのように扱われるようになりました。これより前のバージョンでは、この関数と同じ名前の Iterator のメソッドをコールしていました。 + + +'> + + + 8.2.0 + + この関数は、2つの文字列の長さが等しくない場合に + strlen($string1) - strlen($string2) を返すとは限らなくなりました。 + 代わりに、-11 を返す可能性があります。 + + +'> + + +finfo_open が返す、finfo クラスのインスタンス。'> + + 8.1.0 + + 引数 finfo は、finfo + クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、&resource; を期待していました。 + +'> + x509 @@ -619,24 +895,21 @@ DLL ファイルを PHP のフォルダから Windows のシステムディレ を有効にしてコンパイルされている場合のみ使用可能です。 '> -この関数は、GD 画像ライブラリを必要としません。'> +この関数は、GD 画像ライブラリは必要ありません。'> この関数は、imagesetinterpolation で設定した補間方式の影響を受けます。'> - -imageimagecreatetruecolor -のような画像作成関数が返す画像リソース。'> +imageimagecreatetruecolorのような画像作成関数が返す GdImage オブジェクト。'> - -fontlatin2 エンコーディングの組み込みのフォントの場合は -1, 2, 3, 4, 5 のいずれか (数字が大きなほうが、より大きいフォントに対応します)、 -あるいは imageloadfont -で登録したフォントの識別子のいずれか。 -'> +fontlatin2 エンコーディングの組み込みのフォントの場合は 1, 2, 3, 4, 5 のいずれか (数字が大きなほうが、より大きいフォントに対応します)、あるいは imageloadfont が返した、GdFont クラスのインスタンスのいずれか。'> - -font_indeximagepsloadfont により返されるフォントリソース -'> + + + 8.1.0 + + 引数 font は、GdFont クラスのインスタンスと数値を両方受け入れるようになりました。これより前のバージョンでは、数値のみを受け入れていました。 + +'> @@ -687,7 +960,7 @@ $font = 'SomeFont'; "> - + しかしながら、libgd がイメージの出力に失敗した場合、この関数は &true; を返します。'> @@ -769,13 +1042,33 @@ $font = 'SomeFont'; '> GD -と GD2 画像フォーマットは libgd のプロプライエタリな画像フォーマットです。これらは obsolete と見なされているため、開発とテストの用途にだけ使うべきです。'> +と GD2 画像フォーマットは libgd が作った独自仕様の画像フォーマットです。これらは obsolete と見なされているため、開発とテストの用途にだけ使うべきです。'> + + + 8.0.0 + + image は、 + GdImage + クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、有効な gd resource が期待されていました。 + +'> + + + +escape +が空の文字列("")以外に設定されているとき、 +RFC 4180 +に準拠しない CSV が生成されたり、PHP の CSV +関数を介してラウンドトリップ(往復変換)でデータが壊れる可能性があります。 +escapeのデフォルト値は"\\" +なので、明示的に空の文字列を指定することを推奨します。デフォルト値は、PHP 9.0 +以降の将来のバージョンで変更予定です。 +'> - -dbm_identifierdbmopen -が返す DBM リンク識別子。'> +dbm_identifierdbmopen が返す DBM リンク識別子。'> @@ -790,14 +1083,52 @@ dbm_identifierdbmopen -ch +handle curl_init が返す cURL ハンドル。'> -mh +multi_handle curl_multi_init が返す cURL マルチハンドル。'> +share_handle + +curl_share_init が返す cURL 共有ハンドル'> + + + 8.0.0 + + handleCurlHandle クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、resource を期待していました。 + +'> + + + 8.0.0 + + multi_handleCurlMultiHandle クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、resource を期待していました。 + +'> + + + 8.0.0 + + share_handleCurlShareHandle クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、resource を期待していました。 + +'> + + +dba_open または dba_popen によって返される Dba\Connection インスタンス'> + + 8.4.0 + + dbaDba\Connection クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、 dba &resource; を期待していました。 + +'> + @@ -828,11 +1159,60 @@ dbm_identifierdbmopen '> + + + + broker + + + enchant_broker_init によって返される Enchant ブローカー。 + + + '> + + + dictionary + + + enchant_broker_request_dict + または + enchant_broker_request_pwl_dict + によって返される Enchant 辞書。 + + + '> + + + 8.0.0 + + broker は、EnchantBroker クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、&resource; が期待されていました。 + +'> + + + 8.0.0 + + dictionary は、EnchantDictionary クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、&resource; が期待されていました。 + +'> + - -imap_streamimap_open -が返す IMAP ストリーム。'> + + 8.1.0 + + 引数 imap は、IMAP\Connection + クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、有効な imap &resource; が期待されていました。 + +'> + +imapIMAP\Connection クラスのインスタンス。'> + + +imapimap_open が返す IMAP ストリーム。'> 検索を開始するメールボックスの階層を指定します。 pattern の中で使用できる特別な文字として @@ -855,16 +1235,98 @@ imap_streamimap_open -コードポイントを表す integer 型の値 (例: U+2603 SNOWMAN を表す 0x2603)、あるいは UTF-8 文字列としてエンコードされた文字 (例: "\u{2603}")。'> +IntlCalendar クラスのインスタンス。'> -戻り値の型は integer になります。ただし、コードポイントを UTF-8 文字列で渡した場合は別で、その場合の返り値の型は文字列になります。'> +失敗時に &false; を返します。エラーを検知するには、intl_get_error_code を使うか、 Intl拡張モジュールが 例外 をスローするように設定して下さい。'> + +コードポイントを表す int 型の値 (例: U+2603 SNOWMAN を表す 0x2603)、あるいは UTF-8 文字列としてエンコードされた文字 (例: "\u{2603}")。'> + +戻り値の型は int になります。ただし、コードポイントを UTF-8 文字列で渡した場合は別で、その場合の返り値の型は文字列になります。失敗した場合は、&null; を返します。'> +locale の長さが INTL_MAX_LOCALE_LEN を超えた場合、&null; を返します。'> + 調べたい Unicode プロパティ (定数 IntlChar::PROPERTY_* を参照ください)。'> + + +ldap_connect が返す LDAP\Connection クラスのインスタンス。'> + +ldap_list や ldap_search が返す、LDAP\Result クラスのインスタンス。.'> + +LDAP\ResultEntry クラスのインスタンス。'> + + + + この関数は PHP 7.4.0 以降で 推奨されなくなり、PHP 8.0.0 以降は 削除されています。 + 代替として、ldap_search 関数の controls 引数を使うべきです。 + 詳細は LDAP コントロール も参照して下さい。 + +'> + + + 8.0.0 + + controls は、nullable になりました。 + これより前のバージョンでは、デフォルト値が [] でした。 + +'> + + + 8.1.0 + + 引数 ldap は、LDAP\Connection + クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、有効な ldap link &resource; を期待していました。 + +'> + + + 8.1.0 + + 引数 entry は、 + LDAP\ResultEntry + クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、有効な ldap result entry &resource; を期待していました。 + +'> + + + 8.1.0 + + 引数 result は、 + LDAP\Result + クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、有効な ldap result &resource; を期待していました。 + +'> + + + 8.1.0 + + LDAP\Result + クラスのインスタンスを返すようになりました。 + これより前のバージョンでは、&resource; を返していました。 + +'> + + + 8.1.0 + + LDAP\ResultEntry + クラスのインスタンスを返すようになりました。 + これより前のバージョンでは、&resource; を返していました。 + +'> + +LDAP\Result クラスのインスタンスを返します。&return.falseforfailure;'> +LDAP\Result のインスタンスか、LDAP\Result のインスタンスの配列を返します。&return.falseforfailure;'> + +並列検索も可能です。並列検索を行うには、単一の LDAP\Connection のインスタンスではなく、それの配列を使用します。同じベース DN を使用したくない場合や全ての検索について同じフィルタを使用したくない場合、ベース DN の配列またはフィルタの配列を使用することが可能です。これらの配列は、LDAP\Connection の配列と同じ大きさである必要があります。これは、その配列の最初が一回の検索で使用され、2 番目のエントリが他の検索で使用されるといったようになるからです。並列検索を実行する際、エラーの場合を除き、LDAP\Result の配列が返されます。エラーの場合は、返される値は &false; になります。'> + 内部エンコーディングあるいは @@ -875,8 +1337,8 @@ imap_streamimap_open mb_regex_encoding で指定した文字エンコーディングを、 この関数の文字エンコーディングとして使用します。'> -encoding -パラメータには文字エンコーディングを指定します。省略した場合は、 +encoding +パラメータには文字エンコーディングを指定します。省略した場合、もしくは &null; の場合は、 内部文字エンコーディングを使用します。'> 信頼できない入力に対しては、 @@ -884,6 +1346,20 @@ imap_streamimap_open (preg_replace と同様、) 自動的なエスケープは行いません。 このことを忘れていると、自分の書いたアプリケーションにリモートコード実行の脆弱性を作りこんでしまうことになります。'> + + 8.0.0 + + encoding は、nullable になりました。 + +'> + + + 8.0.0 + + needle は、空の文字列も受け入れるようになりました。 + +'> + MCRYPT_暗号名 定数のいずれか、 @@ -905,12 +1381,21 @@ STREAM モードのいくつかのアルゴリズムの初期化の際に使用 - -connm_initengine -が返す MCVE_CONN リソース。'> +connm_initengine が返す MCVE_CONN リソース。'> + + memcached 1.3.0 (2009年リリース) 以降は、 + この機能はサポートされなくなりました。 + ゼロでない time を渡すと、 + 削除は失敗します。 + Memcached::getResultCode は + MEMCACHED_INVALID_ARGUMENTS + を返します。 + +'> + 有効期限 を参照ください。'> @@ -926,6 +1411,21 @@ connm_initengine Memcached::getResultCode を使用しましょう。'> + + keys をキーとした配列を返します。 + それぞれの要素には、 + 対応するキーが削除された場合に &true; が入ります。 + 対応するキーの削除が失敗した場合、 + 定数 Memcached::RES_* のうちの一つが入ります。 + + + Memcached::getResultCode は、 + 最後に行われた削除操作の結果コードを返します。 + つまり、keys + の最後の要素に対する削除操作の結果を返します。 + +'> + m_initengine + + + + 8.1.0 + + 引数 dictionary + は、PSpell\Dictionary + クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、&resource; を期待していました。 + +'> + + + 8.1.0 + + 引数 config + は、PSpell\Config + クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、&resource; を期待していました。 + +'> + +PSpell\Dictionary クラスのインスタンス。'> + +PSpell\Config クラスのインスタンス。'> + + + +rnp_ffi_create.'> + + + +RNP_LOAD_SAVE_* flags description.'> + + + + + 8.0.0 + + socket は、Socket クラスのインスタンスになりました。 + これより前のバージョンでは、リソース型でした。 + + '> + + + 8.0.0 + + address は、AddressInfo クラスのインスタンスになりました。 + これより前のバージョンでは、リソース型でした。 + +'> + @@ -957,6 +1509,47 @@ connm_initengine + + callback + + + 呼び出す関数またはメソッド。有効な Gearmanの値 を返す必要があります。 + + + return 文が存在しない場合、デフォルトで GEARMAN_SUCCESS が返されます。 + + + intcallback + GearmanTasktask + mixedcontext + + + + task + + + このコールバックが呼び出されるタスク。 + + + + + context + + + GearmanClient::addTask (または同等のメソッド) に context として渡されたもの。 + + + + + +'> + + + + このコールバックは、このメソッドを呼び出した後に追加されたタスク(例: GearmanClient::addTask を呼び出して追加されたタスク)に対してのみ実行されます。 + +'> + サポートされるタイムゾーンのリスト'> @@ -971,6 +1564,7 @@ connm_initengine ここに挙げられているタイムゾーン (UTC 以外のもの) は使用しないでください。 これらは過去のバージョンとの互換性のためにのみ残されているものであり、おかしな挙動を引き起こすかもしれません。 +さらに、ここに挙げられているタイムゾーンは、IANA のタイムゾーンデータベースからいつ削除されてもおかしくありません。 '> @@ -999,10 +1593,8 @@ timezonedb のリリースによって変わる可能性があるので、略称 すべての日付/時刻関数は、 -有効なタイムゾーンが設定されていない場合に E_NOTICE -を発生させます。また、システム設定のタイムゾーンあるいは環境変数 -TZ を使用した場合には E_STRICT -あるいは E_WARNING を発生させます。 +有効なタイムゾーンが設定されていない場合に E_WARNING +を発生させます。 date_default_timezone_set も参照ください。'> 5.1.0 @@ -1012,8 +1604,8 @@ timezonedb のリリースによって変わる可能性があるので、略称 timestamp オプションのパラメータ timestamp は、 -integer 型の Unix タイムスタンプです。 -timestamp が指定されなかった場合のデフォルト値は、 +int 型の Unix タイムスタンプです。 +timestamp が指定されなかったり、&null; だった場合のデフォルト値は、 現在の時刻です。言い換えると、デフォルトは time の返り値となります。 '> @@ -1023,18 +1615,18 @@ object手続き型のみ: date_crea が返す DateTime オブジェクト'> object -手続き型のみ: +手続き型のみ: date_create が返す DateTime オブジェクト。 この関数は、このオブジェクトを変更します。'> - -object手続き型のみ: timezone_open -が返す DateTimeZone オブジェクト'> - -5.3.0成功した場合の返り値が -&null; から DateTime に変更されました。'> +object手続き型のみ: timezone_open が返す DateTimeZone オブジェクト'> -DateTime オブジェクトを返します。&return.falseforfailure;。'> +DateTime オブジェクトを返します。&return.falseforfailure;。'> +DateTime オブジェクトを返します。'> +DateTimeImmutable オブジェクトを返します。&return.falseforfailure;.'> +DateTimeImmutable オブジェクトを返します。'> @@ -1054,28 +1646,68 @@ object手続き型のみ: timezone_ 日付と時刻の書式 で説明しています。'> - -domnode_append_child -などで挿入されない限り、ドキュメント内に現われません。'> - - DOMNode::appendChild などで) 挿入されない限り、ドキュメント内にあらわれません。'> -このメソッドは、静的にコールすることも -できはしますがE_STRICT エラーが発生します。'> 壊れた HTML も読み込めますが、マークアップが正しくない場合には E_WARNING が発生します。 このエラーの処理には libxml のエラー処理関数 が使えます。 '> -DOM拡張機能 は UTF-8 エンコーディングを使います。ISO-8859-1 エンコーディングのテキストを扱う場合は utf8_encodeutf8_decode を使ってください。ISO-8859-1 以外のエンコーディングの場合は iconv を使ってください。'> +DOM拡張モジュール は UTF-8 エンコーディングを使います。他のエンコーディングを扱う場合は、mb_convert_encoding, UConverter::transcode, iconv を使ってください。'> + + + DOM拡張モジュールは、メソッドやプロパティで UTF-8 エンコーディングを使います。 + パースをおこなうメソッドは、エンコーディングを自動的に判別し、呼び出し側でエンコーディングを指定することもできます。 + +'> DOMDocument オブジェクトに対して json_encode を使うと、結果は空オブジェクトをエンコードしたものになります。'> - - - + + + モダンな HTML をパースしたり処理したりするには、DOMDocument の代わりに + Dom\HTMLDocument を使ってください。 + + + この関数は、HTML4 のパーサを使って入力をパースします。モダンなWebブラウザが採用している HTML5 のパースルールとは異なります。入力によっては、このことが原因で異なるDOM構造になるかもしれません。よって、この関数はHTMLを無害化する目的で安全に使えません。 + + + HTML をパースする挙動は、利用している + libxml のバージョンに依存します。 + 特にエッジケースやエラーハンドリングについてそれが当てはまります。 + HTML5 に準拠したパースを行うには、PHP 8.4 で追加される + Dom\HTMLDocument::createFromString や + Dom\HTMLDocument::createFromFile を使いましょう。 + + + 例を挙げましょう。HTML要素によっては、暗黙のうちに親の要素を閉じるものがあります。親要素を自動で閉じるルールは、HTML4 と HTML5 で異なります。よって、DOMDocument が表す DOM 構造は Webブラウザ上のそれと異なる可能性があります。このことから、攻撃者がHTMLを壊す攻撃を許す可能性があります。 + +'> + + + + + トークンが NULL バイトを含んでいる場合、 + ValueError をスローします。 + + + + + トークンが空文字列である場合、エラーコード Dom\SYNTAX_ERR を持つ + Dom\DOMException をスローします。 + + + + + トークンが ASCII の空白文字を含む場合、エラーコード Dom\INVALID_CHARACTER_ERR を持つ + Dom\DOMException をスローします。 + + +'> + + + 次の例では、以下のような内容の book.xml を使います。 @@ -1110,6 +1742,121 @@ object手続き型のみ: timezone_ ]]>'> + + + 追加の Libxml パラメータ を、ビット演算子の OR で指定します。 +'> + + + Dom\HTML_NO_DEFAULT_NS を渡すことで、 + HTML 名前空間や template 要素の使用を無効化することもできます。 + このオプションは、及ぼす影響を十分理解している場合に限り使用すべきです。 +'> + + + ドキュメントが作成されたエンコーディング。 + 指定されていない場合、最も使用されている可能性の高いエンコーディングを判定しようとします。 +'> + + + &reftitle.notes; + + + html タグや head タグの中の空白は + 必ずしも保持されません。インデント等が失われる可能性があります。 + + +'> + + + registerNodeNS + + + コンテキストノードのスコープ内の名前空間を、DOMXPath オブジェクトに自動登録するかどうか。 + このオプションを使うと、スコープ内の名前空間ごとに、手動で DOMXPath::registerNamespace をコールする必要がなくなります。 + 名前空間のプレフィックスが衝突した場合は、直近の子孫の名前空間プレフィックスのみが登録されます。 + + +'> + + + 追加のオプション。 + LIBXML_NOEMPTYTAGLIBXML_NOXMLDECL が指定できます。 + PHP 8.3.0 より前のバージョンでは、LIBXML_NOEMPTYTAG のみサポートされていました。 +'> + + + DOM_HIERARCHY_REQUEST_ERR + + + 指定された nodes のうちの一つの子ノードの型を、 + 親ノードが許可していない場合や、ノードが自分自身やその祖先であった場合に発生します。 + + +'> + + + DOM_HIERARCHY_REQUEST_ERR + + + 指定された nodes のうちの一つの子ノードの型を、 + 親ノードが許可していない場合や、ノードが自分自身やその祖先であった場合に発生します。 + + +'> + + + DOM_WRONG_DOCUMENT_ERR + + + 指定された nodes のうちの一つが、 + このノードを作成したドキュメントとは異なるものから作成された場合に発生します。 + + +'> + + + + node が別のドキュメントのものである場合、 + エラーコード Dom\WRONG_DOCUMENT_ERR を持つ + Dom\DOMException をスローします。 + +'> + + + + options が不正なオプションを含む場合、 + ValueError をスローします。 + + + + + overrideEncoding が未知のエンコーディングである場合、 + ValueError をスローします。 + +'> + +DOM_HIERARCHY_REQUEST_ERR を持つ DOMException がスローされていました。'> + + + + ノードをフィルタする XPath の配列。 + この配列のそれぞれのエントリは、以下の情報を持つ連想配列です: + + + + XPath の式の文字列を含む query キー。必須です。 + + + + + 名前空間のプレフィックス(keys) を名前空間URI (values) にマップした配列を含む namespaces キー。オプションです。 + + + + + '> @@ -1150,9 +1897,15 @@ object手続き型のみ: timezone_ エラー時に HaruException をスローします。'> -ODBC 接続 ID。詳細は +ODBC 接続オブジェクト。詳細は odbc_connect を参照ください。'> + + + + + + @@ -1163,6 +1916,65 @@ object手続き型のみ: timezone_ + + 8.4.0 + + 引数 odbc は、Odbc\Connection クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、resource を期待していました。 + +'> + + + 8.4.0 + + この関数は Odbc\Connection クラスのインスタンスを返すようになりました。 + これより前のバージョンでは、resource を返していました。 + + '> + + + 8.4.0 + + user および password が nullable となりました。 + また、省略できるようになり、デフォルトでは &null; となるようになりました。 + + + + 8.4.0 + + 以前のバージョンでは、password に空文字列を指定した場合、 + dsn に対して生成される接続文字列に pwd が含まれていませんでした。 + このバージョンからは、空文字列が値に指定された pwd を含んだ状態で生成されるようになりました。 + 以前の挙動に戻したい場合は、password に &null; を指定してください。 + + + + 8.4.0 + + 以前のバージョンでは、dsnuid または pwd のいずれかが含まれていると、 + user および password の両方が常に無視されていました。 + このバージョンからは、dsnuid が含まれている場合にのみ user が無視され、 + dsnpwd が含まれている場合にのみ password が無視されるようになりました。 + + '> + + + 8.4.0 + + 引数 statement は、Odbc\Result クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、resource を期待していました。 + +'> + + + 8.4.0 + + この関数は Odbc\Result クラスのインスタンスを返すようになりました。 + これより前のバージョンでは、resource を返していました。 + +'> + E_ERROR @@ -1177,7 +1989,7 @@ object手続き型のみ: timezone_ 文字列、tnsnames.ora ファイルの接続文字列、あるいはローカルの Oracle インスタンス名を指定します。 -省略した場合、PHP は環境変数 +省略した場合、または &null; の場合、PHP は環境変数 TWO_TASK (Linux) あるいは LOCAL (Windows) と ORACLE_SID を用いて接続先の @@ -1190,13 +2002,16 @@ Easy Connect 方式を使うには、PHP を Oracle [//]host_name[:port][/service_name] です。Oracle 11g 以降の場合は、この構文は [//]host_name[:port][/service_name][:server_type][/instance_name] -となります。サービス名を調べるには、Oracle のユーティリティ +となります。 +Oracle 19c では、さらにオプションが追加されています。 +タイムアウトや keep-alive の設定を含みます。詳細は Oracle のドキュメントを参照して下さい。 +サービス名を調べるには、Oracle のユーティリティ lsnrctl status をデータベースサーバー上で実行します。 tnsnames.ora ファイルは Oracle Net のサーチパス上にあります。 -サーチパスに含まれるのは $ORACLE_HOME/network/admin -や /etc です。もうひとつの方法として、 +サーチパスに含まれるのは /your/path/to/instantclient/network/admin, $ORACLE_HOME/network/admin, /etc です。 +もうひとつの方法として、 TNS_ADMIN を指定して $TNS_ADMIN/tnsnames.ora を読み込ませることもできます。 ウェブデーモンにそのファイルの読み込み権限を与えておきましょう。 @@ -1297,54 +2112,17 @@ CURSOR ステートメント ID。"> しかし、Acrobat Distiller? あるいは Ghostview でドキュメントを pdf に変換すると表示されます。'> - -&sm.disabled;'> - - -セーフモード が有効の場合、PHP は操作を行うファイル/ディレクトリが実行するスクリプトと -同じ UID (所有者)を有しているかどうかを確認します。'> - - セーフモード が有効の場合、PHP は、 -操作を行うディレクトリが、実行するスクリプトと同じ UID (所有者)を有しているか -どうかを確認します。'> - この関数の動作は、open_basedir の設定に依存します。'> これは、関数ではなく -言語構造のため、可変関数 を用いて -コールすることはできません。'> - - - - - -セーフモードが有効な場合、コマンド文字列は -escapeshellcmd でエスケープされます。 -つまり、echo y | echo x は、echo y \| echo x -となります。'> - - -セーフモード が有効な場合、 -safe_mode_exec_dirの中にある実行プログラムのみ実行可能です。 -実際的な理由により、現在、実行プログラムへのパスに ..を -含めることはできません。'> - - - -safe-mode で動作している場合は無効となります。'> +言語構造のため、可変関数 や 名前付き引数 を用いてコールすることはできません。'> 設定ディレクティブは定義されていません。'> リソース型は定義されていません。'> 定数は定義されていません。'> -外部ライブラリを必要としません。'> +外部ライブラリは必要ありません。'> PHP コアに含まれるため、 追加のインストール無しで使用できます。'> @@ -1359,7 +2137,7 @@ linkend="features.safe-mode">safe-mode で動作している場合は無 &php.ini; の設定により動作が変化します。 '> - を参照してください。'> @@ -1381,9 +2159,6 @@ PHP 組み込みでコンパイルされているか、実行時に動的にロ 使用可能です。 '> - -PHP 5 を必要とします。'> - このドライバでは以下の定数が定義されて います。これは拡張モジュールが PHP に組み込まれているか、実行時に動的にロード @@ -1396,12 +2171,19 @@ PHP 5 を必要とします。'> 例外は、PDO::ATTR_ERRMODE 属性が PDO::ERRMODE_EXCEPTION ではない場合でも発生します。'> + + + +PDO::ATTR_ERRMODEPDO::ERRMODE_WARNING に設定されていた場合、E_WARNING レベルのエラーが発生します。 + + +PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION に設定されていた場合、PDOException がスローされます。 +'> + -PECL 拡張 -モジュールは PHP にバンドルされていません。'> + -PECL 拡張 -モジュールは PHP にバンドルされています。'> + @@ -1410,7 +2192,7 @@ PECL 拡張モジュールのインストール という章にありま といった関連する情報については、次の場所にあります。'> PECL +しかし、ソースコードは PECL SVN から取得できます。'> という章にありま PECL 拡張モジュールの DLL は、現在存在しません。 -Windows でのビルド +Windows でのビルド も参照ください'> PECL @@ -1429,9 +2211,81 @@ PECL 拡張モジュールのインストール という章にありま PECL レポジトリに移動 +この拡張モジュールは &link.pecl; レポジトリに移動 されており、以下のバージョン以降 PHP にバンドルされなくなっています。 PHP '> + + + PHP Installer for Extensions (PIE) は、PECL を非推奨にする新しいツールです。 + 拡張モジュールをインストールする用途には、PIE を推奨します。 + 詳しい情報は、 + https://github.com/php/pie + を参照ください。 + +'> + + + この拡張モジュールは、メンテナンスされていません +'> + + + +PgSql\Connection クラスのインスタンス。'> + +PgSql\Connection クラスのインスタンス。 +connection が指定されない場合は、デフォルトの接続を使います。 +デフォルトの接続とは、pg_connect または pg_pconnect によって確立された直近の接続です。 +PHP 8.1.0 以降では、デフォルトの接続を使うことは推奨されなくなりました。'> + +PgSql\Connection クラスのインスタンス。 +connection が &null;, の場合、デフォルトの接続を使います。 +デフォルトの接続とは、pg_connect または pg_pconnect によって確立された直近の接続です。 +PHP 8.1.0 以降では、デフォルトの接続を使うことは推奨されなくなりました。'> + +pg_querypg_query_params や (様々な関数がありますが、特に) pg_execute が返した PgSql\Result クラスのインスタンス。'> + +pg_lo_open が返した PgSql\Lob クラスのインスタンス。'> + + +返される配列のインデックスを制御するオプションの引数です。 +mode は定数で、以下の値を取ることができます。: +PGSQL_ASSOC, PGSQL_NUM, PGSQL_BOTH。 +PGSQL_NUM を使うと、配列のインデックスを数値にした配列を返します。PGSQL_ASSOC を使うと、連想配列のインデックスを返します。PGSQL_BOTH を指定すると、数値と連想配列のインデックスを両方含めた形で配列を返します。'> + + + 8.1.0 + + connection は、PgSql\Connection クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、&resource; を期待していました。 + +'> + + + 8.1.0 + + result は、PgSql\Result + クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、&resource; を期待していました。 + +'> + + + 8.1.0 + + lob は、PgSql\Lob + クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、&resource; を期待していました。 + +'> + + + 8.1.0 + + PgSql\Result クラスのインスタンスを返すようになりました。 + これより前のバージョンでは、&resource; を返していました。 + +'> + Windows 版の PHP には @@ -1443,60 +2297,46 @@ PECL 拡張モジュールのインストール という章にありま SQL セーフモード'> - - -debug_level -XXX_TRACE 定数の組み合わせによる整数値。 -MEMORY_TRACE を用いることは推奨しません。 -これは非常に低速で、またあまり正確ではないようだからです。 -ASSIGNMENT_TRACE は、まだ実装されていません。 -すべての機能 (TIMING, FUNCTIONS, ARGS SUMMARY (strace -c のようなもの)) -のトレースを有効にするには、値 99 を指定します。 -'> - - - -scaleこのオプションパラメータを使用して、 -結果の小数点以下の桁数を指定します。省略した場合は、bcscale -関数でグローバルに設定した桁数をデフォルトとして使用します。それも設定されていない場合は -0 を使用します。'> - --128 から 255 までの整数値を渡すと、ひとつの文字の ASCII 値とみなします +-128 から 255 までの int を渡すと、ひとつの文字の ASCII 値とみなします (負の値には 256 を足して、拡張 ASCII の範囲に収まるようにします)。 それ以外の整数値は、10 進数を含む文字列とみなします。'> - - -link_identifier -fbsql_connect あるいは -fbsql_pconnect が返す FrontBase リンク ID。 -指定しなかった場合は、この関数は FrontBase -サーバーでオープンしているリンクを探します。見つからないときは -fbsql_connect に引数を指定せずにコールしたときと同様にして作成します。 -'> + +PHP 8.1.0 以降は、ctype関数 に文字列でない引数を渡すことは、推奨されなくなりました。将来のバージョンでは、引数は ASCII コードポイントではなく、文字列として解釈されるようになります。ユーザが意図する振る舞いによっては、引数を文字列にキャストするか、 chr を明示的にコールすべきです。'> + + - -result fbsql_query あるいは -fbsql_db_query が返す結果 ID。'> + + + 8.1.0 + + 引数 ftp は、FTP\Connection + のインスタンスを期待するようになりました。 + これより前のバージョンでは、&resource; を期待していました。 + +'> +FTP\Connection クラスのインスタンス'> -GMP オブジェクトを返します。'> -PHP 5.5 以前での GMP 数リソース、PHP 5.6 以降での GMP オブジェクト、あるいは数値に変換可能な数値形式の文字列。'> +GMP オブジェクトを返します。'> +GMP オブジェクト、整数、あるいは数値に変換可能な数値形式の文字列。'> + + GMP オブジェクト、&integer;、 + あるいは数値として解釈可能な &string;。 + 文字列の場合、gmp_init で基数を自動検出するとき + (base に 0 を指定したとき) と同じ方法で解釈されます。 +'> - -result手続き型のみ: -mysqli_querymysqli_store_result -あるいは mysqli_use_result が返す結果セット ID。'> - -link手続き型のみ: -mysqli_connect あるいは mysqli_init が返すリンク ID。 +result +手続き型のみ: mysqli_querymysqli_store_resultmysqli_use_resultmysqli_stmt_get_result が返す mysqli_result オブジェクト。'> +link手続き型のみ: +mysqli_connect あるいは mysqli_init が返す mysqliオブジェクト。 '> - -stmt手続き型のみ: -mysqli_stmt_init が返すステートメント ID。'> +stmt手続き型のみ: +mysqli_stmt_init が返す mysqli_stmt オブジェクト。'> mysqlnd でのみ使用可能です。'> @@ -1506,11 +2346,26 @@ linkend="book.mysqlnd">mysqlnd でのみ使用可能です。'> で設定したものです。あるいは明示的に mysqli_options をコールして設定することもできます。 これは、mysqli_init のあとで mysqli_real_connect を実行する前にコールします。'> + +行数が PHP_INT_MAX より大きい場合、 +行数の数値は文字列で返されます。'> + +セキュリティ上の注意: SQLインジェクションクエリに入力値を含める場合は、プリペアドステートメント を使うべきです。使わない場合、データを適切にフォーマットし、全ての文字列は mysqli_real_escape_string を使ってエスケープしなければいけません。'> + +mysqli のエラー報告 (MYSQLI_REPORT_ERROR) が有効になっており、かつ要求された操作が失敗した場合は、警告が発生します。さらに、エラー報告のモードが MYSQLI_REPORT_STRICT に設定されていた場合は、mysqli_sql_exception が代わりにスローされます。'> + + + +渡された正規表現のパターンがコンパイルできない場合、E_WARNING が発生します。 +'> この関数は、 -PHP が apache モジュールあるいは Netscape/iPlanet/SunONE ウェブサーバーの NSAPI サーバーモジュール -としてインストールされた場合のみサポートされます。'> +PHP が apache モジュールとしてインストールされた場合のみサポートされます。'> + + +FPM (FastCGI Process Manager) は、PHP における FastCGI 実装です。(主に)高負荷のサイトで有用な機能が含まれています。 +'> @@ -1536,7 +2391,7 @@ SimpleXML では、ほとんどのメソッドに反復処理を追加するた バッファなしの結果ハンドルで使用することはできません。'> -(MySQL のような)他のデータベースエクステンションとの互換性のため、 +(MySQL のような)他のデータベース拡張モジュールとの互換性のため、 2 種類の構文がサポートされています。 推奨されるのは最初の構文で、dbhandle パラメータを 関数の最初のパラメータとするものです。'> @@ -1556,60 +2411,21 @@ SimpleXML では、ほとんどのメソッドに反復処理を追加するた この関数は、 NULL フィールドに PHPの &null; 値を設定します。'> - - - -link_identifiermSQL 接続。 -指定されない場合、msql_connect により直近にオープンされたリンクが -指定されたと仮定されます。そのようなリンクがない場合、この関数は、 -msql_connectをコールした時と同様にリンクを確立し、使用します。 -'> - - -result評価された結果 リソース。 -この結果は、msql_query のコールにより得られたものです。 -'> - - -field_offset数値フィールドオフセット。 -field_offset は、1から始まります。 -'> - - -link_identifierMySQL 接続。 -指定されない場合、mysql_connect により直近にオープンされたリンクが -指定されたと仮定されます。そのようなリンクがない場合、引数を指定せずに -mysql_connect がコールした時と同様にリンクを確立します。 -リンクが見付からない、または、確立できない場合、 -E_WARNING レベルのエラーが生成されます。 -'> +link_identifierMySQL 接続。指定されない場合、mysql_connect により直近にオープンされたリンクが指定されたと仮定されます。そのようなリンクがない場合、引数を指定せずに mysql_connect がコールした時と同様にリンクを確立します。リンクが見付からない、または、確立できない場合、E_WARNING レベルのエラーが生成されます。'> - -link_identifierMySQL 接続。 -指定されない場合、mysql_connect により直近にオープンされたリンクが -指定されたと仮定されます。接続が見つからない、または、確立できない場合、 -E_WARNING レベルのエラーが生成されます。'> +link_identifierMySQL 接続。指定されない場合、mysql_connect により直近にオープンされたリンクが指定されたと仮定されます。接続が見つからない、または、確立できない場合、E_WARNING レベルのエラーが生成されます。'> - -result評価された結果 リソース。 -この結果は、mysql_query のコールにより得られたものです。 -'> +result評価された結果を示す resource。この結果は、mysql_query のコールにより得られたものです。'> - -field_offset数値フィールドオフセット。 -field_offset0 から始まります。 -field_offset が存在しない場合、 -E_WARNING レベルのエラーが発行されます。'> +field_offset数値フィールドオフセット。field_offset0 から始まります。field_offset が存在しない場合、E_WARNING レベルのエラーが発行されます。'> この拡張モジュールは PHP 5.5.0 で非推奨になり、PHP 7.0.0 で削除されました。 MySQLi あるいは PDO_MySQL を使うべきです。詳細な情報は -MySQL: API の選択 や -それに関連する FAQ を参照ください。 +MySQL: API の選択 を参照ください。 この関数の代替として、これらが使えます。'> @@ -1617,8 +2433,7 @@ field_offset数値フィールドオフセッ MySQL 拡張モジュール 全体とあわせて削除されました。 MySQLi あるいは PDO_MySQL を使うべきです。詳細な情報は -MySQL: API の選択 や -それに関連する FAQ を参照ください。 +MySQL: API の選択 を参照ください。 この関数の代替として、これらが使えます。'> @@ -1626,8 +2441,7 @@ field_offset数値フィールドオフセッ MySQL 拡張モジュール 全体とあわせて削除されました。 MySQLi あるいは PDO_MySQL を使うべきです。詳細な情報は -MySQL: API の選択 や -それに関連する FAQ を参照ください。 +MySQL: API の選択 を参照ください。 この関数の代替として、これらが使えます。'> @@ -1635,8 +2449,7 @@ field_offset数値フィールドオフセッ MySQL 拡張モジュール 全体とあわせて削除されました。 MySQLi あるいは PDO_MySQL を使うべきです。詳細な情報は -MySQL: API の選択 や -それに関連する FAQ を参照ください。 +MySQL: API の選択 を参照ください。 この関数の代替として、これらが使えます。'> @@ -1644,8 +2457,7 @@ field_offset数値フィールドオフセッ MySQL 拡張モジュール 全体とあわせて削除されました。 MySQLi あるいは PDO_MySQL を使うべきです。詳細な情報は -MySQL: API の選択 や -それに関連する FAQ を参照ください。 +MySQL: API の選択 を参照ください。 この関数の代替として、これらが使えます。'> @@ -1656,42 +2468,6 @@ field_offset数値フィールドオフセッ 関連する除法は リソースの開放を参照ください。'> - -この関数は、Sybase の CT -ライブラリインターフェイスでのみ使用可能で、DB ライブラリでは使用できません。 -'> - - -この関数は、Sybase の DB ライブラリインターフェイスを使用する場合のみ利用可能で、 -CT ライブラリでは利用できません。'> - - -link_identifierSybase 接続。 -このリンク ID が指定されない場合、sybase_connect により -オープンされた直近のリンクが指定されたと仮定されます。 -そのようなリンクが見つからない場合、sybase_connect -が引数なしでコールされた時と同様にリンクが作成されます。接続が見付かたなかったり、 -確立できない場合、E_WARNING レベルのエラーを発行します。 -'> - - -オプションのパラメータ -mode は単位長さを定義します。この値が 0 -または値が省略された場合、このページで指定されたデフォルト値が使用されます。 -それ以外の場合、現在の単位を無視して -ポストスクリプトのポイントで座標が計測されます。'> - - -modeオプションのパラメータ mode -は単位長さを定義します。この値が 0 または値が省略された場合、 -このページで指定されたデフォルト値が使用されます。それ以外の場合、 -現在の単位を無視してポストスクリプトのポイントで座標が計測されます。 -'> - - -pdf_document -cpdf_open が返す、ドキュメントのハンドル。'> - 拡張属性には二種類の異なる名前空間、つまり、ユーザーとルートがあります。 ユーザー名前空間は、すべてのユーザーで利用可能ですが、ルート名前空間は、ルート権限を有するユーザーのみ利用可能です。 @@ -1703,9 +2479,6 @@ xattr はデフォルトでユーザー名前空間で処理を行いますが (例 fe80::1) アドレスを角カッコでくくらなくてはなりません。たとえば、 tcp://[fe80::1]:80.'> -IPv6 サポートは PHP 5.0.0 - で追加されました。'> - Tidy オブジェクト。'> @@ -1721,6 +2494,14 @@ xattr はデフォルトでユーザー名前空間で処理を行いますが utf16, utf16le, utf16be, big5 および shiftjis.'> + + + サードパーティによるビルドは非公式であり、PHP プロジェクトによって + 直接サポートされません。発生したバグは、 + 公式ダウンロードページ + からのビルドで再現できなければ、非公式ビルドの提供元に報告してください。 + +'> @@ -1729,6 +2510,16 @@ Apache2 の MPM マルチスレッドモードを実運用環境で使用する におけるデフォルトの MPM です。prefork MPM を使う理由については、 マルチスレッド版 MPM の Apache2の FAQ エントリを参照してください。'> + + + + Builds from third-parties are considered unofficial and not directly + supported by the PHP project. Any bugs encountered should be reported to the + provider of those unofficial builds unless they can be reproduced using the + builds from the official download + area. + +'> Windows 上で Apache 設定ファイルにパスの値を追加する際、例えば @@ -1741,10 +2532,9 @@ Apache 設定ファイルにパスの値を追加する際、例えば -我々は、現在最も活動的な人々をこのマニュアルの先頭に掲げています。 -しかし、他にも多くの我々の活動を支援してくれる人がおり、 +多くの我々の活動を支援してくれる人がおり、 また、過去にこのプロジェクトを支援してくれた人がいます。 -マニュアルのユーザー注記により支援してくれた名前がわからない人々がいますが、 +マニュアルのユーザー注記により支援してくれた名前がわからない人々もいますが、 彼らの支援は非常に有益です。以下に掲げたリストはアルファベット順です。'> @@ -1765,24 +2555,11 @@ Apache 設定ファイルにパスの値を追加する際、例えば - -この関数により現在実行中 -(もしくはチェーンド)のメソッドを操作することはできません。 -'> - + この関数は、 現在実行中(もしくはチェーンド)のメソッドを操作することはできません。 '> - -サンドボックスのサポート -(runkit_lint, runkit_lint_file, -および Runkit_Sandbox クラスで使用)は、 -PHP 5.1.0 以降または特別なパッチを適用した -PHP 5.0 でのみ利用可能であり、スレッドセーフを有効にしておく必要があります。 -詳細については、runkit パッケージに含まれる README -ファイルを参照してください。'> - デフォルトでは、 削除・リネーム・変更が可能なのはユーザー定義関数だけです。組み込み関数を オーバーライドするには、&php.ini; で @@ -1802,19 +2579,28 @@ PHP 5.0 でのみ利用可能であり、スレッドセーフを有効にして - xmlwriter + writer 手続き型のコールでのみ使用します。 - 変更される XMLWriter resource です。 - このリソースは、xmlwriter_open_uri + 変更される XMLWriter のインスタンスです。 + このインスタンスは、xmlwriter_open_uri あるいは xmlwriter_open_memory - のコールによって取得したものです。 + を呼び出すことで取得したものです。 '> + + 8.0.0 + + 引数 writer は、XMLWriter + のインスタンスを期待するようになりました。 + これより前のバージョンでは、リソースが期待されていました。 + +'> + この関数は WSDL モードでのみ動作します。'> @@ -1837,6 +2623,7 @@ PHP 5.0 でのみ利用可能であり、スレッドセーフを有効にして 成功した場合に &true;、それ以外の場合に &false; を返します。'> 成功した場合にニューラルネットワークリソース、エラー時に &false; を返します。'> 成功した場合にニューラルネットワークトレーニングリソース、エラー時に &false; を返します。'> +この関数は、fann拡張モジュールが libfann > 2.2 以上でビルドされている場合にだけ利用可能です。'> @@ -1863,8 +2650,9 @@ PHP 5.0 でのみ利用可能であり、スレッドセーフを有効にして + - この関数は Imagick 3.4.4 以降では 非推奨 になりました。この関数に依存したコードを書くのはやめましょう。'> @@ -1934,14 +2722,6 @@ PHP 5.0 でのみ利用可能であり、スレッドセーフを有効にして '> - - - この関数は PHP 5 には存在しません。 - より自然なオブジェクト指向形式の構文で、 - プロパティにアクセスしたりメソッドをコールしたりすることになります。 - - -'> @@ -1950,17 +2730,19 @@ PHP 5.0 でのみ利用可能であり、スレッドセーフを有効にして オブジェクトで動作しません。それ以外の場合は PharException がスローされます。'> - -このメソッドは、phar 拡張モジュールバージョン 2.0.0 で削除されました。 -今後は Phar::compress、 -Phar::decompressPhar::compressFiles および -Phar::decompressFiles をご利用ください。'> + + + Phar::addFile, Phar::addFromString, Phar::offsetSet は、呼び出されるたびに新しいPharアーカイブを生成します。パフォーマンスを気にするなら、代わりに + Phar::buildFromDirectoryPhar::buildFromIterator を使うべきです。 + +'> - -このメソッドは、phar 拡張モジュールバージョン 2.0.0 で削除されました。 -今後は PharFileInfo::isCompressed、 -PharFileInfo::decompress および PharFileInfo::compress -をご利用ください。'> + + + PharData::addFile, PharData::addFromString, PharData::offsetSet は、呼び出されるたびに新しいPharアーカイブを生成します。パフォーマンスを気にするなら、代わりに + PharData::buildFromDirectoryPharData::buildFromIterator を使うべきです。 + +'> この拡張モジュールを使うには @@ -1984,6 +2766,9 @@ PHP 7.4 以降では 、それよ streamWrapper::$context プロパティが更新されます。'> +bucket は StreamBucket のインスタンスを期待するようになりました。これより前のバージョンでは、stdClass が期待されていました。'> +StreamBucket のインスタンスを返すようになりました。これより前のバージョンでは、stdClass を返していました。'> + --with-libxml、それよ - + - -データ構造'> - -例外'> -SPL には標準の例外が用意されています。 も参照ください。'> - -ファイル操作'> -SPL にはファイルを扱うためのクラスが用意されています。'> - -インターフェイス'> -SPL にはインターフェイスが用意されています。 も参照ください。'> -インターフェイス一覧'> - -イテレータ'> -SPL にはイテレータが用意されており、オブジェクトを反復処理することができます。'> + +name + + + 指定したクラス名にマッチするアトリビュートの、 + ReflectionAttribute + のみを含むようにフィルタします。 + + +'> -その他のクラスおよびインターフェイス'> -他の SPL カテゴリにあてはまらないクラスおよびインターフェイス群です。'> + +flags + + + name が指定されていた場合に、 + 結果をどうフィルタするかを決めるフラグ。 + + + デフォルトは 0 です。 + この場合、アトリビュートのクラス名が + name であるものだけを返します。 + + + 他の利用可能なオプションは、 + ReflectionAttribute::IS_INSTANCEOF です。 + この場合、フィルタリングに + instanceof を使います。 + + +'> ポータビリティを考慮して、ZIP ファイル名のディレクトリ区切り文字には常にスラッシュ (/) を使うことを推奨します。'> @@ -2027,7 +2825,7 @@ PHP 7.4 以降では 、それよ Win32 エラーコード を返します。'> -WIN32_NO_ERROR を返します。&win32service.false.error;'> +WIN32_NO_ERROR を返していました。&win32service.false.error;'> @@ -2180,7 +2978,7 @@ xmlns="http://docbook.org/ns/docbook">TRADER_MA_TYPE_* series of constants should be used.'> TRADER_MA_TYPE_* series of constants should be used.'> TRADER_MA_TYPE_* series of constants should be used.'> -TRADER_MA_TYPE_* series of constants should be used.'> +TRADER_MA_TYPE_* series of constants should be used.'> TRADER_MA_TYPE_* series of constants should be used.'> TRADER_MA_TYPE_* series of constants should be used.'> TRADER_MA_TYPE_* series of constants should be used.'> @@ -2189,99 +2987,105 @@ xmlns="http://docbook.org/ns/docbook">read_preference読み込みの優先モード。MongoClient::RP_PRIMARYMongoClient::RP_PRIMARY_PREFERREDMongoClient::RP_SECONDARYMongoClient::RP_SECONDARY_PREFERRED あるいは MongoClient::RP_NEAREST のいずれか。tagsゼロ個以上のタグセットの配列。各タグセット自体も配列で、レプリカセットのメンバーのタグにマッチさせる条件として使います。'> -成功した場合に &true;、それ以外の場合に &false; を返します。'> -パラメータが無効な場合、あるいは優先読み込みモードが MongoClient::RP_PRIMARY のときにタグセットを指定した場合に E_WARNING が発生します。'> -この関数は、優先読み込みに関する配列を返します。配列に含まれる内容は、type (優先読み込みモードを表す文字列。MongoClient の定数に対応)、そして tagsets (すべてのタグセット条件のリスト) です。タグセットを指定しなかった場合は、tagsets は存在しません。'> -w書き込み確認。何台のサーバーに書き込めたら成功とみなすのかを表す整数値、あるいは文字列 ("majority" など) でモードを指定します。wtimeoutサーバーが書き込み確認を待つ最大ミリ秒数。'> -成功した場合に &true;、それ以外の場合に &false; を返します。'> -w が整数値あるいは文字列でない場合に E_WARNING が発生します。'> -この関数は、書き込み確認を表す配列を返します。w の値はサーバーの台数を表す整数値かモードを表す文字列、そして wtimeout の値はサーバーが書き込み確認を待つ最大ミリ秒数です。'> -"maxTimeMS"サーバー上で操作を行う累積時間の制限 (アイドル時間を含まない) を、ミリ秒単位で指定します。この時間内にサーバー側の操作が完了しなければ、MongoExecutionTimeoutException をスローします。'> -"background"Builds the index in the background so that building an index does not block other database activities. Specify &true; to build in the background. The default value is &false;.Prior to MongoDB 2.6.0, index builds on secondaries were executed as foreground operations, irrespective of this option. See Building Indexes with Replica Sets for more information.'> -"dropDups"&true; を指定すると、一意なインデックスを強制的に作成します。このとき、コレクション内でキーの値が重複してしまう可能性があります。MongoDB は最初に出現したキーをインデックスし、それ以降に出現する同じキーのすべてのドキュメントを削除します。デフォルト値は &false; です。"dropDups" はデータベースのデータを削除することがあるので、使う際には十分な注意が必要です。このオプションは、MongoDB 2.8 以降には対応していません。コレクションに値の重複がある場合は、インデックスの作成に失敗します。'> -"expireAfterSeconds"このオプションの値に指定するのは、ドキュメントを有効期限切れとみなしてコレクションから自動削除するまでの秒数です。このオプションが使えるのは、単一フィールドインデックスで、フィールドに MongoDate の値を含む場合のみです。この機能が使えるのは、MongoDB 2.2 以降です。詳細は Expire Data from Collections by Setting TTL を参照ください。'> -"name"オプションの、インデックスを一意に特定するための名前。ドライバーがデフォルトで生成するインデックス名は、インデックスのフィールドと、並び順あるいは型に基づくものです。たとえば、複合インデックス array("x" => 1, "y" => -1) の名前は "x_1_y_-1" であり、地理空間インデックス array("loc" => "2dsphere") の名前は "loc_2dsphere" となります。多数のフィールドからなるインデックスの場合、自動生成される名前が MongoDB の インデックス名の制限 を超えてしまう可能性があります。"name" オプションは、そんな場合に短い名前を用意するときなどに使えます。'> -"sparse"&true; を指定すると、疎なインデックスを作ります。これは、指定したフィールドを含むドキュメントだけをインデックスします。デフォルト値は &false; です。'> -"unique"&true; を指定すると、一意なインデックスを作ります。デフォルト値は &false; です。このオプションを使えるのは、昇順もしくは降順のインデックスだけです。MongoDB がフィールドをインデックスするとき、もしそのフィールドに値を含まないドキュメントがあれば、&null; 値をインデックスします。このフィールドを含まないドキュメントが複数あった場合、一意なインデックスは、最初に出現したドキュメント以外を受け付けません。これを防ぐには "sparse" オプションを使います。このオプションを指定すれば、インデックス対象のフィールドが存在しないドキュメントはインデックスしなくなります。'> -このメソッドは、MongoDB 2.8 以降と通信する際に、データベースコマンド listCollections を利用します。以前のバージョンのデータベースの場合は、特別なコレクション system.namespaces を問い合わせます。'> -"filter"オプションの問い合わせ条件。これを指定すると、結果に含まれるコレクションをその条件でフィルタリングします。問い合わせの対象となる関連フィールドには、"name" (コレクション名を表す文字列。データベース名のプレフィックスは含まない) や "options" (コレクションを作成するために用いるオプションを含むオブジェクト) があります。MongoDB 2.6 以前のバージョンでは、"name" の条件指定には文字列しか使えませんでした (一致する文字列だけに絞り込むなど)。これは、ドライバが system.namespaces コレクションに問い合わせるときに、その値をデータベース名の先頭に付加する必要があったからです。最新版の MongoDB にはこの制約がなくなりました。listCollections コマンドを使うようになったからです。'> -"includeSystemCollections"Boolean で、デフォルトは &false; です。system コレクションを結果に含めるかどうかを指定します。'> - -"w" -WriteConcerns を参照ください。MongoClient でのデフォルト値は 1 です。 -'> -"wtimeout"廃止予定。"wTimeoutMS" のエイリアスです。'> -"wTimeoutMS"このオプションは、書き込み確認を待つ制限時間をミリ秒単位で指定します。これが書き込み操作に適用されるのは、"w"1 より大きい場合のみです。というのも、タイムアウトはレプリケーションに関する機能だからです。この時間内に書き込み確認ができなかった場合は MongoCursorException をスローします。0 を指定すると、永遠にブロックし続けます。MongoClient でのデフォルトは 10000 ミリ秒 (10 秒) です。'> -"fsync" -Boolean 型で、デフォルトは &false; です。 -ジャーナリングが有効な場合、これは "j" とまったく同じ動きをします。 -ジャーナリングが有効でない場合は、追加をディスク上のデータベースファイルに同期させるまで成功したと見なさないようになります。 -&true; にすると確認つき書き込みが暗黙のうちに設定され、"w" の値を 0 にします。 - -ジャーナリングが有効な場合は、"fsync" のかわりに "j" を使いましょう。 -"fsync""j" を同時に指定すると、エラーになります。 -'> -"socketTimeoutMS"このオプションは、ソケット通信の制限時間を、ミリ秒単位で指定します。この時間内にサーバーからの反応がなければ、MongoCursorTimeoutException をスローします。この場合、サーバー側で書き込み処理が行われたのかどうかを判断できなくなります。-1 を指定すると、永遠にブロックします。MongoClient のデフォルト値は 30000 (30 秒) です。'> -"j"デフォルトは &false; です。これを指定すると、追加をジャーナルに同期させるまで成功したと見なさないようになります。&true; にすると確認付き書き込みと見なされ、"w" の設定を 0 に上書きします。このオプションを使っているときにジャーナリングを無効にすると、MongoDB 2.6 以降ではエラーが発生して書き込みに失敗します。古いバージョンのサーバーでは、単純にオプションの指定を無視します。'> -"safe"非推奨。write concern の w オプションを使いましょう。'> -"timeout"非推奨。"socketTimeoutMS" のエイリアス。'> -"w" オプションが設定されていて書き込みが失敗した場合に MongoCursorException をスローします。"w" オプションの値が 1 より大きく設定されていて、操作の完了までの時間が MongoCursor::$timeout ミリ秒をこえた場合に MongoCursorTimeoutException をスローします。サーバー上での操作は止めません。これはクライアント側でのタイムアウトです。MongoCollection::$wtimeout はミリ秒です。'> -E_DEPRECATED が発生します。'> -これらのフィールドは、ドライバが自動生成したフィールドも上書きします。詳しい説明は、MongoDB コアドキュメントの files collection を参照ください。この挙動の現実的な使い道としては、ファイルの chunkSize_id を独自に指定する場合などがあります。'> -格納したファイルドキュメントの _id を返します。metadata パラメータで _id を明示的に指定していない場合は、自動生成した MongoId となります。'> -書き込みオプションの配列。キーw (int|string)WriteConcern の値wtimeout (int)レプリケーションを待つ時間の最大値orderedMongoDB にこのバッチを順番どおりに実行させるのかどうかを指定する。順番どおりの書き込みはシリアルに (一度に一行ずつ) 実行され、最初にエラーが発生した時点で実行は中断する。順番どおりでない書き込みはパラレルに実行され、エラーが発生しても処理は中断しない。デフォルトは &true;j (bool)プライマリーへのジャーナリングを待つかどうか。これは非推奨なので、かわりに確認付き書き込みを使うことfsync (bool)プライマリーへの fsync を待つかどうか。これは非推奨なので、かわりに確認付き書き込みを使うこと'> -バッチを実行する MongoCollection確認付き書き込み をコピーして、デフォルトとして使います。$write_options で指定したり、MongoWriteBatch::execute で指定したりすることもできます。'> - server 選んだサーバーについての基本情報を含む配列。キーhashハーバーハッシュ。例:localhost:27017;-;X;56052typeノード型 (primary/secondary/mongos/arbiter)。例:2max_bson_sizeこのノードがネットワーク越しに受け付ける BSON の最大サイズ。例:16777216max_message_sizeこのノードがネットワーク越しに受け入れるメッセージの最大サイズ。例:48000000request_idこのメッセージのリクエスト識別子。例:42'> - writeOptions キーorderedboolean で、バッチ操作をシーケンシャルに行う必要がある (orderd = true) かどうかを表します。writeConcern書き込み確認のオプションの配列 (以下を参照ください)書き込み確認の配列の値キーfsyncboolean で、強制的にディスクへのフラッシュをしてから返します。jboolean で、強制的にジャーナルに書き出してから返します。wtimeoutinteger で、プライマリがレプリケーションの検証までに待つ最大の時間をミリ秒で指定します。winteger でサーバー数、あるいは文字列でレプリケーションタグを指定します。
'> - protocolOptions キーmessage_lengthネットワーク越しに送信するエンコード済みメッセージのサイズ (バイト数)。request_idこのメッセージのリクエスト識別子。例:42namespaceプロトコルメッセージに使う、MongoDB 名前空間。例:dbname.collectionname'> -このクラスを定義している拡張モジュールは非推奨です。 -かわりに MongoDB 拡張モジュールを使うべきです。 -このクラスの代替として、以下が使えます。'> -このクラスを定義している拡張モジュールは非推奨です。 -かわりに MongoDB 拡張モジュールを使うべきです。 -このクラスの代替は、新しい拡張モジュールには存在しません。'> -このメソッドを定義している拡張モジュールは非推奨です。 -かわりに MongoDB 拡張モジュールを使うべきです。 -このメソッドの代替として、以下が使えます。'> -このメソッドを定義している拡張モジュールは非推奨です。 -かわりに MongoDB 拡張モジュールを使うべきです。 -このメソッドの代替は、新しい拡張モジュールには存在しません。'> -このメソッドを定義している拡張モジュールは非推奨です。 -かわりに MongoDB 拡張モジュールを使うべきです。 -このメソッドの代替は、新しい拡張モジュールには存在しません。しかし、かわりに使える -PHP ライブラリ があります。'> - -この拡張モジュールは非推奨です。 -かわりに MongoDB 拡張モジュールを使うべきです。'> - + + PECL mongodb 2.0.0 + + This class was removed. + + +'> + + + PECL mongodb 2.0.0 + + This function was removed. + + +'> + + + PECL mongodb 2.0.0 + + This method was removed. + + +'> + + + PECL mongodb 2.0.0 + + + This class no longer implements the + Serializable interface. + + + +'> + + + PECL mongodb 1.15.0 + + Return types for methods are declared as tentative on PHP 8.0 and newer, + triggering deprecation notices in code that implements this interface + without declaring the appropriate return types. The #[ReturnTypeWillChange] + attribute can be added to silence the deprecation notice. + + +'> + + + PECL mongodb 2.0.0 + + Return types previously declared as tentative are now enforced. + + +'> + + + PECL mongodb 2.0.0 + + + This method now throws an exception when called for an unacknowledged write instead of returning &null;. + + + +'> + collation - array|object + arrayobject - Collation - は、文字列比較の際の言語固有のルールを指定するものです。たとえば、大文字小文字やアクセント記号の扱いを指定できます。 - collation を指定するときには "locale" フィールドが必須となります。それ以外の collation フィールドはすべて任意指定です。 - 各フィールドについての説明は Collation のドキュメント - を参照ください。 + Collation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks. When specifying collation, the "locale" field is mandatory; all other collation fields are optional. For descriptions of the fields, see Collation Document. + + + If the collation is unspecified but the collection has a default collation, the operation uses the collation specified for the collection. If no collation is specified for the collection or for the operation, MongoDB uses the simple binary comparison used in prior versions for string comparisons. + + + This option is available in MongoDB 3.4+ and will result in an exception at execution time if specified for an older server version. + + +'> + + let + arrayobject + - collation が未指定で collection のデフォルトの collation が設定されている場合は、コレクションが持っている collation を用いて操作を実行します。 - コレクションや操作にも collation が指定されていない場合は、MongoDB は単純にバイナリ比較を行います。 - これは、今までのバージョンでの文字列比較と同じ方法です。 + Map of parameter names and values. Values must be constant or closed expressions that do not reference document fields. Parameters can then be accessed as variables in an aggregate expression context (e.g. $$var). - このオプションは MongoDB 3.4 以降で使用可能です。それより前のバージョンのサーバー上で指定すると、実行時に例外が発生します。 + This option is available in MongoDB 5.0+ and will result in an exception at execution time if specified for an older server version. @@ -2297,64 +3101,265 @@ xmlns="http://docbook.org/ns/docbook">この拡張モジュールは非推奨で keyVaultNamespace string - A fully qualified namespace (e.g. "databaseName.collectionName") denoting the collection that contains all data keys used for encryption and decryption. + A fully qualified namespace (e.g. "databaseName.collectionName") denoting the collection that contains all data keys used for encryption and decryption. This option is required. '> + kmsProviders array - A document containing the configuration for one or more KMS providers, which are used to encrypt data keys. Currently aws or localare supported and at least one must be specified. + A document containing the configuration for one or more KMS providers, which are used to encrypt data keys. Supported providers include "aws", "azure", "gcp", "kmip", and "local" and at least one must be specified. + + + If an empty document is specified for "aws", + "azure", or "gcp", the driver + will attempt to configure the provider using + Automatic Credentials. - The format for aws is as follows: + The format for "aws" is as follows: , - secretAccessKey: + secretAccessKey: , + sessionToken: } ]]> - The format for local is as follows: + The format for "azure" is as follows: +azure: { + tenantId: , + clientId: , + clientSecret: , + identityPlatformEndpoint: // Defaults to "login.microsoftonline.com" +} +]]> + + + The format for "gcp" is as follows: + + +, + privateKey: |, + endpoint: // Defaults to "oauth2.googleapis.com" } ]]> - - -'> - - - maxCommitTimeMS - integer - - commitTransaction - コマンドが実行できる最大の時間をミリ秒単位で指定します + The format for "kmip" is as follows: + + +} +]]> + - 指定する場合、 - maxCommitTimeMS は、符号付き32bit - の整数より大きいか、0でなければなりません + The format for "local" is as follows: + +| +} +]]> + '> - - - readConcern + + + <literal>"aws"</literal> provider options + + + + Option + Type + Description + + + + + region + string + Required. + + + key + string + Required. The Amazon Resource Name (ARN) to the AWS customer master key (CMK). + + + endpoint + string + Optional. An alternate host identifier to send KMS requests to. May include port number. + + + +
+ + + + <literal>"azure"</literal> provider options + + + + Option + Type + Description + + + + + keyVaultEndpoint + string + Required. Host with optional port (e.g. "example.vault.azure.net"). + + + keyName + string + Required. + + + keyVersion + string + Optional. A specific version of the named key. Defaults to using the key's primary version. + + + +
+
+ + + <literal>"gcp"</literal> provider options + + + + Option + Type + Description + + + + + projectId + string + Required. + + + location + string + Required. + + + keyRing + string + Required. + + + keyName + string + Required. + + + keyVersion + string + Optional. A specific version of the named key. Defaults to using the key's primary version. + + + endpoint + string + Optional. Host with optional port. Defaults to "cloudkms.googleapis.com". + + + +
+
+ + + <literal>"kmip"</literal> provider options + + + + Option + Type + Description + + + + + keyId + string + Optional. Unique identifier to a 96-byte KMIP secret data managed object. If unspecified, the driver creates a random 96-byte KMIP secret data managed object. + + + endpoint + string + Optional. Host with optional port. + + + delegated + bool + Optional. If true, this key should be decrypted by the KMIP server. + + + +
+
+'> + + tlsOptions + array + + + A document containing the TLS configuration for one or more KMS providers. Supported providers include "aws", "azure", "gcp", and "kmip". All providers support the following options: + + +: { + tlsCaFile: , + tlsCertificateKeyFile: , + tlsCertificateKeyFilePassword: , + tlsDisableOCSPEndpointCheck: +} +]]> + + + +'> + + maxCommitTimeMS + integer + + + The maximum amount of time in milliseconds to allow a single + commitTransaction command to run. + + + If specified, maxCommitTimeMS must be a signed + 32-bit integer greater than or equal to zero. + + + +'> + + readConcern MongoDB\Driver\ReadConcern @@ -2390,7 +3395,6 @@ local: { '> - @@ -2415,13 +3419,12 @@ local: {
'> - namespace (string) - 完全修飾形式の名前空間 ("databaseName.collectionName")。 + A fully qualified namespace (e.g. "databaseName.collectionName"). @@ -2431,7 +3434,7 @@ local: { db (string) - コマンドを実行するデータベースの名前。 + The name of the database on which to execute the command. @@ -2441,7 +3444,17 @@ local: { bulk (MongoDB\Driver\BulkWrite) - 実行する書き込み。 + The write(s) to execute. + + + +'> + + bulk (MongoDB\Driver\BulkWriteCommand) + + + The write(s) to execute. @@ -2451,7 +3464,173 @@ local: { command (MongoDB\Driver\Command) - 実行するコマンド。 + The command to execute. + + + +'> + + options + + + + Encryption options + + + + Option + Type + Description + + + + + algorithm + string + + + The encryption algorithm to be used. This option is required. + Specify one of the following + ClientEncryption constants: + + + MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC + MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM + MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED + MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED + MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE + + + + + contentionFactor + int + + + The contention factor for evaluating queries with indexed, encrypted + payloads. + + + This option only applies and may only be specified when + algorithm is + MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED + or + MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE. + + + + + keyAltName + string + + + Identifies a key vault collection document by + keyAltName. This option is mutually exclusive + with keyId and exactly one is required. + + + + + keyId + MongoDB\BSON\Binary + + + Identifies a data key by _id. The value is a UUID + (binary subtype 4). This option is mutually exclusive with + keyAltName and exactly one is required. + + + + + queryType + string + + + The query type for evaluating queries with indexed, encrypted + payloads. Specify one of the following + ClientEncryption constants: + + + MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY + MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE + + + This option only applies and may only be specified when + algorithm is + MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED + or MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE. + + + + + rangeOpts + array + + + Index options for a queryable encryption field supporting "range" + queries. The options below must match the values set in the + encryptedFields of the target collection. For + double and decimal128 BSON field types, min, + max, and precision must all be + set, or all be unset. + + +
+ Range index options + + + + Option + Type + Description + + + + + min + mixed + + Required if precision is set. The minimum + BSON value of the range. + + + + max + mixed + + Required if precision is set. The maximum + BSON value of the range. + + + + sparsity + int + Optional. Positive 64-bit integer. + + + precision + int + + Optional. Positive 32-bit integer specifying precision to use + for explicit encryption. May only be set for double or + decimal128 BSON field types. + + + + trimFactor + int + Optional. Positive 32-bit integer. + + + +
+
+
+ + + + @@ -2461,7 +3640,7 @@ local: { query (MongoDB\Driver\Query) - 実行するクエリ。 + The query to execute. @@ -2471,55 +3650,53 @@ local: { typeMap (array) - 型マップの設定。 + Type map configuration. '> - - - filter (array|object) + filter (arrayobject) - クエリ述語。 - 空の述語を指定すると、コレクション内のすべてのドキュメントにマッチします。 + The query predicate. + An empty predicate will match all documents in the collection. - When evaluating query criteria, MongoDB compares types and values according to its own comparison rules for BSON types, which differs from PHP's comparison and type juggling rules. When matching a special BSON type the query criteria should use the respective BSON class (e.g. use MongoDB\BSON\ObjectId to match an ObjectId). + When evaluating query criteria, MongoDB compares types and values according to its own comparison rules for BSON types, which differs from PHP's comparison and type juggling rules. When matching a special BSON type the query criteria should use the respective BSON class (e.g. use MongoDB\BSON\ObjectId to match an ObjectId). '> -成功した場合に MongoDB\Driver\Cursor を返します。'> -成功した場合に MongoDB\Driver\WriteResult を返します。'> +Returns MongoDB\Driver\Cursor on success.'> +Returns MongoDB\Driver\WriteResult on success.'> +Returns MongoDB\Driver\BulkWriteCommandResult on success.'> - - Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.'> Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used in combination with an unacknowledged write concern.'> - -書き込みが失敗した場合 (書き込み先の適用に失敗した場合など) に MongoDB\Driver\Exception\BulkWriteException をスローします。'> -引数のパースに失敗した場合に MongoDB\Driver\Exception\InvalidArgumentException をスローします。'> -認証が必要な場面で認証に失敗した場合に MongoDB\Driver\Exception\AuthenticationException をスローします。'> -サーバーへの接続が認証以外の理由で失敗した場合に MongoDB\Driver\Exception\ConnectionException をスローします。'> - - +Throws MongoDB\Driver\Exception\BulkWriteCommandException on any write failure (e.g. command failure, write or write concern error)'> +Throws MongoDB\Driver\Exception\BulkWriteException on any write failure (e.g. write error, failure to apply a write concern)'> +Throws MongoDB\Driver\Exception\InvalidArgumentException on argument parsing errors.'> +Throws MongoDB\Driver\Exception\AuthenticationException if authentication is needed and fails.'> +Throws MongoDB\Driver\Exception\ConnectionException if connection to the server fails (for reasons other than authentication).'> Throws MongoDB\Driver\Exception\UnexpectedValueException if the input did not contain exactly one BSON document. Possible reasons include, but are not limited to, invalid BSON, extra data (after reading one BSON document), or an unexpected libbson error.'> +Throws MongoDB\Driver\Exception\LogicException if the write was not acknowledged.'> + + + - MongoDB\BSON\Decimal128 は、 - MongoDB 3.4 以降でしか使えません。それより前のバージョンの MongoDB の - BSON 型でこれを使おうとすると、エラーが発生します。 + MongoDB\BSON\Decimal128 is only compatible with + MongoDB 3.4+. Attempting to use the BSON type with an earlier version of + MongoDB will result in an error. '> - @@ -2537,15 +3714,14 @@ local: { - Unix プラットフォームの MongoDB ドライバーは、 - exec() システムコールを呼ばすに fork() システムコールを使っているスクリプトの影響を受けます。 - MongoDB\Driver\Manager のインスタンスを、 - フォークした子プロセスで再利用しないことをおすすめします。 + On Unix platforms, the extension is sensitive to scripts that use the + fork() system call without also calling exec(). Users are advised not to + re-use MongoDB\Driver\Manager instances in a forked + child process. '> - @@ -2555,7 +3731,8 @@ local: { used to obtain a string representation of the unsigned decimal value. -'> +'> + @@ -2567,7 +3744,8 @@ local: { preference to the operation, respectively. -'> +'> + @@ -2576,7 +3754,19 @@ local: { on a secondary (excluding its "local" database) will fail. -'> +'> + + + + BSON documents can technically contain duplicate keys because documents are + stored as a list of key-value pairs; however, applications should refrain + from generating documents with duplicate keys as server and driver behavior + may be undefined. Since PHP objects and arrays cannot have duplicate keys, + data could also be lost when decoding a BSON document with duplicate keys. + + +'> リクエストを radius_create_request で作ってからでないと、この関数は呼べません。'> @@ -2588,14 +3778,11 @@ local: { - fd + file_descriptor - ファイル記述子。ファイルリソースか、あるいは integer で指定します。 - integer を指定した場合は、システムコールにそのまま渡せるファイル記述子だとみなします。 - - - たいていの場合は、ファイルリソースで指定することになるでしょう。 + ファイル記述子。ファイルリソースか、あるいは int で指定します。 + int を指定した場合は、システムコールにそのまま渡せるファイル記述子だとみなします。 '> @@ -2610,25 +3797,217 @@ local: { '> + + characters パラメータにより、 + 削除する文字を指定することも可能です。 + 削除したい全ての文字をリストにしてください。 + +'> + + + + + " ": ASCIISP 文字 + 0x20 、通常のスペース。 + + + + + "\t": ASCIIHT 文字 + 0x09 、タブ。 + + + + + "\n": ASCIILF 文字 + 0x0A 、改行(ラインフィード)。 + + + + + "\r": ASCIICR 文字 + 0x0D 、キャリッジリターン。 + + + + + "\0": ASCIINUL 文字 + 0x00 、NULバイト。 + + + + + "\v": ASCII VT 文字 + 0x0B 、垂直タブ。 + + + +'> + + + + + " " (Unicode U+0020)、通常のスペース。 + + + + + "\t" (Unicode U+0009)、タブ。 + + + + + "\n" (Unicode U+000A)、改行(ラインフィード)。 + + + + + "\r" (Unicode U+000D)、キャリッジリターン。 + + + + + "\0" (Unicode U+0000)、NULバイト。 + + + + + "\v" (Unicode U+000B)、垂直タブ。 + + + + + "\f" (Unicode U+000C)、フォームフィード。 + + + + + "\u00A0" (Unicode U+00A0)、ノーブレークスペース。もしくは、非分割スペース。 + + + + + "\u1680" (Unicode U+1680)、オガム文字(古代アイルランド語)用のスペース。 + + + + + "\u2000" (Unicode U+2000)、エンクアッド。アルファベット1文字分の幅を持つスペース。 + + + + + "\u2001" (Unicode U+2001)、エムクアッド。エンクアッドの2倍の幅を持つスペース。 + + + + + "\u2002" (Unicode U+2002)、エンスペース。エンクアッドと同じ幅のスペース。 + + + + + "\u2003" (Unicode U+2003)、エムスペース。エムクアッドと同じ幅のスペース。 + + + + + "\u2004" (Unicode U+2004)、エムスペースの3分の1の幅を持つスペース。 + + + + + "\u2005" (Unicode U+2005)、エムスペースの4分の1の幅を持つスペース。 + + + + + "\u2006" (Unicode U+2006)、エムスペースの6分の1の幅を持つスペース。 + + + + + "\u2007" (Unicode U+2007)、数字や図の間隔を整えるために使われるスペース。 + + + + + "\u2008" (Unicode U+2008)、句読点のためにデザインされたスペース。 + + + + + "\u2009" (Unicode U+2009)、シンスペース。非常に狭いスペース。 + + + + + "\u200A" (Unicode U+200A)、ヘアスペース。シンスペースよりもさらに細いスペース。 + + + + + "\u2028" (Unicode U+2028)、ラインセパレーター。行の区切りとして使用。 + + + + + "\u2029" (Unicode U+2029)、パラグラフセパレーター。段落の区切りとして使用。 + + + + + "\u202F" (Unicode U+202F)、ナローノーブレークスペース。通常の非分割スペースよりも狭く、ラテン文字や句読点の間で使用。 + + + + + "\u205F" (Unicode U+205F)、数式などで使われるスペース。 + + + + + "\u3000" (Unicode U+3000)、全角文字用のスペース。 + + + + + "\u0085" (Unicode U+0085)、次行(NEL)。 + + + + + "\u180E" (Unicode U+180E)、モンゴル語のテキスト内で母音を区切るために使用されるスペース。 + + + +'> + + 必要に応じて、削除する文字を characters パラメータで指定することもできます。 + 削除が必要なすべての文字を単純にリストとして記述してください。 + .. を使用することで、連続する文字の範囲を指定することも可能です。 + +'> + オプションの引数。文字を変換するときに使うエンコーディングを定義します。 - 省略した場の encoding のデフォルト値は、varies - PHP のバージョンによって異なります。 - PHP 5.6.0 以降では、デフォルト値として default_charset - の値を使います。PHP 5.4 と PHP 5.5 のデフォルト値は、 - UTF-8 で、それより前のバージョンの PHP のデフォルト値は - ISO-8859-1 でした。 + 省略した場合の encoding のデフォルト値は、 + default_charset の値を使います。 - 技術的にはこの引数を省略可能ですが、PHP 5.5 以前のバージョンを使っている場合や、 + 技術的にはこの引数を省略可能ですが、 default_charset - の指定が入力とは違う文字セットになっている場合は、 + の指定が入力とは違う文字セットになっている可能性もあるので、 適切な値を指定しておくことを強く推奨します。 '> @@ -2653,11 +4032,11 @@ local: { Argnum - 何個の引数を変換の対象にするかを指定するために、 + 何番目の引数を変換の対象にするかを指定するために、 数値の後にドル記号 $ を続けます。 - + フラグ一覧 @@ -2712,14 +4091,19 @@ local: { Width - (最小で)何文字がこの変換結果に含まれるかを数値で指定します。 + (最小で)何文字がこの変換結果に含まれるかを数値で指定するか、 + * を指定します。 + * を指定した場合、 + 指定子によってフォーマットされる値の前に、 + 幅を追加の数値として指定します。 Precision - ピリオド . の後に数値を続けますが、 + ピリオド . の後に数値を続けるか、 + * を続けますが、 その意味は指定子に依存します: @@ -2732,7 +4116,8 @@ local: { - gG 指定子の場合: + g, G, + h, H 指定子の場合: 表示する最大の有効桁数 @@ -2746,18 +4131,14 @@ local: { 明示的に精度を指定せず、ピリオドを指定した場合、精度は0として扱われます。 + * を使った場合、 + 精度は指定子によってフォーマットされる値の前に、 + 追加の数値として指定します。 - - - 位置を示す指定子に、PHP_INT_MAX - を超える値を指定すると、警告が発生します。 - - -
指定子の一覧 @@ -2779,28 +4160,25 @@ local: { b - 引数は数値として扱われ、バイナリ値として表現されます。 + 引数は整数として扱われ、2進数値として表現されます。 c - 引数は数値として扱われ、ASCII文字として表現されます。 + 引数は整数として扱われ、ASCII文字として表現されます。 d - 引数は数値として扱われ、(符号付き)小数値として表現されます。 + 引数は整数として扱われ、(符号付き)10進数値として表現されます。 e 引数は科学的記法で表現された値(e.g. 1.2e+2)として扱われます。 - PHP 5.2.1 以降では、precision 指定子が小数点以降の桁数を表します。 - それより前のバージョンでは、(ひと桁少ない) - 有効桁数として解釈されていました。 @@ -2813,14 +4191,13 @@ local: { f - 引数は小数として扱われ、浮動小数値として表現されます(ロケールを考慮します)。 + 引数は小数として扱われ、浮動小数点数値として表現されます(ロケールを考慮します)。 F - 引数は小数として扱われ、浮動小数値として表現されます(ロケールを考慮しません)。 - PHP 5.0.3 以降で利用可能です + 引数は小数として扱われ、浮動小数点数値として表現されます(ロケールを考慮しません)。 @@ -2851,10 +4228,26 @@ local: { Ef を使います。 + + h + + g 指定子に似ていますが、 + F を使います。 + PHP 8.0.0 以降で利用可能です。 + + + + H + + g 指定子に似ていますが、 + EF を使います。 + PHP 8.0.0 以降で利用可能です。 + + o - 引数は数値として扱われ、8進数値として表現されます。 + 引数は整数として扱われ、8進数値として表現されます。 @@ -2866,19 +4259,19 @@ local: { u - 引数は数値として扱われ、符号なし小数値として表現されます。 + 引数は整数として扱われ、符号なし10進数値として表現されます。 x - 引数は数値として扱われ、16進数値(小文字)として表現されます。 + 引数は整数として扱われ、16進数値(小文字)として表現されます。 X - 引数は数値として扱われ、16進数値(大文字)として表現されます。 + 引数は整数として扱われ、16進数値(大文字)として表現されます。 @@ -2913,11 +4306,11 @@ local: { - string + string s - integer + int d, u, @@ -2929,14 +4322,16 @@ local: { - double + float - g, - G, e, E, f, - F + F, + g, + G, + h, + H @@ -2947,18 +4342,63 @@ local: { '> + + format + + + string を解釈するフォーマット。 + sprintf のドキュメントにある説明と比べて、以下の違いがあります。 + + + ロケールに対応していません。 + + + FgG および + b はサポートしていません。 + + + D は十進数値を表します。 + + + i は基数検出つきの整数値を表します。 + + + n は処理する文字数を表します。 + + + s は、空白文字を読み取ると停止することを示します。 + + + argnum$ の代わりに + * を指定すると、 + この変換仕様に従った値の代入を抑制します。 + + + + + +'> + - needle が文字列でない場合、 - 数値に変換され、文字の通常の値として扱われます。 + PHP 8.0.0 より前のバージョンでは、needle が文字列でない場合、 + 数値に変換され、文字のコードポイントとして扱われていました。 この振る舞いは PHP 7.3.0 以降では推奨されないので、 この機能を使用しないことを強く推奨します。 - 意図した動作に依存する場合、 + 意図する動作に応じて、 needle を string に明示的にキャストするか、 - 明示的に chr 関数を呼び出すべきでしょう。 + 明示的に chr 関数を呼び出すべきでしょう。 '> + + 8.0.0 + + needle は、空文字列を受け入れるようになりました。 + +'> + 5.6.0 @@ -2969,18 +4409,241 @@ local: { '> + + 8.2.0 + + ケース変換は、setlocale + で設定されたロケールに依存しなくなりました。 + ASCII 文字のみが変換されます。 + + +'> + + + 8.2.0 + + ケースフォールディングは、setlocale + で設定されたロケールに依存しなくなりました。 + ASCII のケースフォールディングのみが行われます。 + ASCII でないバイト列は、バイト値として比較されます。 + + +'> + + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数は、失敗時に &false; を返さなくなりました。 + + + + 8.0.0 + + 引数の数が0だった場合、 + ValueError がスローされるようになりました。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + + 8.0.0 + + [width] の値が0より小さかったり、 + PHP_INT_MAX より大きい場合に、 + ValueError をスローするようになりました。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + + 8.0.0 + + [precision] の値が0より小さかったり、 + PHP_INT_MAX より大きい場合に、 + ValueError をスローするようになりました。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + + 8.0.0 + + 引数が必要な数より少なかった場合、 + ArgumentCountError + がスローされるようになりました。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + + + +'> + + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数は、失敗時に &false; を返さなくなりました。 + + + + 8.0.0 + + 引数の数が0だった場合、 + ValueError がスローされるようになりました。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + + 8.0.0 + + [width] の値が0より小さかったり、 + PHP_INT_MAX より大きい場合に、 + ValueError をスローするようになりました。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + + 8.0.0 + + [precision] の値が0より小さかったり、 + PHP_INT_MAX より大きい場合に、 + ValueError をスローするようになりました。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + + 8.0.0 + + 引数が必要な数より少なかった場合、 + ValueError + がスローされるようになりました。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + + + +'> + + +  PHP 8.0.0 以降では、 + 引数の数が0の場合に ValueError + がスローされます。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + PHP 8.0.0 以降では、 + [width] の値が0より小さかったり、 + PHP_INT_MAX より大きい場合に、 + ValueError がスローされます。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + PHP 8.0.0 以降では、 + [precision] の値が0より小さかったり、 + PHP_INT_MAX より大きい場合に、 + ValueError がスローされます。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + PHP 8.0.0 以降では、 + 引数が必要な数より少なかった場合、 + ArgumentCountError + がスローされます。 + これより前のバージョンでは、代わりに &false; を返し、E_WARNING + を発生させていました。 + +'> + + +  PHP 8.0.0 以降では、 + 引数の数が0の場合に ValueError + がスローされます。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + PHP 8.0.0 以降では、 + [width] の値が0より小さかったり、 + PHP_INT_MAX より大きい場合に、 + ValueError がスローされます。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + PHP 8.0.0 以降では、 + [precision] の値が0より小さかったり、 + PHP_INT_MAX より大きい場合に、 + ValueError がスローされます。 + これより前のバージョンでは、代わりに E_WARNING + を発生させていました。 + + + PHP 8.0.0 以降では、 + 引数が必要な数より少なかった場合、 + ValueError がスローされます。 + これより前のバージョンでは、代わりに &false; を返し、E_WARNING + を発生させていました。 + +'> + + + string1string2 より小さければ 0 より小さな値を、 + string1string2 より大きければ 0 より大きな値を、 + 両者が等しければ 0 を返します。 + 返却される値の絶対値に、特に意味はありません。 + +'> + +filter - 適用するフィルタの ID。 - に、利用できるフィルタの一覧があります。 + 適用するフィルタ。 + FILTER_VALIDATE_* 定数の一つを用いた検証フィルタ、 + FILTER_SANITIZE_* 定数の一つを用いた除去フィルタ、 + FILTER_UNSAFE_RAW、 + FILTER_CALLBACK を用いたカスタムフィルタのいずれかを指定できます。 - 省略した場合は FILTER_DEFAULT を使います。これは - FILTER_UNSAFE_RAW と同等です。 + デフォルトの値は FILTER_DEFAULT で、 + これは FILTER_UNSAFE_RAW のエイリアスです。 結果的に、デフォルトでは何もフィルタリングをしません。 @@ -2990,35 +4653,65 @@ local: { - この関数が使う不規則性のソースはつぎのとおりです。 + この関数が使う不規則性のソースは、優先度順に以下のとおりです: - - Windows では、常に - CryptGenRandom - を使います。PHP 7.2.0 以降は、常に - CNG-API - を使うようになりました。 - + + Linux: getrandom(), /dev/urandom + - - Linux では、システムコール - getrandom(2) - があればそれを使います。 - + + FreeBSD >= 12 (PHP >= 7.3): getrandom(), /dev/urandom + + + + + Windows (PHP >= 7.2): CNG-API + + + Windows: CryptGenRandom + + + + + macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22 CCRandomGenerateBytes がコンパイル時に利用可能な場合): CCRandomGenerateBytes() + + + macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom + + + + + NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom + + + + + OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom + + + + + DragonflyBSD (PHP >= 8.1): getrandom(), /dev/urandom + + + + + Solaris (PHP >= 8.1): getrandom(), /dev/urandom + - その他のプラットフォームでは、 - /dev/urandom を使います。 + 上記にあてはまらないオペレーティングシステムやPHP のバージョンの場合: /dev/urandom - これらがいずれも使えない場合は、 - Exception をスローします。 + どの不規則性のソースも利用できなかったり、 + すべてのソースがランダムな値を生成できなかった場合、 + Random\RandomException がスローされます。 @@ -3027,13 +4720,7 @@ local: { 適切な不規則性のソースが見つからない場合は - Exception をスローします。 - - - - - 無効なパラメータが指定された場合は TypeError - をスローします。 + Random\RandomException をスローします。 '> @@ -3047,12 +4734,95 @@ local: { '> + + + + Random\Randomizer::$engine に存在する + Random\Engine::generate メソッド + がスローした、あらゆる Throwable がスローされます。 + + +'> + この関数は、PECL uopz 5.0.0 で 削除 されました。'> + + + + parser + + + XMLパーサ + + +'> + + + &null; が渡されると、ハンドラはデフォルトの状態にリセットされます。 + + + 空文字列を渡すことでもハンドラはリセットされますが、これは PHP 8.4.0 以降非推奨となっています。 + + + + + handlercallable の場合、その callable がハンドラとして設定されます。 + + + handler が文字列の場合、xml_set_object で設定されたオブジェクトのメソッド名になります。 + + + PHP 8.4.0 以降、非推奨となっています。 + + + + + + PHP 8.4.0 以降では、実際に呼び出されるときではなく、ハンドラを設定する際に callable であるかがチェックされます。 + 従って、コールバックとしてメソッド文字列を指定する場合、それより前に、 xml_set_object を呼び出しておく必要があります。 + しかし、この動作も PHP 8.4.0 以降非推奨となっているため、メソッドには適切な callable を使用することが推奨されます。 + + +'> + + + parser + + + ハンドラをコールするXMLパーサ + + +'> + + + 8.4.0 + + 非 callablestringhandler に渡すことは、現在非推奨となっています。 + メソッドには適切な callable を使用するか、ハンドラをリセットする場合は &null; を使用してください。 + + + + 8.4.0 + + handlercallable として有効であるかどうかは、 + 呼び出し時ではなく、ハンドラーを設定する際にチェックされるようになりました。 + +'> + + + 8.0.0 + + 引数 parser は、 + XMLParser インスタンスを期待するようになりました。 + これより前のバージョンでは、有効な xml resource が期待されていました。 + +'> + @@ -3061,7 +4831,7 @@ xmlns="http://docbook.org/ns/docbook">この関数は、PECL uopz 5.0.0 たいていの場合は、正しい SSL 証明書を持つサーバーと通信するならこれを変更する必要はありません。 OpenSSL が、よく知られた CA バンドルを使うように設定されているからです。 - + デフォルトの CA バンドルを上書きすることもできます。 openssl.cafile あるいは openssl.capath を設定すればグローバルに変更でき、コンテキストオプション diff --git a/language/attributes.xml b/language/attributes.xml new file mode 100644 index 0000000000..2275a030de --- /dev/null +++ b/language/attributes.xml @@ -0,0 +1,395 @@ + + + + + + アトリビュート + + アトリビュートの概要 + + + + PHP のアトリビュートは、クラス、メソッド、関数、パラメータ、プロパティ、定数に、 + 構造化され、かつマシンが読み取り可能なメタデータを提供します。 + これらは リフレクション API を介して実行時に検査でき、 + コードを変更することなく動的な振る舞いを可能にします。 + アトリビュートは、宣言的な方法でコードにメタデータの注釈を付ける方法を提供します。 + + + + アトリビュートは、機能の実装と利用を分離できるようにします。 + インターフェイスがメソッドを強制することで構造を定義するのに対し、 + アトリビュートはメソッド、関数、プロパティ、定数を含む、 + 複数の要素にわたってメタデータを提供します。 + インターフェイスがメソッドの実装を強制するのとは異なり、 + アトリビュートはコードの構造を変更することなく注釈を付けます。 + + + + アトリビュートは、強制された構造の代わりにメタデータを提供することで、 + オプションのインターフェイスメソッドを補完または置き換えることができます。 + アプリケーションでの操作を表す ActionHandler インターフェイスを考えてみましょう。 + 一部の実装ではセットアップ手順が必要な場合がありますが、必要ない場合もあります。 + ActionHandler を実装するすべてのクラスに + setUp() メソッドの定義を強制する代わりに、 + アトリビュートを使用してセットアップ要件を示すことができます。 + このアプローチは柔軟性を高め、必要に応じてアトリビュートを複数回適用できます。 + + + + アトリビュートを使い、インターフェイスのオプションのメソッドを実装する + +fileName)) { + throw new RuntimeException("File does not exist"); + } + } + + #[SetUp] + public function targetDirectoryExists() + { + if (!file_exists($this->targetDirectory)) { + mkdir($this->targetDirectory); + } elseif (!is_dir($this->targetDirectory)) { + throw new RuntimeException("Target directory $this->targetDirectory is not a directory"); + } + } + + public function execute() + { + copy($this->fileName, $this->targetDirectory . '/' . basename($this->fileName)); + } +} + +function executeAction(ActionHandler $actionHandler) +{ + $reflection = new ReflectionObject($actionHandler); + + foreach ($reflection->getMethods() as $method) { + $attributes = $method->getAttributes(SetUp::class); + + if (count($attributes) > 0) { + $methodName = $method->getName(); + + $actionHandler->$methodName(); + } + } + + $actionHandler->execute(); +} + +$copyAction = new CopyFile(); +$copyAction->fileName = "/tmp/foo.jpg"; +$copyAction->targetDirectory = "/home/user"; + +executeAction($copyAction); +]]> + + + + + + アトリビュートの文法 + + + アトリビュートの文法は、いくつかの重要な要素で構成されています。 + アトリビュートの宣言は #[ で始まり、] で終わります。 + その内部には、1つ以上のアトリビュートをカンマで区切って並べることができます。 + アトリビュート名は、名前空間の基礎 で説明されているように、 + 非修飾名、修飾名、または完全修飾名にすることができます。 + アトリビュートへの引数はオプションで、括弧 () で囲みます。 + 引数にはリテラル値または定数式のみを指定できます。 + 位置引数と名前付き引数の両方の構文がサポートされています。 + + + + アトリビュート名とその引数はクラスに解決され、 + リフレクション API を介してアトリビュートのインスタンスが要求されると、 + 引数がそのコンストラクタに渡されます。 + したがって、各アトリビュートに対してクラスを導入することをお勧めします。 + + + + アトリビュートの文法 + + +value = $value; + } +} + +// b.php + +namespace Another; + +use MyExample\MyAttribute; + +#[MyAttribute] +#[\MyExample\MyAttribute] +#[MyAttribute(1234)] +#[MyAttribute(value: 1234)] +#[MyAttribute(MyAttribute::VALUE)] +#[MyAttribute(array("key" => "value"))] +#[MyAttribute(100 + 200)] +class Thing +{ +} + +#[MyAttribute(1234), MyAttribute(5678)] +class AnotherThing +{ +} +]]> + + + + + + + リフレクションAPI を使ってアトリビュートを読み取る + + + クラス、メソッド、関数、パラメータ、プロパティ、クラス定数からアトリビュートにアクセスするには、 + リフレクション API が提供する getAttributes メソッドを使用します。 + このメソッドは ReflectionAttribute インスタンスの配列を返します。 + これらのインスタンスは、アトリビュート名、引数を問い合わせることができ、 + 表現されたアトリビュートのインスタンスをインスタンス化するために使用できます。 + + + + リフレクションされたアトリビュートの表現を実際のインスタンスから分離することで、 + 存在しないアトリビュートクラス、型指定ミス、値の不足など、 + エラー処理をより詳細に制御できます。 + アトリビュートクラスのオブジェクトは ReflectionAttribute::newInstance + を呼び出した後にのみインスタンス化され、その時点で引数の検証が行われます。 + + + + リフレクションAPIを使い、アトリビュートを読み取る + + +value = $value; + } +} + +#[MyAttribute(value: 1234)] +class Thing +{ +} + +function dumpAttributeData($reflection) { + $attributes = $reflection->getAttributes(); + + foreach ($attributes as $attribute) { + var_dump($attribute->getName()); + var_dump($attribute->getArguments()); + var_dump($attribute->newInstance()); + } +} + +dumpAttributeData(new ReflectionClass(Thing::class)); +/* +string(11) "MyAttribute" +array(1) { + ["value"]=> + int(1234) +} +object(MyAttribute)#3 (1) { + ["value"]=> + int(1234) +} +*/ + +]]> + + + + + リフレクションインスタンスのすべてのアトリビュートをループする代わりに、 + アトリビュートクラス名を引数として渡すことで、 + 特定のアトリビュートのクラスだけを取得できます。 + + + + リフレクションAPIを使い、特定のアトリビュートを読み取る + + +getAttributes(MyAttribute::class); + + foreach ($attributes as $attribute) { + var_dump($attribute->getName()); + var_dump($attribute->getArguments()); + var_dump($attribute->newInstance()); + } +} + +dumpMyAttributeData(new ReflectionClass(Thing::class)); +]]> + + + + + + アトリビュートクラスを宣言する + + + アトリビュートごとに個別のクラスを定義することをお勧めします。 + 最も単純なケースでは、#[Attribute] 宣言を持つ空のクラスで十分です。 + このアトリビュートは、use 文を使用してグローバル名前空間からインポートできます。 + + + + 単純なアトリビュートクラスの例 + + + + + + + + アトリビュートを適用できる宣言の種類を制限するには、 + #[Attribute] 宣言の最初の引数としてビットマスクを渡します。 + + + + アトリビュートを使える場所を限定するために、ターゲットとなるクラスを作る + + + + + + + MyAttribute を別の型で宣言すると、 + ReflectionAttribute::newInstance の呼び出し時に例外がスローされます。 + + + + ビットマスクには、以下が指定できます: + + + Attribute::TARGET_CLASS + Attribute::TARGET_FUNCTION + Attribute::TARGET_METHOD + Attribute::TARGET_PROPERTY + Attribute::TARGET_CLASS_CONSTANT + Attribute::TARGET_PARAMETER + Attribute::TARGET_ALL + + + + デフォルトでは、アトリビュートは宣言ごとに1回しか使用できません。 + アトリビュートを繰り返し可能にするには、 + #[Attribute] 宣言のビットマスクで + Attribute::IS_REPEATABLE フラグを指定します。 + + + + 宣言時にアトリビュートを複数回使えるように、IS_REPEATABLE を使う + + + + + + + + + + diff --git a/language/basic-syntax.xml b/language/basic-syntax.xml index d04ad56f4e..6fd7c1715b 100644 --- a/language/basic-syntax.xml +++ b/language/basic-syntax.xml @@ -1,89 +1,97 @@ - + - + 基本的な構文 PHP タグ - PHP はファイルを解析して開始タグと終了タグ - (<?php?>) を探します。 - タグが見つかると、PHP はコードの実行を開始したり終了したりします。 - このような仕組みにより、PHP を他のあらゆる形式のドキュメント中に - 埋め込むことができるのです。つまり、開始タグと終了タグで囲まれている - 箇所以外のすべての部分は、PHP パーサに無視されます。 + PHP はファイルを処理する際、開始タグと終了タグ + (<?php?>) を認識し、 + PHP コード実行の境界を決めます。タグの外側の内容は PHP パーサに無視されるため、 + PHP を他のあらゆる形式のドキュメント中に埋め込むことができるのです。 + + + + 正しいトークン分割のため、<?php + の後ろに空白文字(空白、タブ、改行)を入れる必要があります。 + これがないと文法エラーが発生します。 PHP では、短い形式のechoタグ <?= も使えます。 - これは、より冗長な <?php echo を短くしたものです。 + これは、 <?php echo を短くしたものです。 - PHP では、短い形式の開始タグ <? も使えます - (しかしこれはおすすめしません。というのも、この形式のタグは &php.ini; で - short_open_tag を有効にするか - オプションつきで PHP を configure した場合でないと使えないからです)。 + + PHP の開始タグと終了タグ + + + +2. 短い形式の echo タグを使って とすることもできます。 + これは と同じ意味になります。 + +3. +]]> + + + + + 短縮型のタグ(例 3.)はデフォルトで有効ですが、 + &php.ini; 設定ファイルのディレクティブ + short_open_tag で無効にすることもできますし、 + オプション付きで configure した場合は、 + デフォルトで無効にすることも出来ます。 + + + + + 短縮形のタグは無効にすることができるので、 + 互換性を最大限保つために、通常のタグ + (<?php ?> and <?= ?>) を使うことを推奨します。 + + + - ファイルが PHP コードのみを含む場合は、ファイルの最後の終了タグは省略するのがおすすめです。 + ファイルが PHP コードで終わる場合は、ファイルの最後の終了タグは省略するのがおすすめです。 終了タグの後に余分な空白や改行があると、予期せぬ挙動を引き起こす場合があるからです。 余分な空白や改行のせいで PHP が出力バッファリングを開始し、その時点の内容を意図せず出力してしまうことになります。 - + + + + PHP コードのみのファイル - - - -
- &reftitle.changelog; - - - - &Version; - &Description; - - - - - 7.0.0 - - ASP タグ (<%, %>, - <%=) や script タグ - (<script language="php">) - が PHP から削除されました。 - - - - 5.4.0 - - short_open_tag の設定にかかわらず、<?= は常に使えるようになりました。 - - - - -
+
+ HTML からの脱出 PHP のパーサは、開始タグと終了タグに囲まれていない部分をすべて無視します。 そのおかげで、PHP のファイルにそれ以外のコンテンツを混在させることができるのです。 たとえば PHP を HTML ドキュメントに組み込んで、テンプレートを作ったりすることもできます。 - + + + + HTML に PHP を埋め込む この部分は PHP から無視され、そのままブラウザには表示されます。

@@ -91,7 +99,9 @@ echo "最後のごあいさつ";

この部分も PHP から無視され、そのままブラウザには表示されます。

]]>
- +
+
+ これは期待通りに動作します。なぜなら、PHP インタプリタは ?> 終了タグを見つけると それ以降新たに開始タグを見つけるまでの内容を何でも出力するからです (終了タグの直後の改行は別です。 @@ -125,117 +135,58 @@ echo "最後のごあいさつ"; を用いることを考えると、このように一度 PHP のパースモードを抜けるほうが効率的です。 - PHP 5 では、PHP の cnfigure 方法に応じて最大で五種類の開始タグ・終了タグが使えます。 - そのうちの二つである - <?php ?> と - <script language="php"> </script> は、常に使えます。 - また、短い形式の echo タグ <?= ?> も、 - PHP 5.4.0 以降では常に使えます。 - - - 残りの二種類は、短縮型のタグと ASP スタイルのタグです。 - 中には短縮型のタグや ASP スタイルのタグを - 便利に感じる人がいるかも知れませんが、長いタグに比べると移植性に欠けます。 - また一般的には推奨されていません。 - - - さらに注意しなければならないことがあります。PHP コードを XML や XHTML に - 埋め込む場合には、標準規格に従うために <?php ?> タグを使用する - 必要があるでしょう。 - - + PHP コードを XML や XHTML に + 埋め込む場合には、標準規格に従うために <?php ?> タグを使用する + 必要があるでしょう。 +
+ + + 命令の分離 - PHP 7 では、ASP タグや - <script language="php"> タグが使えなくなりました。これから PHP のコードを書くときには、 - 互換性を考慮して <?php ?><?= ?> - だけを使うことを推奨します。 + C や Perl と同様に、PHP でもステートメントを区切るにはセミコロンが必要と + なります。PHP コードブロックの終了タグには自動的にセミコロンが含まれていると + 認識されます。 従って PHP コードの最終行にはセミコロンを記述する必要はありません。 + ブロックの終了タグは、直後に改行がある場合、それを含んだものになります。 + - PHP の開始タグと終了タグ + 改行を囲んだ終了タグを表示させる例 - -2. 短縮型の echo タグを使って とすることもできます。 - これは PHP 5.4.0 以降では常に使えて、 - と同じ意味になります。 - -3. - -4. - この構文は、PHP 7.0.0 で削除されました。 - -5. <% echo 'オプションでASP形式のタグを使用可能です'; %> - <%= $variable; %> これは、<% echo $variable; %> のショートカットです。 - これらの構文は、PHP 7.0.0 で削除されました。 + +No newline + ]]> + &example.outputs; + + + + - 短縮型のタグ(例 3.)が有効なのは、&php.ini; 設定ファイルのディレクティブ - short_open_tag が - 有効になっている場合か PHP が - オプションつきで configure されている場合のみです。 - - - ASP 型のタグ(例 5.)が有効なのは、 - &php.ini; 設定ファイルのディレクティブ - asp_tags が有効になっている場合のみです。 - また、このタグは PHP 7.0.0 で廃止されました。 - - - - - 再利用されるか、または、自分の制御下にないPHPサーバーで運用される - アプリケーションまたはライブラリを開発する場合、短縮型のタグの - 使用は避けるべきです。これは、短縮型のタグがターゲットサーバー - でサポートされていない可能性があるためです。 - 可搬性のある、再配布可能なコードでは、短縮型のタグを使用しない - ようにしてください。 - - - - - PHP 5.2 以前では、開始タグ <?php - だけを書いてそれ以外に何も書いていないファイルは - パーサが処理することができませんでした。PHP 5.3 - 以降では、開始タグの後に空白が一文字でもあればそのようなファイルもパースできます。 - - - - - PHP 5.4 以降では、短い形式の echo タグ <?= は常に有効なタグとして認識されるようになりました。 - short_open_tag の設定には影響を受けません。 - - - - - - 命令の分離 - - C や Perl と同様に、PHP でもステートメントを区切りにはセミコロンが必要と - なります。PHP コードブロックの終了タグには自動的にセミコロンが含まれていると - 認識されます。 従って PHP コードの最終行にはセミコロンを記述する必要はありません。 - ブロックの終了タグは、直後に改行がある場合、それを含んだものになります。 - + + PHP パーサの開始と終了の例 - + - - + + + ファイル終端における PHP ブロックの終了タグはオプション(任意)です。 @@ -255,20 +206,22 @@ echo "最後のごあいさつ"; PHP は、'C', 'C++' および Unix シェル型(Perl 型)のコメントをサポートします。 例えば、 - - + + + + コメント ]]> - + "一行"コメントは、改行または PHP コードのブロックの終わり @@ -278,22 +231,18 @@ echo '最後のテストです'; # シェル型の単一行用のコメント 表示されるということです。?> により PHP モードを終了して HTML モードに戻ると、そこでは // あるいは # は何の影響も - 及ぼしません。asp_tags - 設定ディレクティブが有効になっている場合、// %> - および # %> - でも同じような動作になります。しかし、一行コメントの中の - </script> では PHP モードを終了することは - ありません。 + 及ぼしません。 - + + 一行コメント これは 例 +

これは 例です。

上の見出しは 'これは 例です。' となります。 ]]> - + 'C' 型のコメントは、最初に */ が現れた時点で終了します。 diff --git a/language/constants.xml b/language/constants.xml index 6aac0841f8..5dfbcb3e28 100644 --- a/language/constants.xml +++ b/language/constants.xml @@ -1,19 +1,28 @@ - + 定数 - 定数は簡単な値のためのID(名前)です。この名前が示すように、定数の値は + 定数は、値のためのID(名前)です。この名前が示すように、定数の値は スクリプト実行中に変更できません (マジック定数 - は例外で、これらは実際は定数ではありません)。 - デフォルトで定数では大文字小文字を区別します。慣習的に、 + linkend="language.constants.magic">マジック定数 + は例外です。これは実際は定数ではありません)。 + 定数は大文字小文字を区別します。慣習的に、 定数は常に大文字で表記されます。 + + + + PHP 8.0.0 より前のバージョンでは、 + define 関数を使って定義された定数は、 + 大文字小文字を区別しない場合がありました。 + + + 定数の名前は、PHP のラベルと同じ規則に従います。有効な定数の名前は、 文字またはアンダースコアで始まり、任意の数の文字、数字、 @@ -23,12 +32,12 @@ define 関数を使うと、 予約語や有効でない名前の定数を定義することが可能です。 - この場合の定数の値は constant() 関数によって (のみ) 取得できますが、 + この場合の定数の値は constant 関数によってのみ取得できますが、 このような使い方は推奨できません。 - &tip.userlandnaming; + 有効/無効な定数名の例 @@ -59,6 +68,7 @@ define("__FOO__", "something"); (0x80-0xff)のASCII文字を指します。 + &link.superglobals;と同様に定数のスコープはグローバルです。 つまり、スコープによらずスクリプトの中ではどこでも定数に @@ -67,13 +77,18 @@ define("__FOO__", "something"); をご覧ください。 + + + PHP 7.1.0 以降では、クラス定数は protected または private として宣言でき、 + それが定義されたクラス階層のスコープでのみ利用可能にすることができます。 + + + 構文 - define 関数を使用することにより、 - 定数を定義することが可能です。PHP 5.3.0 以降では、 - クラス定義の外部で const - キーワードを使って定数を定義することもできます。 + const キーワードか、 + define 関数を使うことで、定数を宣言することが出来ます。 define を使えば任意の式を使って定数を定義できますが、 const キーワードを使う場合には、 次の段落で説明する制約があります。 @@ -81,47 +96,54 @@ define("__FOO__", "something"); 変更または未定義とすることはできません。 - PHP 5.6 より前のバージョンでは、const キーワードで定数に指定できるのは、スカラデータ - (boolean, integer, - double, string) のみです。 - PHP 5.6 以降では、定数をスカラー式として定義できるようになりました。 - また、array の定数も指定できるようになりました。 + const キーワードで定数に指定できるのは、スカラー式 + (bool, int, + float, string) と、 + スカラー式だけを含んだ array の定数です。 resource の定数を指定することもできますが、 予期せぬ結果を引き起こすことがあるので避けるべきです。 単に定数の名前を指定することにより、その値を得ることが可能です。 - 変数とは異なり、その前に $ は不要です。 + 変数とは異なり、その前に $不要です。 定数の名前を動的に得る必要がある場合、定数の値を読むために関数 constant を使用することも可能です。 定義済の定数の一覧を得るには、 get_defined_constants を使用してください。 + 定数と(グローバル)変数は、異なる名前空間にあります。 例えば、&true; と $TRUE は違うものを意味します。 + - 未定義の定数を使用した場合、ちょうどstringとして + 未定義の定数を使用した場合、Error がスローされます。 + PHP 8.0.0 より前のバージョンでは、 + 未定義の定数は、ちょうどstringとして コールしたかのように(CONSTANT vs "CONSTANT")、 - PHPはその定数自体の名前を使用したと仮定します。 + PHPはその定数自体の名前を使用したと解釈していました。 このような振る舞いは、PHP 7.2.0 以降では非推奨となり、E_WARNING が発生するようになりました。 (それより前のバージョンでは、 E_NOTICE が発生していました) - なぜ + (barが定数でなければ) なぜ $foo[bar]が間違っている - (まずbarを定数としてdefineしなければ) のかというマニュアルもご覧ください。 これは 完全修飾形式の定数 - には適用されず、この場合は未定義なら fatal error となります。 - 定数がセットされているかを単にチェックするには - definedを使用してください。 + には適用されず、この場合は未定義なら Error が発生します。 + + + + 定数が設定されているかを確認するには、defined 関数を使って下さい。 + + + 変数との違いは次のようになります。 @@ -130,12 +152,6 @@ define("__FOO__", "something"); 定数は、前にドル記号($)を要しません。 - - - PHP 5.3 より前のバージョンでは、定数を定義することができるのは、define - 関数のみです。単なる代入による定義はできません。 - - 定数は、定義することができ、変数のスコープ規則に関係なく、あら @@ -149,12 +165,7 @@ define("__FOO__", "something"); - 定数は、スカラー値としてのみ評価可能です。 - PHP 5.6 以降では、const キーワードを用いて配列定数を定義できるようになりました。 - また PHP 7 以降では、define を用いた配列定数の定義もできるようになりました。 - 配列を、定数スカラー式としても使えます - (例:const FOO = array(1,2,3)[0];) - が、最終的な結果は、許可されている型でなければいけません。 + 定数は、スカラー値と配列としてのみ評価可能です。 @@ -168,7 +179,8 @@ define("__FOO__", "something"); ]]> @@ -181,19 +193,19 @@ echo Constant; // "Constant" を出力し、警告 (notice) を発行 - キーワード const を使って定義された定数は、 - 常に大文字小文字を区別します。 - しかし、define 関数を使って定義された定数は、 + PHP 8.0.0 より前のバージョンでは、define 関数を使って定義された定数は、 大文字小文字を区別しません。 - - オブジェクト定数 - も参照ください。 - + + &reftitle.seealso; + + + クラス定数 + + + + @@ -242,13 +257,16 @@ echo ANIMALS[1]; // 出力は "cat" 動的なロードやコンパイル時の組込みにより、これらの拡張モジュールが 使用可能である場合にのみ定義されます。 + + + マジック定数 - 使われる場所によって値が変化する定数(マジカル定数)が 9 つあります。 + 使われる場所によって値が変化する定数(マジック定数)がいくつかあります。 例えば、__LINE__はスクリプト上において 使われる行によって値が変化します。 これらの - "マジカル"定数は、実行時に解決される通常の定数とは異なり、コンパイル時に解決されます。 + "マジック"定数は、実行時に解決される通常の定数とは異なり、コンパイル時に解決されます。 これらの特別な定数は大文字小文字を区別しません。 内容は以下のとおりです: @@ -258,8 +276,8 @@ echo ANIMALS[1]; // 出力は "cat" - 名前 - 説明 + &Name; + &Description; @@ -297,14 +315,14 @@ echo ANIMALS[1]; // 出力は "cat" クラス名。 クラス名には、そのクラスが宣言されている名前空間も含みます (例 Foo\Bar)。 - PHP 5.4 以降では、__CLASS__ がトレイトでも使えることに注意しましょう。トレイトのメソッド内で - __CLASS__ を使うと、そのトレイトを use しているクラスの名前を返します。 + トレイトのメソッド内で __CLASS__ を使うと、 + そのトレイトを use しているクラスの名前を返します。 __TRAIT__ - トレイト名 + トレイト名。 トレイト名には、宣言された名前空間も含みます (例 Foo\Bar)。 @@ -315,6 +333,14 @@ echo ANIMALS[1]; // 出力は "cat" クラスのメソッド名。 + + __PROPERTY__ + + プロパティ名。 + プロパティフック + の内部でのみ使用可能です。 + + __NAMESPACE__ @@ -322,61 +348,29 @@ echo ANIMALS[1]; // 出力は "cat" - ClassName::class + ClassName::class 完全に修飾されたクラス名。 - 詳しくは、 - ::class を参照してください。 - - - get_class, - get_object_vars, - file_exists, - function_existsも参照してください。 - - - - &reftitle.changelog; + + &reftitle.seealso; - - - - - &Version; - &Description; - - - - - 5.5.0 - - ::class が追加されました。 - - - - 5.4.0 - - __TRAIT__ が追加されました。 - - - - 5.3.0 - - __DIR____NAMESPACE__ が追加されました。 - - - - - + + ::class + get_class + get_object_vars + file_exists + function_exists + + diff --git a/language/context.xml b/language/context.xml index 272d45d132..99c2a1e9fc 100644 --- a/language/context.xml +++ b/language/context.xml @@ -1,6 +1,6 @@ - + コンテキストオプションとパラメータ @@ -20,12 +20,11 @@ &language.context.http; &language.context.ftp; &language.context.ssl; - &language.context.curl; &language.context.phar; - &language.context.mongodb; &language.context.parameters; &language.context.zip; - + &language.context.zlib; + - - - - - CURL コンテキストオプション - CURL コンテキストオプションの一覧 - - - - &reftitle.description; - - CURL コンテキストオプションは、 - CURL 拡張モジュールのコンパイル時に - オプションを指定すると使用可能となります。 - - - - - &reftitle.options; - - - - - method - string - - - - GETPOST - あるいはその他リモートサーバーがサポートする HTTP メソッド。 - - - デフォルトは GET です。 - - - - - - header - string - - - - リクエスト時に送信する追加のヘッダ。このオプションの値は - (User-agent:Host:、 - Authentication: といった) - 他の値を上書きします。 - - - - - - user_agent - string - - - - User-Agent: ヘッダで送信する値。 - - - デフォルトでは、&php.ini; の - user_agent - の設定内容を使用します。 - - - - - - content - string - - - - ヘッダの後に送信する追加データ。このオプションは - GET あるいは HEAD - リクエストでは使用しません。 - - - - - - proxy - string - - - - プロキシサーバーのアドレスを表す URI - (tcp://proxy.example.com:5100 など)。 - - - - - - max_redirects - integer - - - - リダイレクトを追いかける最大数。1 - 以下を指定した場合は、リダイレクトを追跡しません。 - - - デフォルトは 20 です。 - - - - - - curl_verify_ssl_host - boolean - - - - ホストを検証する。 - - - デフォルトは &false; です。 - - - - このオプションは、http および ftp の両方のプロトコルラッパーで使用可能です。 - - - - - - - curl_verify_ssl_peer - boolean - - - - SSL 証明書の検証を要求する。 - - - デフォルトは &false; です。 - - - - このオプションは、http および ftp の両方のプロトコルラッパーで使用可能です。 - - - - - - - - - - &reftitle.examples; - - - ページの取得と POST データの送信 - - 'some content', - 'var2' => 'doh' - ) -); - -$opts = array('http' => - array( - 'method' => 'POST', - 'header' => 'Content-type: application/x-www-form-urlencoded', - 'content' => $postdata - ) -); - -$context = stream_context_create($opts); - -$result = file_get_contents('http://example.com/submit.php', false, $context); - -?> -]]> - - - - - - - &reftitle.seealso; - - - - - - - - - - - diff --git a/language/context/ftp.xml b/language/context/ftp.xml index 2ae3a46a3f..2db4f5055a 100644 --- a/language/context/ftp.xml +++ b/language/context/ftp.xml @@ -1,8 +1,8 @@ - + - + FTP コンテキストオプション FTP コンテキストオプションの一覧 @@ -23,7 +23,7 @@ overwrite - boolean + bool @@ -38,7 +38,7 @@ resume_pos - integer + int @@ -67,30 +67,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.1.0 - - proxy が追加されました。 - - - - - - - - &reftitle.notes; diff --git a/language/context/http.xml b/language/context/http.xml index 3ab80a86b6..91a5e04f8d 100644 --- a/language/context/http.xml +++ b/language/context/http.xml @@ -1,8 +1,9 @@ - + + - + HTTP コンテキストオプション HTTP コンテキストオプションの一覧 @@ -46,6 +47,21 @@ (User-agent:Host:、 および Authentication: などの) 他の値を上書きすることもあります。 + これは、後にLocation: + によってリダイレクトが行われる場合でも同様です。 + よって、follow_location が有効になっている場合、 + Host: ヘッダを設定することはお勧めしません。 + + + 文字列の値は、Key: value のペアを + \r\n で区切ったものにすべきです。 + たとえば、 + "Content-Type: application/json\r\nConnection: close" + のようにします。 + 配列の値は、Key: value のペアのリストにすべきです。 + たとえば、 + ["Content-Type: application/json", "Connection: close"] + のようにします。 @@ -94,12 +110,12 @@ request_fulluri - boolean + bool &true; を指定すると、リクエストを生成する際に完全な URI - (GET http://www.example.com/path/to/file.html HTTP/1.0) + (例: GET http://www.example.com/path/to/file.html HTTP/1.0) が用いられます。これは標準のリクエストフォーマットではありませんが、 このようなフォーマットを要求するプロキシサーバーも存在します。 @@ -111,7 +127,7 @@ follow_location - integer + int @@ -126,7 +142,7 @@ max_redirects - integer + int @@ -148,15 +164,9 @@ HTTP プロトコルのバージョン。 - デフォルトは 1.0 です。 + PHP 8.0.0 以降では、デフォルトは 1.1 です。 + それより前のバージョンでは、デフォルトは 1.0 でした。 - - - 5.3.0 より前のバージョンの PHP では chunked transfer decoding を実装していません。 - この値を 1.1 に設定するなら、 - 1.1 準拠にするのは自分の責任となります。 - - @@ -179,7 +189,7 @@ ignore_errors - boolean + bool @@ -194,74 +204,7 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.4 - - follow_location が追加されました。 - - - - 5.3.0 - - protocol_version に - 1.1 を設定した場合に、 - chuned transfer decoding をサポートするようになりました。 - - - - 5.2.10 - - ignore_errors が追加されました。 - - - - 5.2.10 - - header に数値添字の配列を使用できるようになりました。 - - - - 5.2.1 - - timeout が追加されました。 - - - - 5.1.0 - - HTTP プロキシを使用した HTTPS のプロキシが追加されました。 - - - - 5.1.0 - - max_redirects が追加されました。 - - - - 5.1.0 - - protocol_version が追加されました。 - - - - - - - - + &reftitle.examples; @@ -272,19 +215,19 @@ 'some content', - 'var2' => 'doh' - ) + 'var2' => 'doh', + ] ); -$opts = array('http' => - array( +$opts = [ + 'http' => [ 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', - 'content' => $postdata - ) -); + 'content' => $postdata, + ] +]; $context = stream_context_create($opts); @@ -304,13 +247,13 @@ $result = file_get_contents('http://example.com/submit.php', false, $context); $url = "http://www.example.org/header.php"; -$opts = array('http' => - array( - 'method' => 'GET', +$opts = [ + 'http' => [ + 'method' => 'GET', 'max_redirects' => '0', - 'ignore_errors' => '1' - ) -); + 'ignore_errors' => '1', + ] +]; $context = stream_context_create($opts); $stream = fopen($url, 'r', false, $context); @@ -355,7 +298,7 @@ fclose($stream); array ( 'wrapper_data' => array ( - 0 => 'HTTP/1.0 301 Moved Permantenly', + 0 => 'HTTP/1.0 301 Moved Permanently', 1 => 'Cache-Control: no-cache', 2 => 'Connection: close', 3 => 'Location: http://example.com/foo.jpg', diff --git a/language/context/mongodb.xml b/language/context/mongodb.xml deleted file mode 100644 index f3fa58a225..0000000000 --- a/language/context/mongodb.xml +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - MongoDB コンテキストオプション - MongoDB コンテキストオプション一覧 - - - - &reftitle.description; - - mongodb:// トランスポート用のコンテキストオプションです。 - - - - - &reftitle.options; - - - - - log_cmd_insert - callable - - - - ドキュメントを挿入する際に呼び出されるコールバック関数です。log_cmd_insert を参照ください。 - - - - - - log_cmd_delete - callable - - - - ドキュメントを削除する際に呼び出されるコールバック関数です。log_cmd_delete を参照ください。 - - - - - - log_cmd_update - callable - - - - ドキュメントを更新する際に呼び出されるコールバック関数です。log_cmd_update を参照ください。 - - - - - - log_write_batch - callable - - - - 書き込みバッチを実行する際に呼び出されるコールバック関数です。log_write_batch を参照ください。 - - - - - - log_reply - callable - - - - MongoDB からの応答を読み取る際に呼び出されるコールバック関数です。log_reply を参照ください。 - - - - - - log_getmore - callable - - - - MongoDB のカーソルからより多くの結果を取得する際に呼び出されるコールバック関数です。log_getmore を参照ください。 - - - - - - log_killcursor - callable - - - - killcursor オペコードを実行す際に呼び出されるコールバック関数です。log_killcursor を参照ください。 - - - - - - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - pecl/mongo 1.5.0 - - 書き込み API コンテキストオプションが追加されました - - - - - - - - - - &reftitle.seealso; - - - - - - - - - - - - diff --git a/language/context/parameters.xml b/language/context/parameters.xml index c59fc2f170..ae894ed281 100644 --- a/language/context/parameters.xml +++ b/language/context/parameters.xml @@ -1,8 +1,8 @@ - + - + コンテキストパラメータ コンテキストパラメータの一覧 diff --git a/language/context/phar.xml b/language/context/phar.xml index bcaaefec41..e83cc7d74c 100644 --- a/language/context/phar.xml +++ b/language/context/phar.xml @@ -1,8 +1,8 @@ - + - + Phar コンテキストオプション Phar コンテキストオプション一覧 diff --git a/language/context/socket.xml b/language/context/socket.xml index 71f444ca8a..8ee3a8c0e0 100644 --- a/language/context/socket.xml +++ b/language/context/socket.xml @@ -1,9 +1,9 @@ - + - + ソケットコンテキストオプション ソケットコンテキストオプション一覧 @@ -138,30 +138,6 @@ ipv6_v6only が追加されました。 - - 7.0.0 - - so_broadcast が追加されました。 - - - - 7.0.0 - - so_reuseport が追加されました。 - - - - 5.3.3 - - backlog が追加されました。 - - - - 5.1.0 - - bindto が追加されました。 - - diff --git a/language/context/ssl.xml b/language/context/ssl.xml index ee363eb181..c71b6daad7 100644 --- a/language/context/ssl.xml +++ b/language/context/ssl.xml @@ -1,9 +1,9 @@ - + - + SSL コンテキストオプション SSL コンテキストオプションの一覧 @@ -35,7 +35,7 @@ verify_peer - boolean + bool @@ -49,7 +49,7 @@ verify_peer_name - boolean + bool @@ -63,7 +63,7 @@ allow_self_signed - boolean + bool @@ -111,7 +111,7 @@ ファイルシステム上のローカル証明書ファイルのパス。 - あなたの証明書とプライベートキーを含み、PEM エンコードされた + あなたの証明書とプライベートキーを含み、PEM エンコードされた ファイルである必要があります。オプションで、発行者の 認証チェーンを含めることも可能です。 プライベートキーは、 @@ -143,29 +143,10 @@ - - - CN_match - string - - - - 予期している一般名 (CN)。PHP は限定されたワイルドカード検索を - 行います。もし一般名がこれにマッチしなかった場合、接続の試行は - 失敗します。 - - - - このオプションは非推奨です。PHP 5.6.0 以降では peer_name - を使いましょう。 - - - - verify_depth - integer + int @@ -194,7 +175,7 @@ capture_peer_cert - boolean + bool @@ -206,7 +187,7 @@ capture_peer_cert_chain - boolean + bool @@ -218,7 +199,7 @@ SNI_enabled - boolean + bool @@ -227,28 +208,10 @@ - - - SNI_server_name - string - - - - 設定すると、この値がサーバー名として用いられるようになります。 - 設定されていない場合は、ストリームをオープンしたときに使ったホスト名からサーバー名を推測します。 - - - - このオプションは非推奨です。PHP 5.6.0 以降では peer_name - を使いましょう。 - - - - disable_compression - boolean + bool @@ -278,7 +241,7 @@ security_level - integer + int @@ -312,30 +275,10 @@ 7.2.0 - security_levels が追加されました。 + security_level が追加されました。 OpenSSL >= 1.1.0 が必要です。 - - 5.6.0 - - peer_fingerprintverify_peer_name が追加されました。 - verify_peer のデフォルトが &true; に変わりました。 - - - - 5.4.13 - - disable_compression が追加されました。OpenSSL >= 1.0.0 が必要です。 - - - - 5.3.2 - - SNI_enabled および - SNI_server_name が追加されました。 - - diff --git a/language/context/zip.xml b/language/context/zip.xml index c38ca9fc39..0184e7d985 100644 --- a/language/context/zip.xml +++ b/language/context/zip.xml @@ -1,8 +1,8 @@ - + - + Zip コンテキストオプション Zip コンテキストオプション一覧 @@ -44,7 +44,7 @@ - PHP 7.2.0, PECL zip 1.14.0 + 7.2.0, PECL zip 1.14.0 password が追加されました。 diff --git a/language/context/zlib.xml b/language/context/zlib.xml new file mode 100644 index 0000000000..d5c1d3a0b3 --- /dev/null +++ b/language/context/zlib.xml @@ -0,0 +1,80 @@ + + + + + + Zlib コンテキストオプション + Zlib コンテキストオプション一覧 + + + + &reftitle.description; + + Zlib コンテキストオプションは zlib ラッパーで使用可能です。 + + + + + &reftitle.options; + + + + level + + + 圧縮レベル (0 - 9) + を指定します。 + + + + + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 7.3.0 + + level が追加されました。 + + + + + + + + + + + + diff --git a/language/control-structures.xml b/language/control-structures.xml index b285553a00..f8ed2e4a3b 100644 --- a/language/control-structures.xml +++ b/language/control-structures.xml @@ -1,6 +1,6 @@ - + 制御構造 @@ -28,6 +28,7 @@ array echo eval + print @@ -45,6 +46,7 @@ &language.control-structures.break; &language.control-structures.continue; &language.control-structures.switch; + &language.control-structures.match; &language.control-structures.declare; &language.control-structures.return; &language.control-structures.require; diff --git a/language/control-structures/alternative-syntax.xml b/language/control-structures/alternative-syntax.xml index 6faab10ecb..08961dd7ae 100644 --- a/language/control-structures/alternative-syntax.xml +++ b/language/control-structures/alternative-syntax.xml @@ -1,6 +1,6 @@ - + 制御構造に関する別の構文 @@ -69,8 +69,8 @@ endif; - ... - + // ... + ]]> @@ -87,7 +87,7 @@ endif; ... - + ]]> diff --git a/language/control-structures/break.xml b/language/control-structures/break.xml index bf83637488..9f525e969f 100644 --- a/language/control-structures/break.xml +++ b/language/control-structures/break.xml @@ -1,10 +1,10 @@ - + - <literal>break</literal> + break breakは、現在実行中の @@ -50,44 +50,7 @@ while (++$i) { - - - <literal>break</literal> の変更履歴 - - - - &Version; - &Description; - - - - - 7.0.0 - - ループ や switch 外の - break がコンパイル時に検知され、 - E_COMPILE_ERROR を発生させるようになりました。 - これより前のバージョンでは、実行時に検知していました。 - - - - 5.4.0 - - break 0; が使えなくなりました。今までのバージョンでは、これは - break 1; と同じ意味に解釈されていました。 - - - - 5.4.0 - - 数値引数の部分に変数を渡すこと (例: $num = 2; break $num;) - ができなくなりました。 - - - - -
-
+ - + + - <literal>continue</literal> + continue continue は、ループ構造において現在の繰り返しループ @@ -32,29 +33,63 @@ $value) { - if (!($key % 2)) { // キーが偶数の組をスキップします + if (0 === ($key % 2)) { // キーが偶数の組をスキップします continue; } - do_something_odd($value); + echo $value . "\n"; } - +?> +]]> + + &examples.outputs; + + + + +\n"; + echo "Outer\n"; while (1) { - echo "Middle
\n"; + echo "Middle\n"; while (1) { - echo "Inner
\n"; + echo "Inner\n"; continue 3; } - echo "This never gets output.
\n"; + echo "This never gets output.\n"; } - echo "Neither does this.
\n"; + echo "Neither does this.\n"; } ?> ]]>
+ &examples.outputs; + + +
@@ -85,27 +120,6 @@ for ($i = 0; $i < 5; ++$i) { 4 ]]> - - しかし、PHP 5.4.0 より前のバージョンでは、このスクリプトの出力は以下のようになります。 - - - - - - continue print "$i\n"; は全体でひとつの式として評価されるので、 - print がコールされるのは - $i == 2 が true のときだけです - (print の返り値が continue - への数値引数として渡されます)。 - - - - PHP 5.4.0 以降では、先ほどの例を実行すると - E_COMPILE_ERROR エラーが発生するようになりました。 - - @@ -124,28 +138,7 @@ for ($i = 0; $i < 5; ++$i) { switch 内部で break 文のように振る舞おうとする continue - については、E_WARNING をトリガーします。 - - - - 7.0.0 - - ループまたは switch 制御構造の外部の continue は、 - 以前のように実行時ではなくコンパイル時に検出されるようになり、E_COMPILE_ERROR をトリガーします。 - - - - 5.4.0 - - continue 0; が使えなくなりました。今までのバージョンでは、これは - continue 1; と同じ意味に解釈されていました。 - - - - 5.4.0 - - 数値引数の部分に変数を渡すこと (例: $num = 2; continue $num;) - ができなくなりました。 + については、E_WARNING が発生するようになりました。 diff --git a/language/control-structures/declare.xml b/language/control-structures/declare.xml index e39c2ef5e3..0638f0074b 100644 --- a/language/control-structures/declare.xml +++ b/language/control-structures/declare.xml @@ -1,14 +1,14 @@ - + - <literal>declare</literal> + declare declare 文は、あるコードブロックの中に - 実行ディレクティブをセットするために使用されます。declare + 実行ディレクティブをセットするために使用します。declare の文法は他の制御構造と似ています。 @@ -21,47 +21,16 @@ declare (ディレクティブ) - ディレクティブの箇所で、セットされた + ディレクティブ の箇所で、セットされた declareブロックの挙動を指定することが出来ます。 - 現在のところ、使用できるディレクティブは ticks - ( - ticksに関しては以下を参照してください)、 - encoding - (encoding - に関しては以下を参照ください)、 - strict_types - (strict - に関しては関数の引数のページを参照ください) です。 - - - - - - - &Version; - &Description; - - - - - 7.0.0 - strict_types ディレクティブが追加されました。 - - - 7.0.0 - - ticks ディレクティブは、 - 異なるコンパイル単位にリークしなくなりました。 - - - - 5.3.0 - encoding ディレクティブが追加されました。 - - - - + 現在のところ、使用できるディレクティブは以下の3つだけです: + + ticks + encoding + strict_types + + ディレクティブの処理は、ファイルをコンパイルする際に行われるので、 ディレクティブの値として渡せるのは、リテラルだけとなります。 @@ -82,12 +51,12 @@ declare(ticks=TICK_VALUE); - declareブロックの + declare ブロックの の実行のされ方や実行時にどのような作用が起こるかについては - ディレクティブに何が指定されたかに依存します。 + ディレクティブ に何が指定されたかに依存します。 - declare構造はグローバルスコープしても使用され、 + declare 文はグローバルスコープとしても使用され、 それはそれ以降のコード上の全てにおいて影響します (しかし、declare を含むファイルがインクルードされた場合は、 親ファイルにはその影響は及びません)。 @@ -126,7 +95,7 @@ declare(ticks=1); tickごとに発生させるイベントはregister_tick_function - を使用して指定します。詳細は以下の例を参照してください。1回のtickで + を使用して指定します。詳細は以下の例を参照ください。1回のtickで 複数のイベントが起こり得ることに注意してください。 @@ -144,42 +113,14 @@ function tick_handler() echo "tick_handler() called\n"; } -register_tick_function('tick_handler'); - -$a = 1; - -if ($a > 0) { - $a += 2; - print($a); -} - -?> -]]> - - - - - - Ticks の使用例 - - 0) { - $a += 2; - tick_handler(); - print($a); - tick_handler(); + $a += 2; // tick イベント発生 + print $a; // tick イベント発生 } -tick_handler(); ?> ]]> @@ -217,15 +158,6 @@ declare(encoding='ISO-8859-1'); は、名前空間と組み合わせるとパースエラーとなります。 - - php を --enable-zend-multibyte つきでコンパイルしていない場合、 - PHP 5.3 では encoding 宣言は無視されます。 - - - PHP が --enable-zend-multibyte - つきでコンパイルされているかどうかを知る方法は - phpinfo 以外に存在しないことに注意しましょう。 - zend.script_encoding も参照ください。 diff --git a/language/control-structures/do-while.xml b/language/control-structures/do-while.xml index 713548a0a2..c2ec5ee146 100644 --- a/language/control-structures/do-while.xml +++ b/language/control-structures/do-while.xml @@ -1,9 +1,10 @@ - + + - <literal>do-while</literal> + do-while do-whileループは、論理式のチェックが各反復の @@ -67,9 +68,7 @@ do { - この例をすぐに理解できなかったり、全く理解できなかったりしても問題ありません。 - この '機能' を使用しなくても、強力なスクリプトを書くことができます。 - PHP 5.3.0 以降では、この技のかわりに + この技のかわりに goto 演算子を使うこともできます。 diff --git a/language/control-structures/else.xml b/language/control-structures/else.xml index 8525499075..bed01dd591 100644 --- a/language/control-structures/else.xml +++ b/language/control-structures/else.xml @@ -1,9 +1,9 @@ - + - <literal>else</literal> + else ある条件が満たされている場合にある文を実行し、 @@ -39,6 +39,37 @@ if ($a > $b) { (elseif参照) + + else がぶら下がる場合 + + if-else + 文がネストした場合、 + else は常に、もっとも近い + if 文に関連付けられます。 + + + +]]> + + + どうインデントされているかに関わらず + (PHP では、インデントは結果に影響しません)、 + else + は if ($b) に関連付けられます。 + よって、この例は何も出力しません。 + この振る舞いが正しいことに依存している場合、 + 曖昧さを解決するために波括弧を使うことを推奨します。 + + - + - <literal>elseif</literal>/<literal>else if</literal> + elseif/else if elseifは、その名前から分かるように、if @@ -53,7 +53,7 @@ if ($a > $b) { elseifelse if はまったく同じだと考えてよいことに注意しましょう。コロンを使って if/elseif 条件を指定する場合は、 - else if のように分割してはいけません。 + 一単語で指定する必要があります。つまり、else if のように分割してはいけません。 分割すると、パースエラーとなってしまいます。 @@ -69,8 +69,14 @@ if ($a > $b): else if ($a == $b): // コンパイル不能 echo "The above line causes a parse error."; endif; +]]> + + - + + + $b): echo $a." is greater than ".$b; diff --git a/language/control-structures/for.xml b/language/control-structures/for.xml index 364fa57d3b..60349960af 100644 --- a/language/control-structures/for.xml +++ b/language/control-structures/for.xml @@ -1,9 +1,9 @@ - + - <literal>for</literal> + for for ループは、PHPで最も複雑なループです。 diff --git a/language/control-structures/foreach.xml b/language/control-structures/foreach.xml index 48d3c5f243..8eff2540e0 100644 --- a/language/control-structures/foreach.xml +++ b/language/control-structures/foreach.xml @@ -1,212 +1,131 @@ - - + - <literal>foreach</literal> + foreach - foreach は、配列を反復処理するための便利な方法です。 - foreach が使えるのは配列とオブジェクトだけであり、 - 別のデータ型や初期化前の変数に対して使うとエラーになります。 - この構造には二種類の構文があります。 + foreach は、 + 配列と Traversable + オブジェクトを反復処理する簡単な方法を提供します。 + それらと異なるデータ型や、未初期化の変数と一緒に foreach + を使うと、エラーが発生します。 + + foreach は、オプションで以下のようにして要素ごとの key も取得できます。 + $value) - 文 +foreach (iterable_expression as $value) { + statement_list +} + +foreach (iterable_expression as $key => $value) { + statement_list +} ]]> - 最初の形式は、array_expressionで指定した配列に + 最初の形式は、iterable_expression で指定した反復可能な値に 関してループ処理を行います。各反復において現在の要素の値が - $valueに代入され、内部配列ポインタが一つ前に - 進められます。(よって、次の反復では次の要素を見ることになります。) + $valueに代入されます。 2番目の形式は、さらに各反復で現在の要素のキーを変数 $keyに代入します。 + + foreach は、 + current や + key + のような関数で使われる、内部的な配列のポインタを変更しない点に注意して下さい。 + オブジェクトの反復処理をカスタマイズ することもできます。 - - - - PHP 5 では、foreachの実行開始時に内部配列ポインタは、 - 配列の先頭要素を指すように自動的にリセットされます。 - このため、foreachループの前に - resetをコールする必要はありません。 - - - PHP 5 では、foreach は内部の配列ポインタに依存するので、 - ループ内で配列ポインタを変更すると予期せぬ振る舞いを引き起こします。 - - - PHP 7 では、foreach は内部の配列ポインタを使わなくなりました。 - - - - - ループの中で配列の要素を直接変更したい場合は、 - $value の前に & をつけます。こうすると、変数には - リファレンス - が代入されることになります。 - - - -]]> - - - - - - foreach ループを終えた後でも、 - $value は配列の最後の要素を参照したままとなります。 - unset でその参照を解除しておくようにしましょう。 - さもないと、次のような目に遭うことになるでしょう。 - - - - $value) { - // $arr[3] が、$arr の各要素で上書きされて... - echo "{$key} => {$value} "; - print_r($arr); -} -// ...つまり、二番目から最後までの値が最後の値にコピーされていきます - -// 出力 -// 0 => 2 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 2 ) -// 1 => 4 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 4 ) -// 2 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 ) -// 3 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 ) -?> -]]> - - - - - PHP 5.5.0 より前のバージョンでは、$value の参照は、ループ処理される配列が参照可能である場合 (すなわち、 - 変数である) のみ使用可能です。次のコードは、PHP 5.5.0 以降でしか動作しません。 - - + + 一般的な <literal>foreach</literal> の使用法 + -]]> - - - - - - - foreach は、'@' によりエラーメッセージ出力を抑 - 制する機能をサポートしていません。 - - - - - 使用法を示すためにその他の例を示します。 - - - $v.\n"; - $i++; -} - -/* foreachの例3: キーと値 */ - -$a = array( +/* 例: キーと値 */ +$array = [ "one" => 1, "two" => 2, "three" => 3, "seventeen" => 17 -); +]; -foreach ($a as $k => $v) { - echo "\$a[$k] => $v.\n"; +foreach ($array as $key => $value) { + echo "Key: $key => Value: $value\n"; } -/* foreach の例4: 多次元配列 */ -$a = array(); -$a[0][0] = "a"; -$a[0][1] = "b"; -$a[1][0] = "y"; -$a[1][1] = "z"; +/* 例: 多次元のキーと値の配列 */ +$grid = []; +$grid[0][0] = "a"; +$grid[0][1] = "b"; +$grid[1][0] = "y"; +$grid[1][1] = "z"; -foreach ($a as $v1) { - foreach ($v1 as $v2) { - echo "$v2\n"; +foreach ($grid as $y => $row) { + foreach ($row as $x => $value) { + echo "Value at position x=$x and y=$y: $value\n"; } } -/* foreach の例5: 動的配列 */ - -foreach (array(1, 2, 3, 4, 5) as $v) { - echo "$v\n"; +/* Example: dynamic arrays */ +foreach (range(1, 5) as $value) { + echo "$value\n"; } ?> ]]> - - - + + + + + foreach は、 + @ + を使ってエラーメッセージを抑制する機能はサポートしていません。 + + - ネストした配列の list() による展開 + ネストした配列のアンパック - - PHP 5.5 からは、配列の配列の反復処理ができるようになりました。 - 値として list を渡すと、 - ネストした配列をループ変数に展開できます。 + 配列の配列を反復処理し、 + ネストした配列をループ変数に展開させることができます。 + 配列の分解 + を [] で行うか、list + 言語構造を反復処理の値として指定します。 + + + [] による + 配列の分解 + 処理は、PHP 7.1.0 以降でのみ利用可能である点に注意しましょう。 + + - 例を示します。 - + + 以下の例は両方、 + $a にネストされた配列の最初の要素が設定され、 + $b には二番目の要素が含まれます: + @@ -234,21 +155,26 @@ A: 3; B: 4 - list で指定する要素数を、ネストした配列の要素数より少なくしてもかまいません。 - その場合は、配列の残りの要素は無視されます。 - + 配列の要素より少ない変数が指定された場合、 + 残りの要素は無視されます。 + 同様に、以下のようにしてカンマを使うことで要素をスキップできます: ]]> @@ -256,16 +182,18 @@ foreach ($array as list($a)) { &example.outputs; - list で指定した変数を埋めるだけの要素が足りないときには、notice が発生します。 - + 以下のように、list + を埋めるだけの十分な要素数が配列にない場合、警告が発生します: @@ -284,53 +212,101 @@ foreach ($array as list($a, $b, $c)) { &example.outputs; - - &reftitle.changelog; + + foreach とリファレンス - - - - - &Version; - &Description; - - - - - 7.0.0 - - foreach が内部の配列ポインタを使わなくなりました。 - - - - 5.5.0 - - 式から $value を参照できるようになりました。 - これより前のバージョンでは、変数からの参照にだけ対応していました。 - - - - 5.5.0 - - ネストした配列の list による展開に対応しました。 - - - - - + ループ中で、 + $value の前に & + をつけることで、配列の要素を直接変更することができます。 + この場合、値は リファレンス + として代入されます。 + + + +]]> + + + + + 配列の最後の要素の $value へのリファレンスは、 + foreach が終了した後も残ったままです。 + このリファレンスは unset することをお勧めします。 + そうしないと、以下のようなことが起きてしまいます: + + + + $value) { + // $arr[3] は $arr の値ごとに更新され続けてしまいます... + echo "{$key} => {$value} "; + print_r($arr); +} +// ...最終的に、最後から2番目の値が最後の値にコピーされるまで +?> +]]> + + &example.outputs; + + 2 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 2 ) +1 => 4 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 4 ) +2 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 ) +3 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 ) +]]> + + + + + 定数の配列の値を、リファレンスで反復処理する + + +]]> + + + + + + &reftitle.seealso; + + array + Traversable + iterable + list + diff --git a/language/control-structures/goto.xml b/language/control-structures/goto.xml index 2d9a406ce9..9931832e0b 100644 --- a/language/control-structures/goto.xml +++ b/language/control-structures/goto.xml @@ -1,9 +1,10 @@ - + + - <literal>goto</literal> + goto @@ -11,14 +12,19 @@ + + + この画像は xkcd から提供いただいたものです。 + + - この画像は xkcd から提供いただいたものです。 goto 演算子を使用すると、 プログラム中の他の命令にジャンプすることができます。 ジャンプ先はラベルとコロンで表し、 goto の後にそのラベルを指定します。 + ラベルは大文字小文字を 区別します。 これは、完全に制約のない goto というわけではありません。 対象となるラベルは同じファイル上の同じコンテキストになければなりません。 つまり、関数やメソッドの外に飛び出したり @@ -34,11 +40,13 @@ ]]> @@ -56,14 +64,18 @@ Bar ]]> @@ -81,13 +93,15 @@ j hit 17 ]]> @@ -100,11 +114,7 @@ script on line 2 - - - goto 演算子は PHP 5.3 以降で使用可能です。 - - + - + - <literal>if</literal> + if if 構文は、PHP を含む全ての言語において最も重要な @@ -27,7 +27,7 @@ if (式) と評価された場合は、これを無視します。どのような値が &false; と評価されるかについては論理値への変換 - を参照してください。 + を参照ください。 以下の例は、$a$b diff --git a/language/control-structures/include-once.xml b/language/control-structures/include-once.xml index ab95861ee6..4f5e59122f 100644 --- a/language/control-structures/include-once.xml +++ b/language/control-structures/include-once.xml @@ -1,16 +1,16 @@ - + include_once - include_once 命令は、スクリプトの実行時に指定 - したファイルを読み込み評価します。この動作は、 - include 命令と似ていますが、ファイルからのコー - ドが既に読み込まれている場合は、再度読み込まれないという重要な違い - があります。また、include_once は &true; を返します。その名が示す通り、ファイルは一度しか読み込まれません。 + include_once 式は、スクリプトの実行時に指定 + したファイルを読み込み評価します。この動作は + include 式と似ていますが、ファイルからのコー + ドが既に読み込まれている場合は、再度読み込まれずに include_once は + &true; を返すという点のみが異なります。その名が示す通り、ファイルは一度しか読み込まれません。 include_once は、スクリプトの実行時に同じファイ diff --git a/language/control-structures/include.xml b/language/control-structures/include.xml index 4e08e066a0..6cdfc068ba 100644 --- a/language/control-structures/include.xml +++ b/language/control-structures/include.xml @@ -1,13 +1,13 @@ - + include - include 文は指定されたファイルを読み込み、評価します。 + include 式は指定されたファイルを読み込み、評価します。 以下の記述内容は require にも当てはまります。 @@ -86,7 +86,7 @@ echo "A $color $fruit"; // A green apple その関数内で定義されているものとして動作します。 従って変数のスコープもその関数のものが継承されます。 ただ マジック定数 + linkend="language.constants.magic">マジック定数 は例外で、これは読み込みを行う前にパーサが評価します。 @@ -156,12 +156,6 @@ include 'file.php?foo=1&bar=2'; // 動作します。 include 'http://www.example.com/file.php?foo=1&bar=2'; - -$foo = 1; -$bar = 2; -include 'file.txt'; // 動作する -include 'file.php'; // 動作する - ?> ]]> @@ -181,12 +175,12 @@ include 'file.php'; // 動作する リモートファイル, - fopen, fileも参照してください。 + fopen, fileも参照ください。 値の返し方: include に失敗したときには FALSE を返し、警告を発生させます。 - 成功した場合の返り値は、インクルードしたファイル側で変更していない限りは + 成功した場合の戻り値は、インクルードしたファイル側で変更していない限りは 1 です。 インクルードしたファイルの中で return を実行すれば、 そのファイルの処理をそこで止めて呼び出し元に処理を戻せます。 @@ -202,18 +196,18 @@ include 'file.php'; // 動作する include は特別な言語構造であるため、 引数の前後に括弧は不要です。 - 返り値を比較する際には注意してください。 + 戻り値を比較する際には注意してください。 インクルードの戻り値を比較する + + + + + match + + + match 式は、値の一致をチェックした結果に基づいて評価結果を分岐します。 + switch 文と似ていますが、 + match 式は複数の候補と比較される制約式を持ちます。 + switch 文とは異なり、 + 三項演算子のように値を評価します。 + switch 文とは異なり、 + 弱い比較(==)ではなく、 + 型と値の一致チェック(===) に基づいて行われます。 + match 式は PHP 8.0.0 以降で利用可能です。 + + + + <literal>match</literal> 式の構造 + + 返却式, + 条件式1, 条件式2 => 返却式, +}; +?> +]]> + + + + 基本式な <literal>match</literal> 式の使い方 + + 'This food is an apple', + 'bar' => 'This food is a bar', + 'cake' => 'This food is a cake', +}; + +var_dump($return_value); +?> +]]> + + &example.outputs; + + + + + + + 比較演算子と <literal>match</literal> 式を一緒に使う例 + + "Baby", + $age < 13 => "Child", + $age <= 19 => "Teenager", + $age >= 40 => "Old adult", + $age > 19 => "Young adult", +}; + +var_dump($output); +?> +]]> + + &example.outputs; + + + + + + + + match 式の結果は、必ずしも使う必要はありません。 + + + + + match 式を単一の式として使う場合は、必ずセミコロン ; で終わらなければなりません。 + + + + + + match 式は、 + switch 文と似ていますが、いくつかの違いがあります: + + + + + match 式の比較は、 + switch 文が行う弱い比較ではなく、 + 厳密に値を比較(===) します。 + + + + + match 式は値を返します。 + + + + + match 式の分岐は、 + switch 文のように後の分岐に抜けたりはしません。 + + + + + match 式は、全ての場合を網羅していなければいけません。 + + + + + + + switch 文のように、 + match 式はマッチさせる分岐をひとつひとつ実行します。 + はじめは、コードは何も実行されません。 + 以前のすべての条件式が、制約式とマッチしなかった場合に条件式が実行されます。 + 条件式に一致する式が評価された場合に、返却式が評価されます。 + たとえば、以下のようになります: + + + 'value', + $this->bar() => 'value', // foo() === $x であれば $this->bar() は呼び出されません + $this->baz => beep(), // $x === $this->baz でなければ beep() は呼び出されません。 + // などなど +}; +?> +]]> + + + + + + match 式の分岐は、複数の式をカンマ区切りで含めても構いません。 + これは論理ORであり、複数の分岐の右辺を同じにする場合の短縮記法です。 + + + + + 5, + // 以下の3つの分岐と等しい: + $a => 5, + $b => 5, + $c => 5, +}; +?> +]]> + + + + + default パターンという特別な場合があります。 + このパターンは前の分岐にマッチしなかったあらゆる場合にマッチします。 + たとえば、以下のようになります: + + + foo(), + 3, 4 => bar(), + default => baz(), +}; +?> +]]> + + + + + 複数の default パターンがあった場合、 + E_FATAL_ERROR が発生します。 + + + + + + match 式は、全ての場合を網羅していなければいけません。 + 制約式がどの分岐でも処理できなかった場合、 + UnhandledMatchError がスローされます。 + + + + + 処理されない match 式の例 + + foo(), + 3, 4 => bar(), + }; +} catch (\UnhandledMatchError $e) { + var_dump($e); +} +?> +]]> + + &example.outputs; + + + string(33) "Unhandled match value of type int" + ["string":"Error":private]=> + string(0) "" + ["code":protected]=> + int(0) + ["file":protected]=> + string(9) "/in/ICgGK" + ["line":protected]=> + int(6) + ["trace":"Error":private]=> + array(0) { + } + ["previous":"Error":private]=> + NULL +} +]]> + + + + + 厳密な一致チェックを行わずに match 式を使う + + 制約式に true を指定することで、 + 厳密な一致チェックを行わずに match 式を使うことができます。 + + + + 整数の範囲に応じてmatch式を分岐させる一般的な使い方 + += 65 => 'senior', + $age >= 25 => 'adult', + $age >= 18 => 'young adult', + default => 'kid', +}; + +var_dump($result); +?> +]]> + + &example.outputs; + + + + + + + 文字列の内容に応じてmatch式を分岐させる一般的な使い方 + + 'en', + str_contains($text, 'Bienvenue'), str_contains($text, 'Bonjour') => 'fr', + // ... +}; + +var_dump($result); +?> +]]> + + &example.outputs; + + + + + + + + diff --git a/language/control-structures/require-once.xml b/language/control-structures/require-once.xml index ca65972704..ab4b23b2c9 100644 --- a/language/control-structures/require-once.xml +++ b/language/control-structures/require-once.xml @@ -1,12 +1,12 @@ - + require_once - require_once 文は + require_once 式は require とほぼ同じ意味ですが、 ファイルがすでに読み込まれているかどうかを PHP がチェックするという点が異なります。 すでに読み込まれている場合はそのファイルを読み込みません。 diff --git a/language/control-structures/require.xml b/language/control-structures/require.xml index 9abf757a62..64c5f7cef9 100644 --- a/language/control-structures/require.xml +++ b/language/control-structures/require.xml @@ -1,6 +1,6 @@ - + require @@ -8,10 +8,10 @@ requireinclude - とほぼ同じですが、失敗した場合に E_COMPILE_ERROR - レベルの致命的なエラーも発生するという点が異なります。 - つまり、スクリプトの処理がそこで止まってしまうということです。一方 - include の場合は、警告 + とほぼ同じですが、失敗した場合に Error + も発生する点が異なります(PHP 8.0.0 より前のバージョンでは、 + E_COMPILE_ERROR が発生していました)。 + 一方 include の場合は、警告 (E_WARNING) を発するもののスクリプトの処理は続行します。 diff --git a/language/control-structures/return.xml b/language/control-structures/return.xml index 89a123a52a..f631676122 100644 --- a/language/control-structures/return.xml +++ b/language/control-structures/return.xml @@ -1,6 +1,7 @@ - + + return @@ -33,7 +34,7 @@ さらに詳しい情報に関しては - 返り値を参照してください。 + 戻り値を参照ください。 @@ -44,13 +45,21 @@ - パラメータを省略した場合は括弧も省略する必要があります。この場合の返り値は + パラメータを省略した場合は括弧も省略する必要があります。この場合の戻り値は &null; です。 return に括弧をつけてコールしながら何も引数を指定しないと、 パースエラーとなります。 + + + PHP 7.1.0 以降では、戻り値の型を宣言している関数で、 + かつ戻り値の型が void でない場合、 + 引数がない return 文を使うと E_COMPILE_ERROR が発生するようになりました。 + 戻り値の型が void の場合、 + return 文に引数があると、同様のエラーが発生します。 + - + - <literal>switch</literal> + switch switch文は、同じ式を用いてIF文を並べたのに似ています。 @@ -29,43 +29,18 @@ であることに注意しましょう。 - - - &reftitle.changelog; - - - - &Version; - &Description; - - - - - 7.0.0 - - default ケースを複数指定すると E_COMPILE_ERROR エラーが発生するようになりました。 - - - - -
-
+ 次の二つの例は、同じことを二つの異なった方法で書いたものです。 - 一つは、if文を、もう一つはswitch - 文を使っています。 + 一つは、ifelseif文を、 + もう一つはswitch文を使っています。 + どちらも、出力は同じです。 - <literal>switch</literal>構造 + <literal>switch</literal> 文の構造 -]]> - - - - <literal>switch</literal>構造では文字列を使用できる - - ]]> @@ -192,6 +157,90 @@ switch ($i) { echo "iは0,1,2に等しくない"; } ?> +]]> + + + + + 複数の default を置くと、 + E_COMPILE_ERROR エラーが発生します。 + + + + + + 技術的には、 + default は switch 文の中のどの位置でも置くことができます。 + default は他の case にマッチしなかった場合に使われるものです。 + しかし、規約上は最後に置くのが一番です。 + + + + + どの case にもマッチせず、 + default も存在しない場合、 + どのコードも実行されません。これは、 + どの if 文も true でなかった場合と同じです。 + + + case に与える値は、式であっても構いません。 + しかし、式はそれ自体が実行され、 + その結果が switch に与えた値と緩やかに比較されます。 + これは、switch に与える値の複雑な評価には使えないということです。 + たとえば、以下の例を見てみましょう: + + + +]]> + + + + + もっと複雑な比較を行うには、 + &true; をswitch文の値として指定するやり方が使えます。 + もしくは、switch文ではなく、 + if-elseブロックが使えます。 + + + ]]> @@ -232,18 +281,28 @@ switch($beer) { case 'ツボルグ'; case 'カールスバーグ'; + case 'ステラ'; case 'ハイネケン'; echo 'いいっすねぇ'; - break; + break; default; echo 'ほかのを選んでみませんか?'; - break; + break; } ?> ]]> + + + &reftitle.seealso; + + + &match; + + +
- + - <literal>while</literal> + while whileループは、PHPで最も簡単なタイプのループです。 diff --git a/language/enumerations.xml b/language/enumerations.xml new file mode 100644 index 0000000000..9da16d8d90 --- /dev/null +++ b/language/enumerations.xml @@ -0,0 +1,1114 @@ + + + + + 列挙型(Enum) + + 列挙型の概要 + + + + 列挙型(Enumerations) または Enum を使うと、 + 開発者は取りうる値を限定した独自の型を定義できます。 + これによって、"不正な状態を表現できなくなる" ので、 + ドメインモデルを定義する時に特に役立ちます。 + + + + 列挙型は、多くのプログラミング言語に備わっており、 + 様々な異なる機能があります。 + PHP では、列挙型は特別な種類のオブジェクトです。 + 列挙型そのものはクラスですし、そこで定義される case は全て、 + そのクラスのインスタンスです。 + これは、列挙型で定義される case は有効なオブジェクトであり、 + 型チェックを含む、オブジェクトが使えるあらゆる場所で使えるということです。 + + + + 列挙型のもっとも有名な例は、組み込みの論理型(boolean) です。 + これは、有効な値 &true; と &false; を持つ列挙型です。 + 列挙型によって、開発者は任意の値の一覧を、 + 安定した形で定義できるようになります。 + + + + 列挙型の基礎 + + + 列挙型はクラスに似ていますし、 + クラスやインターフェイス、トレイトと名前空間を共有します。 + 列挙型はオートローディングも可能です。 + 列挙型は新しい型を定義しますが、 + 固定の、限られた数の有効な値を持ちます。 + + + + + +]]> + + + + 上記の宣言によって、新しい列挙型 + Suit が作られますが、 + これが持つ有効な値は4つだけです。 + Suit::HeartsSuit::DiamondsSuit::Clubs、そして Suit::Spades です。 + これらの有効な値のうち、ひとつだけを変数に代入できます。 + 関数は列挙型に対する型チェックを行えますし、 + その場合は列挙型の値だけが渡せます。 + + + + +]]> + + + + 列挙型は、0個以上の + case を定義できます。 + case を定義する数に上限はありません。 + case が0個の列挙型も文法的には有効ですが、役に立ちません。 + + + + 列挙型の case は、PHP のラベルと同じ規則に従います。 + 定数 のページを参照ください。 + + + + デフォルトでは、case は本質的にスカラーの値に依存していません。 + つまり、Suit::Hearts + は "0" に等しくないということです。 + むしろ、それぞれの case はその名前が付いたシングルトンオブジェクトです。 + 以下のコードがそれを示しています: + + + + +]]> + + + + このことは、列挙型の値は決して + <> + で比較できないことも意味しています。 + なぜなら、それらの比較をオブジェクトで行っても無意味だからです。 + 列挙型の値を使ってこれらの比較を行っても、常に &false; を返します。 + + + + 関連するデータのない、こうしたタイプの case を、 + "Pure Case" と呼びます。 + Pure Case のみを含む列挙型を、"Pure Enum" と呼びます。 + + + + 全ての Pure Case は、その列挙型のインスタンスとして実装されています。 + 列挙型は内部的にクラスとして表現されます。 + + + + 全ての case は読み取り専用のプロパティ + name を持ちます。 + これは大文字小文字が区別される、case そのものの名前です。 + + + +name; +// "Spades" と表示 +?> +]]> + + + + 列挙型の名前を動的に取得している場合、 + case の存在を確認したり、読み取る用途として + definedconstant + 関数が使えます。 + しかしながら、これらの関数の利用はおすすめできません。 + なぜなら、 + Backed Enum + で大半の用途を満たせるはずだからです。 + + + + + + 値に依存した列挙型(Backed Enum) + + + デフォルトでは、列挙型はスカラー値の情報を持っていません。 + 単なるシングルトンオブジェクトです。 + しかし、列挙型の case をデータベースや、 + 類似のデータストアで読み書きする必要があるケースが多くあります。 + よって、ビルトインの (容易にシリアライズできる) + スカラー値を列挙型の中で定義すると便利です。 + + + + 列挙型にスカラー値を定義するには、以下のようにします: + + + + +]]> + + + + スカラー値を持つ case を、"Backed Case" と呼びます。 + なぜなら、オブジェクトよりもシンプルな値に依存して(Backed)いるからです。 + 全ての case が Backed Case である列挙型を "Backed Enum" と呼びます。 + Backed Enum には Backed Case のみを含めることができます。 + Pure Enum には Pure Case だけを含めることができます。 + + + + Backed Enum は、整数、または文字列の値を持つことができます。 + そして、単一の列挙型が一度に持つことの出来る型はひとつだけです + (つまり、int|string のような union + 型はサポートしていないということです)。 + 列挙型がスカラー情報を持つとマークすると、 + 全ての case はユニークなスカラーの値を明示的に定義しなければいけません。 + 自動生成されるスカラー値 (例: 整数の連番) は存在しません。 + Backed Enum の case の値は、全てユニークでなければいけません。 + つまり、ふたつの Backed Enum の case は、 + 同じスカラー値を持ってはいけないということです。 + しかし、定数は case を参照していても構わないので、 + 別名を作成することはできます。 + 列挙型と定数 + も参照ください。 + + + + スカラー値は、定数のスカラー式でなければいけません。 + PHP 8.2.0 より前のバージョンでは、 + スカラー値はリテラルか、リテラルを表す式でなければいけませんでした。 + これは、定数や定数式はサポートされていなかったことを意味します。 + つまり、1 + 1 は許されますが、 + 1 + SOME_CONST は許されていませんでした。 + + + + Backed Enum の case は、追加の読み取り専用のプロパティ + value を持っています。 + これは、Backed Enum の定義で指定された値です。 + + + +value; +// "C" と表示 +?> +]]> + + + + value プロパティを強制的に読み取り専用にするため、 + そのリファレンスを変数には代入できません。 + つまり、以下のようなコードはエラーになります: + + + +value; +// Error: Cannot acquire reference to property Suit::$value +?> +]]> + + + + Backed Enum は内部的に + BackedEnum インターフェイスを実装しています。 + このメソッドは、以下の2つのメソッドを公開しています: + + + + + from(int|string): self + スカラー値を受け取り、対応する Enum の case を返します。 + 対応する case がない場合は、 + ValueError + がスローされます。 + このメソッドは、入力のスカラー値が信頼でき、 + 存在しない enum + の値はアプリケーションを停止すべきエラーとみなせる場合に役立ちます。 + + + tryFrom(int|string): ?self + スカラー値を受け取り、対応する Enum の case を返します。 + 対応する case がない場合は、&null; を返します。 + このメソッドは、入力のスカラー値が信頼できない場合で、 + 呼び出し側が独自のエラーハンドリングや、 + デフォルト値のロジックを実装したい場合に役立ちます。 + + + + + from()tryFrom() + メソッドは、標準の 弱い/強い 型付けのルールに従います。 + 弱い型付けのルールでは、整数または文字列を受け入れ、 + システムは値をそれに従って自動変換します。 + 厳密な型付けモードの場合、文字列型の Backed Enum に整数値を渡す + (またはその逆をする) と、TypeError が発生します。 + float についても、全ての場合に同じ型付けのルールに従います。 + それ以外の型については、どちらのモードでも TypeError が発生します。 + + + + ValueError: "X" is not a valid scalar value for enum "Suit" +print $suit->value; + +$suit = Suit::tryFrom('A') ?? Suit::Spades; +// 不正なデータに対しては null を返すので、Suit::Spades が代わりに使われます。 +print $suit->value; +?> +]]> + + + + Backed Enum において、手動で from() や + tryFrom() メソッドを定義すると、 + 致命的なエラーが発生します。 + + + + + + 列挙型とメソッド + + + 列挙型では、(Pure Enum と Backed Enum ともに) + メソッドを含めることもできますし、 + インターフェイスを実装することもできます。 + 列挙型がインターフェイスを実装する場合、 + そのインターフェイスでの型チェックは、 + 実装した列挙型の全ての case で有効です。 + + + + 'Red', + Suit::Clubs, Suit::Spades => 'Black', + }; + } + + // インターフェイスの一部ではないが、正しいコード + public function shape(): string + { + return "Rectangle"; + } +} + +function paint(Colorful $c) +{ + /* ... */ +} + +paint(Suit::Clubs); // 動作します + +print Suit::Diamonds->shape(); // "Rectangle" と表示 +?> +]]> + + + + 上記の例の Suit の4つのインスタンスは、 + 全てふたつのメソッド color() と + shape() を持ちます。 + コードの呼び出しと型チェックに限れば、 + これらのメソッドは他のオブジェクトのインスタンスと全く同じ振る舞いをします。 + + + + Backed Enum の場合、 + インターフェイスの宣言は依存する型の宣言の直後に置きます。 + + + + 'Red', + Suit::Clubs, Suit::Spades => 'Black', + }; + } +} +?> +]]> + + + + メソッドの内部では、 + 変数 $this が定義され、 + case のインスタンスを参照します。 + + + + メソッドには任意の複雑な処理を記述できますが、 + 実際、通常は静的な値を返したり、 + case 毎に異なる結果を提供するために + &match; を + $this と共に使う処理を行います。 + + + + この場合は、Red と Black の値を持ち、 + それらを返す SuitColor という列挙型を定義する方が、 + より良いデータモデリングのプラクティスであることにも注意して下さい。 + しかし、そうすると上の例が複雑になるでしょう。 + + + + 上で示した階層は、論理的には次のようなクラス階層に似ています + (しかし、以下のコードは実際には動作しません): + + + + 'Red', + Suit::Clubs, Suit::Spades => 'Black', + }; + } + + public function shape(): string + { + return "Rectangle"; + } + + public static function cases(): array + { + // 不正なメソッド。列挙型では、手動で cases() メソッドを定義できないからです。 + // "値のリスト" のページも参照ください。 + } +} +?> +]]> + + + + メソッドには public, private, protected が指定できますが、 + 列挙型では実際 private と protected は同じものです。 + なぜなら、継承が許されていないからです。 + + + + + + 列挙型と static メソッド + + + 列挙型は、static メソッドを持つこともできます。 + 列挙型で static メソッドを使う主な理由は、 + コンストラクタの代わりをさせるためです。たとえば、以下のようなものです: + + + + self::Small, + $cm < 100 => self::Medium, + default => self::Large, + }; + } +} +?> +]]> + + + + static メソッドには public, private, protected が指定できますが、 + 列挙型では実際 private と protected は同じものです。 + なぜなら、継承が許されていないからです。 + + + + + + 列挙型と定数 + + + 列挙型には定数も含めることができます。 + 定数には public, private, protected が指定できますが、 + 列挙型では実際 private と protected は同じものです。 + なぜなら、継承が許されていないからです。 + + + + 列挙型の定数は、以下のように case を参照していても構いません: + + + + +]]> + + + + + トレイト + + + 列挙型ではトレイトを使えます。 + 列挙型におけるトレイトは、クラスにおけるそれと同じ振る舞いをします。 + 注意すべきことは、列挙型で use + されるトレイトには、プロパティが含まれていてはいけないという点です。 + use されるトレイトには、 + メソッドと static メソッドと、定数だけを含めることができます。 + プロパティを持つトレイトの場合、致命的なエラーが発生します。 + + + + 'Red', + Suit::Clubs, Suit::Spades => 'Black', + }; + } +} +?> +]]> + + + + + 定数式における列挙型の値 + + + 列挙型の case は、定数として表現されているので、 + ほとんどの定数式の中で静的な値として使えます。 + つまり、プロパティのデフォルト値や、 + static 変数のデフォルト値、引数のデフォルト値、 + グローバル定数やクラス定数の値として使えます。 + 列挙型の case 以外の値は使えませんが、 + 通常の定数は、列挙型の case を参照できます。 + + + + しかしながら、列挙型の中で ArrayAccess + のような暗黙のマジックメソッドの呼び出しを行うことは、 + 定数や static な定義では許されません。 + なぜなら、結果の値が保証できなくなりますし、 + 副作用がまったくないことも保証できないからです。 + 関数コールやメソッドコール、そしてプロパティへのアクセスは、 + 引き続き定数式では不正な操作として扱われます。 + + + + +]]> + + + + + オブジェクトとの違い + + + 列挙型はクラスやオブジェクトの上に構築されていますが、 + オブジェクトに関連する機能を全てサポートしているわけではありません。 + 特に、列挙型では状態を持つことが禁止されています。 + + + + コンストラクタやデストラクタは禁止されています。 + 継承はサポートされていません。列挙型は継承できませんし、何かを継承されることもありません。 + staticまたはオブジェクトのプロパティは許可されていません。 + 列挙型の case を clone することはサポートされていません。なぜなら、case はシングルトンインスタンスでなければならないからです。 + 以下に示すもの以外の マジックメソッド は許可されていません。 + 列挙型は、常に使う前に宣言しておかなければなりません。 + + + + 以下のオブジェクトの機能は利用可能ですし、 + 他のオブジェクトと同じ振る舞いをします: + + + + public, private, protected メソッド + public, private, protected な static メソッド + public, private, protected な定数 + 列挙型は、任意の数のインターフェイスを実装できます。 + + 列挙型と case には、 + アトリビュート + を付加することができます。 + TARGET_CLASS ターゲットフィルタには、 + 列挙型そのものも含まれます。 + TARGET_CLASS_CONST ターゲットフィルタには、 + 列挙型の case も含まれます。 + + + マジックメソッド + __call, + __callStatic, + __invoke + + + マジック定数 __CLASS__ と + __FUNCTION__ は、通常通り動作します。 + + + + + マジック定数 + ::class を列挙型で使うと、 + 任意の名前空間を含んだ型の名前として評価されます。 + これはオブジェクトと全く同じです。 + case インスタンスにおける ::class も、 + 列挙型として評価されます。これは、その型のインスタンスの場合と同じです。 + + + + さらに、列挙型の case は + new を使って直接インスタンス化できませんし、 + ReflectionClass::newInstanceWithoutConstructor + を使っても同様です。 + これらは両方、エラーになります。 + + + +newInstanceWithoutConstructor() +// Error: Cannot instantiate enum Suit +?> +]]> + + + + + 値のリスト + + + Pure Enum と Backed Enum は、 + 共に内部インターフェイス UnitEnum + を実装しています。 + UnitEnum には + static メソッド cases() が含まれています。 + cases() は、 + 定義されている全ての case を宣言された順に含めた配列を返します。 + + + + +]]> + + + + 列挙型において、手動で cases() + メソッドを定義すると、致命的なエラーが発生します。 + + + + + 列挙型をシリアライズする + + + 列挙型は、オブジェクトとは違う形でシリアライズされます。 + 特別に、列挙型には case 名を指定する新しいシリアライズコード + "E" が付与されています。 + アンシリアライズのルーチンはそれを使って、 + 既存のシングルトンの値を変数に設定できます。 + これにより、以下のようなコードが動作することが保証されます: + + + + +]]> + + + + アンシリアライズする際に、 + マッチする列挙型と case がシリアライズした値に見つからなかった場合は、 + 警告が発生し、&false; が返されます。 + + + + Pure Enum を JSON にシリアライズしようとすると、 + Error がスローされます。 + Backed Enum を JSON にシリアライズしようとすると、 + 適切な型の、スカラーの値だけが表現されます。 + これらの振る舞いは、 + JsonSerializable + をオーバーライドすることで上書きできます。 + + + + print_r 向けに、 + 列挙型の case の出力はオブジェクトと少し違う形式になっています。 + これは、混乱を最小限に抑えるためです。 + + + + Bar +) +Baz Enum:int { + [name] => Beep + [value] => 5 +} +*/ +?> +]]> + + + + + + 列挙型が継承できない理由 + + + クラスは、メソッドの使い方を約束(契約)するものです: + + + + +]]> + + + + 上のコードは型安全といえます。なぜなら、 + B は A との契約を守っており、かつ共変性/反変性のマジックによって、 + メソッドへのあらゆる期待が満たされるからです。例外は別です。 + + + + 一方で、列挙型は case について契約するものです。メソッドではありません: + + + + true, + }; +} + +?> +]]> + + + + quux 関数内の &match; 式は、 + ErrorCode の全ての case をカバーしているかを静的に解析できます。 + + + + ここで以下のように、列挙型が継承可能だとしましょう: + + + + + +]]> + + + + 通常の継承のルールでは、あるクラスの子クラスは親クラスの型チェックを通過します。 + + + + 上のコードの問題点は、 + quux() 関数の &match; 式が全ての case をカバーしてはいないということです。 + なぜなら、MoreErrorCode::PEBKAC + がカバーされていないので、&match; 式が例外をスローするからです。 + + + + こうした理由から、列挙型は final 扱いであり、継承できなくなっています。 + + + + + &reftitle.examples; + + + + 基本的な、値を限定する例 + + +]]> + + + query() 関数は、 + $order が + SortOrder::Asc + または SortOrder::Desc + であることが保証されることを知っているので、安全に処理できます。 + それら以外の値を渡しても、 + TypeError + になるので、それ以上のチェックやテストは不要です。 + + + + + + + + 唯一の値を指定する、高度な例 + + + 'Pending', + self::Active => 'Active', + self::Suspended => 'Suspended', + self::CanceledByUser => 'Canceled by user', + }; + } +} +?> +]]> + + + + この例では、ユーザーのステータスは + UserStatus::Pending、 + UserStatus::Active、 + UserStatus::Suspended または + UserStatus::CanceledByUser + のうちのひとつに限られています。 + 関数は引数の型を UserStatus + に指定できますし、これら4つの値だけを受け入れます。 + + + + これら4つの値は、それぞれ + label() メソッドを持ちます。 + これは、人間が読みやすい文字列を返します。 + この文字列は、"マシン上の" スカラー値とは別のものです。 + このスカラー値は、データベースのフィールドや、 + HTML の select ボックスで使うことができます。 + + + +%s\n', $case->value, $case->label()); +} +?> +]]> + + + + + + + + + diff --git a/language/errors.xml b/language/errors.xml index d85256e0ab..c1d8f77e0b 100644 --- a/language/errors.xml +++ b/language/errors.xml @@ -1,10 +1,10 @@ - - + + エラー - + はじめに diff --git a/language/errors/basics.xml b/language/errors/basics.xml index 948ebd6c7c..0637c0da9d 100644 --- a/language/errors/basics.xml +++ b/language/errors/basics.xml @@ -1,6 +1,6 @@ - + @@ -38,7 +38,7 @@ を E_ALL にしておくべきです。 PHP が発する報告をすべて確認して対応する必要があるからです。 実際の運用に入ったら、もう少しレベルを下げて - E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED + E_ALL & ~E_NOTICE & ~E_DEPRECATED などのようにすることもあるでしょう。しかし、できれば運用中も E_ALL にしておきたいものです。 そうすれば、何かの問題が発生しそうなときに早い段階で気づけるからです。 diff --git a/language/errors/php7.xml b/language/errors/php7.xml index 06d620b33c..1e0d2439d4 100644 --- a/language/errors/php7.xml +++ b/language/errors/php7.xml @@ -1,6 +1,7 @@ - + + PHP 7 でのエラー @@ -70,6 +71,18 @@
+ + ValueError + + + UnhandledMatchError + + + FiberError + + + RequestParseBodyException +
@@ -85,7 +98,7 @@ - + - + 例外(exceptions) - - - 例外を拡張する - 組み込みの Exception クラスを拡張することで、例外クラスをユーザーが - 定義することが可能です。以下のメンバーおよびプロパティは、 - 組み込みの Exception クラスから派生した子クラスの中でアクセス可能です。 + PHP は、他のプログラミング言語に似た例外モデルを持っています。 + PHP 内で例外がスローされ (&throw; され)、それが + 捕捉され (&catch; され) ます。発生した例外を + 捕捉するには、コードを &try; ブロックで囲みます。 + 各 &try; ブロックには、対応する &catch; + ブロックあるいは &finally; ブロックが存在する必要があります。 - - 例外クラスを構築する - - -]]> - - - クラスが、組み込みの Exception クラスを拡張し、 - コンストラクタを再定義した場合、 - 全ての利用可能なデータが正しく代入されることを保証するために - - parent::__construct() もコールすることが強く推奨されます。 - __toString() メソッドは、 - オブジェクトが文字列として表された際に独自の出力を行うために - 上書きすることができます。 + 例外がスローされ、現在の関数スコープに &catch; ブロックがなかった場合、 + その例外は、マッチする &catch; + ブロックが見つかるまで関数のコールスタックを "遡って" いきます。 + その途中で見つかった全ての &finally; ブロックが実行されます。 + グローバルスコープに遡るまで全てのコールスタックを探しても、 + マッチする &catch; ブロックが見つからない場合は、 + グローバルな例外ハンドラが設定されていない限り fatal error となり、 + プログラムが終了します。 + + + スローされるオブジェクトは、 + Throwable のインスタンスでなければなりません。 + それ以外のオブジェクトをスローしようとすると + PHP の fatal error が発生します。 + + + PHP 8.0.0 以降では、&throw; キーワードは式として扱えるようになり、 + 様々なコンテクストで使えるようになりました。 + これより前のバージョンでは、&throw; は文であり、 + それが現れる行でだけでしか使えませんでした。 - - - 例外を複製することはできません。Exception を clone しようとすると - 致命的な E_ERROR エラーが発生します。 - - - - 例外クラスの拡張 (PHP 5.3.0+) - -code}]: {$this->message}\n"; - } - - public function customFunction() { - echo "A Custom function for this type of exception\n"; - } -} - - -/** - * 例外をテストするためのクラスを作成 - */ -class TestException -{ - public $var; - - const THROW_NONE = 0; - const THROW_CUSTOM = 1; - const THROW_DEFAULT = 2; - - function __construct($avalue = self::THROW_NONE) { - - switch ($avalue) { - case self::THROW_CUSTOM: - // カスタム例外を投げる - throw new MyException('1 is an invalid parameter', 5); - break; - - case self::THROW_DEFAULT: - // デフォルト例外を投げる - throw new Exception('2 is not allowed as a parameter', 6); - break; - - default: - // 例外なし。オブジェクトが生成される - $this->var = $avalue; - break; - } - } -} - - -// 例1 -try { - $o = new TestException(TestException::THROW_CUSTOM); -} catch (MyException $e) { // Will be caught - echo "Caught my exception\n", $e; - $e->customFunction(); -} catch (Exception $e) { // Skipped - echo "Caught Default Exception\n", $e; -} - -// 実行を継続する -var_dump($o); // Null -echo "\n\n"; - - -// 例2 -try { - $o = new TestException(TestException::THROW_DEFAULT); -} catch (MyException $e) { // この型にはマッチしない - echo "Caught my exception\n", $e; - $e->customFunction(); -} catch (Exception $e) { // キャッチされる - echo "Caught Default Exception\n", $e; -} - -// 実行を継続する -var_dump($o); // Null -echo "\n\n"; - - -// 例3 -try { - $o = new TestException(TestException::THROW_CUSTOM); -} catch (Exception $e) { // キャッチされる - echo "Default Exception caught\n", $e; -} - -// 実行を継続する -var_dump($o); // Null -echo "\n\n"; - - -// 例4 -try { - $o = new TestException(); -} catch (Exception $e) { // スキップされる、例外なし - echo "Default Exception caught\n", $e; -} - -// 実行を継続する -var_dump($o); // TestException -echo "\n\n"; -?> -]]> - - - - PHP 5 の PHP 5.3.0 より前のバージョンでは例外のネストに対応していません。 - もしこのサンプルを動かしたい場合は、MyException クラスを次のコードで置き換えましょう。 - - -code}]: {$this->message}\n"; - } - - public function customFunction() { - echo "A custom function for this type of exception\n"; - } -} -?> -]]> - - - - - + + <literal>catch</literal> - PHP は、他のプログラミング言語に似た例外モデルを有しています。 - PHP 内で例外が投げられ (&throw; され)、それが - 捕捉され (&catch; され) ます。発生した例外を - 捕捉するには、コードを &try; ブロックで囲みます。 - 各 &try; ブロックには、対応する &catch; - ブロックあるいは &finally; ブロックが存在する必要があります。 + &catch; ブロックは、スローされた例外にどのように反応するかを定義します。 + &catch; ブロックは、扱えるひとつ以上の例外またはエラー型を定義します。 + そして、オプションで例外を代入できる変数も定義できます。 + (PHP 8.0.0 より前のバージョンでは、この変数定義は必須でした) + スローされた例外またはエラーにマッチする最初の &catch; + ブロックが、そのオブジェクトを処理します。 - - - スローされるオブジェクトは、Exception クラスあるいは - Exception のサブクラスのインスタンスでなければなりません。 - それ以外のオブジェクトをスローしようとすると - PHP の Fatal Error が発生します。 - - - - - <literal>catch</literal> さまざまな型の例外を捕捉するために - 複数の &catch; フロックを使用することができます。 - 通常の実行時 (&try; ブロック内で例外が投げられなかった + 複数の &catch; ブロックを使用することができます。 + 通常の実行時 (&try; ブロック内で例外がスローされなかった 場合) は、&catch; ブロック内は処理されず、それ以降から処理が続けられます。 &catch; ブロックの中から例外を &throw; する (あるいは &throw; しなおす) こともできます。 + &throw; し直さない場合、その &catch; ブロックの後から処理が続けられます。 - 例外が投げられた場合、その命令に続くコードは実行されず、 + 例外がスローされた場合、その命令に続くコードは実行されず、 PHP は最初にマッチする &catch; ブロックを探します。 例外が捕捉されない場合、PHP は "Uncaught Exception ..." というメッセージとともに - 致命的なエラー(fatal error)を発行します。 + 致命的なエラー(fatal error)を発生させます。 ただし、set_exception_handler でハンドラが 定義されている場合を除きます。 - PHP 7.1 以降では、&catch; ブロック で 複数の例外を + PHP 7.1.0 以降では、&catch; ブロック で 複数の例外を パイプ文字 (|) を使って指定できるようになりました。 - これは、異なるクラス改装からの例外を同時に扱う必要がある場合に有用です。 + これは、異なるクラス階層からの例外を同時に扱う必要がある場合に有用です。 + + + PHP 8.0.0 以降では、キャッチされた例外に対応する変数はオプションになりました。 + 指定されない場合、&catch; ブロックは実行されるものの、 + スローされたオブジェクトへアクセスすることは出来ません。 + + + + + <literal>finally</literal> + + &catch; ブロックの後、または &catch; ブロックの代わりに、 + &finally; ブロックも指定できます。 + &finally; ブロックの中に書いたコードは、 + &try; および &catch; ブロックの後で、 + かつ通常のコードの実行が再開される前に常に実行されます。 + 例外がスローされたかどうかは関係ありません。 &finally; ブロックと &return; 文の間には注意すべき相互作用があります。 @@ -270,45 +96,70 @@ class MyException extends Exception さらに、&finally; ブロックにも &return; 文が存在した場合は、 &finally; ブロックから値が返されます。 - - - <literal>finally</literal> - PHP 5.5 以降では、&catch; ブロックの後に - &finally; ブロックも指定できるようになりました。 - &finally; ブロックの何かに書いたコードは、 - &try; および &catch; ブロックの後で常に実行されます。 - 例外がスローさされたかどうかには関係ありません。 + &try; ブロック内でスローされた例外と、 + &finally; ブロック内でスローされた例外には、 + もう一つ注意すべき相互作用があります。 + これら両方のブロックから例外がスローされると、 + &finally; ブロックからスローされた例外は伝播しますが、 + &try; ブロック内でスローされた例外は前の例外として使われます。 - + + + + グローバルな例外ハンドラ + + 例外がグローバルスコープにまで遡った場合、 + 設定されていれば、グローバルな例外ハンドラがそれをキャッチすることができます。 + 他の &catch; ブロックが呼び出されなかった場合に、 + &catch; の代わりに呼び出される関数を + set_exception_handler 関数で設定できます。 + その効果は、プログラム全体を &try;-&catch; ブロックで囲むことと同じです。 + + - + &reftitle.notes; PHP の内部関数の多くは - エラー報告 + エラー報告(error_reporting) を使っており、例外を使っているのは新しい オブジェクト指向 の拡張モジュールのみです。 しかし、ErrorException を使えば簡単にエラーを例外に変換することができます。 + この変換テクニックが使えるのは、致命的でないエラーに限ります。 + + エラーを例外に変換する + + +]]> + + Standard PHP Library (SPL) - には組み込みの例外が数多く用意されています。 + には 組み込みの例外 が数多く用意されています。 - + - + &reftitle.examples; - 例外を投げるには + 例外をスローする 例外処理での &finally; ブロック + ]]> @@ -480,7 +332,275 @@ string(11) "MyException" ]]> - + + キャッチする時に変数を省略する + PHP 8.0.0 以降でのみ許されます + + +]]> + + &example.outputs; + + + + + + throw を 式として扱う + PHP 8.0.0 以降でのみ許されます + +getMessage(); +} +?> +]]> + + &example.outputs; + + + + + + try と finally の内部からスローされる例外 + +getMessage(), + $e->getPrevious()->getMessage(), + $e->getPrevious()->getPrevious()->getMessage(), + $e->getPrevious()->getPrevious()->getPrevious()->getMessage(), + ); +} +]]> + + &example.outputs; + + + + + + + + 例外を拡張する + + 組み込みの Exception クラスを拡張することで、例外クラスをユーザーが + 定義することが可能です。以下のメンバーおよびプロパティは、 + 組み込みの Exception クラスから派生した子クラスの中でアクセス可能です。 + + + 組み込みの例外クラス + + +]]> + + + + クラスが、組み込みの Exception クラスを拡張し、 + コンストラクタを再定義した場合、 + 全ての利用可能なデータが正しく代入されることを保証するために + + parent::__construct() もコールすることが強く推奨されます。 + __toString() メソッドは、 + オブジェクトが文字列として表された際に独自の出力を行うために + 上書きすることができます。 + + + + 例外を複製することはできません。Exception を clone しようとすると + 致命的な E_ERROR エラーが発生します。 + + + + 例外クラスを拡張する + + code}]: {$this->message}\n"; + } + + public function customFunction() { + echo "A custom function for this type of exception\n"; + } +} + + +/** + * 例外をテストするためのクラスを作成 + */ +class TestException +{ + public $var; + + const THROW_NONE = 0; + const THROW_CUSTOM = 1; + const THROW_DEFAULT = 2; + + function __construct($avalue = self::THROW_NONE) { + + switch ($avalue) { + case self::THROW_CUSTOM: + // カスタム例外をスローする + throw new MyException('1 is an invalid parameter', 5); + break; + + case self::THROW_DEFAULT: + // デフォルトの例外をスローする + throw new Exception('2 is not allowed as a parameter', 6); + break; + + default: + // 例外が発生しなかった。オブジェクトが生成される + $this->var = $avalue; + break; + } + } +} + + +// 例1 +try { + $o = new TestException(TestException::THROW_CUSTOM); +} catch (MyException $e) { // ここでキャッチされる + echo "Caught my exception\n", $e; + $e->customFunction(); +} catch (Exception $e) { // ここはスキップされる + echo "Caught Default Exception\n", $e; +} + +// 実行を継続する +var_dump($o); // Null +echo "\n\n"; + + +// 例2 +try { + $o = new TestException(TestException::THROW_DEFAULT); +} catch (MyException $e) { // この型にはマッチしない + echo "Caught my exception\n", $e; + $e->customFunction(); +} catch (Exception $e) { // ここでキャッチされる + echo "Caught Default Exception\n", $e; +} + +// 実行を継続する +var_dump($o); // Null +echo "\n\n"; + + +// 例3 +try { + $o = new TestException(TestException::THROW_CUSTOM); +} catch (Exception $e) { // ここでキャッチされる + echo "Default Exception caught\n", $e; +} + +// 実行を継続する +var_dump($o); // Null +echo "\n\n"; + + +// 例4 +try { + $o = new TestException(); +} catch (Exception $e) { // スキップされる、例外は発生しない + echo "Default Exception caught\n", $e; +} + +// 実行を継続する +var_dump($o); // TestException +echo "\n\n"; +?> +]]> + + + diff --git a/language/expressions.xml b/language/expressions.xml index 689e40a613..ffdd2bdc63 100644 --- a/language/expressions.xml +++ b/language/expressions.xml @@ -1,6 +1,6 @@ - + @@ -12,15 +12,16 @@ 考えられる簡単な例は、定数と変数です。 - "$a = 5" と入力すると、$a に '5' を代入することになります。 - '5' は、明らかに、 5 という値です。 - 言葉を変えると '5' は 5 という値を有する式なのです。 - (この場合、'5' は整数定数です。) + $a = 5 と入力すると、 + $a5 を代入することになります。 + 5 は、明らかに、 5 という値です。 + 言葉を変えると 5 は 5 という値を有する式なのです。 + (この場合、5 は整数定数です。) この代入の後、$a の値は、5 であることが期待されます。 - よって、$b = $a と書いた場合、$b = 5 と書いたのと + よって、$b = $a と書いた場合、$b = 5 と書いたのと 同じように動作することが期待されます。 言い換えると $a は 5 という値を持つ式なのです。 全てが正しく動作する場合、何が起こるかをこのことが正確に表現しています。 @@ -47,51 +48,51 @@ function foo () { あなたが関数の概念に慣れていると仮定すると (そうでない場合は、関数 に関する章を参照ください。)、 - $c = foo() と入力することは、 - $c = 5 と書くことと本質的に全く同じで + $c = foo() と入力することは、 + $c = 5 と書くことと本質的に全く同じで あると予想されたかもしれません。この予想は、正しいです。 - 関数は、その返り値を値とする式なのです。 - foo() は 5 を返すので、式 'foo()' の値は 5 です。 + 関数は、その戻り値を値とする式なのです。 + foo() は 5 を返すので、式 'foo()' の値は 5 です。 通常、関数は、決まった数だけを返すのではなく、何かを計算します。 もちろん、PHP の値は整数である必要はありませんし、 多くの場合、そうではありません。 - PHP は、4 種類のスカラー型: 整数(integer)、 + PHP は、4 種類のスカラー型: 整数(int)、 浮動小数点数(float)、文字列(string)、 - 真偽値(boolean) をサポートします。 + 真偽値(bool) をサポートします。 (スカラーとは、配列とかと異なり、より小さな部分に'分割する'ことができない値のことです。) PHP は、2種類の複合(非スカラー)型(配列とオブジェクト)もサポートします。 これらの型の値は、変数に代入することができ、 - 関数からの返り値とすることができます。 + 関数からの戻り値とすることができます。 PHP は、他の多くの言語が行うのと同じ手法で、 更に多くの式を使用可能です。 PHP は、ほとんど全てが式であるという意味で、式指向の言語です。 - 既に取り扱った '$a = 5' という例について考えてみましょう。 - この式には、整数定数の '5' と 5 に更新された $a の値という + 既に取り扱った $a = 5 という例について考えてみましょう。 + この式には、整数定数の 5 と 5 に更新された $a の値という 2 つの値が現れているということに容易に気づくことでしょう。 しかし、実際には、ここにはもうひとつの値が含まれています。 それは、代入自体の値です。 代入式は、それ自体、代入値を評価します。 この場合、その値は 5 になります。 - このことは、実際には、'$a = 5' は、それが何をするかによらず、 + このことは、実際には、$a = 5 は、それが何をするかによらず、 値 5 を有する式であることを意味します。 つまり、 - '$b = ($a = 5)' のように書くことは、 - '$a = 5; $b = 5;' と書くのと + $b = ($a = 5) のように書くことは、 + $a = 5; $b = 5; と書くのと 同様なのです。(セミコロンは、文の終わりを示します。) - 代入は、右から左へ実行されるため、'$b = $a = 5' と書くことも - 可能です。 + 代入は、右から左へ実行されるため、$b = $a = 5 + と書くことも可能です。 式の配置に関する別の良い例は、前置、後置加算子、あるいは減算子です。 - PHP と他の多くの言語のユーザーは、variable++ や - variable-- といった表記法に慣れていることでしょう。 + PHP と他の多くの言語のユーザーは、variable++ や + variable-- といった表記法に慣れていることでしょう。 これらは、加算子および減算子です。 PHP においては、C 言語のように、 前置加算と後置加算という、2 種類の加算があります。 @@ -99,12 +100,12 @@ function foo () { 変数に対する効果は同じです。 異なっているのは、加算する式の値です。 - 前置加算は、'++$variable' と書かれますが、 + 前置加算は、++$variable と書かれますが、 加算後の値を評価します (PHP はその値を読む前に変数を増加させるので、'前置加算(pre-increment)' という名前がついています)。 - 後置加算は、'$variable++' と書かれますが、加算される前の - $variable の元の値を評価します。 + 後置加算は、$variable++ と書かれますが、加算される前の + $variable の元の値を評価します。 (PHP は、その値を読んだ後に変数を増加させるので、 '後置加算(post-increment)' という名前がついています。) @@ -117,34 +118,34 @@ function foo () { PHP 言語は、いくつかの厳密な等価演算子: === (イコールかつ同じ型) そして !== (イコールではないまたは型が違う) も サポートします。 - これらの式は、if文のような条件式の内部で一般的に + これらの式は、if文のような条件式の内部で一般的に 使用されます。 式の最後の例として、ここでは、演算子+代入式の複合演算式 を扱います。 - 既にご存知のように、$a に 1 を加えたい場合は、'$a++' または - '++$a' と書くだけで十分です。 + 既にご存知のように、$a に 1 を加えたい場合は、$a++ または + ++$a と書くだけで十分です。 しかし、1より大きな数、例えば 3 を加えたい場合は、どうすればよいのでしょう? - '$a++' を複数回使うこともできますが、当然これはあまり効率的で快適な手法ではありません。 - ふつうは、'$a = $a + 3' と書きます。 - '$a + 3' の部分で $a の値に 3 を加えた値を評価し、 + $a++ を複数回使うこともできますが、当然これはあまり効率的で快適な手法ではありません。 + ふつうは、$a = $a + 3 と書きます。 + $a + 3 の部分で $a の値に 3 を加えた値を評価し、 その結果を $a に代入するというわけです。 この結果、$a に 3 が加えられます。 PHP においては、C のような他の言語と同様に、 この例をより短かく書くことができます。 これにより、より明確になり、同時に理解も迅速になります。 - $a の現在の値に 3 を加える式は、 '$a += 3' と書くことができます。 + $a の現在の値に 3 を加える式は、$a += 3 と書くことができます。 この式の正確な意味は、 "$a の値を取得し、それに 3 を加え、$a に再代入しなさい。" です。 より短く、明確になっただけでなく、実行もより高速になります。 - '$a += 3' の値は、通常の代入と同様に、代入された値です。 + $a += 3 の値は、通常の代入と同様に、代入された値です。 この値は 3 ではなく、$a に 3 を加えた加算値 (この値が、$a に代入された値です)であることに注意してください。 - '$a -= 5' ($a から 5 を引く) - や '$b *= 7' ($b に 7 をかける)等のように、 + $a -= 5 ($a から 5 を引く) + や $b *= 7 ($b に 7 をかける)等のように、 全ての 2 項演算子は、この演算子+代入式のモードで使用することができます。 @@ -204,10 +205,10 @@ $h = $g += 10; /* まず、$g に 10 が加算され、24 になります 式が、文として扱われることがあります。 - この場合、文は、'式 ;' 、つまり式の後にセミコロンがついた形式です。 - '$b = $a =5;' において、'$a = 5' は有効な式ですが、 - 自身を値とする文では - ありません。しかし、'$b = $a = 5;' は有効な文です。 + この場合、文は、'式 ;'、つまり式の後にセミコロンがついた形式です。 + $b = $a = 5; において、$a = 5 は有効な式ですが、 + 自身を値とする文ではありません。 + しかし、$b = $a = 5; は有効な文です。 diff --git a/language/fibers.xml b/language/fibers.xml new file mode 100644 index 0000000000..0d67853ae0 --- /dev/null +++ b/language/fibers.xml @@ -0,0 +1,114 @@ + + + + + ファイバー + + + ファイバーの概要 + + + ファイバー(Fibers) は、完全なスタックを持つ、停止可能な関数です。 + ファイバー はコールスタック中のどこからでも停止することができますし、 + 後に再開されるまで実行を停止したままにできます。 + + + ファイバーは実行スタック全体を停止するので、 + 関数を直接呼び出している側は、関数の呼び出し方を変更する必要はありません。 + + + 実行スタック中のどこからでも、 + Fiber::suspend + を使って実行を停止できます。 + (つまり、Fiber::suspend + の呼び出しは、 + 深くネストされた関数のコールスタックの中から行っても構いませんし、 + 呼び出しが全く存在しなくても構いません) + + + スタックを持たない Generator と異なり、 + 個々の Fiber は自分のコールスタックを持ちます。 + これによって、深くネストされた関数のコールスタックの中からでも + 関数を停止できます。 + 停止ポイントを宣言した + (つまり、Fiber::suspend を呼び出した) + 関数は、 + &yield; を使った、Generator + のインスタンスを返さなければならない関数と異なり、 + 戻り値の型を宣言する必要はありません。 + + + ファイバーは任意の関数をコールしている間に停止できます。 + これには、PHP VM の中からコールされた関数も含みます。 + たとえば、array_map + に渡した関数や、 + &foreach; によってコールされる、Iterator + オブジェクトのメソッドなどです。 + + + いったんファイバーが停止されると、 + ファイバーの実行は Fiber::resume + に任意の値を渡すか、 + Fiber::throw + を使ってファイバーに例外をスローさせることで再開できます。 + 再開される時は、Fiber::suspend + から値が返されます(または、例外がスローされます)。 + + + + PHP 8.4.0 より前のバージョンでは + ファイバーをオブジェクトの デストラクタ 中で切り替えることはできませんでした。 + + + + + ファイバーの基本的な使い方 + + start(); + +echo "Value from fiber suspending: ", $value, PHP_EOL; + +$fiber->resume('test'); +?> +]]> + + &example.outputs; + + + + + + + + + + diff --git a/language/functions.xml b/language/functions.xml index a36c5b2f91..b3c24d71a0 100644 --- a/language/functions.xml +++ b/language/functions.xml @@ -1,7 +1,7 @@ - - + + 関数 @@ -9,12 +9,15 @@ ユーザー定義関数 - 関数は次のような構文で定義されます。 + 関数は、function キーワードと関数の名前、 + カンマ(,) で区切ったパラメーターのリスト + (空であっても構いません)を括弧で囲み、 + 関数の本体を波括弧で囲んだものを続けて定義します。 + たとえば、以下のようになります: - - - 関数の使用法を説明するための擬似コード - + + <literal>foo</literal> という名前の新しい関数を宣言する + ]]> - - - - + + + + + PHP 8.0.0 以降では、 + パラメーターのリストの末尾に、カンマを付加できるようになっています: + + + +]]> + + + + + - 関数の中では、他の関数や クラス + 関数の本体の中では、 + 他の関数や クラス 定義を含む PHP のあらゆる有効なコードを使用することができます。 関数名は、PHP の他のラベルと同じ規則に従います。関数名として有効な 形式は、まず文字かアンダースコアで始まり、その後に任意の数の文字・ 数字・あるいはアンダースコアが続くものです。正規表現で表すと、 - ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$. + ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$ となります。 &tip.userlandnaming; @@ -174,54 +192,89 @@ function recursion($a) - 関数の引数 + 関数のパラメーターと引数 + 関数のパラメーターは、関数のシグネチャの中で宣言します。 引数のリストにより関数へ情報を渡すことができます。 このリストは、カンマで区切られた式のリストです。 - 引数の評価は、左から右の順番で行われます。 + 引数の評価は、関数が実際にコールされる前に、 + 左から右の順番で行われ、 + 評価された結果が関数のパラメーターに代入されます + (先行評価)。 + PHP は、値渡し(デフォルト)、 - 参照渡し、 + リファレンス渡し、 デフォルト引数値 をサポートしています。また、 - 可変長引数リスト - もサポートしてます。 + 可変長引数リスト や、 + 名前付き引数 + もサポートしています。 + + + PHP 7.3.0 以降では、 + 関数コールの引数リストの末尾にも、カンマを付加できるようになっています: + + + +]]> + + + + + - - 関数に配列を渡す - + PHP 8.0.0 以降では、関数のパラメーターリストの最後にカンマをつけることができます。 + このカンマは無視されます。 + これは、引数リストや変数名が長かったりした場合に、 + 引数を縦に並べるのに便利です。 + + + 関数のパラメーターリストの最後にカンマを付ける + ]]> - - -
- + + + - 引数の参照渡し + 引数のリファレンス渡し デフォルトで、関数の引数は値で渡されます。(このため、関数の内部で 引数の値を変更しても関数の外側では値は変化しません。)関数がその引 - 数を修正できるようにするには、その引数を参照渡しとする必要があり + 数を修正できるようにするには、その引数をリファレンス渡しとする必要があり ます。 - 関数の引数を常に参照渡しとしたい場合には、関数定義において - アンパサンド(&) を引数名の前に付加することができます。 + 関数の引数を常にリファレンス渡しとしたい場合には、関数定義において + アンパサンド(&) をパラメーター名の前に付加することができます。 - 関数のパラメータの参照渡し + 関数の引数のリファレンス渡し - + + リファレンス渡しが想定されているところに、定数式を引数として渡すとエラーになります。 + - デフォルト引数値 + デフォルトのパラメーター値 - 関数は、スカラー引数に関して次のように C++ スタイルのデフォルト値を - 定義することができます。 + 関数は、変数に代入する記法に似たやり方で、 + デフォルト値をパラメーターに定義することができます。 + デフォルト値はパラメーターに引数が指定されなかった場合に使われますが、 + &null; を渡した場合はデフォルト値を代入 + しない ことに特に注意して下さい。 - 関数におけるデフォルトパラメータの使用法 + 関数におけるデフォルト引数の使用法 - PHPでは、配列および特殊な型 &null; をデフォルト値とすることも可能です。 - 例えば、 + デフォルト引数の値には、スカラー値、 + 配列、および特殊な型 &null; を指定できます。 + PHP 8.1.0 以降では、 + new ClassName() + 記法を使ってオブジェクトも指定できます。 @@ -289,513 +350,189 @@ function makecoffee($types = array("cappuccino"), $coffeeMaker = NULL) return "Making a cup of ".join(", ", $types)." with $device.\n"; } echo makecoffee(); -echo makecoffee(array("cappuccino", "lavazza"), "teapot"); -?> +echo makecoffee(array("cappuccino", "lavazza"), "teapot");?> ]]> - - - - デフォルト値は、定数式である必要があり、 - (例えば) 変数やクラスのメンバーであってはなりません。 - - - 引数のデフォルト値を使用する際には、デフォルト値を有する引数はデ - フォルト値がない引数の右側に全てある必要があることに注意して下さ - い。そうでない場合、意図したような動作が行われません。次の簡単な - コードを見てみましょう。 - 関数の引数のデフォルト値の 間違った使用法 + オブジェクトをデフォルト値として使用する(PHP 8.1.0 以降) brew(); } - -echo makeyogurt("raspberry"); // 期待通りには動作しません。 +echo makecoffee(); +echo makecoffee(new FancyCoffeeMaker); ?> ]]> - &example.outputs; - - - + + デフォルト値は、定数式である必要があり、 + (例えば) 変数やクラスのメンバーであってはなりません。 + - ここで、上の例を次のコードと比べてみましょう。 + デフォルト値を有する引数は、 + デフォルト値がない引数の右側に全てある必要があることに注意して下さい。 + そうでない場合、デフォルト値を指定していても、 + 呼び出し時に省略できません。 + 次の簡単なコードを見てみましょう。 - 関数の引数のデフォルト値の 正しい使用法 + 関数のパラメーターのデフォルト値の 間違った使用法 ]]> &example.outputs; - - - PHP 5以降では、リファレンス渡しの引数にもデフォルト値を指定できます。 - - - - - - 型宣言 - - - - 型宣言は、PHP 5 ではタイプヒンティングとも呼ばれていました。 - - - - 型宣言を使うと、関数を呼ぶ際に渡すパラメータが特定の型であることを、関数の宣言時に要求できるようになります。 - 関数に渡された値が不正な型であった場合はエラーとなります。 - PHP 5 では、このエラーは recoverable fatal error でした。 - PHP 7 では、この場合に TypeError 例外をスローします。 + ここで、上の例を次のコードと比べてみましょう。 - - 型宣言を指定するには、型の名前をパラメータ名の前に追加します。 - パラメータのデフォルト値が &null; である場合は、型宣言でも &null; - 値を受け付けることができます。 - - - - 有効な型 - - - - - - 説明 - 利用可能な PHP の最低バージョン - - - - - クラス名 / インターフェイス名 - - パラメータは、指定したクラスやインターフェイスのインスタンスでなければいけません。 - - PHP 5.0.0 - - - self - - パラメータは、そのメソッドが定義されているクラスと同じクラスのインスタンスでなければいけません。 - これが使えるのは、クラスメソッドやインスタンスメソッドだけです。 - - PHP 5.0.0 - - - array - - パラメータは配列でなければいけません。 - - PHP 5.1.0 - - - callable - - パラメータは callable でなければいけません。 - - PHP 5.4.0 - - - bool - - パラメータは boolean 値でなければいけません。 - - PHP 7.0.0 - - - float - - パラメータは float でなければいけません。 - - PHP 7.0.0 - - - int - - パラメータは integer でなければいけません。 - - PHP 7.0.0 - - - string - - パラメータは string でなければいけません。 - - PHP 7.0.0 - - - iterable - - パラメータは、array - または Traversable &instanceof; でなければいけません。 - - PHP 7.1.0 - - - object - - パラメータは、object でなければいけません。 - - PHP 7.2.0 - - - - - - - - これらのスカラー型のエイリアスはサポートしていません。 - エイリアスは、クラス名あるいはインターフェイス名として解釈されます。 - つまり、パラメータや返り値の型として - boolean を用いると、 - bool であることを宣言したのではなく - boolean クラス (あるいはインターフェイス) - のインスタンスであると宣言したことになります。 - - - - - - ]]> - - &example.outputs; - - - - - - - - - - &reftitle.examples; - - クラスの型宣言の基本例 - - -]]> - - &example.outputs; - - - - - - インターフェイスの型宣言の基本例 + 関数のパラメーターのデフォルト値の 正しい使用法 -]]> - - &example.outputs; - - - - - - - 型付きパラメータを参照渡しする例 - - 参照パラメータに宣言された型は、関数が返る時ではなく、 - 関数に入る時にチェックされます。よって、関数が返った後は、 - 引数の型は変わっている可能性があります。 - - - -]]> - - &example.outputs.similar; - - - - - - - Null を許可する型宣言 - - -]]> - - &example.outputs; - - - - - - - - 強い型付け - - - デフォルトでは、間違った型を渡された場合でも、可能な限り期待されている型に変換します。 - たとえば、string を想定している関数のパラメータに - integer が渡された場合は、その値を - string 型として受け取ります。 - - - - ファイル単位で厳密な型チェックを有効にすることもできます。 - この場合は、宣言されたとおりの型でない限りは受け付けず、 - TypeError をスローします。 - ただし、float が指定されているところに - integer を渡した場合だけは例外です。 - 組み込み関数内からの関数呼び出しは、 - strict_types 宣言の影響を受けません。 - - - - 厳密な型チェックを有効にするには、&declare; 文を用いて - strict_types を宣言します。 - - - - - 厳密な型チェックを有効にすると、 - 戻り値の型宣言 - にも影響を及ぼします。 - - - - - - 厳密な型チェックが適用されるのは、それを有効にしたファイル - の中からの関数呼び出しだけです。 - そのファイル内で宣言されている関数に適用されるわけではありません。 - 厳密な型チェックを有効にしていないファイルから、 - 厳密な型チェックを有効にしたファイル内で定義された関数を呼び出した場合は、 - 呼び出し元の設定 (弱い型チェック) が適用されて、自動的に型変換を行います。 - - - - - - 厳密な型チェックはスカラー型宣言に対してのみ定義されるものであり、 - PHP 7.0.0 以降でなければ使えません。そもそもスカラー型宣言が追加されたのが - PHP 7.0.0 だからです。 - - - - - 厳密な型チェック - - ]]> &example.outputs; - +
+ + PHP 8.0.0 以降では、 + デフォルト値を指定した引数を複数スキップするために、 + 名前付き引数 + が使えます。 + + - 弱い型チェック + 関数の引数のデフォルト値の 正しい使用法 ]]> &example.outputs; - + + + PHP 8.0.0 以降では、 + デフォルト値を指定したパラメーターの後に、 + 必須のパラメーターを宣言することは 推奨されません。 + なぜなら、そのデフォルト値は絶対に使われないからです。 + これは、デフォルト値を削除することで解決できます。 + このルールの唯一の例外は、 + Type $param = null と書かれたパラメーターです。 + &null; をデフォルトにすることは、 + 型が暗黙のうちに nullable であることを示しています。 + この使い方はPHP 8.4.0で非推奨となり、代わりに明示的な + nullable 型 + を使用する必要があります。 - <classname>TypeError</classname> の捕捉 + デフォルト値を指定したパラメーターは、必須のパラメーターの後に宣言する getMessage(); -} -?> -]]> + // PHP 8.1.0以降、$a は暗黙的に必須(必須の引数の前にあるため)ですが、 + // デフォルトのパラメータ値が null であるため、暗黙的に nullable とみなされます(PHP 8.4.0で非推奨)。 + function bar(A $a = null, $b) {} + function bar(?A $a, $b) {} // 推奨される書き方です。 + ?> + ]]> - &example.outputs; - - - - + + + + PHP 7.1.0 以降では、 + デフォルト値を指定しないで引数を省略すると、 + ArgumentCountError + がスローされるようになりました。 + これより前のバージョンでは、警告が発生していました。 + + + + + リファレンス渡しのパラメーターにもデフォルト値を指定できます。 + + + 可変長引数リスト - PHP は、可変長引数をユーザー定義関数でサポートしています。 - PHP 5.6 以降では ... を使って実装されており、 - PHP 5.5 以前では - func_num_args, - func_get_arg, - func_get_args 関数を使用します。 + PHP は ... を使った可変長引数をユーザー定義関数でサポートしています。 - - PHP 5.6 以降における <literal>...</literal> - - - PHP 5.6 以降では、引数リストに + + パラメーターリストに ... トークンを含めることで、 その関数が可変長の引数を受け取ることを示せます。 - 引数は、指定した変数に配列として渡されます。次の例を参照ください。 - - - <literal>...</literal> を使った、可変長引数へのアクセス - + 引数は、指定した変数に配列として渡されます: + + <literal>...</literal> を使った、可変長引数へのアクセス + ]]> - - &example.outputs; - + + &example.outputs; + - - - + + + - - 関数を呼び出すときに ... を使うと、 - 配列変数や Traversable クラスを引数リストに含めることができます。 + + 関数を呼び出すときに ... を使うと、 + 配列や Traversable を実装した変数やリテラルを引数リストに展開することができます。 - - 引数での <literal>...</literal> の使用例 - + + 引数での <literal>...</literal> の使用例 + ]]> - - &example.outputs; - + + &example.outputs; + - - - + + + - - 通常の引数を、... の前に指定することもできます。 + + 通常のパラメーターを、... の前に指定することもできます。 この場合は、通常の引数リストにマッチしなかったのこりの引数が ... による配列に追加されます。 - - - - ... トークンの前に、 - タイプヒント を付加することもできます。 - タイプヒントがある場合、... が取り込むすべての引数はそのヒントに従わなければいけません。 + - - タイプヒントつきの可変長引数 - + + ... トークンの前に、 + 型宣言 を付加することもできます。 + 型宣言がある場合、... が取り込むすべての引数はその型に一致していなければいけません。 + + 型宣言つきの可変長引数 + ]]> - - &example.outputs; - + + &example.outputs; + - - - + + +
- + 可変長引数の - 参照渡し + リファレンス渡し もできます。その場合は、... の前にアンパサンド (&) を付加します。 - - + - - 古いバージョンの PHP + - - 可変長引数に関して特別な構文は必要としません。しかし、関数の引数にアクセスするには - func_num_argsfunc_get_arg - および func_get_args といった関数を使う必要があります。 - + + 名前付き引数 + + + 既にある、位置を指定した引数を拡張する形で、PHP 8.0.0 から名前付き引数が導入されました。 + 名前付き引数は、位置ではなく、名前ベースで引数を渡すことを可能にします。 + これによって、引数の意味が自己文書化(self-documenting)され、 + 引数を任意の順番で渡せるようになり、任意のデフォルト値を持つ引数をスキップできるようになります。 + - - 先ほどの最初の例を、PHP 5.5 以前のバージョンで実装すると、以下のようになります。 + + 名前付き引数は、引数の名前の後にコロンを付けたものを、値の前に付けることで指定します。 + 引数の名前に予約語を使うことも許されています。 + 引数の名前は識別子でなければならず、動的に指定することは出来ません。 + - - 可変長引数へのアクセス (PHP 5.5 以前) - + + 名前付き引数の文法 + ]]> - - &example.outputs; - + + + + + 位置を指定した引数と、名前付き引数 + ]]> - - - - + + - - - - - 返り値 - - - オプションの return 文により値を返すことができます。 - 配列やオブジェクトを含むあらゆる型を返すことができます。 - これにより、関数の実行を任意の箇所で終了し、その関数を呼び出した - 箇所に制御を戻すことが出来ます。詳細に関しては - return を参照してください。 - + + 名前付き引数は、渡す順番は関係ありません。 + + + + 上と同じ例を、引数の順番を変えて渡す + + +]]> + + - - return を省略した場合は &null; を返します。 + 名前付き引数は、位置を指定した引数と組み合わせることが出来ます。 + そうした場合、名前付き引数は、位置を指定した引数の後に置かなければいけません。 + オプションの引数だけをいくつか、指定することもできます。 + その場合も、名前付き引数の順番は関係ありません。 - - - return の使いかた - - <function>return</function> の使用法 + 位置を指定した引数と、名前付き引数を組み合わせる ]]> - - - 複数の値を返すことはできませんが、リストを返すことにより - 同じ効果を得ることができます。 - - + + + 同じ名前の引数を複数回渡すと、Error 例外が発生します。 + + - 複数の値を得るために配列を返す + 同じ名前の引数を複数回渡すと、Error がスローされる ]]> - - - 関数からリファレンスを返すには、リファレンス演算子 & を関数宣 - 言部および変数への返り値を代入する際の両方で使用する必要があります。 - - + + + PHP 8.1.0 以降では、 + 引数を ... で展開した後に 名前付き引数を指定することができます。 + 名前付き引数は、展開済みの引数を上書きしては いけません。 + + - 関数からリファレンスを返す + 引数を展開した後に、名前付き引数を使う 2, 'a' => 1], d: 40)); // 46 + +var_dump(foo(...[1, 2], b: 20)); // Fatal error. Named parameter $b overwrites previous argument ?> ]]> - - - リファレンスに関するさらに詳しい情報がリファレンスの説明にあります。 - - - - - 戻り値の型宣言 - - - PHP 7 以降で、戻り値の型宣言が導入されました。 - 引数の型宣言 - と同様に、戻り値の型宣言は、関数から戻される値の型を指定します。 - 戻り値の型宣言で使える - 型 - は、引数の型宣言で使えるものと同じです。 - - - - 厳密な型チェック - は、戻り値の型宣言にも影響を及ぼします。デフォルトの弱い型付けでは、 - もし戻り値の型が正しいものではなくても、自動的に型変換を行います。 - この型変換が許されない場合 - (たとえば、&array; を返す場合に、関数が &integer; を返している場合) は、 - TypeError が発生します。 - 強い型付けの場合は、戻り値の型が正確に一致しなければならず、違っている場合は - TypeError が発生します。 - - - - PHP 7.1.0 以降では、 - 返り値の型を void - と宣言していない場合に引数がないreturn文を使うと、 - E_COMPILE_ERROR が発生するようになりました。 - これは、そのreturn文に到達しない場合であっても同じです。 - + + + + + 戻り値 + - PHP 7.1.0 以降では、型の名前の前にクエスチョンマーク - (?) を付けることによって、 - 戻り値の値が nullable とマークできるようになりました。 - これは、関数の戻り地の型が特定の型か、&null; を返すかの印になります。 + オプションの return 文により値を返すことができます。 + 配列やオブジェクトを含むあらゆる型を返すことができます。 + これにより、関数の実行を任意の箇所で終了し、その関数を呼び出した + 箇所に制御を戻すことが出来ます。詳細に関しては + return を参照ください。 - 親クラスのメソッドをオーバーライドする場合、子クラスのメソッドの戻り値の型は、 - 親クラスで宣言されたものと同じでなければいけません。 - 親クラスのメソッドが戻り値の型を宣言していない場合は、 - 子クラスのメソッドで型宣言をすることもできます。 + return を省略した場合は &null; を返します。 - - &reftitle.examples; - + + return の使いかた + - 戻り値の型宣言の基本例 + <function>return</function> の使用法 ]]> - &example.outputs; - - - + + + + 関数は複数の値を返すことは出来ませんが、 + 配列を返すことで似たような結果を得ることができます。 + + - 強い型付けの例 + 複数の値を得るために配列を返す例 -]]> - - &example.outputs; - - - - - - - オブジェクトを返す例 - - ]]> - &example.outputs; - - - + + + 関数からリファレンスを返すためには、 + 関数宣言と戻り値を代入する変数に対して、 + リファレンス演算子 & を使います: + + - Nullable な返り値の型宣言 (PHP 7.1.0 以降) + 関数からリファレンスを返す ]]> - +
+ + リファレンスに関する詳細は、リファレンスの説明 を参照ください。 + @@ -1255,9 +945,9 @@ $foo->$funcname(); // $foo->Variable() をコールする - 静的メソッドをコールするときには、関数呼び出しのほうが静的プロパティ演算子よりも優先されます。 + staticメソッドをコールするときには、関数呼び出しのほうがstaticプロパティ演算子よりも優先されます。 - 静的プロパティを含む可変メソッドの例 + staticプロパティを含む可変メソッドの例 Variable() をコールします。この - PHP 5.4.0 移行では、変数に格納されたあらゆる callable を呼び出せます。 複雑な callable @@ -1303,48 +992,25 @@ $func(); // "bar" を表示します $func = array(new Foo, "baz"); $func(); // "baz" を表示します $func = "Foo::bar"; -$func(); // PHP 7.0.0 以降では "bar" を表示します。それより前のバージョンでは fatal error となっていました +$func(); // "bar" を表示します。 ?> ]]> - - is_callablecall_user_func、 - 可変変数、そして - function_existsも参照してください。 - - - - &reftitle.changelog; + + &reftitle.seealso; - - - - - &Version; - &Description; - - - - - 7.0.0 - - 'ClassName::methodName' 形式を可変関数として使えるようになりました。 - - - - 5.4.0 - - callable の配列を、可変関数として使えるようになりました。 - - - - - + + is_callable + call_user_func + function_exists + 可変変数 + - + + @@ -1352,7 +1018,7 @@ $func(); // PHP 7.0.0 以降では "bar" を表示します。それより前の PHPは標準で多くの関数と言語構造を持っています。また他にも - コンパイル済みの特定のPHPエクステンションを必要とする関数があります。 + コンパイル済みの特定のPHP拡張モジュールを必要とする関数があります。 それらはもしコンパイルされていなければ"undefined function(未定義の関数)" として致命的エラーを発するでしょう。例えば、 imagecreatetruecolorのような @@ -1365,18 +1031,18 @@ $func(); // PHP 7.0.0 以降では "bar" を表示します。それより前の variable関数のように どのバージョンのPHPでも含まれているコアの関数もたくさんあります。 phpinfoget_loaded_extensionsを - コールすることで使用しているPHPにロードされているエクステンションを - 見ることができます。また、多くのエクステンションはデフォルトで有効に - なっており、PHPのマニュアルはエクステンション毎に分けられていることにも + コールすることで使用しているPHPにロードされている拡張モジュールを + 見ることができます。また、多くの拡張モジュールはデフォルトで有効に + なっており、PHPのマニュアルは拡張モジュール毎に分けられていることにも 注意してください。PHPのセットアップについては 設定, - インストール,そして個々のエクステンション + インストール,そして個々の拡張モジュール の項をご覧ください。 関数のプロトタイプに関する解説はマニュアルの 関数の定義を読むにはを - 参照してください。関数の戻り値や引数が直接与えられた場合に + 参照ください。関数の戻り値や引数が直接与えられた場合に どのように動くかを認識することは重要です。 例えば、str_replaceは変更された文字列を 返すのに対し、usortは与えられた引数そのものを @@ -1390,17 +1056,66 @@ $func(); // PHP 7.0.0 以降では "bar" を表示します。それより前の 関数へのパラメータとして関数が想定しているのとは異なるものを渡した場合、 例えば文字列を想定しているところに配列を渡した場合などの場合は - 関数の返り値は未定義となります。たいていの場合は + 関数の戻り値は未定義となります。たいていの場合は &null; を返すでしょう。しかしこれはあくまでも規約にすぎず、 これに依存することはできません。 + PHP 8.0.0 以降では、このような場合には TypeError をスローすることになっています。 - - function_exists, - the function reference, - get_extension_funcs, - dlも参照してください。 - + + + ビルトイン関数のスカラー型の引数には、 + デフォルトの自動変換(coercive)モードの場合、 + null を渡すことが出来ます。 + PHP 8.1.0 以降では、 + nullable として宣言されていない内部関数の引数に &null; を渡すことは推奨されなくなり、 + 自動変換モードでは警告が発生するようになっています。 + ユーザ定義の関数においては、スカラー型の引数は nullable と明示的にマークする必要があり、その振る舞いと合わせるためです。 + + + + たとえば、strlen + 関数は引数 $string + に null でない文字列を渡すことを期待しています。 + 歴史的な理由により、 + PHP は自動変換モードの場合に、 + この引数に &null; を渡すことを許可してきました。 + 結果として、引数に &null; + を渡すと暗黙のうちに文字列にキャストされ、 + 結果は空文字列 "" になっていました。 + これに対し、strict モードの場合は TypeError + がスローされます。 + + + + + +]]> + + + + + + &reftitle.seealso; + + + function_exists + 関数リファレンス + get_extension_funcs + dl + + + + @@ -1409,7 +1124,7 @@ $func(); // PHP 7.0.0 以降では "bar" を表示します。それより前の 無名関数はクロージャとも呼ばれ、 関数名を指定せずに関数を作成できるようにするものです。 - コールバック + callable パラメータとして使う際に便利ですが、用途はそれにとどまりません。 @@ -1444,8 +1159,7 @@ echo preg_replace_callback('~-([a-z])~', function ($match) { use で渡さなければなりません。 PHP 7.1 以降は、引き継ぐ値に &link.superglobals; や - $this、およびパラメータと同じ名前の変数を含めてはいけません。 + $this、 + およびパラメータと同じ名前の変数を含めてはいけません。 + 戻り値の型は、 + use + に置かなければいけません。 @@ -1490,7 +1208,7 @@ $example(); // $message をリセットします $message = 'hello'; -// 参照渡しで引き継ぎます +// リファレンス渡しで引き継ぎます $example = function () use (&$message) { var_dump($message); }; @@ -1506,6 +1224,12 @@ $example = function ($arg) use ($message) { var_dump($arg . ' ' . $message); }; $example("hello"); + +// 戻り値の型は、use の後に置きます +$example = function () use ($message): string { + return "hello $message"; +}; +var_dump($example()); ?> ]]> @@ -1519,10 +1243,15 @@ string(5) "hello" string(5) "hello" string(5) "world" string(11) "hello world" +string(11) "hello world" ]]> + + PHP 8.0.0 以降では、親のスコープを継承した変数の一覧の最後にカンマを付けられるようになりました。 + このカンマは無視されます。 + 親のスコープからの変数の引き継ぎは、グローバル変数を使うのとは 異なります。グローバル変数は、 @@ -1621,32 +1350,26 @@ object(Test)#1 (0) { } ]]> - &example.outputs.53; - - - - PHP 5.4.0 以降では、クラスのコンテキストで宣言した場合は現在のクラスが自動的にバインドされて、 + クラスのコンテキストで宣言した場合は、現在のクラスが自動的にバインドされて、 関数のスコープで $this が使えるようになります。 現在のクラスへの自動バインドを望まない場合は、 - 静的無名関数 + static な無名関数 を使いましょう。 - 静的無名関数 + static な無名関数 - PHP 5.4 以降では、静的な無名関数を宣言できるようになりました。 - こうすれば、現在のクラスが無名関数を自動的にバインドすることがなくなります。 + static を付けて無名関数を宣言することができます。 + こうすることで、現在のクラスが無名関数を自動的にバインドすることがなくなります。 オブジェクトも、実行時にはバインドされなくなります。 - 静的無名関数内での <literal>$this</literal> の使用例 + static な無名関数内での <literal>$this</literal> の使用例 - 静的無名関数へのオブジェクトのバインド + static な無名関数へのオブジェクトのバインド bindTo(new StdClass); +$func = $func->bindTo(new stdClass); $func(); ?> @@ -1715,24 +1438,18 @@ Warning: Cannot bind an instance to a static closure in %s on line %d - 7.1.0 - - 無名関数は、&link.superglobals; や、 - $this, もしくは - 引数と同じ名前の変数を use で引き継げなくなりました。 - - - - 5.4.0 + 8.3.0 - 無名関数で、静的に宣言したときのように - $this を使えるようになりました。 + マジックメソッド + 経由で作られたクロージャも、名前付き引数を受け入れるようになりました。 - 5.3.0 + 7.1.0 - 無名関数が使えるようになりました。 + 無名関数は、&link.superglobals; や、 + $this, もしくは + 引数と同じ名前の変数を use で引き継げなくなりました。 @@ -1831,7 +1548,7 @@ var_export($fn(5)(10)); 無名関数と同じように、 アロー関数の文法は、引数や戻り値、デフォルト値、可変長引数、 - 参照渡しや参照返しを含む、任意の関数シグナチャを扱えます。 + リファレンス渡しやリファレンス返しを含む、任意の関数シグネチャを扱えます。 次に示す例は、全て正しいアロー関数の例です: @@ -1842,7 +1559,7 @@ var_export($fn(5)(10)); $x; -static fn(): int => $x; +static fn($x): int => $x; fn($x = 42) => $x; fn(&$x) => $x; fn&($x) => $x; @@ -1915,6 +1632,144 @@ var_export($x); // 1 を出力 + + 第一級callableを生成する記法 + + + 第一級callableを生成する記法 (First class callable syntax) とは、PHP 8.1.0 で追加された、 + callable + から 無名関数 を生成する記法です。 + この記法は、 + 文字列や配列を使って callable を生成するやり方を置き換えるものです。 + この記法の利点は、callable の静的解析を行いやすくなることに加え、 + そのスコープが、callable を生成した時点のスコープになることです。 + + + + CallableExpr(...) という記法で、 + callable から Closure を生成します。 + CallableExpr には、 + PHP の文法上直接コールできるあらゆる式が使えます: + + 簡単な例 + +method(...); +$f4 = $obj->$methodStr(...); +$f5 = Foo::staticmethod(...); +$f6 = $classStr::$staticmethodStr(...); + +// 文字列や配列を使った、古い記法 +$f7 = 'strlen'(...); +$f8 = [$obj, 'method'](...); +$f9 = [Foo::class, 'staticmethod'](...); +?> +]]> + + + + + + + ... は文法の一部であり、省略形ではありません。 + + + + + この記法の動作は、 + Closure::fromCallable + の仕様に従います。 + つまり、文字列や配列から callable を作るやり方とは異なり、 + CallableExpr(...) のスコープは、 + それを生成した時点でのスコープになります: + + 古い callable の生成方法と、<code>CallableExpr(...)</code> の比較 + +getPrivateMethod(); +$privateMethod(); +// Fatal error: Call to private method Foo::privateMethod() from global scope +// 上記がエラーになるのは、呼び出しが Foo の外部から行われ、 +// アクセス権のチェックもこの時点から行われるためです。 + +class Foo1 { + public function getPrivateMethod() { + // 下記は、callable を生成した時点のスコープになります。 + return $this->privateMethod(...); // Closure::fromCallable([$this, 'privateMethod']); と同等です。 + } + + private function privateMethod() { + echo __METHOD__, "\n"; + } +} + +$foo1 = new Foo1; +$privateMethod = $foo1->getPrivateMethod(); +$privateMethod(); // Foo1::privateMethod +?> +]]> + + + + + + + + この記法を使ってオブジェクトを生成する操作 + (例: new Foo(...)) + はサポートされていません。 + なぜなら、new Foo() + は、呼び出しとは見なされないからです。 + + + + + + この記法は、nullsafe 演算子 と組み合わせて使うことはできません。 + 以下のコードは、いずれもコンパイルエラーになります: + + +method(...); +$obj?->prop->method(...); +?> +]]> + + + + + + - + @@ -28,6 +28,7 @@ return するのではなく、必要に応じて何度でも &yield; することができます。 つまり、値を繰り返し返せるということです。 + イテレーターと同じく、ランダムアクセスはできません。 @@ -90,8 +91,8 @@ foreach (xrange(1, 9, 2) as $number) { &example.outputs; @@ -127,17 +128,13 @@ Single digit odd numbers from xrange(): 1 3 5 7 9 - yield できる値がなくなると、ジェネレータは単純に終了します。 + yield できる値がなくなると、ジェネレータは単純に呼び出し元に制御を戻します。 呼び出し元のコードでは、配列の要素をすべて処理し終えた後のように、そのまま処理が続きます。 - PHP 5では、ジェネレータは値を返すことができませんでした。 - 値を返そうとすると、コンパイルエラーが発生していました。 - ジェネレータの中で空の return 文を書いても文法上は問題ありませんが、 - そこでジェネレータは終了していました。 - PHP 7.0 以降は、ジェネレータは値を返せるようになり、返した値は + ジェネレータは値を返すことができます。返した値は Generator::getReturn で取得することが出来ます。 @@ -189,51 +186,6 @@ foreach ($generator as $value) { - - - yield を式のコンテキスト (代入文の右辺など) - で使うときは、yield 文を括弧で囲む必要があります。 - たとえば、PHP 5 では次のようになります。 - - - - - - - - - - 次のように書くと、PHP 5 ではパースエラーになります。 - - - - - - - - - - PHP 7 では、この制限はありません。 - - - - $data に代入される値は、 - Generator::send に渡される値、もしくは - Generator::next が代わりに呼ばれる場合は &null; - になります。 - - - - この構文は、 - Generator::send - メソッドと組み合わせて使えます。 - - - 値とキーの yield @@ -295,22 +247,6 @@ foreach (input_parser($input) as $id => $fields) { ]]> - - - - 先ほどの例のように値だけを yield するときと同様に、 - キー/値 のペアを式のコンテキストで yield するときにも - yield 文を括弧で囲む必要があります。 - - - - - $value); -]]> - - - @@ -387,7 +323,7 @@ foreach (gen_reference() as &$number) { &example.outputs; @@ -397,9 +333,9 @@ foreach (gen_reference() as &$number) { <command>yield from</command> によるジェネレータの委譲 - PHP 7 では、ジェネレータの委譲ができるようになりました。 + ジェネレーターを委譲することで、 別のジェネレータや Traversable オブジェクトあるいは配列から、 - array by using the yield from キーワードを使って値を yield できます。 + yield from キーワードを使って値を yield できます。 外側のジェネレータは、内側のジェネレータ (あるいはオブジェクトや配列) から受け取れるすべての値を yield し、 何も取得できなくなったら外側のジェネレータの処理を続行します。 @@ -425,7 +361,7 @@ foreach (gen_reference() as &$number) { iterator_to_array を使う場合に問題になることがよくあります。 この関数はデフォルトで数値添字配列を返すので、予期せぬ結果を引き起こす可能性があります。 iterator_to_array には二番目のパラメータ - use_keys があり、これを &false; + preserve_keys があり、これを &false; にすれば、Generator が返すキーを無視してすべての値を取得できます。 @@ -498,7 +434,7 @@ foreach (count_to_ten() as $num) { &example.outputs; @@ -631,6 +567,16 @@ class LineIterator implements Iterator { ジェネレータ関数を呼んでもう一度作り直す必要があります。 + + + &reftitle.seealso; + + + オブジェクトの反復処理 + + + + - + 名前空間の概要 + 概要 名前空間とは何でしょう? 広義の「名前空間」とは、項目をカプセル化するもののことです。 @@ -24,26 +25,7 @@ /home/greg/foo.txt としなければなりません。 プログラミングの世界における名前空間も、この延長線上にあります。 - - - - - - &Version; - &Description; - - - - - 7.0.0 - - use 宣言をグループ化できるようになりました。 - - - - - - + PHP の世界では、名前空間は次のふたつの問題を解決するための手段として用意されています。 ライブラリやアプリケーションの作者が、 @@ -109,10 +91,11 @@ echo constant($d); // "名前空間および動的言語機能" を参照くだ 名前空間の定義 + 名前空間 PHP のコードならなんでも名前空間に含めることができますが、 - 実際に名前空間の影響を受けるのはクラス (抽象クラスやトレイトを含む) とインターフェイス、関数、そして定数だけです。 + 実際に名前空間の影響を受けるのはクラス (抽象クラスやトレイト、列挙型(Enum) を含む) とインターフェイス、関数、そして定数だけです。 名前空間を宣言するには、キーワード namespace @@ -161,6 +144,7 @@ namespace MyProject; // fatal error - namespace must be the first statement in t サブ名前空間の宣言 + サブ名前空間 ディレクトリやファイルと同様、PHP の名前空間においても名前空間の階層構造を指定することができます。 @@ -187,6 +171,7 @@ function connect() { /* ... */ } 同一ファイル内での複数の名前空間の定義 + 同一ファイル内での複数の名前空間の定義 複数の名前空間を同一ファイル内で宣言することもあります。 @@ -300,6 +285,7 @@ echo MyProject\Connection::start(); 名前空間の使用法: 基本編 + 基本編 名前空間の使い方についてあれこれ言う前に、まずは @@ -311,7 +297,7 @@ echo MyProject\Connection::start(); foo.txt のような相対ファイル名を使う。これは currentdirectory/foo.txt と解釈されます。ここで、 - currentdirectory は現在いるディレクトリを表します。したがって、カレントディレクトリが + currentdirectory は現在いるディレクトリを表します。したがって、カレントディレクトリが /home/foo であった場合はこれは /home/foo/foo.txt となります。 @@ -426,7 +412,7 @@ echo \Foo\Bar\FOO; // 定数 Foo\Bar\FOO と解釈されます グローバルなクラス、関数あるいは定数にアクセスするには、完全修飾名を使用して \strlen\Exception あるいは - \INI_ALL などとすることができます。 + \INI_ALL などとすることができます。 グローバルなクラス、関数および定数への名前空間内からのアクセス @@ -449,6 +435,7 @@ $c = new \Exception('error'); // グローバルクラス Exception のインス 名前空間と動的言語機能 + 名前空間と動的言語機能 PHP における名前空間の実装は、PHP 自身が動的プログラミング言語であるという性質に影響を受けています。 @@ -527,6 +514,7 @@ echo constant('namespacename\constname'), "\n"; // これも namespaced と表 namespace キーワードおよび __NAMESPACE__ 定数 + namespace キーワードおよび __NAMESPACE__ PHP には、現在の名前空間内の要素へのアクセスを抽象化するための方法が 2 通りあります。 @@ -597,7 +585,7 @@ namespace\blah\mine(); // MyProject\blah\mine() 関数をコールします namespace\func(); // MyProject\func() 関数をコールします namespace\sub\func(); // MyProject\sub\func() 関数をコールします -namespace\cname::method(); // MyProject\cname クラスの静的メソッド "method" をコールします +namespace\cname::method(); // MyProject\cname クラスのstaticメソッド "method" をコールします $a = new namespace\sub\cname(); // MyProject\sub\cname クラスのオブジェクトのインスタンスを作成します $b = namespace\CONSTANT; // 定数 MyProject\CONSTANT の値を $b に代入します ?> @@ -612,7 +600,7 @@ $b = namespace\CONSTANT; // 定数 MyProject\CONSTANT の値を $b に代入し namespace\func(); // func() 関数をコールします namespace\sub\func(); // sub\func() 関数をコールします -namespace\cname::method(); // cname クラスの静的メソッド "method" をコールします +namespace\cname::method(); // cname クラスのstaticメソッド "method" をコールします $a = new namespace\sub\cname(); // sub\cname クラスのオブジェクトのインスタンスを作成します $b = namespace\CONSTANT; // 定数 CONSTANT の値を $b に代入します ?> @@ -621,8 +609,10 @@ $b = namespace\CONSTANT; // 定数 CONSTANT の値を $b に代入します + 名前空間の使用法: エイリアス/インポート + エイリアス/インポート 外部の完全修飾名をエイリアスで参照したりインポートしたりする機能は、 @@ -630,13 +620,10 @@ $b = namespace\CONSTANT; // 定数 CONSTANT の値を $b に代入します これは、Unix 系のファイルシステムでファイルやディレクトリへのシンボリックリンクを作成することに似ています。 - PHP の名前空間では、3 通りの方法でエイリアスやインポートをサポートしています。 - クラス名のエイリアスを作成する方法、インターフェイス名のエイリアスを作成する方法、 - そして名前空間名のエイリアスを作成する方法です。 - PHP 5.6 以降では、さらに関数や定数のエイリアスやインポートもサポートします。 + PHP は定数、関数、クラス、インターフェイス、トレイト、列挙型(Enum)、名前空間のエイリアスやインポートをサポートしています。 - PHP でのエイリアス作成には use 演算子を使用します。 + エイリアス作成には use 演算子を使用します。 ここに、5 種類すべてのインポート方法の例を示します。 use 演算子によるインポート/エイリアス @@ -652,13 +639,13 @@ use My\Full\NSname; // グローバルクラスをインポートします use ArrayObject; -// 関数をインポートします (PHP 5.6+) +// 関数をインポートします use function My\Full\functionName; -// 関数のエイリアスを定義します (PHP 5.6+) +// 関数のエイリアスを定義します use function My\Full\functionName as func; -// 定数をインポートします (PHP 5.6+) +// 定数をインポートします use const My\Full\CONSTANT; $obj = new namespace\Another; // foo\Another クラスのオブジェクトのインスタンスを作成します @@ -769,15 +756,14 @@ function toGreenlandic() <literal>use</literal> 宣言のグループ化 - PHP 7.0 以降では、同じ &namespace; から複数のクラスや関数そして定数をインポートする際に、 - それらをひとつの &use.namespace; にまとめられるようになりました。 + 同じ &namespace; から複数のクラスや関数そして定数をインポートする際には、 + それらをひとつの &use.namespace; にまとめることができます。 グローバル空間 + グローバル空間 名前空間の定義がない場合、すべてのクラスや関数の定義はグローバル空間に配置されます。 @@ -828,6 +815,7 @@ function fopen() { 名前空間の使用法: グローバル関数/定数への移行 + グローバル関数/定数への移行 名前空間内で、PHP が未定義のクラス名や関数、定数に出会った場合、 @@ -886,6 +874,7 @@ if (is_array('hi')) { // "is not array" と表示します 名前解決のルール + 名前解決のルール 名前解決のルールを説明するにあたって、いくつかの重要な定義を示しておきます。 @@ -979,9 +968,9 @@ if (is_array('hi')) { // "is not array" と表示します たとえば、use A\B\C; の後に、 new C() のようなことをすると、 C は A\B\C() に解決されます。 - 同じように、use function A\B\fn; - の後に fn() のようなことをすると、 - A\B\fn という名前に解決されます。 + 同じように、use function A\B\foo; + の後に foo() のようなことをすると、 + A\B\foo という名前に解決されます。
@@ -1060,7 +1049,7 @@ new \D(); // グローバルスコープで定義されているクラス "D" new \F(); // グローバルスコープで定義されているクラス "F" のオブジェクトを作成します // 見つからない場合は、クラス "F" の autoload を試みます -// 別の名前空間から使用する静的メソッド/関数 +// 別の名前空間から使用するstaticメソッド/関数 B\foo(); // 名前空間 "A\B" の関数 "foo" をコールします @@ -1075,7 +1064,7 @@ D::foo(); // インポートルールを使用し、名前空間 "B" で定義 \B::foo(); // グローバルスコープのクラス "B" のメソッド "foo" をコールします // クラス "B" が見つからない場合はクラス "B" の autoload を試みます -// 現在の名前空間から使用する静的メソッド/関数 +// 現在の名前空間から使用するstaticメソッド/関数 A\B::foo(); // 名前空間 "A\A" のクラス "B" のメソッド "foo" をコールします // クラス "A\A\B" が見つからない場合はクラス "A\A\B" の autoload を試みます @@ -1089,6 +1078,7 @@ A\B::foo(); // 名前空間 "A\A" のクラス "B" のメソッド "foo" を FAQ: 名前空間について知っておくべきこと + FAQ この FAQ は 2 つに別れています。一般的な質問と、 @@ -1158,12 +1148,6 @@ A\B::foo(); // 名前空間 "A\A" のクラス "B" のメソッド "foo" を - - - - PHP 5.6 より前のバージョンでは、関数や定数は use 文でインポートできない - - @@ -1179,7 +1163,7 @@ A\B::foo(); // 名前空間 "A\A" のクラス "B" のメソッド "foo" を - 特別な定数 NULL, TRUE, FALSE, ZEND_THREAD_SAFE そして ZEND_DEBUG_BUILD は上書きできない + 特別な定数 &null;, &true;, &false; は上書きできない @@ -1230,7 +1214,7 @@ $a = new stdClass; namespace foo; $a = new \stdClass; -function test(\ArrayObject $typehintexample = null) {} +function test(\ArrayObject $parameter_type_example = null) {} $a = \DirectoryIterator::CURRENT_AS_FILEINFO; @@ -1256,10 +1240,10 @@ namespace foo; class MyClass {} -// 現在の名前空間のクラスをタイプヒントに使用する方法 -function test(MyClass $typehintexample = null) {} -// 現在の名前空間のクラスをタイプヒントに使用するもうひとつの方法 -function test(\foo\MyClass $typehintexample = null) {} +// 現在の名前空間のクラスを引数の型として使う +function test(MyClass $parameter_type_example = null) {} +// 現在の名前空間のクラスを引数の型として使うもうひとつの方法 +function test(\foo\MyClass $parameter_type_example = null) {} // 現在の名前空間のクラスの継承 class Extended extends MyClass {} @@ -1323,7 +1307,7 @@ namespace foo; use blah\blah as foo; $a = new my\name(); // "foo\my\name" クラスのインスタンスを作成します -foo\bar::name(); // "blah\blah\bar" の静的メソッド "name" をコールします +foo\bar::name(); // "blah\blah\bar" のstaticメソッド "name" をコールします my\bar(); // "foo\my\bar" 関数をコールします $a = my\BAR; // $a に定数 "foo\my\BAR" の値を設定します ?> @@ -1355,7 +1339,7 @@ namespace foo; use blah\blah as foo; $a = new name(); // "foo\name" クラスのインスタンスを作成します -foo::name(); // "blah\blah" クラスの静的メソッド "name" をコールします +foo::name(); // "blah\blah" クラスのstaticメソッド "name" をコールします ?> ]]> @@ -1501,27 +1485,6 @@ namespace my\stuff\nested { - - PHP 5.6 より前のバージョンでは、関数や定数は <literal>use</literal> 文でインポートできない - - PHP 5.6 より前のバージョンでは、use 文の影響を受けるのは名前空間とクラス名のみです。 - 長い名前の定数や関数を短い名前にするには、それらが含まれる名前空間をインポートします。 - - - - ]]> - - - PHP 5.6 以降では、関数名や定数名のエイリアスを設定したりインポートしたりできるようになりました。 - - 動的な名前空間名 (クォートした名前) ではバックスラッシュのエスケープが必要 @@ -1571,7 +1534,7 @@ $a = \Bar\FOO; // fatal error, undefined namespace constant Bar\FOO - 特別な定数 NULL, TRUE, FALSE, ZEND_THREAD_SAFE そして ZEND_DEBUG_BUILD は上書きできない + 特別な定数 &null;, &true;, &false; は上書きできない 名前空間内で特別な組み込み定数を定義しようとすると、致命的なエラーが発生します。 diff --git a/language/oop5.xml b/language/oop5.xml index e17001a9fe..1db2181a49 100644 --- a/language/oop5.xml +++ b/language/oop5.xml @@ -1,23 +1,22 @@ - + - + クラスとオブジェクト はじめに - PHP 5 以降、完全なオブジェクトモデルが搭載されています。 - PHP 5 で採用された機能には - 可視性、 + PHP には完全なオブジェクトモデルが搭載されています。 + 搭載されている機能には + アクセス権、 abstract クラスやメソッド、 final クラスやメソッド、 新たな マジックメソッド、 インターフェイス、 - クローン そして - タイプヒンティング + オブジェクトのクローン作成 などがあります。 @@ -31,6 +30,7 @@ &language.oop5.basic; &language.oop5.properties; + &language.oop5.property-hooks; &language.oop5.constants; &language.oop5.autoload; &language.oop5.decon; @@ -48,11 +48,11 @@ &language.oop5.final; &language.oop5.cloning; &language.oop5.object-comparison; - &language.oop5.typehinting; &language.oop5.late-static-bindings; &language.oop5.references; &language.oop5.serialization; &language.oop5.variance; + &language.oop5.lazy-objects; &language.oop5.changelog; diff --git a/language/oop5/abstract.xml b/language/oop5/abstract.xml index 411f6e8590..f670460da2 100644 --- a/language/oop5/abstract.xml +++ b/language/oop5/abstract.xml @@ -1,41 +1,44 @@ - + クラスの抽象化 - PHP 5 では、抽象クラスとメソッドが導入されました。 - abstractとして定義されたクラスのインスタンスを生成することはできません。 - 1つ以上の抽象メソッドを含む全てのクラスもまた抽象クラスとなります。 - abstractとして定義されたメソッドは、そのメソッドの外観を宣言するのみで、 - 実装を定義することはできません。 + PHP には、抽象クラス、抽象メソッド、抽象プロパティがあります。 + abstract として定義された抽象クラスのインスタンスを生成することはできず、 + 1つ以上の抽象メソッドや抽象プロパティを含むクラスは抽象クラスでなければいけません。 + abstract として定義されたメソッドは、そのメソッドのシグネチャと public または protected のアクセス権を宣言するのみで、 + 実装を定義することはできません。抽象プロパティは、 + getset の要件を宣言することができ、 + 実装はどちらか一方に対してのみ行えます。両方同時に実装することはできません。 抽象クラスから継承する際、親クラスの宣言で abstract としてマークされた 全てのメソッドは、子クラスで定義されなければなりません。加えて、 - これらのメソッドは同等 (あるいはより緩い制約) の - 可視性 - で定義される必要があります。例えば、抽象メソッドが protected - として定義された場合、その関数の実装は protected または public - のどちらかとして定義する必要があります。private にすることはできません。 - さらに、メソッドのシグネチャも必ず一致していなくてはなりません。 - すなわち、型ヒントや必須引数の数についても同じでなければならないということです。 - たとえば、子クラスでオプションの引数を定義しているけれども - 抽象クラスのメソッドのシグネチャでは定義されていないという場合、 - シグネチャの衝突は発生しません。 - PHP 5.4 以降では、これがコンストラクタについても適用されるようになりました。 - それより前のバージョンでは、コンストラクタのシグネチャは違ってもかまいませんでした。 + オブジェクトの継承 と + シグネチャの互換性に関するルール に従わなければいけません。 + + PHP 8.4 から、抽象クラスは public または protected の抽象プロパティを宣言できるようになりました。 + protected な抽象プロパティは、protected または public のスコープから読み書き可能なプロパティにより + 要件が満たされます。 + + + 抽象プロパティは、通常のプロパティによって、または + 必要な操作に対応した フック を定義したプロパティにより要件が満たされます。 + + - 抽象クラスの例 + 抽象メソッドの例 getValue() . "\n"; } } class ConcreteClass1 extends AbstractClass { - protected function getValue() { + protected function getValue() + { return "ConcreteClass1"; } - public function prefixValue($prefix) { + public function prefixValue($prefix) + { return "{$prefix}ConcreteClass1"; } } class ConcreteClass2 extends AbstractClass { - public function getValue() { + public function getValue() + { return "ConcreteClass2"; } - public function prefixValue($prefix) { + public function prefixValue($prefix) + { return "{$prefix}ConcreteClass2"; } } -$class1 = new ConcreteClass1; +$class1 = new ConcreteClass1(); $class1->printOut(); -echo $class1->prefixValue('FOO_') ."\n"; +echo $class1->prefixValue('FOO_'), "\n"; -$class2 = new ConcreteClass2; +$class2 = new ConcreteClass2(); $class2->printOut(); -echo $class2->prefixValue('FOO_') ."\n"; +echo $class2->prefixValue('FOO_'), "\n"; + ?> ]]> @@ -92,22 +101,22 @@ FOO_ConcreteClass2 - 抽象クラスの例 + 抽象メソッドの例 prefixName("Pacman"), "\n"; echo $class->prefixName("Pacwoman"), "\n"; + ?> ]]> @@ -133,12 +144,81 @@ Mrs. Pacwoman ]]> + + 抽象プロパティの例 + + - 'abstract' という名前のユーザー定義クラスや関数を含まないコードは、修正なしに動作します。 - - +abstract class A +{ + // 継承するクラスは、public に読み取り可能なプロパティを持たなければなりません + abstract public string $readable { + get; + } + + // 継承するクラスは、protected または public に書き込み可能なプロパティを持たなければなりません + abstract protected string $writeable { + set; + } + + // 継承するクラスは、protected または public で読み書き可能なプロパティを持たなければなりません + abstract protected string $both { + get; + set; + } +} + +class C extends A +{ + // 要件を満たし、さらに書き込みも可能にしているため有効です + public string $readable; + // public に読み取り可能でないため、要件を満たしません + protected string $readable; + + // 要件を正確に満たしているため有効です + // protected のスコープからのみ書き込みが可能です + protected string $writeable { + set => $value; + } + + // protected から public にアクセス権を拡張しており、問題ありません + public string $both; +} + +?> +]]> + + + + 抽象プロパティにはフックを実装できます。 + 前の例のように、get または set のどちらかを、定義せず宣言のみ行います。 + + + フック付きの抽象プロパティの例 + +foo = $value; + } + } +} + +?> +]]> + + + - + 無名クラス - PHP 7 で、無名クラスをサポートするようになりました。 - その場限りの使い捨てのオブジェクトが必要になった場合に便利です。 + 無名クラスは、その場限りの使い捨てのオブジェクトが必要になった場合に便利です。 @@ -15,7 +14,7 @@ setLogger(new Logger()); -// PHP 7 以降のコード +// 無名クラスを使う $util->setLogger(new class { public function log($msg) { @@ -76,7 +75,8 @@ object(class@anonymous)#1 (1) { - 無名クラスを別のクラス内で作っても、外側のクラスの private や protected なメソッドそしてプロパティにはアクセスできません。 + 無名クラスを別のクラス内で作っても、外側のクラスの private や protected なメソッド、 + およびプロパティにはアクセスできません。 外側のクラスの protected プロパティやメソッドにアクセスするには、 無名クラスに外側のクラスを継承させます。 外側のクラスの private プロパティを無名クラスで使うには、 @@ -174,6 +174,33 @@ class@anonymous/in/oNi1A0x7f8636ad2021 + + + 読み取り専用の無名クラス + + PHP 8.3.0 以降では、 + 無名クラスにも readonly を適用できます。 + + + 読み取り専用の無名クラスを定義する + + prefix . ' ' . $msg; + } +}); +]]> + + + - + + クラスのオートローディング @@ -11,47 +12,39 @@ 記述する必要があることです(各クラスについて一つ)。 - PHP 5では、これはもう不要です。 - spl_autoload_register 関数で任意の数のオートローダーを登録できて、 + spl_autoload_register 関数を使うと、 + 任意の数のオートローダーを登録でき、 クラスやインターフェイスが定義されていなくても自動的に読み込めるようになります。 オートローダーを登録すれば、PHPがエラーで止まる前にクラスをロードする最後の チャンスが与えられます。 - - - __autoload 関数でもクラスやインターフェイスのオートロードができますが、 - spl_autoload_register 関数を使うことをおすすめします。 - こちらのほうが、より柔軟に使えるからです - (任意の数のオートローダーを登録して、サードパーティのライブラリなどに対応することもできます)。 - このため、__autoload の使用は - PHP 7.2.0 以降、非推奨となり、削除されます。 - - - + + クラスに類似した言語構造は、同じやり方でオートロードできます。 + これには、クラス、インターフェイス、トレイト、列挙型が含まれます。 + + - PHP 5.3 より前のバージョンでは、__autoload 関数の内部でスローされた例外を - catch - ブロックでキャッチすることができず、致命的なエラーとなります。 - PHP 5.3 以降ではこれをキャッチできるようになりました。ただし、 - 独自の例外クラスをスローした場合は、その例外クラスが利用可能でなければなりません。 - __autoload 関数を再帰的に用いて、独自の例外クラスをオートロードします。 + PHP 8.0.0 より前のバージョンでは、 + __autoload 関数でもクラスやインターフェイスのオートロードが可能でした。 + しかし、この関数は + spl_autoload_register 関数に比べると柔軟性という点で劣っています。 + そのため、__autoload + 関数は PHP 7.2.0 で推奨されなくなり、 + PHP 8.0.0 で削除されました。 - - - - オートローディングは、PHP を CLI - 対話モード - で実行している場合は使用できません。 - - - + + - クラス名をたとえば call_user_func などで使用する場合、 - ../ のような危険な文字が含まれることもあり得ます。 - このような関数にはユーザーの入力を渡さないことをおすすめします。 - あるいは最低限 __autoload の中で入力内容を検証するようにします。 + 複数のオートローダーを複数回登録するために、 + spl_autoload_register + を複数回コールしても構いません。 + 但し、オートロードを行う関数から例外がスローされると、 + オートロードのプロセスが中断され、 + 後続のオートロード関数の実行ができなくなります。 + よって、オートロード関数から例外をスローすることは、 + 全くお勧めできません。 - + オートロードの例 @@ -61,7 +54,7 @@ MyClass1.php および MyClass2.php からロードします。 - + - 5.3.0 以降での例外処理つきのオートロード - - この例は、例外をスローして try/catch ブロックの動きを示します。 - - + Composerのオートローダーの利用 + + &link.composer; は vendor/autoload.php ファイルを生成します。 + これは Composer によって管理されているパッケージを自動的に読み込むよう設定されています。 + このファイルを読み込むことで、これらのパッケージを追加の作業なしで利用できるようになります。 + + getMessage(), "\n"; -} -?> -]]> - - &example.outputs; - - - - - - 5.3.0 以降での例外処理つきのオートロード - 独自の例外が見つからない場合 - - この例では、ロードできない独自の例外クラスをスローします。 - - -getMessage(), "\n"; -} +echo "Generated new UUID -> ", $uuid->toString(), "\n"; ?> ]]> - &example.outputs; - - - @@ -167,6 +119,7 @@ Fatal error: Class 'MissingException' not found in testMissingException.php on l unserialize unserialize_callback_func + unserialize_max_depth spl_autoload_register spl_autoload __autoload diff --git a/language/oop5/basic.xml b/language/oop5/basic.xml index a31ff774cd..6a29bacf11 100644 --- a/language/oop5/basic.xml +++ b/language/oop5/basic.xml @@ -1,7 +1,7 @@ - - + + クラスの基礎 @@ -16,6 +16,8 @@ クラス名には、PHP の予約語 以外でラベルとして有効なあらゆる名前を使用することができます。 + PHP 8.4.0 以降では、アンダースコア (_) + 1文字のみのクラス名は非推奨となりました。 有効なクラス名は、先頭が文字あるいはアンダースコアで始まり、 その後に任意の数の文字/数字/アンダースコアが続くものです。 正規表現で表すと、 @@ -49,29 +51,20 @@ class SimpleClass - メソッドがオブジェクトコンテキストからコールされる場合は、 + メソッドがオブジェクトのコンテキストからコールされる場合は、 疑似変数 $this が利用可能です。 - $this は、呼び出し元オブジェクト - (通常は、メソッドが属するオブジェクトですが、 - メソッドが第二のオブジェクトのオブジェクトの - コンテキストから スタティックに - コールされる場合には、別のオブジェクトとなる場合もあります) - への参照です。 - PHP 7.0.0 以降は、スタティックではないメソッドを非互換のコンテキストでスタティックに呼び出すと、 - そのメソッド内では $this が未定義の状態になります。 - スタティックではないメソッドの、非互換なコンテキストにおけるスタティック呼び出しは PHP 5.6.0 で非推奨になりました。 - PHP 7.0.0 ではさらに、コンテキストの互換・非互換にかかわらず、 - スタティックではないメソッドのスタティック呼び出し全般が非推奨となりました。 - PHP 5.6.0 より前のバージョンでも、これらは既に strict 通知が出ていたものです。 + $this は、呼び出し元オブジェクトの値です。 - + + + static でないメソッドを static メソッドとしてコールすると、 + Error がスローされます。 + PHP 8.0.0 より前のバージョンでは、推奨されない警告が発生し、 + $this が未定義になっていました。 + <varname>$this</varname> 疑似変数の例 - - この例は、error_reporting が無効になっていることを前提としています。 - これが有効になっている場合、PHP のバージョンによって deprecated や strict の通知が出るでしょう。 - - + bar(); B::bar(); ?> ]]> - - &example.outputs.5; - + + &example.outputs.7; + - - &example.outputs.7; + + &example.outputs.8; - - + + + + 読み取り専用クラス + + PHP 8.2.0 以降では、 + クラスに対して readonly を指定することができます。 + クラスに対して readonly を指定すると、 + 宣言されている全ての プロパティに対して readonly を指定した ことになり、 + かつ 動的なプロパティ の作成を禁止したことになります。 + さらに、AllowDynamicProperties + アトリビュートを指定しても動的なプロパティを作成できなくなります。 + 動的なプロパティを作成しようとすると、コンパイル時にエラーが発生します。 + + + + +]]> + + + + + 型を指定していないプロパティや、 + static プロパティ に対しては readonly を指定できません。 + readonly クラスには、それらをいずれも指定できません: + + + + +]]> + + + +]]> + + + + readonly を指定したクラスは、 + 子クラスでも readonly を指定した場合にのみ + 継承 できます。 + + + new @@ -138,7 +205,7 @@ $this is not defined. 例外をスローするような コンストラクタを定義していない限り、 オブジェクトが常に生成されます。 - クラスは、そのインスタンスを作成する前に定義しなければなりません + クラスは、そのインスタンスを作成する前に定義すべきです (これが必須となる場合もあります)。 @@ -159,15 +226,71 @@ $this is not defined. ]]> + + PHP 8.0.0 以降では、 + new を任意の式と一緒に使う機能がサポートされました。 + これによって、式が文字列を生成する場合に、 + より複雑なインスタンス化を行えるようになります。 + 式は括弧で囲まなければいけません。 + + + 任意の式を使ってインスタンスを生成する + + 以下の例では、 + クラス名を生成する有効な任意の式を複数示します。 + 関数呼び出し、文字列連結、そして + ::class 定数です。 + + + +]]> + + &example.outputs.8; + + + + クラスのコンテキストにおいては、 new selfnew parent @@ -186,6 +309,9 @@ $instance = new $className(); // new SimpleClass() - PHP 5.3.0 以降では、オブジェクトのインスタンスを作成する別の方法が新たに導入されました。 + 複数のやり方で、オブジェクトのインスタンスを作ることが出来ます: 新しいオブジェクトの作成 ]]> @@ -256,21 +383,25 @@ bool(true) - PHP 5.4.0 以降では、新しく作成したオブジェクトのメンバーに、作成したその式の中でもアクセスできるようになりました。 + 新しく作成したオブジェクトのメンバーに、作成したその式の中でもアクセスすることができます。 新しく作成したオブジェクトのメンバーへのアクセス format('Y'); +echo (new DateTime())->format('Y'), PHP_EOL; + +// PHP 8.4.0 以降、囲む括弧は省略可能です。 +echo new DateTime()->format('Y'), PHP_EOL; ?> ]]> &example.outputs.similar; @@ -321,7 +452,7 @@ method これはつまり、プロパティに 無名関数 を代入した場合に、その関数は直接呼び出せないということです。 その場合は、たとえば事前にプロパティを変数に代入しておく必要があります。 - PHP 7.0.0 からは、括弧で囲むことでプロパティを直接呼び出せるようになりました。 + 括弧で囲むと、プロパティを直接呼び出すこともできます。 プロパティに格納した無名関数の呼び出し @@ -341,11 +472,6 @@ class Foo $obj = new Foo(); -// PHP 5.3.0 以降 -$func = $obj->bar; -echo $func(), PHP_EOL; - -// PHP 7.0.0 以降では、このようにすることもできます echo ($obj->bar)(), PHP_EOL; ]]> @@ -359,33 +485,43 @@ echo ($obj->bar)(), PHP_EOL; + + extends - クラスは、宣言部に extends キーワードを含めることで、他のクラスのメソッドと - プロパティを継承することができます。多重継承を行うことはできず、クラスが継承できるベース + クラスは、宣言部に extends キーワードを含めることで、 + 他のクラスの定数や、メソッド、 + およびプロパティを継承することができます。多重継承を行うことはできず、クラスが継承できるベース クラスは一つだけです。 - 継承されたメソッドやプロパティをオーバーライドするには、 + 継承された定数やメソッド、プロパティをオーバーライド(上書き)するには、 親クラスで定義されているのと同じ名前でそれを再宣言します。 - しかし、親クラスでそのメソッドが + しかし、親クラスでそのメソッドや定数が final - 定義されている場合はオーバーライドできません。 - オーバーライドされた元のメソッドや静的プロパティにアクセスするには、 + として定義されている場合はオーバーライドできません。 + オーバーライドされた元のメソッドやstaticプロパティにアクセスするには、 parent:: で参照します。 - - メソッドをオーバーライドするときには、パラメータのシグネチャも同じでなければなりません。 - もし違っていれば、PHP は E_STRICT - レベルのエラーとなります。ただしコンストラクタは例外で、 - 異なるパラメータでオーバーライドすることができます。 - + + + PHP 8.1.0 以降では、定数も final として宣言できます。 + + 簡単なクラスの継承 displayVar(); + + + シグネチャの互換性に関するルール + + メソッドをオーバーライドするときは、 + 子クラスのシグネチャが親クラスのそれと互換性がなければいけません。 + 互換性が壊れた場合、致命的なエラーが発生します。 + PHP 8.0.0 より前のバージョンでは、 + 互換性が壊れた場合に、E_WARNING レベルの警告が発生していました。 + 共変性と反変性 + の規則を守っている場合は、シグネチャに互換性があります。 + 必須の引数をオプションにした場合も、互換性があります。 + 新しいオプションの引数を追加しただけで、アクセス権を厳しくせず、 + 緩めただけの場合も互換性があります。 + これは、リスコフの置換原則(Liskov Substitution Principle)、 + 略して LSP として知られています。 + 但し、コンストラクタ + と private メソッドについては、 + この規則の例外で、 + オーバライドしたシグネチャにミスマッチがあっても致命的なエラーにはなりません。 + + + 互換性がある子クラスのメソッド + +foo(); +$extended2 = new Extend2(); +$extended2->foo(1); +]]> + + &example.outputs; + + + + + + + 次の例は、引数を削除した子クラスのメソッドや、 + オプションの引数を必須にしたりすることが、親クラスのメソッドと互換性がなくなることを示しています。 + + + 子クラスのメソッドで引数を削除すると致命的なエラーになる + + + + &example.outputs.8.similar; + + + + + + 子クラスのメソッドで、オプションの引数を必須にすると致命的なエラーになる + + + + &example.outputs.8.similar; + + + + + + + + メソッドの引数の名前を子クラスで変更しても、 + シグネチャ上は非互換になりません。 + しかし、こうしてしまうと + 名前付き引数 + を使った時に実行時エラーになるので、おすすめできません。 + + + 子クラスで引数の名前を変更し、かつ名前付き引数を使うとエラーになる + +test(foo: "foo", bar: "bar"); // エラー発生! +]]> + + &example.outputs.similar; + + + + + + ::class - PHP 5.5 以降では、class キーワードでクラス名の解決ができるようになりました。 - ClassName クラスの完全修飾名を文字列で取得するには、 - ClassName::class とします。 - これは、 - 名前空間つきのクラスと組み合わせると特に便利です。 + class キーワードでもクラス名の解決を行うことが出来ます。 + クラスの名前が ClassName になっているクラスの完全修飾名を取得するには、 + ClassName::class を使います。 + これは、名前空間付きのクラスに使うと特に便利です。 @@ -451,9 +742,103 @@ NS\ClassName 結果的に、クラスがまだ存在しない時点でクラス名が展開されることになります。 この場合にはエラーは発生しません。 + + クラス名が存在しない場合の名前解決 + + +]]> + + &example.outputs; + + + + + + PHP 8.0.0 以降では、 + ::class はオブジェクトに対しても使えるようになりました。 + この名前解決はコンパイル時ではなく、実行時に行われます。 + この場合、get_class をオブジェクトに対して使った時と同じ動きをします。 + + + オブジェクトの名前解決 + + +]]> + + &example.outputs; + + + + - + + nullsafe メソッドとプロパティ + + PHP 8.0.0 以降では、プロパティやメソッドは + "nullsafe" 演算子 ?-> を使ってアクセスすることもできます。 + nullsafe 演算子は既に述べたメソッドやプロパティと同じように振る舞いますが、 + オブジェクトが &null; と評価された場合に、例外はスローされず、 + &null; が返される点だけが異なります。 + オブジェクトの評価がチェインの一部だった場合は、 + 残りのチェインはスキップされます。 + + + この演算子の働きは、 + オブジェクトにアクセスするたびに is_null でラップするコードに似ています。 + しかし、よりコンパクトです。 + + + + nullsafe 演算子 + +getUser(5)?->name; + +// これは、以下のコードチェックと同等です: +if (is_null($repository)) { + $result = null; +} else { + $user = $repository->getUser(5); + if (is_null($user)) { + $result = null; + } else { + $result = $user->name; + } +} +?> +]]> + + + + + + nullsafe 演算子は、プロパティやメソッドが値を返す際、 + null が正しく、期待されうる値とみなせる場合に一番よく使います。 + エラーを示すためなら、例外をスローするほうが好ましいです。 + + + + - + @@ -19,6 +19,30 @@ + + 8.4.0 + + プロパティフック がサポートされました。 + + + + 8.4.0 + + レイジーオブジェクトがサポートされました。 + + + + 8.1.0 + + 追加: クラスの定数に対して、final が指定できるようになりました。インターフェイスの定数も、デフォルトでオーバーライドできるようになりました。 + + + + 8.0.0 + + 追加: &null; になる可能性があるオブジェクトのメソッドやプロパティにアクセスする手段として、nullsafe 演算子 ?-> をサポートしました。 + + 7.4.0 @@ -270,7 +294,7 @@ 5.3.0 追加: ヒアドキュメント - および Nowdoc + および Nowdoc の、クラス定数やプロパティの定義での使用。 注意: ヒアドキュメントの値は、ダブルクォートで囲んだ文字列と同じ規則に従わなければなりません (その中で変数を使えないなど)。 diff --git a/language/oop5/cloning.xml b/language/oop5/cloning.xml index 04d6dd3bc9..8d584e3696 100644 --- a/language/oop5/cloning.xml +++ b/language/oop5/cloning.xml @@ -1,6 +1,7 @@ - + + オブジェクトのクローン作成 @@ -24,7 +25,6 @@ オブジェクトのコピーは、clone キーワード (これは、そのオブジェクトの __clone() メソッドがある場合にこれをコールします)により作成されます。 - オブジェクトの __clone() メソッドを直接コールすることはできません。 @@ -93,10 +93,10 @@ $obj->object2 = new SubObject(); $obj2 = clone $obj; -print("元のオブジェクト\n"); +print "元のオブジェクト\n"; print_r($obj); -print("クローンオブジェクト\n"); +print "クローンオブジェクト\n"; print_r($obj2); ?> @@ -140,7 +140,7 @@ MyCloneable Object - PHP 7.0.0 以降では、新しくクローンしたオブジェクトのメンバーに、作成したその式の中でもアクセスできるようになりました。 + 新しくクローンしたオブジェクトのメンバーに、作成したその式の中でもアクセスできます: クローンしたオブジェクトのメンバーへのアクセス diff --git a/language/oop5/constants.xml b/language/oop5/constants.xml index 2c3eb7d35c..ec0a493249 100644 --- a/language/oop5/constants.xml +++ b/language/oop5/constants.xml @@ -1,36 +1,41 @@ - - + - オブジェクト定数 + クラス定数 - 値が変更できない定数をクラス内に定義することができます。 - 定数は、通常の変数とは異なり、定義または使用する際に - $ 記号を付けません。 - クラス定数のデフォルトのアクセス範囲は public です。 - - - 定義する値は定数表現である必要があり、(例えば)変数・プロパティ - あるいは関数のコールなどであってはいけません。 + 値が変更できない 定数 をクラス内に定義することができます。 + クラス定数のデフォルトのアクセス範囲は public です。 + - インターフェイスに 定数 を持たせることもできます。 - インターフェイスについてのドキュメント - で例をごらんください。 - - - PHP 5.3.0 以降では、変数を用いてクラスを参照することも可能です。 - 変数の値に (selfparent、 - static といった) - キーワードを指定することはできません。 + クラス定数は、子クラスで再定義することもできます。 + PHP 8.1.0 以降では、final + として定義されたクラス定数は、子クラスで再定義できません。 + + + インターフェイスに定数を持たせることもできます。 + インターフェイスについてのドキュメント + で例を御覧ください。 + + + 変数を用いてクラスを参照することも可能です。 + 変数の値に (selfparent、 + static といった) + キーワードを指定することはできません。 + クラス定数はクラス単位で割り当てられるものです。インスタンス単位ではないことに注意しましょう。 - + + PHP 8.3.0 以降では、クラス定数は bool, + int, float, string, array のようなスカラー型を持つことができます。 + array を使う場合、その内容は他のスカラー型に限ります。 + + 定数の定義と使用 - + showConstant(); -echo $class::CONSTANT."\n"; // PHP 5.3.0 以降で対応 +echo $class::CONSTANT."\n"; ?> ]]> - - - 静的なデータの例 - - -]]> - - - - - ヒアドキュメントや Nowdoc を用いた定数の初期化は PHP 5.3.0 以降で使えるようになりました。 - - - PHP 5.5.0 以降では、特別な ::class 定数が使用可能です。 - この定数により、コンパイル時の完全修飾クラス名が解決できます。 + 特別な ::class 定数を使うと、 + コンパイル時の完全修飾クラス名が解決できます。 これは名前空間クラスに役立ちます。 @@ -100,15 +80,14 @@ namespace foo { ]]> + - 定数式の例 + クラス内での定数式の例 ]]> - - クラス定数のコンテキストで、数値リテラルや文字列リテラルそして定数を含むスカラー式を指定できます。 - - - - 定数における式のサポートは PHP 5.6.0 で追加されました。 - - - クラス定数のアクセス範囲 + PHP 7.1.0 以降の、クラス定数のアクセス範囲 + + PHP 8.3.0 以降で行われる、クラス定数のアクセス権の関係チェック + + +]]> + + &example.outputs.83; + + + + + + + PHP 8.3.0 以降では、アクセス権の関係がより厳密にチェックされるようになりました。 + これより前のバージョンでは、 + クラス定数のアクセス権は、インターフェイスを実装した側の定数のそれと異なっていても問題ありませんでした。 + + + + PHP 8.3.0 以降で有効な、クラス定数を取得する文法 + + +]]> + + + + + PHP 8.3.0 以降では、クラス定数は変数を使って動的に取得できます。 + + + + PHP 8.3.0 以降で有効な、クラス定数の型付け + + +]]> + + &example.outputs.83; + + + bool(true) + [1]=> + int(1) + [2]=> + float(1.01) + [3]=> + string(3) "one" +} + ]]> + + - + @@ -10,11 +10,10 @@ コンストラクタ void__construct - mixedargs"" - ... + mixedvalues"" - PHP 5 では、開発者がクラスのコンストラクタメソッドを宣言することが + PHP では、開発者がクラスのコンストラクタメソッドを宣言することが できます。コンストラクタメソッドを有するクラスは、新たにオブジェクトが 生成される度にこのメソッドをコールします。これにより、 そのオブジェクトを使用する前に必要な初期化を行うことができます。 @@ -32,7 +31,7 @@ - 新しい統一されたコンストラクタを使用する + 継承とコンストラクタ - - PHP 3 や PHP 4 との下位互換性を維持するため、もし PHP がクラスの - __construct() 関数を見つけられない場合は、 - 古い形式のコンストラクタ (つまりクラス名と同じ名前の関数)を捜します。 - 事実上、互換性の問題が発生する可能性があるのは、 - そのクラスが __construct() という名前のメソッドを - 異なる用途で用いてる場合だけです。 - - - - - 古い形式のコンストラクタは PHP 7.0 で 非推奨 となりました。 - 将来のバージョンで削除されるでしょう。新しいコードでは常に - __construct() を使うべきです。 - - - 他のメソッドと異なり、親の __construct() - と異なるパラメータで __construct() - をオーバーライドしても PHP は - E_STRICT エラーメッセージを出しません。 + 他のメソッドと異なり、__construct() + を子クラスでオーバライドしても、 + シグネチャの互換性に関するルール は適用されません。 - PHP 5.3.3 以降、名前空間つきのクラス名の最後の部分と同じ名前のメソッドは - コンストラクタとみなされなくなりました。 - 名前空間を使っていないクラスは今までと変わりません。 + コンストラクタは、対応するオブジェクトを初期化する間に呼び出されるメソッドです。 + よって、任意の数の引数を取ることが出来ます。 + この引数は必須にすることもできますし、型宣言もできますし、デフォルト値を取ったりすることもできます。 + コンストラクタの引数は、クラス名の後の括弧に、引数を置くことで指定することが出来ます。 - 名前空間つきのクラスのコンストラクタ + コンストラクタを引数と一緒に使う x = $x; + $this->y = $y; } } + +// 引数を両方渡す +$p1 = new Point(4, 5); +// 必須の引数のみを渡す。$y はデフォルト値0になります。 +$p2 = new Point(4); +// 名前付き引数(PHP 8.0 以降): +$p3 = new Point(y: 5, x: 4); ?> ]]> - + + クラスにコンストラクタが存在しない場合、あるいは、コンストラクタに必須の引数がない場合、 + 括弧は省略できます。 + + + 古いスタイルのコンストラクタ + + PHP 8.0.0 より前のバージョンでは、グローバル名前空間にあるクラスは、 + クラス名と同じ名前のメソッドが古いスタイルのコンストラクタとして解釈されます。 + この文法は推奨されておらず、E_DEPRECATED が発生するものの、 + まだこの関数をコンストラクタとして呼び出すことが出来ます。 + __construct() + とクラス名と同じ名前のメソッドが両方定義されていた場合は、 + __construct() がコンストラクタとして呼び出されます。 + + + 名前空間の中に存在するクラスについては、 + PHP 8.0.0 以降では、 + クラス名と同じ名前のメソッドはなんの意味も持ちません。 + + 新しいコードでは、常に __construct() を使うようにしましょう。 + + + + コンストラクタのプロモーション + + PHP 8.0.0 以降では、コンストラクタの引数を + 対応するオブジェクトのプロパティに昇格させることができます。 + コンストラクタの引数をプロパティに代入し、それ以外の操作を行わないことはよくあることです。 + コンストラクタのプロモーションは、こういった場合の短縮記法を提供します。 + 「コンストラクタを引数と一緒に使う」の例は、次のように書き直すことが出来ます。 + + + コンストラクタのプロモーションを使う + + + + + + コンストラクタの引数に修飾子が含まれている場合、 + PHP はそれをオブジェクトのプロパティ、かつコンストラクタの引数であると解釈します。 + そして、その引数の値をプロパティに代入します。 + コンストラクタの本体は空にすることもできますし、 + 他の文を含めることも出来ます。 + 引数の値が対応するプロパティに代入された後、 + 追加の文が実行されます。 + + + 全ての引数をプロパティに昇格させる必要はありません。 + 昇格させる引数と、させない引数を混ぜることもできます。 + プロパティに昇格した引数は、コンストラクタの呼び出しコードになんの影響も与えません。 + + + + アクセス権 + の修飾子 (public, + protected, private) + を使うことが、プロパティの昇格を行わせるもっとも適したやり方ですが、 + 他にも (readonly のような) 単一の修飾子を使っても、 + 同じ昇格の効果が得られます。 + + + + + PHP のエンジンが曖昧になってしまうため、 + オブジェクトのプロパティは、callable 型にすることは出来ません。 + そのため、昇格させる引数も callable 型にはできません。 + しかし、それ以外の + 型宣言 は許されています。 + + + + + コンストラクタで昇格したプロパティはプロパティと関数のパラメータ両方に戻されるので、プロパティとパラメータの両方に対するあらゆる命名規則が適用されます。 + + + + + 昇格したコンストラクタの引数に指定された + アトリビュート は、 + プロパティと引数の両方にコピーされます。 + 昇格したコンストラクタの引数に指定されたデフォルト値は、 + 引数にだけコピーされます。プロパティにはコピーされません。 + + + + + + 初期化時の new キーワード + + PHP 8.1.0 以降では、 + 引数のデフォルト値の初期化時、 + static 変数の初期化時、 + グローバルな定数の初期化時に、 + new を指定したオブジェクトが使えます。 + 同じものを、アトリビュートの引数や + define に渡せるようにもなっています。 + + + + この文脈で、動的なクラス名、文字列でないクラス名、 + 無名クラスを指定することはできません。 + また、配列で引数を展開させることはできません。 + 未サポートの式を引数に指定することもできません。 + + + + 初期化時に new キーワードを使う + + +]]> + + + + + + static な生成メソッド + + PHP は、クラスひとつにつき、コンストラクタをひとつだけサポートしています。 + しかし、場合によっては異なる入力を使い、 + 異なるやり方でオブジェクトを生成させるのが望ましい場合もあります。 + その場合におすすめなのが、staticメソッドをコンストラクタのラッパーとして使うことです。 + + + static な生成メソッドを使う + +1005Elephpant"; + +class Product { + + private ?int $id; + private ?string $name; + + private function __construct(?int $id = null, ?string $name = null) { + $this->id = $id; + $this->name = $name; + } + + public static function fromBasicData(int $id, string $name): static { + $new = new static($id, $name); + return $new; + } + + public static function fromJson(string $json): static { + $data = json_decode($json, true); + return new static($data['id'], $data['name']); + } + + public static function fromXml(string $xml): static { + $data = simplexml_load_string($xml); + $new = new static(); + $new->id = (int) $data->id; + $new->name = $data->name; + return $new; + } +} + +$p1 = Product::fromBasicData(5, 'Widget'); +$p2 = Product::fromJson($some_json_string); +$p3 = Product::fromXml($some_xml_string); + +var_dump($p1, $p2, $p3); +]]> + + + + コンストラクタは外部から呼ばれることを防ぐため、private または protected にしておきます。 + この場合、staticメソッドだけがクラスをインスタンス化するのに使えます。 + なぜなら、staticメソッドは、同じオブジェクトのインスタンスでなくとも、 + private なメソッドにアクセスできる同じクラスのメソッド定義として存在するからです。 + コンストラクタを private にすることはオプションです。使い方によっては意味がないかもしれません... + + + 上の public なstaticメソッドは、オブジェクトをインスタンス化する3つの異なるやり方を示しています。 + + + fromBasicData() は、必要となる必須の引数を取り、 + コンストラクタを呼ぶことでオブジェクトを生成し、その結果を返します。 + fromJson() は、JSON文字列を受け取り、 + コンストラクタで必要なフォーマットに変換するための前処理を行います。 + その上で、新しいオブジェクトを返します。 + fromXml() は、XML文字列を受け取り、前処理をします。 + そして生のオブジェクトを生成します。コンストラクタは呼び出されていますが、 + 全ての引数はオプションなので、その実行はスキップされます。 + 結果を返す前に、オブジェクトのプロパティに直接値を代入しています。 + + + 上の3つの場合全てで、static キーワードはコードが存在するクラスの名前として解釈されます。 + この場合は Product です。 + + + デストラクタ @@ -119,8 +334,8 @@ class Bar { - PHP 5 では、C++ のような他のオブジェクト指向言語に似た概念のデストラクタが - 導入されました。デストラクタメソッドは、 + PHP には、C++ のような他のオブジェクト指向言語に似たデストラクタの概念があります。 + デストラクタメソッドは、 特定のオブジェクトを参照するリファレンスがひとつもなくなったときにコールされます。 あるいは、スクリプトの終了時にも順不同でコールされます。 @@ -166,6 +381,20 @@ $obj = new MyDestructableClass(); HTTP ヘッダはすでに送信されています。スクリプトのシャットダウン時の作業ディレクトリは、 SAPI によっては (たとえば Apache など) 異なります。 + + デストラクタが自身のオブジェクトへの新しい参照を作成した場合、参照カウントが再びゼロになったときや + シャットダウンシーケンス中に、再度呼び出されることはありません。 + + + PHP 8.4.0 以降、 ガベージサイクルの収集 が + ファイバーの実行中に発生した場合、 + 回収がスケジュールされたオブジェクトのデストラクタは、 gc_destructor_fiberと呼ばれる + 別のファイバー内で実行されます。 + このファイバーが中断された場合、残りのデストラクタを実行するために新しいファイバーが作成されます。 + 中断された gc_destructor_fiber はガベージコレクタによって参照されなくなり、 + 他の参照がなければ回収される可能性があります。 + デストラクタが中断されたオブジェクトは、デストラクタが復帰するかファイバー自体が回収されるまで回収されません。 + diff --git a/language/oop5/final.xml b/language/oop5/final.xml index 921fab2383..5152fae5dd 100644 --- a/language/oop5/final.xml +++ b/language/oop5/final.xml @@ -1,12 +1,12 @@ - + finalキーワード - PHP 5 ではキーワード final が導入され、 - final を前に付けて定義されたメソッドは子クラスから上書きできません。 + キーワード final + を前に付けて定義されたメソッドやプロパティ、定数は、子クラスから上書きできません。 クラス自体がfinalと定義された場合には、このクラスを拡張することはできません。 @@ -47,7 +47,7 @@ final class BaseClass { echo "BaseClass::test() called\n"; } - // Here it doesn't matter if you specify the function as final or not + // As the class is already final, the final keyword is redundant final public function moreTesting() { echo "BaseClass::moreTesting() called\n"; } @@ -61,14 +61,55 @@ class ChildClass extends BaseClass { - - - プロパティと定数を final として宣言することはできません。 - final として宣言できるのはクラスとメソッドのみです。 - - + + finalプロパティの例(PHP 8.4.0 以降) + + +]]> + + + + final定数の例(PHP 8.1.0 以降) + + +]]> + + + + + + PHP 8.0.0 以降は、private メソッドを final として宣言できるのはコンストラクタだけになりました。 + + + + + private(set) として宣言されたプロパティは暗黙的にfinalになります。 + + - - + オブジェクトの継承 @@ -10,7 +10,7 @@ 例えば、クラスを拡張するとき、サブクラスは親クラスから - public と、protected のメソッドをすべてを引き継ぎます。 + public と、protected のメソッドや、プロパティや定数をすべて引き継ぎます。 (子の)クラスが親のメソッドを上書きしない限り、 親のメソッドの機能が保持されます。 @@ -19,6 +19,35 @@ また、同じようなオブジェクトに機能を追加する際に、 共通機能を再実装する必要がなくなります。 + + 親クラスの private メソッドは、子クラスからアクセスすることができません。 + その結果として、子クラスは通常の継承のルールを無視して + private メソッドそのものを再実装することができてしまいます。 + しかし、PHP 8.0.0 より前のバージョンでは、 + finalstatic + に関連する制限が private メソッドに適用されていました。 + PHP 8.0.0 以降では、private メソッドの規則が強制されるのは + private final + として宣言されたコンストラクタのみになりました。 + なぜなら、static として宣言されたファクトリメソッドを使う場合に、 + コンストラクタを無効にする方法として private final + が用いられるからです。 + + + メソッドやプロパティ、そして定数の + アクセス権 + に関するルールは、子クラスで緩めることが可能です。 + たとえば、 + 親クラスで protected なメソッドは + 子クラスで public としてマークできます。 + しかし、厳しくすることはできません。 + つまり、親クラスで public なプロパティを + 子クラスで private にすることはできません。 + これの例外はコンストラクタです。 + コンストラクタのアクセス権は厳しくすることができます。 + たとえば、親クラスの public なコンストラクタは、 + 子クラスで private としてマークできます。 + @@ -29,14 +58,35 @@ この規則が適用されるのは、別のクラスやインターフェイスを継承したクラスです。 - - - - 継承の例 + + + 読み取りと書き込みが両方可能なプロパティを、 + readonly として上書きしてはいけません。逆も同じです。 + readonly + public readonly int $prop; +} +?> +]]> + + + + + + + 継承の例 + +printPHP(); // 出力: 'PHP is great' $bar->printItem('baz'); // 出力: 'Bar: baz' $bar->printPHP(); // 出力: 'PHP is great' +?> +]]> + + + + + 内部クラスと戻り値の型の互換性 + + + PHP 8.1 より前のバージョンでは、 + ほとんどの内部クラスやメソッドは戻り値の型を宣言していませんでしたし、 + それらを継承する際にもあらゆる戻り値の型を指定することができていました。 + + + + PHP 8.1.0 以降では、 + ほとんどの内部メソッドが、戻り値の型を "とりあえず" + 宣言するようになりました。 + この場合、それらを継承したメソッドの戻り値の型は、 + 親と互換性があるものにすべきです。 + そうしない場合、推奨されない警告が発生します。 + 注意すべきなのは、明示的に戻り値の型を宣言していない場合でも、 + シグネチャが一致していないとみなされ、 + 推奨されない警告が発生することです。 + + + + PHP のバージョン間の互換性を保ちたいがために、 + 戻り値の型を宣言できない場合、 + アトリビュート ReturnTypeWillChange + を追加することで警告を抑止できます。 + + + + 戻り値の型を宣言せずにメソッドをオーバーライドする場合 + + +]]> + + + + + 間違った型を宣言してメソッドをオーバーライドする場合 + + +]]> + + + + + 間違った型を宣言してメソッドをオーバーライドする場合でも、警告を抑制する + + ]]> + + - + オブジェクト インターフェイス - オブジェクトインターフェイスにより、あるクラスが実装する必要があるメソッドの - 種類を、これらのメソッドの実装を定義することなく、指定するコードを作成できる - ようになります。 + オブジェクト インターフェースでは、クラスが実装すべきメソッドやプロパティの + 宣言だけを行うコードを作成できます。ここでは具体的な実装は必要ありません。 + インターフェイスはクラス、トレイト、列挙型と名前空間を共有するので、 + それらと同じ名前を使ってはいけません。 インターフェイスは通常のクラスと同様に定義することができますが、 キーワード class のかわりに interface - を用います。またメソッドの実装は全く定義されません。 + を用います。またメソッドの実装は全く定義しません。 - インターフェイス内で宣言される全てのメソッドはpublicである必要があります。 + インターフェイス内で宣言される全てのメソッドは public である必要があります。 これは、インターフェイスの特性によります。 - コンストラクタ - をインターフェイスで宣言できることに注意して下さい。 - これはたとえばファクトリで使う場合など、コンテクストによっては役に立ちます。 + インターフェイスには、ふたつの互いを補完する役割があります。 + + + + 同じインターフェイスを実装していることで、 + 開発者が交換可能な異なるクラスを作成できるようにします。 + 同じインターフェイスを持つクラスによくある例として、 + 複数のデータベースにアクセスするサービスや + 決済のゲートウェイ、 + 異なるキャッシュ戦略が挙げられます。 + 実装が異なっていても、 + それを使うコードに変更を加えることなく、それらを交換することができます。 + + + メソッドや関数が、インターフェイスを満たす引数を受け付け、 + 操作できるようにします。 + オブジェクトが何をするのかや、 + どう実装されているのかを気にする必要はありません。 + 振る舞いの重要性を説明するために、 + Iterable や + Cacheable、 + Renderable のような名前が付けられることがよくあります。 + + + + インターフェイスは、 + マジックメソッド + を宣言しても問題ありません。 + + + コンストラクタ + をインターフェイスで宣言できますが、全くおすすめできません。 + そうしてしまうと、 + インターフェイスを実装するクラスの柔軟性が大きく損なわれる上、 + コンストラクタには継承ルールが適用されないため、 + 一貫しない、予期せぬ結果を生む可能性があるからです。 + + + <literal>implements</literal> @@ -35,12 +72,18 @@ 各インターフェイスをカンマで区切って指定することで、 クラスは複数のインターフェイスを実装することができます。 - + - PHP 5.3.9 より前のバージョンでは、ひとつのクラスの中で同じ名前のメソッドを定義した2つのインターフェイスを実装することはできませんでした。曖昧さを解決できなくなるためです。 - PHP 5.3.9 以後のバージョンでは、同じ名前のメソッドが同じシグナチャを持っている場合に限り、こうした実装を行えるようになっています。 + インターフェイスを実装するクラスでは、 + インターフェイス内の名前とは異なる名前を + メソッドの引数に使うことができます。 + しかし、PHP 8.0 以降では + 名前付き引数 + がサポートされています。 + これは、メソッドをコールする側がインターフェイス内の名前に依存する可能性があるということです。 + そうした理由から、開発者は実装されるインターフェイスと同じ引数名を使うことを強く推奨します。 - + クラスと同様、インターフェイスも @@ -50,31 +93,123 @@ - インターフェイスを実装したクラスには、 - そのインターフェイスで定義されているメソッドと、リスコフの置換原則(LSP)と互換性が取れたメソッドシグナチャを使う必要があります。 - そうしなければ致命的なエラーが発生します。 - - + インターフェイスを実装したクラスでは、 + シグネチャの互換性に関するルール + を守った形で、インターフェイス内の全てのメソッドを宣言しなければいけません。 + クラスは、同じ名前のメソッドを定義した複数のインターフェイスを実装することが出来ます。 + この場合、実装されるメソッドは全て、 + シグネチャの互換性に関するルール + に従わなければいけません。 + そうすることで、共変性と反変性 + のルールも適用できます。 + + + - <literal>定数</literal> + 定数 インターフェイスに定数を持たせることもできます。 インターフェイス定数は クラス定数 - とまったく同じように動作します。しかし、 - そのインターフェイスを継承したクラスやインターフェイスから上書きすることはできません。 + とまったく同じように動作します。 + PHP 8.1.0 より前のバージョンでは、 + そのインターフェイスを継承したクラスやインターフェイスから定数をオーバーライドすることができませんでした。 + + プロパティ + + PHP 8.4.0 から、インターフェイスはプロパティを宣言できるようになりました。 + 宣言する場合、そのプロパティの読み取り可否、書き込み可否、あるいは双方を + 指定する必要があります。 + インターフェイスによる宣言は、public な読み書きに対してのみ適用できます。 + + + クラス側でインターフェイスのプロパティ要件を満たすには、 + public な通常のプロパティを定義する、 + 対応するフックを実装する public な + 仮想プロパティ + を定義するなど、複数の方法があります。 + 読み取り用プロパティは readonly プロパティによって満たすこともできます。 + ただし、インターフェイスで「書き込み可能」と宣言されているプロパティを readonly にすることはできません。 + + + インターフェイスのでのプロパティ宣言の例 + + strtoupper($this->writeable); } + + // インターフェイスはこのプロパティが「書き込み可能」であることのみ要求しています。 + // ここに get の動作も含めることは全く問題ありません。 + // この例では仮想プロパティを作成しています。 + public string $writeable { + get => $this->written; + set { + $this->written = $value; + } + } + + // このプロパティは「public に読み書き可能」でなければならないため、 + // get と set の両方を実装する必要があります。 + // デフォルトの動作のままでも問題ありません。 + public string $both { + get => $this->all; + set { + $this->all = strtoupper($value); + } + } +} +?> +]]> + + + &reftitle.examples; - Interface の例 + インターフェイスの例 vars[$name] = $var; } - + public function getHtml($template) { foreach($this->vars as $name => $value) { $template = str_replace('{' . $name . '}', $value, $template); } - + return $template; } } // これは動作しません。 // Fatal error: Class BadTemplate contains 1 abstract methods -// and must therefore be declared abstract (iTemplate::getHtml) -class BadTemplate implements iTemplate +// and must therefore be declared abstract (Template::getHtml) +class BadTemplate implements Template { - private $vars = array(); - + private $vars = []; + public function setVariable($name, $var) { $this->vars[$name] = $var; @@ -122,18 +257,18 @@ class BadTemplate implements iTemplate +]]> + + + + 共変性を保った形で、複数のインターフェイスを実装する + + ]]> @@ -164,22 +326,22 @@ class d implements b +]]> + + + + 抽象クラスとインターフェイス + + +]]> + + + + 継承と実装を同時に行う + + ]]> - インターフェイスとタイプヒンティングを組み合わせると、 + インターフェイスと型宣言を組み合わせると、 特定のオブジェクトに特定のメソッドをうまく持たせることができます。 instanceof 演算子および - タイプヒンティング + 型宣言 を参照ください。 diff --git a/language/oop5/iterations.xml b/language/oop5/iterations.xml index af871e8015..31ef2e23a0 100644 --- a/language/oop5/iterations.xml +++ b/language/oop5/iterations.xml @@ -1,12 +1,12 @@ - - + + オブジェクトの反復処理 - PHP 5 は、たとえば &foreach; 命令などによる反復処理を可能とするよう + PHP は、たとえば &foreach; 命令などによる反復処理を可能とするように、 オブジェクトを定義する手段を提供します。 デフォルトで、 全ての アクセス権限がある @@ -14,7 +14,7 @@ - Simple Object Iteration + 単純なオブジェクトの反復の例 private var アクセス権がある プロパティについて行われています。 - - さらに、Iterator - インターフェイス - も実装できます。 - これを実装すれば、オブジェクトの反復処理の方法や処理中に取得できる値を決めることができます。 - - - - Iteratorを実装するオブジェクトの反復処理 - -var = $array; - } - } - - public function rewind() - { - echo "rewinding\n"; - reset($this->var); - } - - public function current() - { - $var = current($this->var); - echo "current: $var\n"; - return $var; - } - - public function key() - { - $var = key($this->var); - echo "key: $var\n"; - return $var; - } - - public function next() - { - $var = next($this->var); - echo "next: $var\n"; - return $var; - } - - public function valid() - { - $key = key($this->var); - $var = ($key !== NULL && $key !== FALSE); - echo "valid: $var\n"; - return $var; - } - -} - -$values = array(1,2,3); -$it = new MyIterator($values); - -foreach ($it as $a => $b) { - print "$a: $b\n"; -} -?> -]]> - - &example.outputs; - - - - - - - Iterator のすべてのメソッドを実装するかわりに、 - IteratorAggregate - インターフェイス - を使うこともできます。 - IteratorAggregate で実装を要するメソッドは - IteratorAggregate::getIterator だけで、 - このメソッドは Iterator - を実装したクラスのインスタンスを返す必要があります。 - - - - IteratorAggregateを実装するオブジェクトの反復処理 - - items); - } - - public function add($value) { - $this->items[$this->count++] = $value; - } -} - -$coll = new MyCollection(); -$coll->add('value 1'); -$coll->add('value 2'); -$coll->add('value 3'); - -foreach ($coll as $key => $val) { - echo "key/value: [$key -> $val]\n\n"; -} -?> -]]> - - &example.outputs; - - value 1] - -next: value 2 -current: value 2 -valid: 1 -current: value 2 -key: 1 -key/value: [1 -> value 2] - -next: value 3 -current: value 3 -valid: 1 -current: value 3 -key: 2 -key/value: [2 -> value 3] - -next: -current: -valid: -]]> - - - - - + + &reftitle.seealso; - より詳細なイタレータの例については、 - SPL 拡張モジュール - を参照ください。 + + Generators + Iterator + IteratorAggregate + SPL Iterators + - - - - - PHP 5.5 以降を使っている場合は、 - ジェネレータ - についても調べてみるといいでしょう。 - これも、イテレータを定義する方法の一つとして使えます。 - - + diff --git a/language/oop5/late-static-bindings.xml b/language/oop5/late-static-bindings.xml index 5e7178838f..132cb3b0c5 100644 --- a/language/oop5/late-static-bindings.xml +++ b/language/oop5/late-static-bindings.xml @@ -1,20 +1,20 @@ - + 遅延静的束縛 (Late Static Bindings) - PHP 5.3.0 以降、PHP に遅延静的束縛と呼ばれる機能が搭載されます。 + PHP には、遅延静的束縛と呼ばれる機能が搭載されています。 これを使用すると、静的継承のコンテキストで呼び出し元のクラスを参照できるようになります。 より正確に言うと、遅延静的束縛は直近の "非転送コール" のクラス名を保存します。 - 静的メソッドの場合、これは明示的に指定されたクラス (通常は + staticメソッドの場合、これは明示的に指定されたクラス (通常は :: - 演算子の左側に書かれたもの) となります。静的メソッド以外の場合は、そのオブジェクトのクラスとなります。 + 演算子の左側に書かれたもの) となります。staticメソッド以外の場合は、そのオブジェクトのクラスとなります。 "転送コール" とは、self:: や - parent::static:: による静的なコール、 + parent::static:: による :: 演算子を使ったコール。 あるいはクラス階層の中での forward_static_call によるコールのことです。 @@ -29,8 +29,8 @@ その代わりに、実行時情報をもとに解決するようになります。 "静的束縛 (static binding)" の由来は、 - 静的メソッドのコールに使用できることによります - (ただし、静的メソッド以外でも使用可能です)。 + staticメソッドのコールに使用できることによります + (ただし、staticメソッド以外でも使用可能です)。 @@ -46,22 +46,30 @@ ]]> @@ -93,22 +101,30 @@ A ]]> @@ -124,7 +140,7 @@ B 静的でないコンテキストでは、呼び出されるクラスはそのオブジェクトのクラスと同じになります。 $this-> は private メソッドを同じスコープからコールしようとするので、 static:: を使うと異なる結果となります。もうひとつの相違点は、 - static:: は静的なプロパティしか参照できないということです。 + static:: はstaticプロパティしか参照できないということです。 @@ -132,85 +148,108 @@ B foo(); static::foo(); } } -class B extends A { - /* foo() が B にコピーされるので、メソッドのスコープは A のままとなり、 - * コールは成功します */ +class B extends A +{ + /* foo() が B にコピーされるので、メソッドのスコープは A のままとなり、 + * コールは成功します */ } -class C extends A { - private function foo() { +class C extends A +{ + private function foo() + { /* もとのメソッドが置き換えられるので、新しいメソッドのスコープは C となります */ } } $b = new B(); $b->test(); + $c = new C(); -$c->test(); //fails +try { + $c->test(); +} catch (Error $e) { + echo $e->getMessage(); +} + ?> ]]> &example.outputs; - 遅延静的束縛の解決は、静的コールが代替なしに完全に解決された時点で終了します。 + 遅延静的束縛の解決は、:: を使ったコールが代替なしに完全に解決された時点で終了します。 一方、parent::self:: - といったキーワードを使用する静的コールは、コール元の情報を転送します。 + といったキーワードを使用するコールは、コール元の情報を転送します。 転送するコールと転送しないコール ]]> diff --git a/language/oop5/lazy-objects.xml b/language/oop5/lazy-objects.xml new file mode 100644 index 0000000000..e893637e97 --- /dev/null +++ b/language/oop5/lazy-objects.xml @@ -0,0 +1,486 @@ + + + + + + レイジーオブジェクト + + + レイジーオブジェクトは、状態が参照または変更されるまで + 初期化が遅延されるオブジェクトです。ユースケースの例として、 + 必要な時だけ初期化される遅延DIコンポーネント、 + 必要な時だけデータを読み込む遅延ORM、 + 必要な時だけ解析を行う遅延JSONパーサーなどがあります。 + + + + レイジーオブジェクトには、ゴーストオブジェクトとバーチャルプロキシの + 2つの戦略があります。以降 "レイジーゴースト"、 + "レイジープロキシ" と呼びます。 + どちらの戦略の場合も、レイジーオブジェクトには + 最初に状態が参照または変更されたときに自動的に呼び出されるイニシャライザまたはファクトリが + 接続されています。抽象的な観点では、レイジーゴーストオブジェクトは + 非レイジーなものと区別がつかず、レイジーであること意識せず使用できます。 + レイジープロキシも同様に透過的ですが、実体を + 参照する際は注意が必要です。プロキシと実インスタンスは異なる実体を + 持つからです。 + + + + バージョン情報 + + レイジーオブジェクトは、PHP 8.4 で実装されました。 + + + + + レイジーオブジェクトの作成 + + + 任意のユーザー定義クラスやstdClassクラス + (他の内部クラスはサポートされていません)のレイジーインスタンスを作成したり、 + これらのクラスのインスタンスをレイジーにリセットすることが可能です。 + レイジーオブジェクトを作成するエントリーポイントは、 + ReflectionClass::newLazyGhostおよび + ReflectionClass::newLazyProxyメソッドです。 + + + + どちらのメソッドも、オブジェクトの初期化が必要な際に呼び出される関数を + 受け取ります。その関数が要求する動作は、使用する戦略に応じて + 異なります。各メソッドのリファレンスを参照してください。 + + + + レイジーゴーストの作成 + +newLazyGhost(function (Example $object) { + // ここでオブジェクトを初期化 + $object->__construct(1); +}); + +var_dump($lazyObject); +var_dump(get_class($lazyObject)); + +// ここで初期化がトリガーされる +var_dump($lazyObject->prop); +?> +]]> + + &example.outputs; + + +uninitialized(int) +} +string(7) "Example" +Example::__construct +int(1) +]]> + + + + + レイジープロキシの作成 + +newLazyProxy(function (Example $object) { + // 実インスタンスを初期化して返す + return new Example(1); +}); + +var_dump($lazyObject); +var_dump(get_class($lazyObject)); + +// ここで初期化がトリガーされる +var_dump($lazyObject->prop); +?> +]]> + + &example.outputs; + + + uninitialized(int) +} +string(7) "Example" +Example::__construct +int(1) +]]> + + + + + レイジーオブジェクトのプロパティへのアクセスは、初期化をトリガーします + (ReflectionProperty 経由も含む)。 + しかし、特定のプロパティに対してはトリガーしないよう、 + 事前に初期化しておく必要があるかもしれません。 + + + + プロパティを事前に初期化する + +newLazyGhost(function ($post) { + $data = fetch_from_store($post->id); + $post->__construct($data['id'], $data['title'], $data['content']); +}); + +// この行がないと、次のReflectionProperty::setValue()の呼び出しは +// 初期化をトリガーします。 +$reflector->getProperty('id')->skipLazyInitialization($post); +$reflector->getProperty('id')->setValue($post, 123); + +// または、直接以下を使用できます: +$reflector->getProperty('id')->setRawValueWithoutLazyInitialization($post, 123); + +// 事前に設定したidプロパティは初期化をトリガーせずにアクセスできます +var_dump($post->id); +?> +]]> + + + + + ReflectionProperty::skipLazyInitialization および + ReflectionProperty::setRawValueWithoutLazyInitialization + メソッドで、プロパティにアクセスする際の遅延初期化をバイパスできます。 + + + + + レイジーオブジェクトの戦略について + + + レイジーゴーストは、その場で初期化され、 + 初期化後はレイジーでないオブジェクトと区別がつきません。 + この戦略は、オブジェクトのインスタンス化と初期化の両方を + 制御できる場合に適しています。どちらかを制御出来ない場合は + 適していません。 + + + + レイジープロキシは、初期化後、実インスタンスへの + プロキシとして機能します。初期化されたレイジープロキシ上のあらゆる操作は、 + 実インスタンスに転送されます。この戦略は、インスタンスの作成を + 外部に委ねているなど、レイジーゴーストが適さない場合に + 適しています。レイジープロキシはほぼ透過的ですが、インスタンスの実体を + 使用する場合は注意が必要です。プロキシと実インスタンスは異なる + 実体を持つからです。 + + + + + レイジーオブジェクトのライフサイクル + + + オブジェクトは、インスタンス化時に + ReflectionClass::newLazyGhostまたは + ReflectionClass::newLazyProxyを使用して、 + あるいはインスタンス化後に + ReflectionClass::resetAsLazyGhostまたは + ReflectionClass::resetAsLazyProxyを使用して、 + レイジーにできます。その後、以下のいずれかの操作により初期化されます: + + + + + 自動初期化をトリガーする方法でオブジェクトと対話する。 + 初期化トリガーを + 参照してください。 + + + ReflectionProperty::skipLazyInitializationまたは + ReflectionProperty::setRawValueWithoutLazyInitializationを使用して、 + すべてのプロパティを非レイジーとしてマークする。 + + + ReflectionClass::initializeLazyObjectまたは + ReflectionClass::markLazyObjectAsInitializedを + 明示的に呼び出す。 + + + + + すべてのプロパティが非レイジーとしてマークされると、レイジーオブジェクトは + 初期化済とみなされます。従って上記のメソッドは、非レイジーなプロパティがない場合、 + オブジェクトをレイジーとみなしません。 + + + + + 初期化トリガー + + + レイジーオブジェクトは、利用者に対して透過的に設計されているため、 + オブジェクトの状態を参照または変更する通常の操作は、 + その実行の前に自動的に初期化をトリガーします。これには以下の操作が含まれますが、 + これらに限定されません: + + + + + プロパティの読み取りまたは書き込み。 + + + プロパティが設定されているかテスト、またはプロパティの削除。 + + + ReflectionProperty::getValue、 + ReflectionProperty::getRawValue、 + ReflectionProperty::setValue、 + ReflectionProperty::setRawValue + によるプロパティの参照または変更。 + + + ReflectionObject::getProperties、 + ReflectionObject::getProperty、 + get_object_vars + によるプロパティの取得。 + + + Iteratorや + IteratorAggregateを + 実装していないオブジェクトを + foreachでイテレーション。 + + + serialize、 + json_encodeなどでシリアライズ。 + + + クローンの作成。 + + + + + オブジェクトの状態にアクセスしないメソッド呼び出しは初期化を + トリガーしません。同様に、マジックメソッドやフック関数を呼び出す + オブジェクトとの対話も、これらのメソッドや関数がオブジェクトの状態に + アクセスしない限りトリガーしません。 + + + + 初期化をトリガーしない操作 + + + 以下の特定のメソッドや低レベルの操作は、初期化をトリガーせずにレイジー + オブジェクトへのアクセスや変更を可能にします: + + + + + ReflectionProperty::skipLazyInitialization や + ReflectionProperty::setRawValueWithoutLazyInitialization + でプロパティを非レイジーとしてマーク。 + + + get_mangled_object_vars や、 + 配列への変換による + プロパティ内部表現の取得。 + + + ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE + が設定された状態での serialize 。 + ただし __serialize() または + __sleep() が初期化をトリガーしない場合。 + + + ReflectionObject::__toString の呼び出し。 + + + var_dump または + debug_zval_dump 。ただし、 + __debugInfo() が初期化をトリガー + しない場合に限る。 + + + + + + + 初期化シーケンス + + + このセクションでは、初期化がトリガーされたときに実行される操作の順序を + 使用する戦略に応じて説明します。 + + + + ゴーストオブジェクト + + + オブジェクトは非レイジーとしてマークされます。 + + + ReflectionProperty::skipLazyInitializationまたは + ReflectionProperty::setRawValueWithoutLazyInitialization + で初期化されていないプロパティは、デフォルト値があれば + それに設定されます。結果的に、事前に初期化済のプロパティを除き、 + ReflectionClass::newInstanceWithoutConstructor + でと似たオブジェクトになります。 + + + そのオブジェクトをパラメータとして、イニシャライザ関数が呼び出されます。 + この関数は、オブジェクトの状態を初期化することが + 期待されますが、必須ではありません。&null; を返すか、値を返さない必要があります。 + オブジェクトはもはやレイジーではないので、 + 関数はプロパティに直接アクセスできます。 + + + + 初期化後、オブジェクトはレイジーでない場合と + 区別がつきません。 + + + + + プロキシオブジェクト + + + オブジェクトは非レイジーとしてマークされます。 + + + ゴーストオブジェクトとは異なり、この段階でオブジェクトのプロパティは + 変更されません。 + + + オブジェクトがファクトリ関数に入力されます。 + この関数は、互換性のあるクラスの非レイジーなインスタンスを返す必要があります + (ReflectionClass::newLazyProxyを参照)。 + + + 返されたインスタンスは 実インスタンス として参照され、 + プロキシに接続されます。 + + + プロキシのプロパティ値は、 + unset と同等の方法で破棄されます。 + + + + 初期化後、プロキシの任意のプロパティへのアクセスは、 + 実インスタンスへのアクセスと同じ結果をもたらします。 + 宣言済プロパティ、動的プロパティ、存在しないプロパティ、 + ReflectionProperty::skipLazyInitialization や + ReflectionProperty::setRawValueWithoutLazyInitialization で + マークされたプロパティを含む、すべてのプロパティへのアクセスは + 実インスタンスに転送されます。 + + + プロキシオブジェクトが、 + 実インスタンスに置き換えられることはありません。 + + + ファクトリは最初のパラメータとしてプロキシを受け取りますが、 + それを変更することは期待されていません(変更は許可されますが、 + 最終的な初期化ステップ中に失われます)。しかし、プロキシは + 事前に初期化されたプロパティの値、クラス、オブジェクト自体、 + その同一性に基づく決定に使用できます。例えば、イニシャライザは + 実インスタンスを作成する際に初期化されたプロパティの値を利用するかもしれません。 + + + + + 共通の動作 + + + イニシャライザまたはファクトリ関数のスコープと$thisの + コンテキストは変更されず、通常の可視性制約が適用されます。 + + + + 初期化が成功した後、イニシャライザまたはファクトリ関数は + オブジェクトから参照されなくなり、他に参照がなければ + 解放される場合があります。 + + + + イニシャライザが例外をスローした場合、オブジェクトの状態は + 初期化前の状態に戻され、オブジェクトは再びレイジーとマークされます。つまり、 + オブジェクトへの副作用はすべて破棄されます。これは、失敗した場合に + 壊れたインスタンスが生成されてしまうのを防ぎます。ただし、他のオブジェクトへの + 影響など、外部への副作用は元に戻されません。 + + + + + + クローン + + + レイジーオブジェクトをクローンすると、 + クローンが作成される前に初期化がトリガーされ、 + 結果として初期化されたオブジェクトが得られます。 + + + + プロキシオブジェクトの場合、プロキシとその実インスタンスの両方がクローンされ、 + プロキシのクローンが返されます。 + __cloneメソッドは + プロキシではなく実インスタンス上で呼び出されます。 + クローンされたプロキシと実インスタンスは + 初期化時にリンクされるため、クローン後のプロキシへのアクセスは + クローン後の実インスタンスに転送されます。 + + + + この動作により、クローンと元のオブジェクトは独立した状態を持つことが + 保証されます。クローン後に元のオブジェクトまたはそのイニシャライザの状態に + 変更を加えても、クローンには影響しません。実インスタンスのみではなく + 両方をクローンすることで、クローン操作は常に同じクラスのオブジェクトを + 返すことを保証します。 + + + + + デストラクタ + + + レイジーゴーストの場合、オブジェクトが初期化されている場合のみ、 + プロキシの場合、実インスタンスが存在する場合のみ、 + デストラクタが呼び出されます。 + + + + ReflectionClass::resetAsLazyGhostおよび + ReflectionClass::resetAsLazyProxyメソッドは、 + リセットされるオブジェクトのデストラクタを呼び出す場合があります。 + + + diff --git a/language/oop5/magic.xml b/language/oop5/magic.xml index 6c8ed9faef..1739f731dd 100644 --- a/language/oop5/magic.xml +++ b/language/oop5/magic.xml @@ -1,12 +1,26 @@ - + マジックメソッド - 以下の関数名 + マジックメソッドは、 + ある動作がオブジェクトに対して行われた場合に、 + PHP のデフォルトの動作を上書きする特別なメソッドです。 + + + + __ で始まる全てのメソッドは、 + PHP によって予約されています。 + よって、PHP の動作を上書きするのでなければ、 + このようなメソッド名を使うことは推奨されません。 + + + + 以下の関数名は、マジックメソッドと見なされます: + __construct(), __destruct(), __call(), @@ -22,29 +36,41 @@ __toString(), __invoke(), __set_state(), - __clone() および + __clone(), __debugInfo() - は、PHP クラスにおける特殊関数の名前です。 - これらの関数に関連する特別な機能を使用する場合を除き、 - クラス内にこれらの名前を有する関数を作成してはいけません。 - - - 全てのマジックメソッドは - public として宣言されていなければ - なりません - - - - - - PHP は、__ で始まる関数名を特殊関数として取り置きしてあります。 - このページに記載されているような特殊な機能を必要としないのであれば、 - 関数名を __ で始めないほうが良い。 - - - + + + + __construct(), + __destruct(), + __clone() を除く全てのマジックメソッドは、 + public として宣言しなければいけません。 + そうしないと、 + E_WARNING レベルの警告が発生します。 + PHP 8.0.0 より前のバージョンでは、 + __sleep(), + __wakeup(), + __serialize(), + __unserialize(), + __set_state() については、エラーは発生していませんでした。 + + + + + マジックメソッドの定義で型宣言が使われている場合、 + それらは、このマニュアルで説明しているシグネチャと同じでなければいけません。 + そうでない場合、致命的なエラーが発生します。 + PHP 8.0.0 より前のバージョンでは、 + エラーは全く発生していませんでした。 + 但し、__construct() と + __destruct() + については、戻り値の型を宣言してはいけません。 + 宣言してしまうと、致命的なエラーが発生します。 + + + <link linkend="object.sleep">__sleep()</link> と @@ -75,8 +101,15 @@ <link linkend="object.sleep">__sleep()</link> で、親クラスの private プロパティの名前を返すことはできません。 そうしようとすると <constant>E_NOTICE</constant> レベルのエラーとなります。 - この場合は、かわりに <classname>Serializable</classname> - インターフェイスを使います。 + この場合は、<link linkend="object.serialize">__serialize()</link> を代わりに使って下さい。 + </para> + </note> + <note> + <para> + PHP 8.0.0 以降では、 + <link linkend="object.sleep">__sleep()</link> から配列でない値を返すと、 + E_WARNING が発生するようになりました。これより前のバージョンでは、 + E_NOTICE が発生していました。 </para> </note> <para> @@ -99,7 +132,7 @@ その他の再初期化を行うことです。 </para> <example> - <title>sleep および wakeup + sleep と wakeup - Serialize および unserialize + Serialize と unserialize __toString() メソッドにより、 クラスが文字列に変換される際の動作を決めることができます。たとえば echo $obj; としたときに何を表示させるかといったことです。 - このメソッドは文字列を返さなければなりません。それ以外の場合は - E_RECOVERABLE_ERROR - レベルの致命的なエラーが発生します。 + + + PHP 8.0.0 以降では、戻り値は PHP で標準的な型のセマンティクスに従います。 + つまり、厳密な型付け + が無効になっている場合、可能であれば文字列型に強制されます。 + + + 厳密な型付け + が有効になっている場合、string 型を宣言していても + Stringable は受け入れられ ません。 + 受け入れさせたい場合、Stringablestring を union 型を使って型宣言しなければいけません。 + + + PHP 8.0.0 以降では、 + __toString() + メソッドを含む全てのクラスは、 + 暗黙のうちに Stringable + インターフェイスも実装するようになりました。 + よって、このインターフェイスの型チェックは通過することになります。 + いずれにせよ、明示的にこのインターフェイスを実装することを推奨します。 + + + PHP 7.4 では、戻り値は文字列でなければいけません。 + そうでない場合、Error がスローされます。 + + + PHP 7.4.0 より前のバージョンでは、 + 戻り値は文字列でなければいけません。 + そうでない場合、E_RECOVERABLE_ERROR が発生します。 + + + - PHP 7.4.0 より前のバージョンでは、__toString() メソッド内から例外を投げることはできません。そうした場合、致命的なエラーが発生します。 + PHP 7.4.0 より前のバージョンでは、__toString() メソッド内から例外をスローすることはできません。そうした場合、致命的なエラーが発生します。 簡単な例 @@ -291,36 +353,18 @@ Hello ]]> - - 注意が必要なのは、PHP 5.2.0 より前では、 - __toString() メソッドは - echo または print - と直接結合された場合のみコールされていたということです。 - PHP 5.2.0 以降では、これはすべての文字列コンテキスト - (たとえば printf における %s 修飾子) - でコールされます。しかし、その他の型のコンテキスト - (たとえば %d 修飾子) ではコールされません。 - PHP 5.2.0 以降では、__toString() - メソッドを持っていないオブジェクトを文字列に変換しようとすると - E_RECOVERABLE_ERROR が発生します。 - <link linkend="object.invoke">__invoke()</link> mixed__invoke - ... + values __invoke() メソッドは、 スクリプトがオブジェクトを関数としてコールしようとした際にコールされます。 - - - この機能は PHP 5.3.0 以降で使用可能です。 - - <link linkend="object.invoke">__invoke()</link> の使用 @@ -344,6 +388,96 @@ var_dump(is_callable($obj)); + + + + <link linkend="object.invoke">__invoke()</link> の使用 + +key = $key; + } + + public function __invoke(array $a, array $b): int + { + return $a[$this->key] <=> $b[$this->key]; + } +} + +$customers = [ + ['id' => 1, 'first_name' => 'John', 'last_name' => 'Do'], + ['id' => 3, 'first_name' => 'Alice', 'last_name' => 'Gustav'], + ['id' => 2, 'first_name' => 'Bob', 'last_name' => 'Filipe'] +]; + +// $customers を 'first_name' でソートします +usort($customers, new Sort('first_name')); +print_r($customers); + +// $customers を 'last_name' でソートします +usort($customers, new Sort('last_name')); +print_r($customers); +?> +]]> + + &example.outputs; + + Array + ( + [id] => 3 + [first_name] => Alice + [last_name] => Gustav + ) + + [1] => Array + ( + [id] => 2 + [first_name] => Bob + [last_name] => Filipe + ) + + [2] => Array + ( + [id] => 1 + [first_name] => John + [last_name] => Do + ) + +) +Array +( + [0] => Array + ( + [id] => 1 + [first_name] => John + [last_name] => Do + ) + + [1] => Array + ( + [id] => 2 + [first_name] => Bob + [last_name] => Filipe + ) + + [2] => Array + ( + [id] => 3 + [first_name] => Alice + [last_name] => Gustav + ) + +) ]]> @@ -357,15 +491,15 @@ bool(true) この static メソッドは、 - PHP 5.1.0 以降で var_export によって + var_export によって エクスポートされたクラスのためにコールされます。 このメソッドの唯一のパラメータは、エクスポートされたプロパティを - array('property' => value, ...) の形式で保持する配列です。 + ['property' => value, ...] の形式で保持する配列です。 - <link linkend="object.set-state">__set_state()</link> の使用法 (PHP 5.1.0 以降) + <link linkend="object.set-state">__set_state()</link> の使用法 var1 = $an_array['var1']; @@ -388,18 +522,20 @@ $a = new A; $a->var1 = 5; $a->var2 = 'foo'; -eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array( - // 'var1' => 5, - // 'var2' => 'foo', - // )); +$b = var_export($a, true); var_dump($b); - +eval('$c = ' . $b . ';'); +var_dump($c); ?> ]]> &example.outputs; 5, + 'var2' => 'foo', +))" object(A)#2 (2) { ["var1"]=> int(5) @@ -411,9 +547,14 @@ object(A)#2 (2) { - var_export でオブジェクトをエクスポートする際に、そのオブジェクトのクラスが - __set_state() を実装しているかどうかは確認しません。 - 一部の内部クラスを扱う際に、この影響が出てきます。 + var_export でオブジェクトをエクスポートする際に、 + そのオブジェクトのクラスが + __set_state() + を実装しているかどうかはチェックされません。 + よって、__set_state() が実装されていない場合、 + エクスポートしたオブジェクトを再度インポートしようとすると、 + Error 例外が発生します。 + この振る舞いは、特に一部の内部クラスを扱う際に影響が出てきます。 エクスポートしたオブジェクトをインポートする際に、 @@ -434,9 +575,6 @@ object(A)#2 (2) { もしオブジェクトにこのメソッドが定義されていなければ、 すべての public, protected, private プロパティを表示します。 - - この機能は PHP 5.6.0 で追加されました。 - <link linkend="object.debuginfo">__debugInfo()</link> の使用法 diff --git a/language/oop5/object-comparison.xml b/language/oop5/object-comparison.xml index 194e126eba..7b239768ec 100644 --- a/language/oop5/object-comparison.xml +++ b/language/oop5/object-comparison.xml @@ -1,7 +1,7 @@ - - + + オブジェクトの比較 @@ -19,7 +19,7 @@ これらのルールを明確に示す例を以下に示します。 - PHP 5におけるオブジェクト比較の例 + オブジェクト比較の例 - + @@ -35,7 +35,7 @@ これらのマジックメソッドの引数は、 - 参照渡し + リファレンス渡し とすることはできません。 @@ -50,47 +50,6 @@ - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - __callStatic() が追加されました。 - public で、かつ static でない宣言を強制するような警告が追加されました。 - - - - 5.1.0 - - __isset() と __unset() - が追加されました。 - __get() が private プロパティのオーバーロードに対応しました。 - - - - 5.0.0 - - __get() が追加されました。 - - - - - - - - - プロパティのオーバーロード @@ -144,17 +103,15 @@ プロパティのオーバーロードはオブジェクトのコンテキストでのみ動作します。 - これらのマジックメソッドは、静的コンテキストでは起動しません。 + これらのマジックメソッドは、static メソッドとしては呼び出されません。 したがって、これらのメソッドを - static - 宣言してはいけません。 - PHP 5.3.0 以降、マジックオーバーロードメソッドを static - 宣言すると警告が発生します。 + static メソッドとして宣言してはいけません。 + マジックメソッドを static メソッドとして宣言すると警告が発生します。 - __set() の返り値は無視されます。 + __set() の戻り値は無視されます。 これは、PHP が代入演算子を処理する方法によるものです。 同様に __get() は、 b = 8; ]]> @@ -162,6 +119,18 @@ + + + PHP は、オーバーロードメソッドを、 + 同じオーバーロードメソッドから決してコールしません。 + これはたとえば、__get() の内部に return $this->foo というコードを書いたとしても、 + foo というプロパティが定義されていなければ E_WARNING が発生し、&null; を返すということです。 + 2回目の __get() のコールを行ったりはしません。 + しかし、オーバーロードメソッドが、他のオーバーロードメソッドを暗黙のうちに呼び出す可能性はあります(たとえば、 + __set() が __get() を呼び出す場合)。 + + + <link linkend="object.get">__get()</link>、 @@ -204,14 +173,12 @@ class PropertyTest return null; } - /** PHP 5.1.0 以降 */ public function __isset($name) { echo "Is '$name' set?\n"; return isset($this->data[$name]); } - /** PHP 5.1.0 以降 */ public function __unset($name) { echo "Unsetting '$name'\n"; @@ -226,8 +193,6 @@ class PropertyTest } -echo "<pre>\n"; - $obj = new PropertyTest; $obj->a = 1; @@ -298,7 +263,7 @@ Notice: Undefined property via __get(): hidden in <file> on line 70 in <file> o <para> <link linkend="object.callstatic">__callStatic()</link> は、 - アクセス不能メソッドを静的コンテキストで実行したときに起動します。 + アクセス不能メソッドをstatic メソッドとして呼び出した場合に起動します。 </para> <para> @@ -326,7 +291,6 @@ class MethodTest . implode(', ', $arguments). "\n"; } - /** PHP 5.3.0 以降 */ public static function __callStatic($name, $arguments) { // 注意: $name は大文字小文字を区別します @@ -338,7 +302,7 @@ class MethodTest $obj = new MethodTest; $obj->runTest('in object context'); -MethodTest::runTest('in static context'); // PHP 5.3.0 以降 +MethodTest::runTest('in static context'); ?> ]]> </programlisting> diff --git a/language/oop5/paamayim-nekudotayim.xml b/language/oop5/paamayim-nekudotayim.xml index 7c78683885..06b6035690 100644 --- a/language/oop5/paamayim-nekudotayim.xml +++ b/language/oop5/paamayim-nekudotayim.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <!-- $Revision$ --> -<!-- EN-Revision: 3e823762fd850c92306d53b0b25c7a7667245280 Maintainer: takagi Status: ready --> +<!-- EN-Revision: d6f54016d62904cfd8200604aadd5e3f0d9bad97 Maintainer: takagi Status: ready --> <!-- CREDITS: hirokawa --> <sect1 xml:id="language.oop5.paamayim-nekudotayim" xmlns="http://docbook.org/ns/docbook"> @@ -9,9 +9,13 @@ <para> スコープ定義演算子 (またの名を Paamayim Nekudotayim)、 平たく言うと「ダブルコロン」は、トークンのひとつです。 - <link linkend="language.oop5.static">static</link>, <link linkend="language.oop5.constants">定数</link> - およびオーバーライドされたクラスのプロパティやメソッドにアクセスすることができます。 + <link linkend="language.oop5.static">static</link> プロパティ、 + クラスの <link linkend="language.oop5.static">static</link> メソッド、 + や親クラスのそれにアクセスできます。 + さらに、static メソッドやプロパティは + <link linkend="language.oop5.late-static-bindings">遅延静的束縛 (Late Static Bindings)</link> + 経由でオーバーライドできます。 </para> <para> @@ -20,7 +24,7 @@ </para> <para> - PHP 5.3.0 以降では、変数を用いてクラスを参照することも可能です。 + 変数を用いてクラスを参照することも可能です。 変数の値に (<literal>self</literal> や <literal>parent</literal>、 <literal>static</literal> といった) キーワードを指定することはできません。 @@ -44,7 +48,7 @@ class MyClass { } $classname = 'MyClass'; -echo $classname::CONST_VALUE; // PHP 5.3.0 以降で対応 +echo $classname::CONST_VALUE; echo MyClass::CONST_VALUE; ?> @@ -62,6 +66,10 @@ echo MyClass::CONST_VALUE; <programlisting role="php"> <![CDATA[ <?php +class MyClass { + const CONST_VALUE = 'A constant value'; +} + class OtherClass extends MyClass { public static $my_static = 'static var'; @@ -73,7 +81,7 @@ class OtherClass extends MyClass } $classname = 'OtherClass'; -$classname::doubleColon(); // PHP 5.3.0 以降で対応 +$classname::doubleColon(); OtherClass::doubleColon(); ?> @@ -123,7 +131,7 @@ $class->myFunc(); </programlisting> </example> <para> - <link linkend="language.oop5.basic.class.this">静的コールのトリックに関するサンプル</link> も参照ください。 + <link linkend="language.oop5.basic.class.this">staticメソッドとしてコールする場合の、トリックに関するサンプル</link> も参照ください。 </para> </sect1> diff --git a/language/oop5/properties.xml b/language/oop5/properties.xml index a1a410efea..d6b21d1970 100644 --- a/language/oop5/properties.xml +++ b/language/oop5/properties.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <!-- $Revision$ --> -<!-- EN-Revision: a43655118be85f174912b5222eb6ba6902b29f81 Maintainer: takagi Status: ready --> +<!-- EN-Revision: 801e7a15e8c9ee2d16966487dc9058d992450b46 Maintainer: takagi Status: ready --> <!-- CREDITS: mumumu --> <sect1 xml:id="language.oop5.properties" xmlns="http://docbook.org/ns/docbook"> @@ -8,74 +8,64 @@ <para> クラスのメンバ変数のことを <emphasis>プロパティ</emphasis> といいます。 - それ以外に <emphasis>属性</emphasis> や <emphasis>フィールド</emphasis> などという呼びかたを見たことがあるかもしれません。 - しかし、このマニュアルでは <emphasis>プロパティ</emphasis> と呼ぶことにします。 - プロパティを定義するには <literal>public</literal>、<literal>protected</literal> - あるいは <literal>private</literal> - のいずれかのキーワードのあとに、オプションの型宣言を続け、 - そして通常の変数の宣言を続けます。 - 宣言時に初期値を設定することもできますが、初期値は定数値でなければなりません。 - つまり、コンパイル時に評価可能な値でなければならず、 - 実行時の情報がないと評価できない値であってはいけないということです。 - </para> - <para> - <literal>public</literal>、<literal>protected</literal> - そして <literal>private</literal> についての詳しい情報は - <xref linkend="language.oop5.visibility" /> を参照ください。 + それ以外に <emphasis>フィールド</emphasis> + などという呼びかたを見たことがあるかもしれません。 + しかし、このマニュアルでは <emphasis>プロパティ</emphasis> + と呼ぶことにします。 + プロパティは、少なくともひとつのキーワード + (たとえば <link linkend="language.oop5.visibility">アクセス権</link> + のキーワード、 + <link linkend="language.oop5.static">static キーワード</link>、 + PHP 8.1.0 以降のみ <link linkend="language.oop5.properties.readonly-properties">readonly</link>) のあとに、 + オプションの型宣言 + (PHP 7.4 以降、但し <code>readonly</code> を除く) + を続け、 + その後に通常の変数の宣言を続けます。 + 宣言時に初期値を設定することもできますが、 + 初期値は <link linkend="language.constants">定数</link> 値でなければなりません。 </para> <note> <para> - PHP 4 との互換性を考慮して、PHP 5 でも <literal>var</literal> - を使ったプロパティの宣言が可能です。これは - <literal>public</literal> や <literal>protected</literal>、 - <literal>private</literal> と組み合わせて使うこともできます。 - しかし、もはや <literal>var</literal> は必須ではありません。 - PHP 5.0 から 5.1.3 までのバージョンでは、 - <literal>var</literal> の使用は非推奨とされており、 - <constant>E_STRICT</constant> 警告が発生していました。 - しかし PHP 5.1.3 以降は非推奨ではなくなり、警告も出なくなっています。 - </para> - <para> - <literal>public</literal> や <literal>protected</literal>、 - <literal>private</literal> のかわりに <literal>var</literal> - を使ってプロパティを宣言した場合、PHP 5 はそれを - <literal>public</literal> と同等とみなします。 + クラスのプロパティを宣言する代替の方法として、 + <literal>var</literal> キーワードを使う方法があります。 </para> </note> + <note> + <simpara> + <link linkend="language.oop5.visibility">アクセス権</link> + を宣言しない場合、プロパティを <literal>public</literal> + として宣言したとみなされます。 + </simpara> + </note> + <para> - クラスメソッドから静的でないプロパティにアクセスするには + クラスのメソッドからstatic でないプロパティにアクセスするには <literal>-></literal> (オブジェクト演算子) を使って <varname>$this->property</varname> のようにします (<literal>property</literal> のところにプロパティ名を指定します)。 - 静的なプロパティへのアクセスには <literal>::</literal> (ダブルコロン) + staticプロパティへのアクセスには <literal>::</literal> (ダブルコロン) を使って <varname>self::$property</varname> のようにします。 - 静的なプロパティとそうでないプロパティの違いについては、 + staticプロパティとそうでないプロパティの違いについては、 <link linkend="language.oop5.static">static キーワード</link> を参照ください。 </para> <para> - クラスメソッドがオブジェクトのコンテキストからコールされたときには、 - 擬似変数 <varname>$this</varname> が常に使えます。 - <varname>$this</varname> は、呼び出し元のオブジェクト - (通常はそのメソッドが属するオブジェクトですが、別のオブジェクトになる可能性もあります。 - 別のオブジェクトのコンテキストから <link linkend="language.oop5.static">静的に</link> - コールされた場合などです) への参照となります。 + クラスのメソッドがオブジェクトのコンテキストからコールされたときには、 + 擬似変数 <varname>$this</varname> が使えます。 + <varname>$this</varname> は、呼び出し元のオブジェクトの値です。 </para> <para> <example> <title>プロパティの宣言 - + ]]> @@ -104,43 +96,10 @@ EOD; - - ヒアドキュメント と Nowdoc - - PHP 5.3.0 以降、 - ヒアドキュメント や - Nowdoc - は任意の静的データコンテキストで使えます。プロパティの宣言時にも使用可能です。 - - Nowdoc を使ったプロパティの初期化 - - -]]> - - - - - - Nowdoc とヒアドキュメントは PHP 5.3.0 以降で使用可能です。 - - - - 型宣言 - PHP 7.4.0 以降は、プロパティの定義に型宣言を含めることができます。 + PHP 7.4.0 以降は、プロパティの定義に を含めることができます。 但し、callable 型を除きます。 型付きプロパティの例 @@ -239,100 +198,223 @@ Fatal error: Uncaught Error: Typed property Shape::$numberOfSides must not be ac - - 有効なプロパティの型 - - - - - - 説明 - 必要なPHPのバージョン - - - - - bool - - プロパティの値は boolean 型でなければなりません。 - - PHP 7.4.0 - - - int - - プロパティの値は integer 型でなければなりません。 - - PHP 7.4.0 - - - float - - プロパティの値は float (浮動小数点型の数値) 型でなければなりません。 - - PHP 7.4.0 - - - string - - プロパティの値は string 型でなければなりません。 - - PHP 7.4.0 - - - array - - プロパティの値は array 型でなければなりません。 - - PHP 7.4.0 - - - object - - プロパティの値は object 型でなければなりません。 - - PHP 7.4.0 - - - iterable - - プロパティの値は、array 型か、 - Traversable のインスタンスでなければなりません。 - - PHP 7.4.0 - - - self - - プロパティの値は、プロパティが定義されたクラスのインスタンスでなければなりません。 - - PHP 7.4.0 - - - parent - - プロパティの値は、プロパティが定義されたクラスの親クラスのインスタンスでなければなりません。 - - PHP 7.4.0 - - - Class/interface name - - プロパティの値は、指定したクラスまたはインターフェイスのインスタンスでなければなりません。 - - PHP 7.4.0 - - - ?type - - プロパティの値は、指定された型か、 &null; でなければなりません。 - - PHP 7.4.0 - - - - - + + + + 読み取り専用プロパティ + + PHP 8.1.0 以降では、readonly + を付けてプロパティを宣言できます。これによって、プロパティを初期化した後に値が変更されることを防止できます。 + PHP 8.4.0 より前のバージョンでは、readonly プロパティは暗黙的に private-set であり、 + 同じクラス内からのみ書き込みが可能でした。 + PHP 8.4.0 以降では、readonly プロパティは暗黙的に + protected(set) となり、 + 子クラスからも設定可能です。必要に応じて明示的に + オーバーライドすることもできます。 + + 読み取り専用プロパティの例 + +prop = $prop; + } +} + +$test = new Test("foobar"); +// 正しいプロパティの読み取り +var_dump($test->prop); // string(6) "foobar" + +// 不正な再代入です。同じ値を代入することは問題ありません。 +$test->prop = "foobar"; +// Error: Cannot modify readonly property Test::$prop +?> +]]> + + + + + readonly は、 + 型付きプロパティ + に対してのみ指定できます。 + 型の制約がないプロパティを読み取り専用にしたい場合、 + が使えます。 + + + + + 読み取り専用の static プロパティはサポートされていません。 + + + + + 読み取り専用プロパティは、一度しか初期化できません。 + 初期化できるのは、 + そのプロパティが宣言された場所と同じスコープに限られます。 + これらのルールから外れたプロパティへの代入や変更を行った場合、 + Error 例外が発生します。 + + 読み取り専用プロパティの不正な初期化 + +prop = "foobar"; +// Error: Cannot initialize readonly property Test1::$prop from global scope +?> +]]> + + + + + + 読み取り専用プロパティに対して、 + 明示的にデフォルト値を設定することはできません。 + なぜなら、読み取り専用プロパティにデフォルト値を設定することは、 + 本質的に定数と同じであり、あまり役に立たないからです。 + + + +]]> + + + + + + + 読み取り専用プロパティは、 + 一度初期化されると unset できません。 + しかし、初期化する前であれば + プロパティを宣言した同一のスコープから unset することはできます。 + + + + プロパティの変更は、単純な代入にとどまりません。 + 次に示すプロパティへの変更例は、 + すべて Error 例外が発生します: + + +i += 1; +$test->i++; +++$test->i; +$test->ary[] = 1; +$test->ary[0][] = 1; +unset($test->ary[0]); +$ref =& $test->i; +$test->i =& $ref; +byRef($test->i); +foreach ($test as &$prop); +?> +]]> + + + + + 但し、プロパティが読み取り専用であっても、 + そのプロパティの内部まで変更できなくなるわけではありません。 + 読み取り専用プロパティ内部のオブジェクト(またはリソース) は、 + 内部的に変更しても構いません: + + +obj->foo = 1; +// 不正な再代入 +$test->obj = new stdClass; +?> +]]> + + + + + PHP 8.3.0 以降では、 + 読み取り専用プロパティは __clone() を使ったオブジェクトのクローン時に再初期化できるようになりました。 + + 読み取り専用プロパティとオブジェクトのクローン + +prop = null; + } + + public function setProp(string $prop): void { + $this->prop = $prop; + } +} + +$test1 = new Test1; +$test1->setProp('foobar'); + +$test2 = clone $test1; +var_dump($test2->prop); // NULL +?> +]]> + + + + + + + 動的なプロパティ + + オブジェクトに対して、存在しないプロパティを代入しようとした場合、 + PHP は自動的に対応するプロパティを作成します。 + こうして作成された動的なプロパティは、 + そのインスタンスで のみ 使えます。 + + + + + 動的なプロパティは、PHP 8.2.0 以降は推奨されなくなりました。 + 代わりに、プロパティを宣言することを推奨します。 + 任意のプロパティの名前を扱うには、 + クラスがマジックメソッド + __get() と + __set() を実装すべきです。 + 動的なプロパティを使うための最終手段として、 + アトリビュート #[\AllowDynamicProperties] + でクラスをマークすることができます。 + + diff --git a/language/oop5/property-hooks.xml b/language/oop5/property-hooks.xml new file mode 100644 index 0000000000..691a1fd99c --- /dev/null +++ b/language/oop5/property-hooks.xml @@ -0,0 +1,616 @@ + + + + + プロパティフック + + + プロパティフックは、他の言語では「プロパティアクセサー」とも呼ばれる仕組みで、 + プロパティの読み書き動作へ干渉し、それを上書きする機能を提供します。 + この機能には、次の2つの目的があります: + + + + + get- メソッドや set- メソッドを使わずプロパティを参照しつつ、 + 将来的に追加の機能を追加する余地を残す。 + フックを使わない場合の定型の get/set メソッドのほとんどは + 不要になる。 + + + + + 実際に値を保持することなく、 + オブジェクトを説明するプロパティを実装する。 + + + + + static でないプロパティには getset の2種類のフックがあります。 + それぞれ、プロパティの読み取りと書き込みの動作を上書きします。 + フックは、型付きプロパティ、型のないプロパティ、いずれにも利用可能です。 + + + プロパティはバックドプロパティか仮想プロパティのどちらかになります。 + バックドプロパティは実体の値を持つプロパティです。 + フックを持たないプロパティは、全てバックドプロパティになります。 + 仮想プロパティは、実体の値を必要としないフックだけを持つプロパティです。 + この場合、フックは実質的にメソッドと等価であり、 + オブジェクトはこのプロパティ用のメモリを必要としません。 + + + プロパティフックは readonly プロパティと同時に使えません。 + getset の動作の変更だけでなく + アクセス自体の制限も行いたい場合、 + 非対称可視性プロパティ を使ってください。 + + + + バージョン情報 + + プロパティフックは PHP 8.4 で導入されました。 + + + + + 基本的なフック構文 + + フックを宣言する一般的な構文は次のとおりです。 + + + プロパティフック (フルバージョン) + +modified) { + return $this->foo . ' (modified)'; + } + return $this->foo; + } + set(string $value) { + $this->foo = strtolower($value); + $this->modified = true; + } + } +} + +$example = new Example(); +$example->foo = 'changed'; +print $example->foo; +?> +]]> + + + + $foo プロパティの末尾はセミコロンではなく {} です。 + これがフックの存在を表します。 + ここでは getset 両方のフックを定義していますが、 + 一方だけ定義することも可能です。 + どちらのフックも {} の中に任意のコードを書くことができます。 + + + set フックは、渡される値の型と名前を + メソッドと同じ書式で指定できます。 + この型はプロパティの型と同じか、 + 反変 (より広い型) でなければなりません。 + たとえば string 型のプロパティに対しては、 + stringStringable を受け取る set フックを定義できますが、 + array のみを受け取るものは定義できません。 + + + 少なくとも一方のフックが $this->foo(プロパティ自体)を参照しているため、 + このプロパティはバックドプロパティになります。 + $example->foo = 'changed' が呼び出されると、 + 渡された文字列は小文字に変換され、それが値として保存されます。 + プロパティを読み取る際には、保存された値に対し、条件に応じて追加の文字列が + 付与されます。 + + + よくあるケースに対応するために、いくつかの短縮構文が用意されています。 + + + get フックが単独の式である場合、 + {} を省略してアロー式で置き換えることができます。 + + + プロパティの get 式 + + この例は前の例と等価です。 + + + $this->foo . ($this->modified ? ' (modified)' : ''); + + set(string $value) { + $this->foo = strtolower($value); + $this->modified = true; + } + } +} +?> +]]> + + + + set フックのパラメータの型がプロパティの型と同じ場合 (典型的にはそうなります)、 + その型は省略可能です。この場合、渡される値には自動的に $value という名前が付きます。 + + + プロパティ set のデフォルト + + この例は前の例と等価です。 + + + $this->foo . ($this->modified ? ' (modified)' : ''); + + set { + $this->foo = strtolower($value); + $this->modified = true; + } + } +} +?> +]]> + + + + set フックが、渡された値を変形して保存するだけの場合には、 + アロー式でより簡略にできます。 + 式の評価結果が値として保存されます。 + + + プロパティの set 式 + + $this->foo . ($this->modified ? ' (modified)' : ''); + set => strtolower($value); + } +} +?> +]]> + + + + この例は $this->modified の値を更新していないため + 前の例と等価ではありません。 + set フック内で複数の文が必要な場合、中括弧付きの構文を使用してください。 + + + プロパティは状況に応じて、一方または双方のフックを実装するか、どちらも実装しないことができます。 + それぞれの短縮構文は独立しており、 + たとえば「短縮構文の get と 通常の set」 + 「型を明示した短縮構文の set」など、いずれも有効です。 + + + バックドプロパティで getset のフックを省略した場合、 + それはデフォルトの読み書き動作になります。 + + + + フックは + コンストラクタのプロモーション + にも定義できます。ただし、コンストラクタで受け取る値は + set フックが受け入れる型ではなく、 + プロパティの本来の型に一致しなければならない点に注意してください。 + + + 次のような例を考えます: + + +created = $value; + } + }, + ) { + } +} +]]> + + + 内部では次のような形で処理されます: + + +created = $value; + } + } + + public function __construct( + DateTimeInterface $created, + ) { + $this->created = $created; + } +} +]]> + + + コンストラクタ以外からプロパティに値を書き込む時は string か + DateTimeInterface を受け入れますが、 + コンストラクタからは DateTimeInterface のみ受け入れます。 + プロパティの型 (DateTimeInterface) が + コンストラクタのシグネチャのパラメータ型として使われ、 + set フックが受け入れる型は参照されないためです。 + + + このような振る舞いがコンストラクタでも必要な場合、 + コンストラクタのプロモーションは使用できません。 + + + + + 仮想プロパティ + + 仮想プロパティは、値を保持しないプロパティです。 + getset いずれのフックも + プロパティ自体を正確に参照していない場合、それは仮想プロパティになります。 + 例えば、$foo という名前のプロパティのフックに $this->foo というコードが含まれれば、それはバックドプロパティです。 + 次のプロパティはバックドプロパティではなく、エラーが発生します: + + + 無効な仮想プロパティ + +$temp; // $this->foo を正確に参照していません + } + } +} +?> +]]> + + + + 仮想プロパティでは、フックを省略するとその操作は存在しないとみなされ、 + 使おうとするとエラーが発生します。 + 仮想プロパティはオブジェクト内でメモリを消費しません。 + 仮想プロパティは、例えば他の2つのプロパティを組み合わせて値を作るような + 「派生」プロパティに向いています。 + + + 仮想プロパティ + + $this->h * $this->w; + } + + public function __construct(public int $h, public int $w) {} +} + +$s = new Rectangle(4, 5); +print $s->area; // 20 と表示 +$s->area = 30; // set が定義されていないためエラー +?> +]]> + + + + 仮想プロパティに対して getset 両方のフックを定義することもできます。 + + + + スコープ + + 全てのフックは、オブジェクトスコープで動作します。 + すなわち、全ての public、private、protected な + メソッドやプロパティに対してアクセスできます。 + フックを持つプロパティへアクセスする場合も同様です。 + フック内で別のプロパティにアクセスしても、そのフックがバイパスされることはありません。 + + + 重要なのは、フック内で必要に応じて、 + 任意の複雑なメソッドを呼び出すこともできるという点です。 + + + フックからメソッド呼び出し + + $this->sanitizePhone($value); + } + + private function sanitizePhone(string $value): string { + $value = ltrim($value, '+'); + $value = ltrim($value, '1'); + + if (!preg_match('/\d\d\d\-\d\d\d\-\d\d\d\d/', $value)) { + throw new \InvalidArgumentException(); + } + return $value; + } +} +?> +]]> + + + + + リファレンス + + フックはプロパティの読み書きの操作へ干渉するため、 + プロパティへのリファレンスを取得したり、 + $this->arrayProp['key'] = 'value'; のような + 間接的な変更操作を行う場合に問題が発生します。 + リファレンスによる値の変更が set フックをバイパスしてしまうからです。 + + + プロパティからフックを経由してリファレンスを取得する必要がある場合、 + get フックの先頭に & + を付与します。 + 同じプロパティで get&get を両方定義すると + 構文エラーになります。 + + + バックドプロパティでは &get フックと set フックは同時に定義できません。 + 前述のとおり、リファレンスへの書き込みは set フックをバイパスしてしまうためです。 + 仮想プロパティでは、両フックから共有される実体の値がないため、同時に定義しても問題ありません。 + + + 配列プロパティのインデックスへ書き込みを行う場合も、暗黙的にリファレンスが使われます。 + 従って、フックを伴う配列のバックドプロパティの要素の書き換えができるのは、 + &get フックだけが定義されている場合に限ります。 + 仮想プロパティの場合、 + get&get から返された配列の書き換え自体は可能ですが、 + それが実際にオブジェクトに反映されるかはフックの実装次第です。 + + + 配列全体を上書きする場合は問題ありません。他のプロパティと同様に扱われます。 + 配列の個々の要素を操作する場合のみ注意が必要です。 + + + + 継承 + + final フック + + フックは final としても宣言することもできます。 + その場合はオーバーライドできなくなります。 + + + final フックの例 + + strtolower($value); + } +} + +class Manager extends User +{ + public string $username { + // これは許可される + get => strtoupper($this->username); + + // parentのsetがfinalのため許可されない。 + set => strtoupper($value); + } +} +?> +]]> + + + + プロパティ自体を final と宣言することもできます。 + final で宣言されたプロパティは子クラスで再宣言できず、 + フックを変更したりアクセス権を広げることもできません。 + + + final と宣言したプロパティに対しフックも final とするのは + 単に冗長であり無視されます。 + これは final メソッドと同じ動作です。 + + + 子クラスでは、オーバーライドしたいフックを再定義することで、 + フックを個別に上書きできます。 + フックを持たないプロパティにフックを追加することもできます。 + フックがメソッドのように振る舞うという点で、一貫した動作です。 + + + フックの継承 + +x = $value; + } + } +} +?> +]]> + + + + それぞれのフックは親の実装を個別にオーバーライドします。 + 子クラスがフックを追加する場合、親クラスのプロパティで設定されたデフォルト値は削除され、再宣言が必要です。 + これはフックのないプロパティを継承する場合と同じ動作です。 + + + + 親フックへのアクセス + + 子クラスのフックから parent::$prop に続き目的のフックを指定することで、 + 親クラスのプロパティにアクセスできます。 + 例えば parent::$propName::get() は、 + 「親クラスに定義された prop の get 操作を実行する」 + という意味になります。同様に set 操作も実行できます。 + + + これらの方法でアクセスしない限り、親クラスのフックは無視されます。 + これはメソッドの動作と同じです。 + この方法で親クラスの記憶領域にアクセスできます。 + 親クラスのプロパティにフックが存在しない場合、 + デフォルトの get/set 動作が使われます。 + フックは、自分自身のプロパティにおける親フック以外は呼び出せません。 + + + 上記の例は以下のように書き換えることができます。このようにすると、 + 将来 Point クラスに独自の set + フックを追加しても問題になりません(前述の例では、 + 親クラスに追加されたフックが子クラスで無視されてしまいます)。 + + + 親フックへのアクセス (set) + + +]]> + + + + get フックだけをオーバーライドする場合、次の例のようになります: + + + 親フックへのアクセス (get) + + $this->uppercase + ? strtoupper(parent::$val::get()) + : strtolower(parent::$val::get()); + } +} +?> +]]> + + + + + + シリアライズ + + PHP には、オブジェクトを外部で利用したり + デバッグしたりするための、いくつかのシリアライズ手段があります。 + その際のフックの挙動は、用途によって異なります。 + あるケースでは、プロパティに保存された生の値が使われ、 + フックはバイパスされます。 + 別のケースでは、通常の読み書きと同じように + フックを通して処理されます。 + + + var_dump: 生の値を使用 + serialize: 生の値を使用 + unserialize: 生の値を使用 + __serialize()/__unserialize(): カスタムロジックと get/set フック + 配列キャスト: 生の値を使用 + var_export: get フックを使用 + json_encode: get フックを使用 + JsonSerializable: カスタムロジックと get フック + get_object_vars: get フックを使用 + get_mangled_object_vars: 生の値を使用 + + + + diff --git a/language/oop5/references.xml b/language/oop5/references.xml index 37e1be77b1..f4fd7cd4d6 100644 --- a/language/oop5/references.xml +++ b/language/oop5/references.xml @@ -1,10 +1,10 @@ - + オブジェクトと参照 - PHP 5 でのオブジェクト指向プログラミングのポイントとしてよく言われるのは + PHP でのオブジェクト指向プログラミングのポイントとしてよく言われるのは 「オブジェクトはデフォルトでは参照渡しとなります」ということです。 しかし、正確には少し異なります。 この節では、いくつかの例を用いてその誤解をといていきます。 @@ -12,10 +12,10 @@ PHP の参照は一種のエイリアスで、ふたつの異なる変数に同じ値を書き込めるものです。 - PHP 5 以降、オブジェクト変数の値にオブジェクト自身は含まれなくなりました。 + PHP では、オブジェクト変数の値にオブジェクト自身は含まれません。 含まれるのはオブジェクトの ID のみで、 これを用いて実際のオブジェクトにアクセスできるようになっています。 - オブジェクトが引数として渡されたり返り値となったり + オブジェクトが引数として渡されたり戻り値となったり あるいは別の変数に代入されたりした場合、 それはエイリアスではありません。ID のコピーを保持し、 同じオブジェクトを指すようになるのです。 diff --git a/language/oop5/serialization.xml b/language/oop5/serialization.xml index 001b8997fb..5488801de9 100644 --- a/language/oop5/serialization.xml +++ b/language/oop5/serialization.xml @@ -1,9 +1,10 @@ - + + - オブジェクトのシリアライズ オブジェクトのシリアライズ - セッション内でのオブジェクト + オブジェクトのシリアライズ serialize は、 @@ -30,7 +31,7 @@ - - セッションを使っているアプリケーションで - session_register を使ってオブジェクトを登録した場合は、 - PHP のページの終了時にオブジェクトが自動的にシリアライズされます。 - そして、次のページが始まるときに自動的にそれが復元されるのです。 - これによって、いちどセッションに登録したオブジェクトは - アプリケーションのどのページでも使えるようになります。 - しかし session_register 関数は PHP 5.4.0 で削除されます。 - - アプリケーション内でオブジェクトをシリアライズして再利用する場合のお勧めは、 そのクラスの定義をアプリケーション全体で include することです。 @@ -85,9 +76,10 @@ つまり、もし上の例の $a を - session_register("a") でセッションに格納するなら、 + スーパーグローバル $_SESSION + に新しいキーを追加してセッションに格納するなら、 page1.phppage2.php だけではなく - すべてのページで classa.inc を include しなければなりません。 + すべてのページで A.php を include しなければなりません。 diff --git a/language/oop5/static.xml b/language/oop5/static.xml index 981433caa4..35610651fc 100644 --- a/language/oop5/static.xml +++ b/language/oop5/static.xml @@ -1,7 +1,7 @@ - - + + static キーワード @@ -9,11 +9,12 @@ このページでは、static - キーワードを使って静的なメソッドやプロパティを定義する方法を説明します。 + キーワードを使って static メソッド や + static プロパティを定義する方法を説明します。 static は、 - 静的な変数の定義 - や - 静的遅延束縛 + static 変数 + や static な無名関数、そして + 遅延静的束縛 にも使えます。これらの場合の static の使い方は、 それぞれのページを参照ください。 @@ -22,16 +23,8 @@ クラスプロパティもしくはメソッドを static として宣言することで、 クラスのインスタンス化の必要なしにアクセスすることができます。 - static なプロパティは、インスタンス化されたクラスオブジェクトから - アクセスすることはできません (static なメソッドにはアクセスできます)。 - - - - PHP 4 との互換性を維持するため、 - 可視性の宣言が - ない場合、そのプロパティまたはメソッドは、 - publicとして宣言されていると - みなされます。 + static として宣言されたプロパティやメソッドは、 + インスタンス化されたオブジェクトの内部からも :: (スコープ定義演算子) を使ってコールできます。 @@ -43,23 +36,20 @@ static として宣言されたメソッドの内部から利用することはできません。 - - - PHP 5 では、static でないメソッドを静的にコールすると、E_STRICT - レベルの警告が発生します。 - - - - - PHP 7 では、static でないメソッドを静的にコールすることが非推奨になりました。 - E_DEPRECATED レベルの警告が発生します。 - 将来的にはサポートされなくなる見込みです。 - + + static でないメソッドをstaticメソッドとしてコールすると、 + Error がスローされます。 + + + PHP 8.0.0 より前のバージョンでは、 + static でないメソッドをstaticメソッドとしてコールすることが非推奨になっており、 + E_DEPRECATED レベルの警告が発生していました。 + - Static method example + static メソッドの例 ]]> @@ -82,20 +72,14 @@ $classname::aStaticMethod(); // PHP 5.3.0 以降で対応 static プロパティ - static プロパティは、矢印演算子 -> によりオブジェクトからアクセス - することはできません。 - - - - 他の PHP 静的変数と同様、 - 静的プロパティの初期化はリテラルあるいは定数でのみ可能です。 - 式で初期化することはできません。 - PHP 5.6 以降では、同じルールが &const; 式にも当てはまります。 - コンパイル時に評価可能な、限られた式だけしか使えません。 + static プロパティは、 + スコープ定義演算子 + を使ってアクセスできますが、 + オブジェクト演算子 (->) を使ってアクセスすることはできません。 - PHP 5.3.0 以降では、変数を用いてクラスを参照することも可能です。 + 変数を用いてクラスを参照することも可能です。 変数の値に (selfparentstatic といった) キーワードを指定することはできません。 @@ -131,7 +115,7 @@ print $foo->my_static . "\n"; // Undefined "Property" my_static print $foo::$my_static . "\n"; $classname = 'Foo'; -print $classname::$my_static . "\n"; // PHP 5.3.0 以降で対応 +print $classname::$my_static . "\n"; print Bar::$my_static . "\n"; $bar = new Bar(); @@ -139,6 +123,22 @@ print $bar->fooStatic() . "\n"; ?> ]]> + &example.outputs.8.similar; + + + diff --git a/language/oop5/traits.xml b/language/oop5/traits.xml index 24d3c1b075..28c312579f 100644 --- a/language/oop5/traits.xml +++ b/language/oop5/traits.xml @@ -1,12 +1,12 @@ - + トレイト - PHP 5.4.0 以降では、コードを再利用するための「トレイト」という仕組みが導入されました。 + PHP は、コードを再利用するための「トレイト」という仕組みを実装しています。 トレイトは、PHP のような単一継承言語でコードを再利用するための仕組みのひとつです。 @@ -26,23 +26,43 @@ sayHello(); + echo ' '; + $this->sayWorld(); + echo "!\n"; + } } + +$myHelloWorld = new MyHelloWorld(); +$myHelloWorld->sayHelloWorld(); + ?> ]]> + &example.outputs; + + + @@ -123,11 +143,11 @@ Hello Universe! - + 複数のトレイト - 複数のトレイトをひとつのクラスに追加するには、use 文でカンマ区切りで指定します。 + 複数のトレイトをひとつのクラスに追加するには、use 文でカンマ区切りで指定します。 複数のトレイトの使用例 @@ -200,7 +220,7 @@ Hello World! 演算子を使って B の bigTalk の実装に talk というエイリアスを指定して使います。 - + - - - PHP 7.0 より前のバージョンでは、 - トレイトに存在する名前と同じ名前をクラスのプロパティに定義すると、 - クラス定義に互換性(公開範囲と初期値が同じ)があっても、 - E_STRICT レベルの警告が発生していました。 - - - メソッドの可視性の変更 + メソッドのアクセス権の変更 as 構文を使うと、 - クラス内でのメソッドの可視性も変更することができます。 + クラス内でのメソッドのアクセス権も変更することができます。 - メソッドの可視性の変更 - + メソッドのアクセス権を変更する + トレイトのメンバーの抽象化 トレイトでは、抽象メソッドを使ってクラスの要件を指定できます。 + アクセス権は public, protected, private をサポートしています。 + PHP 8.0.0 より前のバージョンでは、 + public と protected な抽象メソッドだけがサポートされていました。 - 具象クラスでは、 - 具象メソッドを同じ名前で定義することによって、要件を満たせます。 - つまり、シグナチャは異なっていても構いません。 + PHP 8.0.0 以降では、具象メソッドは + シグネチャの互換性に関するルール + を満たさなければなりません。 + これより前のバージョンでは、シグネチャは異なっていても構いませんでした。 @@ -370,59 +386,143 @@ class MyHelloWorld { - トレイトの静的なメンバー + トレイトの static メンバー - トレイトでは、静的なメンバーやメソッドを定義できます。 + トレイトでは、static 変数、static メソッド、static プロパティを定義できます。 + + + PHP 8.1.0 以降では、トレイトにある static メソッドや、 + static プロパティに直接アクセスすることは、 + 推奨されなくなりました。 + これらは、トレイトを使っているクラスからのみアクセスすべきものです。 + + - 静的な変数 + static変数 inc(); // 1 と表示 -$p = new C2(); $p->inc(); // 1 と表示 +$o = new C1(); +$o->inc(); +$p = new C2(); +$p->inc(); + ?> ]]> + &example.outputs; + + + - 静的なメソッド + staticメソッド +]]> + + &example.outputs; + + + + + + staticプロパティ + + + PHP 8.3.0 より前のバージョンでは、トレイト中で定義された static プロパティは、 + そのトレイトを use している同じ継承階層にある全てのクラスで共有されていました。 + PHP 8.3.0 以降では、子クラスが static プロパティを持つトレイトを use している場合、 + 親クラスで定義された static プロパティとは別物とみなされるようになりました。 + + + + ]]> + &example.outputs.83; + + + - + プロパティ @@ -433,28 +533,28 @@ Example::doSomething(); x; + ?> ]]> トレイトでプロパティを定義したときは、 - クラスではそれと互換性(公開範囲と初期値が同じ)がない同じ名前のプロパティを定義できません。 + クラスではそれと互換性 (公開範囲と型とreadonlyの有無、そして初期値が同じ) がない同じ名前のプロパティを定義できません。 互換性がない名前を定義すると、致命的なエラーが発生します。 - PHP 7.0.0 より前のバージョンでは、 - トレイトに存在する名前と同じ名前をクラスのプロパティに定義すると、 - クラス定義に互換性(公開範囲と初期値が同じ)があっても、 - E_STRICT レベルの警告が発生していました。 衝突の解決 @@ -463,13 +563,17 @@ $example->x; ]]> @@ -477,6 +581,109 @@ class PropertiesExample { + + &Constants; + + PHP 8.2.0 以降では、トレイトでも定数を定義できます。 + + + 定数を定義する + + +]]> + + &example.outputs; + + + + + + トレイトで定数を定義したときは、 + クラスではそれと互換性 (公開範囲と初期値、そして final の有無が同じ) がない同じ名前の定数を定義できません。 + 互換性がない名前を定義すると、致命的なエラーが発生します。 + + + 衝突の解決 + + +]]> + + + + + + Final メソッド + + PHP 8.3.0 以降では、as 演算子を使って + final + をトレイトからインポートしたメソッドに適用できるようになりました。 + こうすることで、子クラスでそのメソッドをオーバーライドすることを防止できます。 + しかし、トレイトを使うクラスは、未だそのメソッドをオーバーライドできます。 + + + トレイトからインポートするメソッドを <literal>final</literal> として定義する + + +]]> + + &example.outputs.similar; + + + + + + - - - - - タイプヒンティング - - - このドキュメントは - 関数のページ - に移動しました。 - - - - diff --git a/language/oop5/variance.xml b/language/oop5/variance.xml index fd2297b659..a181e64de4 100644 --- a/language/oop5/variance.xml +++ b/language/oop5/variance.xml @@ -1,6 +1,6 @@ - + 共変性と反変性 @@ -11,8 +11,37 @@ - 共変性とは、子クラスのメソッドが、親クラスの返り値よりも、より特定の、狭い型を返すことを許すことです。 - 一方で、反変性とは、親クラスのものよりも、より抽象的な、広い型を引数に指定することを許すものです。 + 共変性とは、子クラスのメソッドが、親クラスの戻り値よりも、より特定の、狭い型を返すことを許すことです。 + 反変性とは、親クラスのものよりも、より抽象的な、広い型を引数に指定することを許すものです。 + + + + 型宣言は以下の場合に、より特定の、狭い型であると見なされます: + + + + union 型 から、特定の型が削除されている場合 + + + + + 特定の型が + 交差型 に追加されている場合 + + + + + クラスの型が、子クラスの型に変更されている場合 + + + + + iterable が 配列 または Traversable に変更されている場合 + + + + + 上記と反対のことが当てはまる場合は、より抽象的な、広い型であると見なされます。 @@ -201,7 +230,7 @@ Mavrick eats Food - しかし、$kittyeat メソッドに + しかし、$kittyeat メソッドに $banana を渡すとどうなるでしょう? @@ -218,6 +247,61 @@ Fatal error: Uncaught TypeError: Argument 1 passed to Animal::eat() must be an i + + プロパティの共変性と反変性(変性) + + デフォルトでは、プロパティは共変でも反変でもなく不変です。 + つまり、子クラスでは型は変更できません。 + 「get」操作は共変でなければならず、 + 「set」操作は反変でなければならないことが理由です。 + 双方を同時に満たすには、プロパティは不変である必要があります。 + + + PHP 8.4.0 から、インターフェイスや抽象クラスでの抽象プロパティや、 + 仮想プロパティ が追加されたことにより、 + プロパティが「get」または「set」だけを持つことを宣言できるようになりました。 + つまり、「get」操作だけが必要な抽象プロパティや仮想プロパティは共変性を持ちます。 + 同様に、「set」操作だけが必要な抽象プロパティや仮想プロパティは反変性を持ちます。 + + + ただし、いったんプロパティが「get」と「set」操作の両方を持つようになると、 + それ以上の拡張において共変あるいは反変にはなりません。 + その時点で不変となります。 + + + プロパティの型の変性 + + +]]> + + + - + - - アクセス権 - - プロパティ、メソッドまたは (PHP 7.1.0 以降) 定数のアクセス権 (visibility) は、 - キーワード: public, protected - または private を指定することにより定義できます。 - public 宣言されたクラスのメンバーには、どこからでもアクセス可能です。 - protected 宣言されたメンバーには、 - そのクラス自身、そのクラスを継承したクラス、および親クラスからのみアクセスできます。 - private 宣言されたメンバーには、そのメンバーを定義したクラスからのみアクセスできます。 - + + アクセス権 + + プロパティ、メソッドまたは (PHP 7.1.0 以降) 定数のアクセス権 (visibility) は、 + キーワード: public, protected + または private を指定することにより定義できます。 + public 宣言されたクラスのメンバーには、どこからでもアクセス可能です。 + protected 宣言されたメンバーには、 + そのクラス自身、そのクラスを継承したクラス、および親クラスからのみアクセスできます。 + private 宣言されたメンバーには、そのメンバーを定義したクラスからのみアクセスできます。 + プロパティのアクセス権 クラスのプロパティは、public, private, または protected - として定義しなくてはなりません。var - を使って宣言した場合、 + として定義することができます。 + アクセス権を明示的に指定しない場合、 そのプロパティは public として定義されます。 - - - プロパティの宣言 - + + プロパティの宣言 + printHello(); // Public2, Protected2, Undefined を表示します ]]> - - - - キーワード var で変数を宣言する - PHP 4 の方法は、互換性を保つために今でもサポートされています - (これは public と同じ扱いになります)。PHP 5.1.3 より前では、 - これを使用すると E_STRICT - 警告が発生します。 - - - - - - メソッドのアクセス権 - - クラスメソッドは、public, private, または protected - として定義します。アクセス権を明示せずに宣言したメソッドは、 - public となります。 - - + + 非対称可視性プロパティ + + PHP 8.4 から、プロパティは非対称に + アクセス権を設定できるようになりました。 + 読み取り(get)と書き込み(set)に + 異なるスコープを設定できます。具体的には、set のアクセス権が + メインのアクセス権より広くならない限り、 + 別々に指定できます。 + + + 非対称可視性プロパティ + +author = $author; // OK + $this->pubYear = $year; // 致命的なエラー + } +} + +$b = new Book('How to PHP', 'Peter H. Peterson', 2024); + +echo $b->title; // OK +echo $b->author; // OK +echo $b->pubYear; // 致命的なエラー + +$b->title = 'How not to PHP'; // 致命的なエラー +$b->author = 'Pedro H. Peterson'; // 致命的なエラー +$b->pubYear = 2023; // 致命的なエラー +?> +]]> + + + 非対称可視性プロパティにはいくつかの注意点があります: + + + + 型付きプロパティのみが、set のアクセス権を個別に指定できます。 + + + + + set のアクセス権は、get と同じか、 + より厳しくなければなりません。つまり、 + public protected(set) および protected protected(set) + は許可されますが、protected public(set) は構文エラーになります。 + + + + + プロパティが public の場合、メインのアクセス権は + 省略できます。つまり、public private(set)private(set) は + 同じ結果になります。 + + + + + private(set) のアクセス権を持つプロパティは + 自動的に final となり、子クラスで再宣言できません。 + + + + + プロパティへのリファレンスを取得する場合、get ではなく set のアクセス権に従います。 + これは、リファレンスを使用してプロパティの値を変更できるためです。 + + + + + 同様に、配列プロパティへの書き込みを試みると、内部的には get と + set の両方の操作が行われます。そのため、常により厳しい set + のアクセス権に従います。 + + + + + + アクセス権を set する宣言に、スペースは許されません。 + private(set) は正しい宣言です。 + private( set ) は正しくないので、 + パースエラーになります。 + + + + クラスが別のクラスを継承するとき、子クラスは + final でない任意のプロパティを再定義できます。その際、 + 新しいアクセス権が親クラスと同じか広い場合に限り、 + メインのアクセス権または set + のアクセス権を広げることができます。ただし、 + private プロパティがオーバーライドされると、 + 実際には親のプロパティを変更するのではなく、 + 異なる内部名を持つ新しいプロパティを作成することに注意してください。 + + + 非対称可視性プロパティの継承 + + +]]> + + + + + + + メソッドのアクセス権 + + クラスメソッドは、public, private, または protected + として定義します。アクセス権を明示せずに宣言したメソッドは、 + public となります。 + メソッドの宣言 - + test(); // Bar::testPrivate ]]> - - + 定数のアクセス権 PHP 7.1.0 以降では、クラスの定数は public, private, protected - として定義することが許されるようになりました。 + として定義できるようになりました。 明示的に公開範囲のキーワードを明示的に宣言しない定数は、public として定義されます。 - - - PHP 7.1.0 以降での定数の宣言 - + + PHP 7.1.0 以降での定数の宣言 + foo2(); // Public, Protected では動作しますが、Private では動作しません ?> ]]> - - - + + @@ -269,7 +383,7 @@ $myclass2->foo2(); // Public, Protected では動作しますが、Private で 同じ型のオブジェクトの private メンバーへのアクセス - + - - + - - 演算子 - - 演算子とは、ひとつ以上の値 (あるいはプログラミング用語における「式」) - から別の値 (制御構造が式になるように) を生み出すものです。 - - - 演算子は、受け取る値の数によって分類することができます。単項演算子はひとつの値だけを受け取るもので、 - ! ( - 論理否定演算子) や - ++ ( - 加算子) - などです。二項演算子はふたつの値を受け取ります。おなじみの - 代数演算子 である - + (加算) や - (減算) - など PHP の演算子の大半はこの分類に含まれます。最後は三つの値を受け取る - 三項演算子 - で、これは ? : だけしかありません。この演算子はしばしば、単に - "三項演算子" と呼ばれます (しかし、より適切な呼び方としては - 条件演算子と呼ぶほうがよいでしょう)。 - - - PHP の演算子の完全な一覧は、 - 演算子の優先順位 - の欄にあります。この節では演算子の優先順位と結合性について説明します。 - 複数の演算子を組み合わせたときにどう評価されるのかは、優先順位と結合性で決まります。 - - - - 演算子の優先順位 - - 演算子の優先順位は、二つの式が"緊密に"結合している度合いを指定します。 - 例えば、式 1 + 5 * 3 の答えは - 16 になり、18 とはなりません。 - これは乗算演算子("*")は、加算演算子("+")より高い優先順位を有するか - らです。必要に応じて強制的に優先順位を設定するために括弧を使用する - ことが可能です。例えば、18と評価するためには、 - (1 + 5) * 3 とします。 - - - 演算子の優先順位が等しい場合は、その結合性によって評価順 - (右から評価するのか、あるいは左から評価するのか) が決まります。 - たとえば "-" は左結合なので、 - 1 - 2 - 3(1 - 2) - 3 とグループ分けされて、 - 評価結果は -4 になります。 - 一方、"=" は右結合です。つまり $a = $b = $c のグループ分けは - $a = ($b = $c) となります。 - - - 優先順位が同じで結合しない演算子を並べることはできません。つまり、たとえば - 1 < 2 > 1 は PHP では無効になります。 - 一方 1 <= 1 == 1 は問題ありません。 - == 演算子の優先順位が - <= 演算子より低いからです。 - - - 厳密には不要な場所であっても、括弧をつけておけばコードの可読性があがります。 - 明示的にグループ分けをしておくことで、演算子の優先順位や結合性による暗黙のグループ分けに頼らずに済むからです。 - - - 次の表では、優先順位が高い順に演算子を挙げています。 - 同じ行にある演算子は優先順位が等しくなります。そのような場合は、 - 結合時の評価にしたがってグループ分けが決まります。 - - 演算子の優先順位 - - - - 結合時の評価 - 演算子 - 追加情報 - - - - - (n/a) - - clone - new - - clone および new - - - right - ** - 代数演算子 - - - (n/a) - - ++ - -- - ~ - (int) - (float) - (string) - (array) - (object) - (bool) - @ - - - 型 および 加算子/減算子 - - - - left - instanceof - - 型 - - - - (n/a) - ! - - 論理演算子 - - - - left - - * - / - % - - - 代数演算子 - - - - left - - + - - - . - - - 代数演算子&listendand; - 文字列演算子 - - - left - - << - >> - - - ビット演算子 - - - - 結合しない - - < - <= - > - >= - - - 比較演算子 - - - - 結合しない - - == - != - === - !== - <> - <=> - - - 比較演算子 - - - - left - & - - ビット演算子&listendand; - リファレンス - - - left - ^ - - ビット演算子 - - - - left - | - - ビット演算子 - - - - left - && - - 論理演算子 - - - - left - || - - 論理演算子 - - - - right - ?? - - NULL合体演算子 - - - - left - ? : - - 三項演算子 - - - - right - - = - += - -= - *= - **= - /= - .= - %= - &= - |= - ^= - <<= - >>= - ??= - - - 代入演算子 - - - - (n/a) - yield from - - yield from - - - - (n/a) - yield - - yield - - - - (n/a) - print - print - - - left - and - - 論理演算子 - - - - left - xor - - 論理演算子 - - - - left - or - - 論理演算子 - - - - -
-
- - - 結合時の評価 - - $a = 5, $b = 5 -?> -]]> - - - - - 演算子の優先順位や結合性は、あくまでも式のグループ分けだけを決めるものであり、評価順を決めるものではありません。 - PHP では一般に、式をどの順番で評価するかは決めていません。 - そのため、特定の順序で式が評価されることを前提としたコードを書いてはいけません。 - PHP のバージョンが変わったり前後のコードが変わったりしたときに、評価順が変わる可能性があるからです。 - - 評価順序は未定義 - - -]]> - - - - <literal>+</literal>、<literal>-</literal>、<literal>.</literal> の優先順位は同じ - - -]]> - - &example.outputs; - - - - - - - - = は他のほとんどの演算子よりも優先順位が低いはずなのにもかかわらず、 - PHP は依然として if (!$a = foo()) - のような式も許します。この場合は foo() の返り値が - $a に代入されます。 - - -
- - - 代数演算子 - - 学校で習った基礎代数を憶えていますか? - この演算子はそれらと同様に動作します。 - - - 代数演算子 - - - - - 名前 - 結果 - - - - - +$a - 同一 - - $a を、必要に応じて int - あるいは float に変換する - - - - -$a - 負にする - $a の逆 - - - $a + $b - 加算 - $a および $b の合計 - - - $a - $b - 減算 - $a$b の差 - - - $a * $b - 乗算 - $a および $b の積 - - - $a / $b - 除算 - $a および $b の商 - - - $a % $b - 剰余 - $a$b で割った余り - - - $a ** $b - 累乗 - $a$b 乗。PHP 5.6 で導入されました。 - - - -
- - - 除算演算子 ("/") の返す値は浮動小数点数となります。 - ただし、ふたつのオペランドがともに整数 (あるいは整数に変換できる文字列) - であり、かつ結果が割り切れる場合には整数値を返します。 - 整数の除算については intdiv を参照ください。 - - - 剰余演算子は、まず両方のオペランドを整数に直し - (小数点以下を切り捨てます) - てから処理を行います。 - 浮動小数点の剰余については fmod を参照ください。 - - - 剰余演算子 % の結果の符号は、被除数の符号と同じになります。 - つまり、$a % $b の結果の符号は - $a と同じになるということです。 - - - -]]> - - - - - マニュアルの - 数学関数の項も参照してください。 - - -
- - - 代入演算子 - - 代入演算子の基本となるものは "=" です。この演算子に関して最初に - 思い付く意味は"等しい"であるかもしれません。しかし、そうではありません。 - 本当は、左オペランドに右オペランドの式の値を設定する("得て代入する") - ことを意味します。 - - - 代入式の値は、代入される値です。つまり、"$a = 3" の値は、3 です。 - これにより、以下のようなトリッキーなことができるようになります。 - - - -]]> - - - - - 基本代入演算子に加えて、全ての - 演算子、配列結合および文字列演算子に関して - 「複合演算子」があります。 - これにより、式の中の値を使用し、その値をその式の結果とすることができます。 - 例えば、 - - - -]]> - - - - - 代入は、元の変数を新しい変数にコピーする(値による代入)ため、 - 片方の変数に対する変更はもう片方に影響を与えないということに - 注意してください。この動作により、密なループの内側で大きな配列のようなものを - コピーする必要がある場合には問題を生じる可能性があります。 - - - PHP では通常は値による代入になりますが、 - オブジェクトは参照で代入されます。 - オブジェクトを明示的にコピーするには - clone キーワードを使います。 - - - - 参照による代入 - - 参照による代入もサポートしており、 - "$var = &$othervar;" 構文で使うことができます。 - 参照による代入とは、両方の変数が同じデータを指すようにするということです。 - データのコピーは発生しません。 - - - - 参照による代入 - - -]]> - - - - - new - 演算子が自動的に参照を返すようになりました。そのため、 - new の結果を参照で代入することは - PHP 7.0.0 から許されなくなりました。 - それより前のバージョンでは、PHP 5.3 以降では E_DEPRECATED、それより前のバージョンでは - E_STRICT が発生していました。 - - - たとえば、このコードはエラーが出るか、警告が発生します。 - - - -]]> - - &example.outputs.7; - - - - &example.outputs.53; - - - - &example.outputs.5; - - - - - - - 参照に関する詳細な情報やその使い方については、このマニュアルの - 参照に関する説明 - をご覧ください。 - - - - - 算術代入演算子 - - - - - - 同一の結果になる操作 - 演算 - - - - - $a += $b - $a = $a + b - 加算 - - - $a -= $b - $a = $a - $b - 減算 - - - $a *= $b - $a = $a * $b - 乗算 - - - $a /= $b - $a = $a / $b - 除算 - - - $a %= $b - $a = $a % $b - 剰余 - - - - - - - - ビット代入演算子 - - - - - - 同一の結果になる操作 - 演算 - - - - - $a &= $b - $a = $a & $b - ビット積 - - - $a |= $b - $a = $a | $b - ビット和 - - - $a ^= $b - $a = $a ^ $b - 排他的論理和 - - - $a <<= $b - $a = $a << $b - 左シフト - - - $a >>= $b - $a = $a >> $b - 右シフト - - - - - - - - その他の代入演算子 - - - - - - 同一の結果になる操作 - 演算 - - - - - $a .= $b - $a = $a . $b - 文字列の結合 - - - $a ??= $b - $a = $a ?? $b - Null合体 - - - - - - - - - 代数演算子, ビット演算子, - 文字列演算子, - NULL 合体演算子 のページも参照して下さい。 - - - - - - ビット演算子 - - ビット演算子は、整数値の特定のビットの評価や操作を行います。 - - - ビット演算子 - - - - - 名前 - 結果 - - - - - $a & $b - ビット積 - $a および $b の両方にセットされているビットがセットされます - - - $a | $b - ビット和 - $a または $b のどちらかにセットされているビットがセットされます - - - $a ^ $b - 排他的論理和 - $a または $b のどちらか一方にセットされており、両方にセットされていないビットがセットされます - - - ~ $a - 否定 - $a にセットされているビットはセットせず、そうでないものは逆にします - - - $a << $b - 左シフト - $a のビットを左に $b ビットシフトする (各シフトは "2をかける" - ことを意味します) - - - - $a >> $b - 右シフト - $a のビットを右に $b ビットシフトします (各シフトは "2で割る" - ことを意味します) - - - - -
- - PHP のシフト処理は算術シフトです。両端からあふれたビットは捨てられます。 - 左シフトをすると右側にはゼロが埋められます。 - 符号ビットは左端からあふれて消えます。 - つまり、オペランドの符号は維持されないということです。 - 右シフトの際には、符号ビットと同じ内容が左端から埋められます。 - つまり、この場合はオペランドの符号が維持されます。 - - - 括弧を使うことで、望みどおりの - 優先順位 - で処理させることができます。たとえば、$a & $b == true - はまず等価かどうかを評価してからビット演算を行いますが - ($a & $b) == true - はまずビット演算を行ってから等価かどうかを評価します。 - - - &| そして - ^ 演算子の左右のオペランドが文字列の場合、その演算は、 - 文字列を構成する文字の ASCII 値を使って行います。その結果は文字列になります。 - それ以外の場合は、左右のオペランドを - integer に変換 - し、結果も integer になります。 - - - ~ 演算子のオペランドが文字列の場合、その演算は、 - 文字列を構成する文字の ASCII 値を使って行います。その結果は文字列になります。 - それ以外の場合は、オペランドや演算結果を integer として扱います。 - - - << および - >> 演算子のオペランドとその結果は、常に integer として扱います。 - - - - - -PHP の ini 設定 error_reporting はビット値を用いています。 -これを用いて、特定のビットを落とす演算の例を見てみましょう。 -notice 以外のすべてのエラーを表示させるには、 -php.ini ファイルで -E_ALL & ~E_NOTICE -と指定することになります。 - - - - -まずは E_ALL。 -00000000000000000111011111111111 -そして E_NOTICE...。 -00000000000000000000000000001000 -... これを ~ で逆転させます。 -11111111111111111111111111110111 -最後に AND (&) を使い、両方ともビットが立っているところをみつけます。 -00000000000000000111011111110111 - - - - -同じ結果を得るもうひとつの方法として、 XOR (^) -を使ってどちらか一方だけ立っているビットを探すという方法もあります。 -E_ALL ^ E_NOTICE - - - - - - - - -error_reporting を使って、特定のビットを立てる処理の例を見てみましょう。 -通常のエラーとリカバー可能なエラーだけを表示させるには、次のようにします。 -E_ERROR | E_RECOVERABLE_ERROR - - - - -この処理は、 E_ERROR -00000000000000000000000000000001 -と -00000000000000000001000000000000 -を OR (|) 演算子でつないで、 -少なくともどちらかのビットが立っているところを取得します。 -00000000000000000001000000000001 - - - - - - - 整数値におけるビット AND、OR および XOR 演算 - - -]]> - - &example.outputs; - - - - - - - - 文字列でのビット XOR 演算 - - -]]> - - - - - - 整数値のビットシフト - -> $places; -p($res, $val, '>>', $places, 'copy of sign bit shifted into left side'); - -$val = 4; -$places = 2; -$res = $val >> $places; -p($res, $val, '>>', $places); - -$val = 4; -$places = 3; -$res = $val >> $places; -p($res, $val, '>>', $places, 'bits shift out right side'); - -$val = 4; -$places = 4; -$res = $val >> $places; -p($res, $val, '>>', $places, 'same result as above; can not shift beyond 0'); - - -echo "\n--- BIT SHIFT RIGHT ON NEGATIVE INTEGERS ---\n"; - -$val = -4; -$places = 1; -$res = $val >> $places; -p($res, $val, '>>', $places, 'copy of sign bit shifted into left side'); - -$val = -4; -$places = 2; -$res = $val >> $places; -p($res, $val, '>>', $places, 'bits shift out right side'); - -$val = -4; -$places = 3; -$res = $val >> $places; -p($res, $val, '>>', $places, 'same result as above; can not shift beyond -1'); - - -echo "\n--- BIT SHIFT LEFT ON POSITIVE INTEGERS ---\n"; - -$val = 4; -$places = 1; -$res = $val << $places; -p($res, $val, '<<', $places, 'zeros fill in right side'); - -$val = 4; -$places = (PHP_INT_SIZE * 8) - 4; -$res = $val << $places; -p($res, $val, '<<', $places); - -$val = 4; -$places = (PHP_INT_SIZE * 8) - 3; -$res = $val << $places; -p($res, $val, '<<', $places, 'sign bits get shifted out'); - -$val = 4; -$places = (PHP_INT_SIZE * 8) - 2; -$res = $val << $places; -p($res, $val, '<<', $places, 'bits shift out left side'); - - -echo "\n--- BIT SHIFT LEFT ON NEGATIVE INTEGERS ---\n"; - -$val = -4; -$places = 1; -$res = $val << $places; -p($res, $val, '<<', $places, 'zeros fill in right side'); - -$val = -4; -$places = (PHP_INT_SIZE * 8) - 3; -$res = $val << $places; -p($res, $val, '<<', $places); - -$val = -4; -$places = (PHP_INT_SIZE * 8) - 2; -$res = $val << $places; -p($res, $val, '<<', $places, 'bits shift out left side, including sign bit'); - - -/* - * このへんは無視してください。 - * たんに結果をきれいに表示させるためだけのものです。 - */ - -function p($res, $val, $op, $places, $note = '') { - $format = '%0' . (PHP_INT_SIZE * 8) . "b\n"; - - printf("Expression: %d = %d %s %d\n", $res, $val, $op, $places); - - echo " Decimal:\n"; - printf(" val=%d\n", $val); - printf(" res=%d\n", $res); - - echo " Binary:\n"; - printf(' val=' . $format, $val); - printf(' res=' . $format, $res); - - if ($note) { - echo " NOTE: $note\n"; - } - - echo "\n"; -} -?> -]]> - - &example.outputs.32bit; - -> 1 - Decimal: - val=4 - res=2 - Binary: - val=00000000000000000000000000000100 - res=00000000000000000000000000000010 - NOTE: copy of sign bit shifted into left side - -Expression: 1 = 4 >> 2 - Decimal: - val=4 - res=1 - Binary: - val=00000000000000000000000000000100 - res=00000000000000000000000000000001 - -Expression: 0 = 4 >> 3 - Decimal: - val=4 - res=0 - Binary: - val=00000000000000000000000000000100 - res=00000000000000000000000000000000 - NOTE: bits shift out right side - -Expression: 0 = 4 >> 4 - Decimal: - val=4 - res=0 - Binary: - val=00000000000000000000000000000100 - res=00000000000000000000000000000000 - NOTE: same result as above; can not shift beyond 0 - - ---- BIT SHIFT RIGHT ON NEGATIVE INTEGERS --- -Expression: -2 = -4 >> 1 - Decimal: - val=-4 - res=-2 - Binary: - val=11111111111111111111111111111100 - res=11111111111111111111111111111110 - NOTE: copy of sign bit shifted into left side - -Expression: -1 = -4 >> 2 - Decimal: - val=-4 - res=-1 - Binary: - val=11111111111111111111111111111100 - res=11111111111111111111111111111111 - NOTE: bits shift out right side - -Expression: -1 = -4 >> 3 - Decimal: - val=-4 - res=-1 - Binary: - val=11111111111111111111111111111100 - res=11111111111111111111111111111111 - NOTE: same result as above; can not shift beyond -1 - - ---- BIT SHIFT LEFT ON POSITIVE INTEGERS --- -Expression: 8 = 4 << 1 - Decimal: - val=4 - res=8 - Binary: - val=00000000000000000000000000000100 - res=00000000000000000000000000001000 - NOTE: zeros fill in right side - -Expression: 1073741824 = 4 << 28 - Decimal: - val=4 - res=1073741824 - Binary: - val=00000000000000000000000000000100 - res=01000000000000000000000000000000 - -Expression: -2147483648 = 4 << 29 - Decimal: - val=4 - res=-2147483648 - Binary: - val=00000000000000000000000000000100 - res=10000000000000000000000000000000 - NOTE: sign bits get shifted out - -Expression: 0 = 4 << 30 - Decimal: - val=4 - res=0 - Binary: - val=00000000000000000000000000000100 - res=00000000000000000000000000000000 - NOTE: bits shift out left side - - ---- BIT SHIFT LEFT ON NEGATIVE INTEGERS --- -Expression: -8 = -4 << 1 - Decimal: - val=-4 - res=-8 - Binary: - val=11111111111111111111111111111100 - res=11111111111111111111111111111000 - NOTE: zeros fill in right side - -Expression: -2147483648 = -4 << 29 - Decimal: - val=-4 - res=-2147483648 - Binary: - val=11111111111111111111111111111100 - res=10000000000000000000000000000000 - -Expression: 0 = -4 << 30 - Decimal: - val=-4 - res=0 - Binary: - val=11111111111111111111111111111100 - res=00000000000000000000000000000000 - NOTE: bits shift out left side, including sign bit -]]> - - &example.outputs.64bit; - -> 1 - Decimal: - val=4 - res=2 - Binary: - val=0000000000000000000000000000000000000000000000000000000000000100 - res=0000000000000000000000000000000000000000000000000000000000000010 - NOTE: copy of sign bit shifted into left side - -Expression: 1 = 4 >> 2 - Decimal: - val=4 - res=1 - Binary: - val=0000000000000000000000000000000000000000000000000000000000000100 - res=0000000000000000000000000000000000000000000000000000000000000001 - -Expression: 0 = 4 >> 3 - Decimal: - val=4 - res=0 - Binary: - val=0000000000000000000000000000000000000000000000000000000000000100 - res=0000000000000000000000000000000000000000000000000000000000000000 - NOTE: bits shift out right side - -Expression: 0 = 4 >> 4 - Decimal: - val=4 - res=0 - Binary: - val=0000000000000000000000000000000000000000000000000000000000000100 - res=0000000000000000000000000000000000000000000000000000000000000000 - NOTE: same result as above; can not shift beyond 0 - - ---- BIT SHIFT RIGHT ON NEGATIVE INTEGERS --- -Expression: -2 = -4 >> 1 - Decimal: - val=-4 - res=-2 - Binary: - val=1111111111111111111111111111111111111111111111111111111111111100 - res=1111111111111111111111111111111111111111111111111111111111111110 - NOTE: copy of sign bit shifted into left side - -Expression: -1 = -4 >> 2 - Decimal: - val=-4 - res=-1 - Binary: - val=1111111111111111111111111111111111111111111111111111111111111100 - res=1111111111111111111111111111111111111111111111111111111111111111 - NOTE: bits shift out right side - -Expression: -1 = -4 >> 3 - Decimal: - val=-4 - res=-1 - Binary: - val=1111111111111111111111111111111111111111111111111111111111111100 - res=1111111111111111111111111111111111111111111111111111111111111111 - NOTE: same result as above; can not shift beyond -1 - - ---- BIT SHIFT LEFT ON POSITIVE INTEGERS --- -Expression: 8 = 4 << 1 - Decimal: - val=4 - res=8 - Binary: - val=0000000000000000000000000000000000000000000000000000000000000100 - res=0000000000000000000000000000000000000000000000000000000000001000 - NOTE: zeros fill in right side - -Expression: 4611686018427387904 = 4 << 60 - Decimal: - val=4 - res=4611686018427387904 - Binary: - val=0000000000000000000000000000000000000000000000000000000000000100 - res=0100000000000000000000000000000000000000000000000000000000000000 - -Expression: -9223372036854775808 = 4 << 61 - Decimal: - val=4 - res=-9223372036854775808 - Binary: - val=0000000000000000000000000000000000000000000000000000000000000100 - res=1000000000000000000000000000000000000000000000000000000000000000 - NOTE: sign bits get shifted out - -Expression: 0 = 4 << 62 - Decimal: - val=4 - res=0 - Binary: - val=0000000000000000000000000000000000000000000000000000000000000100 - res=0000000000000000000000000000000000000000000000000000000000000000 - NOTE: bits shift out left side - - ---- BIT SHIFT LEFT ON NEGATIVE INTEGERS --- -Expression: -8 = -4 << 1 - Decimal: - val=-4 - res=-8 - Binary: - val=1111111111111111111111111111111111111111111111111111111111111100 - res=1111111111111111111111111111111111111111111111111111111111111000 - NOTE: zeros fill in right side - -Expression: -9223372036854775808 = -4 << 61 - Decimal: - val=-4 - res=-9223372036854775808 - Binary: - val=1111111111111111111111111111111111111111111111111111111111111100 - res=1000000000000000000000000000000000000000000000000000000000000000 - -Expression: 0 = -4 << 62 - Decimal: - val=-4 - res=0 - Binary: - val=1111111111111111111111111111111111111111111111111111111111111100 - res=0000000000000000000000000000000000000000000000000000000000000000 - NOTE: bits shift out left side, including sign bit -]]> - - - - - - PHP 7.0 より前のバージョンでは、 - システムの long 型で扱える範囲以上の整数値をシフトしたり、 - 負の値をシフトさせた場合の結果は未定義でした。 - 言い換えると、PHP 5.x を使っているのなら、 - 32ビットシステム上では、32ビット以上の値をシフトしないようにしましょう。 - 同様に、64ビットシステム上では、64ビット以上の値をシフトしないようにしましょう。 - - - PHP_INT_MAX を超える数のビット演算には、 - gmp 拡張モジュールの関数を使いましょう。 - - - - pack, - unpack, - gmp_and, - gmp_or, - gmp_xor, - gmp_testbit, - gmp_clrbit - も参照ください。 - -
- - - 比較演算子 - - 比較演算子は、その名前が示すように、二つの値を比較します。 - 型の比較表 - に、型に関連するさまざまな比較の例があります。 - - - 比較演算子 - - - - - 名前 - 結果 - - - - - $a == $b - 等しい - 型の相互変換をした後で $a$b に等しい時に &true;。 - - - $a === $b - 等しい - $a$b に等しく、および同じ型である場合に &true; 。 - - - - $a != $b - 等しくない - 型の相互変換をした後で $a$b に等しくない場合に &true;。 - - - $a <> $b - 等しくない - 型の相互変換をした後で $a$b に等しくない場合に &true;。 - - - $a !== $b - 等しくない - - $a$b と等しくないか、同じ型でない場合に &true; 。 - - - - $a < $b - より少ない - $a$b より少ない時に &true;。 - - - $a > $b - より多い - $a$b より多い時に &true;。 - - - $a <= $b - より少ないか等しい - $a$b より少ないか等しい時に &true;。 - - - $a >= $b - より多いか等しい - $a$b より多いか等しい時に &true;。 - - - $a <=> $b - 宇宙船演算子 - - $a が - $b より大きいか、0等しいか、小さい場合に、 - それぞれ、0より大きい か、0か、0より小さい integer。 - PHP 7 以降で使用可能。 - - - - -
- - 整数値を文字列と比較したり、比較に数値形式の文字が含まれる場合は、文字列が - 数値に変換され、 - 数値としての比較を行います。これらのルールは、 - switch 文にも適用されます。 - === あるいは !== による比較では型変換は発生しません。 - この場合は値だけでなく型も比較します。 - - - true -var_dump("1" == "01"); // 1 == 1 -> true -var_dump("10" == "1e1"); // 10 == 10 -> true -var_dump(100 == "1e2"); // 100 == 100 -> true - -switch ("a") { -case 0: - echo "0"; - break; -case "a": // "a" は 0 にマッチするので、決してここにはたどりつきません - echo "a"; - break; -} -?> -]]> - - - 1; // 0 -echo 1 <=> 2; // -1 -echo 2 <=> 1; // 1 - -// Float -echo 1.5 <=> 1.5; // 0 -echo 1.5 <=> 2.5; // -1 -echo 2.5 <=> 1.5; // 1 - -// 文字列 -echo "a" <=> "a"; // 0 -echo "a" <=> "b"; // -1 -echo "b" <=> "a"; // 1 - -echo "a" <=> "aa"; // -1 -echo "zz" <=> "aa"; // 1 - -// 配列 -echo [] <=> []; // 0 -echo [1, 2, 3] <=> [1, 2, 3]; // 0 -echo [1, 2, 3] <=> []; // 1 -echo [1, 2, 3] <=> [1, 2, 1]; // 1 -echo [1, 2, 3] <=> [1, 2, 4]; // -1 - -// オブジェクト -$a = (object) ["a" => "b"]; -$b = (object) ["a" => "b"]; -echo $a <=> $b; // 0 - -$a = (object) ["a" => "b"]; -$b = (object) ["a" => "c"]; -echo $a <=> $b; // -1 - -$a = (object) ["a" => "c"]; -$b = (object) ["a" => "b"]; -echo $a <=> $b; // 1 - -// 比較するのは値だけではない; キーも一致しなければならない -$a = (object) ["a" => "b"]; -$b = (object) ["b" => "b"]; -echo $a <=> $b; // 1 - -?> -]]> - - - - - - - 多くの型では、以下の表にしたがって(上から順に)比較が行われます。 - - - さまざまな型の比較 - - - - 第 1 オペランドの型 - 第 2 オペランドの型 - 結果 - - - - - null または string - string - &null; を "" に変換し、数値または文字として比較します - - - bool または null - あらゆる型 - 両辺を bool に変換し、&false; < &true; と判断します - - - object - object - 組み込みクラスには独自の比較基準が定義されています。 - 異なるクラスは比較できません。同じクラスであるかどうかは - ここで説明されています。 - - - - string, resource または number - string, resource または number - 文字列やリソースを数値に変換し、算術演算を行います - - - array - array - 要素数の少ない配列のほうが小さくなります。オペランド 1 のキーが - オペランド 2 に存在しない場合、配列は比較できません。そうでない場合は - 個々の要素の値を比較します(以下の例を参照ください) - - - object - あらゆる型 - object のほうが常に大きくなります - - - array - あらゆる型 - array のほうが常に大きくなります - - - -
- - - - Boolean/null comparison - - -]]> - - - - - - - - 一般的な配列の比較 - - count($op2)) { - return 1; // $op1 > $op2 - } - foreach ($op1 as $key => $val) { - if (!array_key_exists($key, $op2)) { - return null; // uncomparable - } elseif ($val < $op2[$key]) { - return -1; - } elseif ($val > $op2[$key]) { - return 1; - } - } - return 0; // $op1 == $op2 -} -?> -]]> - - - - - - strcasecmp, - strcmp、 - 配列演算子, - マニュアルの - 型 のセクションも参照してください。 - - - - 浮動小数点数値の比較 - - - ふたつの float 値が等しいかどうかを調べてはいけません。 - float の内部的な表現方法がその理由です。 - - - - 詳細な情報は float のドキュメントを参照ください。 - - - - - 三項演算子 - - もうひとつの条件演算子として "?:"(あるいは三項)演算子があります。 - - デフォルト値を設定する - - -]]> - - - (expr1) ? (expr2) : (expr3) - という式は、式1 が &true; の場合に - 式2 を、 - 式1 が &false; の場合に - 式3 を値とします。 - - - PHP 5.3 以降では、三項演算子のまんなかの部分をなくすこともできるようになりました。 - 式 expr1 ?: expr3 の結果は、expr1 が - &true; と同等の場合は expr1、 - それ以外の場合は expr3 となります。 - - - - 三項演算子は式であり、値としては評価されずに式の結果として評価される - ことに注意してください。演算結果をリファレンスとして返したい場合に、 - これを知っておくことが大切です。結果をリファレンスとして返す関数で - return $var == 42 ? $a : $b; とすることはできず、 - 警告が発生します。 - - - - - 三項演算子を "積み重ねて" 使用することは避けましょう。 - ひとつの文の中で複数の三項演算子を使用した際の PHP の振る舞いは、 - 少々わかりにくいものです。 - - 三項演算子のわかりにくい挙動 - - -]]> - - - - - - - - Null 合体演算子 - - PHP 7 以降ではさらに、"??" 演算子 (null 合体演算子) が使えるようになりました。 - - デフォルト値の代入 - - -]]> - - - 式 (expr1) ?? (expr2) は、 - expr1 が &null; である場合は expr2 - と評価され、それ以外の場合は expr1 と評価されます。 - - - この演算子は、左側の値が存在しない場合でも notice が発生しません。 - isset と同じ挙動です。 - これは、配列のキーを扱う場合に便利です。 - - - - Null 合体演算子は式であることに注意しましょう。変数として評価されるのではなく、式の結果として評価されます。 - 変数を参照で返そうとするときには、これを意識しておくことが重要です。 - 参照返しの関数で return $foo ?? $bar; のように書いてもうまく動かずに、 - 警告が発生します。 - - - - - Null 合体演算子はネストさせることもできます。 - - Null 合体演算子のネスト - - -]]> - - - - - -
- - - エラー制御演算子 - - PHP はエラー制御演算子(@)をサポートしています。PHP の式の前に付けた場合、 - その式により生成されたエラーメッセージは無視されます。 - - - set_error_handler で自作のエラーハンドラを設定した場合は - エラー制御演算子があってもそのエラーハンドラがコールされます。 - しかし、自作のエラーハンドラの中で error_reporting - をコールすれば、@ つきの式で生成されたエラーの場合は返り値が 0 - になるのでこの値で区別することができます。 - 自作のエラーハンドラの中ではこの方法による区別を行うべきです。 - - - 機能が - 有効な場合、式により生成されたエラーメッセージはグローバル変数 - $php_errormsg - に保存されます。この変数はエラーが発生するたびに上書きされます。 - そのため、この変数を使用したい場合には速やかに確認する必要があります。 - - - - - -]]> - - - - - - @演算子は、式 - でのみ動作します。基本的なルールは次のようになります。 - 値を得ることができるものの場合、@ 演算子を前に付けることが可能です。 - 例えば、変数、関数、include コール、定数等の - 前にこの演算子をつけることが可能です。関数またはクラスの定義や - if や &foreach; 等のような - 条件構造の前にこの演算子を付けることはできません。 - - - - error_reporting と、 - エラー処理とログ出力関数 - も参照してください。 - - - - 現在、エラー制御演算子プレフィックス"@"は、スクリプトの実行を - 終了するような致命的なエラーの出力さえ抑圧します。このため、ある関数の - エラー出力を抑制するために "@" を使用した場合、その関数が - 利用できなかったり、ミスタイプがあった場合でも、原因を示すことなく - その場所でスクリプトは終了してしまいます。 - - - - - - 実行演算子 - - PHP は 1 種類の実行演算子、バッククォート (``) をサポートします。 - シングルクォートではないことに注意してください! PHP は、バッククォートの - 中身をシェルコマンドとして実行しようとします。出力が返されます - (すなわち、出力を単にダンプするのではなく、変数に代入することが - できます) 。 - バッククォート演算子の使用は shell_exec と等価です。 - - -$output"; -?> -]]> - - - - - - バッククォート演算子は、&safemode; が有効な場合 - もしくは shell_exec が無効な場合は無効となります。 - - - - - 他の言語とは異なり、 - ダブルクォートで囲まれた文字列の中でのバッククォート演算子には何の効力もありません。 - - - - マニュアルの システムプログラムの実行 - や popen, - proc_open, そして - PHPをコマンドラインから使用する - も参照してください。 - - - - - 加算子/減算子 - - PHP は C 言語形式の加算子/減算子(前置・後置ともに)をサポートします。 - - - - 加算子/減算子は、数値や文字列にしか影響を及ぼしません。 - 配列やオブジェクト、boolean、そしてリソースには、何も変更を加えません。 - 同じく &null; に減算子を適用しても何も起こりませんが、&null; に加算子を - 適用すると 1 となります。 - - - - 加算子/減算子 - - - - - 名前 - 効果 - - - - - ++$a - 前置加算子 - $a に 1 を加え、$a を返します。 - - - $a++ - 後置加算子 - $a を返し、$a に1を加えます。 - - - --$a - 前置減算子 - $a から 1 を引き、$a を返します。 - - - $a-- - 後置減算子 - $a を返し、$a から 1 を引きます。 - - - -
- - 以下に簡単なスクリプトの例を示します。 - - -後置加算"; -$a = 5; -echo "5 となります: " . $a++ . "
\n"; -echo "6 となります: " . $a . "
\n"; - -echo "

前置加算

"; -$a = 5; -echo "6 となります: " . ++$a . "
\n"; -echo "6 となります: " . $a . "
\n"; - -echo "

後置減算

"; -$a = 5; -echo "5 となります: " . $a-- . "
\n"; -echo "4 となります: " . $a . "
\n"; - -echo "

前置減算

"; -$a = 5; -echo "4 となります: " . --$a . "
\n"; -echo "4 となります: " . $a . "
\n"; -?> -]]> -
-
-
- - PHP は、算術演算子で文字変数を扱った場合に C ではなく Perl の慣習に - 従います。例えば、PHP や Perl では $a = 'Z'; $a++; - の結果として $a'AA' になりますが - C では a = 'Z'; a++; の結果として - a'[' になります - ('Z' の ASCII 値は 90、そして '[' の ASCII 値は 91 です)。 - 文字変数はインクリメントされることは可能ですがデクリメントは不可能であるということ、 - またプレーンな ASCII 文字と数字 (a-z、A-Z、そして 0-9) のみがサポートされるということに注意しましょう。 - その他の文字変数のインクリメント/デクリメントは何の効果もなく、元の文字列は変更されません。 - - 文字変数に対する算術演算子の使用 - - -]]> - - &example.outputs; - - - - - - - 論理型に対する加算/減算は何の影響も及ぼしません。 - -
- - - 論理演算子 - - - 論理演算子 - - - - - 名前 - 結果 - - - - - $a and $b - 論理積 - $a および $b が共に &true; の場合に &true; - - - $a or $b - 論理和 - $a または $b のどちらかが &true; の場合に &true; - - - $a xor $b - 排他的論理和 - - $a または $b のどちらかが &true; でかつ両方とも &true; でない場合に &true; - - - - ! $a - 否定 - $a が &true; でない場合 &true; - - - $a && $b - 論理積 - $a および $b が共に &true; の場合に &true; - - - $a || $b - 論理和 - $a または $b のどちらかが &true; の場合に &true; - - - -
- - "and" および "or" 演算子が 2 種類あるのは、演算が行われる際の優先順位が - 異なっているためです - (演算子の優先順位 - を参照ください)。 - - - 論理演算子についての説明 - - -]]> - - &example.outputs.similar; - - - - -
- - - 文字列演算子 - - 文字列の演算子は 2 種類あります。最初のは結合演算子('.')で、右引数と - 左引数を結合したものを返します。2 番目は、結合代入演算子('.=')で、 - この演算子は右側の引数に左側の引数を追加します。詳細は、代入演算子 を - 参照ください。 - - - - - - -]]> - - - - - 文字列 と - 文字列 関数も参照してください。 - - - - - 配列演算子 - - Array Operators - - - - - 名前 - 結果 - - - - - $a + $b - 結合 - $a および $b を結合する。 - - - $a == $b - 同等 - $a および $b のキー/値のペアが等しい場合に &true;。 - - - $a === $b - 同一 - - $a および $b のキー/値のペアが等しく、その並び順が等しく、 - かつデータ型も等しい場合に &true;。 - - - - $a != $b - 等しくない - $a$b と等しくない場合に &true;。 - - - $a <> $b - 等しくない - $a$b と等しくない場合に &true;。 - - - $a !== $b - 同一でない - $a$b と同一でない場合に &true;。 - - - -
- - + 演算子は、右側の配列を左側の配列に追加したものを返します。 - 両方の配列に存在するキーについては左側の配列の要素が優先され、 - 右側の配列にあった同じキーの要素は無視されます。 - - - - - "apple", "b" => "banana"); -$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry"); - -$c = $a + $b; // Union of $a and $b -echo "Union of \$a and \$b: \n"; -var_dump($c); - -$c = $b + $a; // Union of $b and $a -echo "Union of \$b and \$a: \n"; -var_dump($c); - -$a += $b; // Union of $a += $b is $a and $b -echo "Union of \$a += \$b: \n"; -var_dump($a); -?> -]]> - - - このスクリプトを実行すると、以下のように出力されます。 - - - string(5) "apple" - ["b"]=> - string(6) "banana" - ["c"]=> - string(6) "cherry" -} -Union of $b and $a: -array(3) { - ["a"]=> - string(4) "pear" - ["b"]=> - string(10) "strawberry" - ["c"]=> - string(6) "cherry" -} -Union of $a += $b: -array(3) { - ["a"]=> - string(5) "apple" - ["b"]=> - string(6) "banana" - ["c"]=> - string(6) "cherry" -} -]]> - - - - 同じキーと値を保持している場合に、配列が等しいとみなされます。 - - - - 配列の比較 - - "banana", "0" => "apple"); - -var_dump($a == $b); // bool(true) -var_dump($a === $b); // bool(false) -?> -]]> - - - - - 配列と - 配列関数も参照してください。 - -
- - - 型演算子 - - instanceof を使用して、 - ある PHP 変数が特定の - クラス - のオブジェクトのインスタンスであるかどうかを調べます。 - - クラスでの <literal>instanceof</literal> の使用法 - - -]]> - - &example.outputs; - - - - - - - instanceof は、ある変数が - 特定の親クラスを継承したクラスのオブジェクトのインスタンスであるかどうかを調べることもできます。 - - 継承したクラスでの <literal>instanceof</literal> の使用法 - - -]]> - - &example.outputs; - - - - - - - あるオブジェクトが特定のクラスのインスタンスで ない - ことを調べるには、 - 論理 否定 演算子 - を使用します。 - - <literal>instanceof</literal> を使用して、オブジェクトがクラスのインスタンスで <emphasis>ない</emphasis> - かどうかを調べる方法 - - -]]> - - &example.outputs; - - - - - - - 最後に、instanceof - は、ある変数が特定の - インターフェイス - を実装したクラスのオブジェクトのインスタンスであるかどうかも調べることができます。 - - インターフェイスでの <literal>instanceof</literal> の使用法 - - -]]> - - &example.outputs; - - - - - - - 通常、instanceof ではリテラルのクラス名を使用しますが、 - 別のオブジェクトや文字列変数を使用することもできます。 - - 変数を用いた <literal>instanceof</literal> の使用法 - - -]]> - - &example.outputs; - - - - - - - instanceof は、もし確かめる変数がオブジェクトでなくてもエラーになりません。単に - &false; を返すだけです。ただし、PHP 7.3.0 以前では、定数を調べることはできませんでした。 - - <literal>instanceof</literal> での他の変数の調べかた - - -]]> - - &example.outputs; - - - - - - - PHP 7.3.0 以降では、 - instanceof の左辺値に定数を指定できるようになりました。 - - <literal>instanceof</literal> を使って定数を確認する - - -]]> - - &example.outputs.73; - - - - - - - 注意すべき落とし穴があります。PHP 5.1.0 より前のバージョンでは、 - instanceof は、クラス名が存在しない場合に - __autoload をコールしていました。 - さらに、クラスが読み込めなかった場合に致命的なエラーが発生していました。 - この問題の回避策としては、動的なクラス参照を使用するか、 - クラス名を含む文字列変数を使用します。 - - PHP 5.0 における、クラス名検索時の致命的エラーの回避策 - - -]]> - - &example.outputs; - - - - - - - instanceof 演算子は PHP 5 から使用可能になりました。 - それ以前には is_a が使用されていましたが、 - 現在は is_a は推奨されておらず、 - instanceof の使用が推奨されています。 - PHP 5.3.0 以降、is_a は非推奨ではなくなったことに注意しましょう。 - - - get_class および - is_a も参照ください。 - - - - + + 演算子 + + 演算子とは、ひとつ以上の値 (あるいはプログラミング用語における「式」) + から別の値 (制御構造が式になるように) を生み出すものです。 + + + 演算子は、受け取る値の数によって分類することができます。単項演算子はひとつの値だけを受け取るもので、 + ! ( + 論理否定演算子) や + ++ ( + 加算子) + などです。二項演算子はふたつの値を受け取ります。おなじみの + 算術演算子 である + + (加算) や - (減算) + など PHP の演算子の大半はこの分類に含まれます。最後は三つの値を受け取る + 三項演算子 + で、これは ? : だけしかありません。この演算子はしばしば、単に + "三項演算子" と呼ばれます (しかし、より適切な呼び方としては + 条件演算子と呼ぶほうがよいでしょう)。 + + + PHP の演算子の完全な一覧は、 + 演算子の優先順位 + の欄にあります。この節では演算子の優先順位と結合性について説明します。 + 複数の演算子を組み合わせたときにどう評価されるのかは、優先順位と結合性で決まります。 + + + &language.operators.precedence; + &language.operators.arithmetic; + &language.operators.increment; + &language.operators.assignment; + &language.operators.bitwise; + &language.operators.comparison; + &language.operators.errorcontrol; + &language.operators.execution; + &language.operators.logical; + &language.operators.string; + &language.operators.array; + &language.operators.type; + &language.operators.functional; + + diff --git a/language/operators/arithmetic.xml b/language/operators/arithmetic.xml new file mode 100644 index 0000000000..d8a04a0325 --- /dev/null +++ b/language/operators/arithmetic.xml @@ -0,0 +1,115 @@ + + + + + 算術演算子 + 算術演算子 + + 学校で習った初等算術を憶えていますか? + この演算子はそれらと同様に動作します。 + + + 算術演算子 + + + + + 名前 + 結果 + + + + + +$a + 同一 + + $a を、必要に応じて int + あるいは float に変換する + + + + -$a + 負にする + $a の逆 + + + $a + $b + 加算 + $a および $b の合計 + + + $a - $b + 減算 + $a$b の差 + + + $a * $b + 乗算 + $a および $b の積 + + + $a / $b + 除算 + $a および $b の商 + + + $a % $b + 剰余 + $a$b で割った余り + + + $a ** $b + 累乗 + $a$b 乗。 + + + +
+ + + 除算演算子 / の返す値は float となります。 + ただし、ふたつのオペランドがともに int (あるいは int + に型変換される 数値形式の文字列) + であり、かつ被除数が除数の倍数である場合には整数値を返します。 + 整数の除算については intdiv を参照ください。 + + + 剰余演算子は、まず両方のオペランドを整数に直してから処理を行います。 + 浮動小数点の剰余については fmod を参照ください。 + + + 剰余演算子 % の結果の符号は、被除数の符号と同じになります。 + つまり、$a % $b の結果の符号は + $a と同じになるということです。 + + 剰余演算子 + + +]]> + + &example.outputs; + + + + + + + &reftitle.seealso; + + + 数学関数 + + + +
diff --git a/language/operators/array.xml b/language/operators/array.xml new file mode 100644 index 0000000000..91e867d051 --- /dev/null +++ b/language/operators/array.xml @@ -0,0 +1,146 @@ + + + + + 配列演算子 + 配列演算子 + + Array Operators + + + + + 名前 + 結果 + + + + + $a + $b + 結合 + $a および $b を結合する。 + + + $a == $b + 同等 + $a および $b のキー/値のペアが等しい場合に &true;。 + + + $a === $b + 同一 + + $a および $b のキー/値のペアが等しく、その並び順が等しく、 + かつデータ型も等しい場合に &true;。 + + + + $a != $b + 等しくない + $a$b と等しくない場合に &true;。 + + + $a <> $b + 等しくない + $a$b と等しくない場合に &true;。 + + + $a !== $b + 同一でない + $a$b と同一でない場合に &true;。 + + + +
+ + + 演算子は、右側の配列を左側の配列に追加したものを返します。 + 両方の配列に存在するキーについては左側の配列の要素が優先され、 + 右側の配列にあった同じキーの要素は無視されます。 + + + + 配列結合演算子 + + "apple", "b" => "banana"); +$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry"); + +$c = $a + $b; // Union of $a and $b +echo "Union of \$a and \$b: \n"; +var_dump($c); + +$c = $b + $a; // Union of $b and $a +echo "Union of \$b and \$a: \n"; +var_dump($c); + +$a += $b; // Union of $a += $b is $a and $b +echo "Union of \$a += \$b: \n"; +var_dump($a); +?> +]]> + + &example.outputs; + + +string(5) "apple" +["b"]=> +string(6) "banana" +["c"]=> +string(6) "cherry" +} +Union of $b and $a: +array(3) { +["a"]=> +string(4) "pear" +["b"]=> +string(10) "strawberry" +["c"]=> +string(6) "cherry" +} +Union of $a += $b: +array(3) { +["a"]=> +string(5) "apple" +["b"]=> +string(6) "banana" +["c"]=> +string(6) "cherry" +} +]]> + + + + + 同じキーと値を保持している場合に、配列が等しいとみなされます。 + + + + 配列の比較 + + "banana", "0" => "apple"); + +var_dump($a == $b); // bool(true) +var_dump($a === $b); // bool(false) +?> +]]> + + + + + + &reftitle.seealso; + + + 配列 + 配列関数 + + + + +
diff --git a/language/operators/assignment.xml b/language/operators/assignment.xml new file mode 100644 index 0000000000..070e4e50b5 --- /dev/null +++ b/language/operators/assignment.xml @@ -0,0 +1,251 @@ + + + + + 代入演算子 + 代入演算子 + + 代入演算子の基本となるものは "=" です。この演算子に関して最初に + 思い付く意味は"等しい"であるかもしれません。しかし、そうではありません。 + 本当は、左オペランドに右オペランドの式の値を設定する("得て代入する") + ことを意味します。 + + + 代入式の値は、代入される値です。つまり、"$a = 3" の値は、3 です。 + これにより、以下のようなトリッキーなことができるようになります。 + + ネストした代入 + + +]]> + + + + + 基本代入演算子に加えて、全ての + 演算子、配列結合および文字列演算子に関して + 「複合演算子」があります。 + これにより、式の中の値を使用し、その値をその式の結果とすることができます。 + 例えば、 + + 複合代入 + + +]]> + + + + + 代入は、元の変数を新しい変数にコピーする(値による代入)ため、 + 片方の変数に対する変更はもう片方に影響を与えないということに + 注意してください。この動作により、密なループの内側で大きな配列のようなものを + コピーする必要がある場合には問題を生じる可能性があります。 + + + PHP では通常は値による代入になりますが、 + オブジェクトは参照で代入されます。 + オブジェクトを明示的にコピーするには + clone キーワードを使います。 + + + + 参照による代入 + + 参照による代入もサポートしており、 + "$var = &$othervar;" 構文で使うことができます。 + 参照による代入とは、両方の変数が同じデータを指すようにするということです。 + データのコピーは発生しません。 + + + + 参照による代入 + + +]]> + + + + + new + 演算子は自動的に参照を返します。そのため、 + new の結果を参照で代入するとエラーが発生します。 + + + + new 演算子の参照 + + +]]> + + &example.outputs; + + + + + + + 参照に関する詳細な情報やその使い方については、このマニュアルの + リファレンスに関する説明 + をご覧ください。 + + + + + 算術代入演算子 + + + + + + 同一の結果になる操作 + 演算 + + + + + $a += $b + $a = $a + $b + 加算 + + + $a -= $b + $a = $a - $b + 減算 + + + $a *= $b + $a = $a * $b + 乗算 + + + $a /= $b + $a = $a / $b + 除算 + + + $a %= $b + $a = $a % $b + 剰余 + + + $a **= $b + $a = $a ** $b + べき乗 + + + + + + + + ビット代入演算子 + + + + + + 同一の結果になる操作 + 演算 + + + + + $a &= $b + $a = $a & $b + ビット積 + + + $a |= $b + $a = $a | $b + ビット和 + + + $a ^= $b + $a = $a ^ $b + 排他的論理和 + + + $a <<= $b + $a = $a << $b + 左シフト + + + $a >>= $b + $a = $a >> $b + 右シフト + + + + + + + + その他の代入演算子 + + + + + + 同一の結果になる操作 + 演算 + + + + + $a .= $b + $a = $a . $b + 文字列の結合 + + + $a ??= $b + $a = $a ?? $b + Null合体 + + + + + + + + &reftitle.seealso; + + + 算術演算子 + ビット演算子 + Null 合体演算子 + + + + diff --git a/language/operators/bitwise.xml b/language/operators/bitwise.xml new file mode 100644 index 0000000000..01e8545671 --- /dev/null +++ b/language/operators/bitwise.xml @@ -0,0 +1,655 @@ + + + + + ビット演算子 + ビット演算子 + + ビット演算子は、整数値の特定のビットの評価や操作を行います。 + + + ビット演算子 + + + + + 名前 + 結果 + + + + + $a & $b + ビット積 + $a および $b の両方にセットされているビットがセットされます + + + $a | $b + ビット和 + $a または $b のどちらかにセットされているビットがセットされます + + + $a ^ $b + 排他的論理和 + $a または $b のどちらか一方にセットされており、両方にセットされていないビットがセットされます + + + ~ $a + 否定 + $a にセットされているビットはセットせず、そうでないものは逆にします + + + $a << $b + 左シフト + $a のビットを左に $b ビットシフトする (各シフトは "2をかける" + ことを意味します) + + + + $a >> $b + 右シフト + $a のビットを右に $b ビットシフトします (各シフトは "2で割る" + ことを意味します) + + + + +
+ + PHP のシフト処理は算術シフトです。両端からあふれたビットは捨てられます。 + 左シフトをすると右側にはゼロが埋められます。 + 符号ビットは左端からあふれて消えます。 + つまり、オペランドの符号は維持されないということです。 + 右シフトの際には、符号ビットと同じ内容が左端から埋められます。 + つまり、この場合はオペランドの符号が維持されます。 + + + 括弧を使うことで、望みどおりの + 優先順位 + で処理させることができます。たとえば、$a & $b == true + はまず等価かどうかを評価してからビット演算を行いますが + ($a & $b) == true + はまずビット演算を行ってから等価かどうかを評価します。 + + + &| そして + ^ 演算子の左右のオペランドが文字列の場合、その演算は、 + 文字列を構成する文字の ASCII 値を使って行います。その結果は文字列になります。 + それ以外の場合は、左右のオペランドを + integer に変換 + し、結果も integer になります。 + + + ~ 演算子のオペランドが文字列の場合、その演算は、 + 文字列を構成する文字の ASCII 値を使って行います。その結果は文字列になります。 + それ以外の場合は、オペランドや演算結果を integer として扱います。 + + + << および + >> 演算子のオペランドとその結果は、常に integer として扱います。 + + + PHP の ini 設定 error_reporting はビット値を用いています。 + これを用いて、特定のビットを落とす演算の例を見てみましょう。 + notice 以外のすべてのエラーを表示させるには、 + php.ini ファイルで + E_ALL & ~E_NOTICE + と指定することになります。 + + + + + +まずは E_ALL。 +00000000000000000111011111111111 +そして E_NOTICE...。 +00000000000000000000000000001000 +... これを ~ で逆転させます。 +11111111111111111111111111110111 +最後に AND (&) を使い、両方ともビットが立っているところをみつけます。 +00000000000000000111011111110111 + + + + + + 同じ結果を得るもうひとつの方法として、 XOR (^) + を使ってどちらか一方だけ立っているビットを探すという方法もあります。 + E_ALL ^ E_NOTICE + + + error_reporting を使って、特定のビットを立てる処理の例を見てみましょう。 + 通常のエラーとリカバー可能なエラーだけを表示させるには、次のようにします。 + E_ERROR | E_RECOVERABLE_ERROR + + + + + +この処理は、 E_ERROR +00000000000000000000000000000001 +と +00000000000000000001000000000000 +を OR (|) 演算子でつないで、 +少なくともどちらかのビットが立っているところを取得します。 +00000000000000000001000000000001 + + + + + + + 整数値におけるビット AND、OR および XOR 演算 + + +]]> + + &example.outputs; + + + + + + + + 文字列でのビット XOR 演算 + + +]]> + + + + + + 整数値のビットシフト + +> $places; +p($res, $val, '>>', $places, 'copy of sign bit shifted into left side'); + +$val = 4; +$places = 2; +$res = $val >> $places; +p($res, $val, '>>', $places); + +$val = 4; +$places = 3; +$res = $val >> $places; +p($res, $val, '>>', $places, 'bits shift out right side'); + +$val = 4; +$places = 4; +$res = $val >> $places; +p($res, $val, '>>', $places, 'same result as above; can not shift beyond 0'); + + +echo "\n--- BIT SHIFT RIGHT ON NEGATIVE INTEGERS ---\n"; + +$val = -4; +$places = 1; +$res = $val >> $places; +p($res, $val, '>>', $places, 'copy of sign bit shifted into left side'); + +$val = -4; +$places = 2; +$res = $val >> $places; +p($res, $val, '>>', $places, 'bits shift out right side'); + +$val = -4; +$places = 3; +$res = $val >> $places; +p($res, $val, '>>', $places, 'same result as above; can not shift beyond -1'); + + +echo "\n--- BIT SHIFT LEFT ON POSITIVE INTEGERS ---\n"; + +$val = 4; +$places = 1; +$res = $val << $places; +p($res, $val, '<<', $places, 'zeros fill in right side'); + +$val = 4; +$places = (PHP_INT_SIZE * 8) - 4; +$res = $val << $places; +p($res, $val, '<<', $places); + +$val = 4; +$places = (PHP_INT_SIZE * 8) - 3; +$res = $val << $places; +p($res, $val, '<<', $places, 'sign bits get shifted out'); + +$val = 4; +$places = (PHP_INT_SIZE * 8) - 2; +$res = $val << $places; +p($res, $val, '<<', $places, 'bits shift out left side'); + + +echo "\n--- BIT SHIFT LEFT ON NEGATIVE INTEGERS ---\n"; + +$val = -4; +$places = 1; +$res = $val << $places; +p($res, $val, '<<', $places, 'zeros fill in right side'); + +$val = -4; +$places = (PHP_INT_SIZE * 8) - 3; +$res = $val << $places; +p($res, $val, '<<', $places); + +$val = -4; +$places = (PHP_INT_SIZE * 8) - 2; +$res = $val << $places; +p($res, $val, '<<', $places, 'bits shift out left side, including sign bit'); + + +/* + * このへんは無視してください。 + * たんに結果をきれいに表示させるためだけのものです。 + */ + +function p($res, $val, $op, $places, $note = '') { + $format = '%0' . (PHP_INT_SIZE * 8) . "b\n"; + + printf("Expression: %d = %d %s %d\n", $res, $val, $op, $places); + + echo " Decimal:\n"; + printf(" val=%d\n", $val); + printf(" res=%d\n", $res); + + echo " Binary:\n"; + printf(' val=' . $format, $val); + printf(' res=' . $format, $res); + + if ($note) { + echo " NOTE: $note\n"; + } + + echo "\n\n"; +} +?> +]]> + + &example.outputs.32bit; + +> 1 + Decimal: +val=4 +res=2 + Binary: +val=00000000000000000000000000000100 +res=00000000000000000000000000000010 + NOTE: copy of sign bit shifted into left side + +Expression: 1 = 4 >> 2 + Decimal: +val=4 +res=1 + Binary: +val=00000000000000000000000000000100 +res=00000000000000000000000000000001 + +Expression: 0 = 4 >> 3 + Decimal: +val=4 +res=0 + Binary: +val=00000000000000000000000000000100 +res=00000000000000000000000000000000 + NOTE: bits shift out right side + +Expression: 0 = 4 >> 4 + Decimal: +val=4 +res=0 + Binary: +val=00000000000000000000000000000100 +res=00000000000000000000000000000000 + NOTE: same result as above; can not shift beyond 0 + + +--- BIT SHIFT RIGHT ON NEGATIVE INTEGERS --- +Expression: -2 = -4 >> 1 + Decimal: +val=-4 +res=-2 + Binary: +val=11111111111111111111111111111100 +res=11111111111111111111111111111110 + NOTE: copy of sign bit shifted into left side + +Expression: -1 = -4 >> 2 + Decimal: +val=-4 +res=-1 + Binary: +val=11111111111111111111111111111100 +res=11111111111111111111111111111111 + NOTE: bits shift out right side + +Expression: -1 = -4 >> 3 + Decimal: +val=-4 +res=-1 + Binary: +val=11111111111111111111111111111100 +res=11111111111111111111111111111111 + NOTE: same result as above; can not shift beyond -1 + + +--- BIT SHIFT LEFT ON POSITIVE INTEGERS --- +Expression: 8 = 4 << 1 + Decimal: +val=4 +res=8 + Binary: +val=00000000000000000000000000000100 +res=00000000000000000000000000001000 + NOTE: zeros fill in right side + +Expression: 1073741824 = 4 << 28 + Decimal: +val=4 +res=1073741824 + Binary: +val=00000000000000000000000000000100 +res=01000000000000000000000000000000 + +Expression: -2147483648 = 4 << 29 + Decimal: +val=4 +res=-2147483648 + Binary: +val=00000000000000000000000000000100 +res=10000000000000000000000000000000 + NOTE: sign bits get shifted out + +Expression: 0 = 4 << 30 + Decimal: +val=4 +res=0 + Binary: +val=00000000000000000000000000000100 +res=00000000000000000000000000000000 + NOTE: bits shift out left side + + +--- BIT SHIFT LEFT ON NEGATIVE INTEGERS --- +Expression: -8 = -4 << 1 + Decimal: +val=-4 +res=-8 + Binary: +val=11111111111111111111111111111100 +res=11111111111111111111111111111000 + NOTE: zeros fill in right side + +Expression: -2147483648 = -4 << 29 + Decimal: +val=-4 +res=-2147483648 + Binary: +val=11111111111111111111111111111100 +res=10000000000000000000000000000000 + +Expression: 0 = -4 << 30 + Decimal: +val=-4 +res=0 + Binary: +val=11111111111111111111111111111100 +res=00000000000000000000000000000000 + NOTE: bits shift out left side, including sign bit +]]> + + &example.outputs.64bit; + +> 1 + Decimal: +val=4 +res=2 + Binary: +val=0000000000000000000000000000000000000000000000000000000000000100 +res=0000000000000000000000000000000000000000000000000000000000000010 + NOTE: copy of sign bit shifted into left side + +Expression: 1 = 4 >> 2 + Decimal: +val=4 +res=1 + Binary: +val=0000000000000000000000000000000000000000000000000000000000000100 +res=0000000000000000000000000000000000000000000000000000000000000001 + +Expression: 0 = 4 >> 3 + Decimal: +val=4 +res=0 + Binary: +val=0000000000000000000000000000000000000000000000000000000000000100 +res=0000000000000000000000000000000000000000000000000000000000000000 + NOTE: bits shift out right side + +Expression: 0 = 4 >> 4 + Decimal: +val=4 +res=0 + Binary: +val=0000000000000000000000000000000000000000000000000000000000000100 +res=0000000000000000000000000000000000000000000000000000000000000000 + NOTE: same result as above; can not shift beyond 0 + + +--- BIT SHIFT RIGHT ON NEGATIVE INTEGERS --- +Expression: -2 = -4 >> 1 + Decimal: +val=-4 +res=-2 + Binary: +val=1111111111111111111111111111111111111111111111111111111111111100 +res=1111111111111111111111111111111111111111111111111111111111111110 + NOTE: copy of sign bit shifted into left side + +Expression: -1 = -4 >> 2 + Decimal: +val=-4 +res=-1 + Binary: +val=1111111111111111111111111111111111111111111111111111111111111100 +res=1111111111111111111111111111111111111111111111111111111111111111 + NOTE: bits shift out right side + +Expression: -1 = -4 >> 3 + Decimal: +val=-4 +res=-1 + Binary: +val=1111111111111111111111111111111111111111111111111111111111111100 +res=1111111111111111111111111111111111111111111111111111111111111111 + NOTE: same result as above; can not shift beyond -1 + + +--- BIT SHIFT LEFT ON POSITIVE INTEGERS --- +Expression: 8 = 4 << 1 + Decimal: +val=4 +res=8 + Binary: +val=0000000000000000000000000000000000000000000000000000000000000100 +res=0000000000000000000000000000000000000000000000000000000000001000 + NOTE: zeros fill in right side + +Expression: 4611686018427387904 = 4 << 60 + Decimal: +val=4 +res=4611686018427387904 + Binary: +val=0000000000000000000000000000000000000000000000000000000000000100 +res=0100000000000000000000000000000000000000000000000000000000000000 + +Expression: -9223372036854775808 = 4 << 61 + Decimal: +val=4 +res=-9223372036854775808 + Binary: +val=0000000000000000000000000000000000000000000000000000000000000100 +res=1000000000000000000000000000000000000000000000000000000000000000 + NOTE: sign bits get shifted out + +Expression: 0 = 4 << 62 + Decimal: +val=4 +res=0 + Binary: +val=0000000000000000000000000000000000000000000000000000000000000100 +res=0000000000000000000000000000000000000000000000000000000000000000 + NOTE: bits shift out left side + + +--- BIT SHIFT LEFT ON NEGATIVE INTEGERS --- +Expression: -8 = -4 << 1 + Decimal: +val=-4 +res=-8 + Binary: +val=1111111111111111111111111111111111111111111111111111111111111100 +res=1111111111111111111111111111111111111111111111111111111111111000 + NOTE: zeros fill in right side + +Expression: -9223372036854775808 = -4 << 61 + Decimal: +val=-4 +res=-9223372036854775808 + Binary: +val=1111111111111111111111111111111111111111111111111111111111111100 +res=1000000000000000000000000000000000000000000000000000000000000000 + +Expression: 0 = -4 << 62 + Decimal: +val=-4 +res=0 + Binary: +val=1111111111111111111111111111111111111111111111111111111111111100 +res=0000000000000000000000000000000000000000000000000000000000000000 + NOTE: bits shift out left side, including sign bit +]]> + + + + + + PHP_INT_MAX を超える数のビット演算には、 + gmp 拡張モジュールの関数を使いましょう。 + + + + + &reftitle.seealso; + + + + pack + unpack + gmp_and + gmp_or + gmp_xor + gmp_testbit + gmp_clrbit + + + +
diff --git a/language/operators/comparison.xml b/language/operators/comparison.xml new file mode 100644 index 0000000000..0b54836c09 --- /dev/null +++ b/language/operators/comparison.xml @@ -0,0 +1,542 @@ + + + + + 比較演算子 + 比較演算子 + + 比較演算子は、その名前が示すように、二つの値を比較します。 + 型の比較表 + に、型に関連するさまざまな比較の例があります。 + + + 比較演算子 + + + + + 名前 + 結果 + + + + + $a == $b + 等しい + 型の相互変換をした後で $a$b に等しい時に &true;。 + + + $a === $b + 等しい + $a$b に等しく、および同じ型である場合に &true; 。 + + + + $a != $b + 等しくない + 型の相互変換をした後で $a$b に等しくない場合に &true;。 + + + $a <> $b + 等しくない + 型の相互変換をした後で $a$b に等しくない場合に &true;。 + + + $a !== $b + 等しくない + + $a$b と等しくないか、同じ型でない場合に &true; 。 + + + + $a < $b + より少ない + $a$b より少ない時に &true;。 + + + $a > $b + より多い + $a$b より多い時に &true;。 + + + $a <= $b + より少ないか等しい + $a$b より少ないか等しい時に &true;。 + + + $a >= $b + より多いか等しい + $a$b より多いか等しい時に &true;。 + + + $a <=> $b + 宇宙船演算子 + + $a が + $b より小さい場合は、0より小さい整数。 + $a が + $b と等しい場合は、0。 + $a が + $b より大きい場合は、0より大きい整数。 + + + + +
+ + オペランドが両方 + 数値形式の文字列 の場合、 + もしくは一方が数値で、もう一方が + 数値形式の文字列 の場合、 + 比較は数値として行われます。 + これらのルールは + switch 文にも適用されます。 + 型の変換は + 演算子が ===!== の場合は行われません。 + なぜなら、これらの演算子は、値と型を両方比較するものだからです。 + + + + + PHP 8.0.0 より前のバージョンでは、 + 文字列が数値または数値形式の文字列の場合、文字列は比較する前に数値に変換されていました。 + これによって、以下の例で見られるような驚きの結果が生じる場合があります: + + + +]]> + + &example.outputs.7; + + + + &example.outputs.8; + + + + + + + + + + 比較演算子 + + 1, ' '; // 0 +echo 1 <=> 2, ' '; // -1 +echo 2 <=> 1, ' '; // 1 + +// Float +echo 1.5 <=> 1.5, ' '; // 0 +echo 1.5 <=> 2.5, ' '; // -1 +echo 2.5 <=> 1.5, ' '; // 1 + +// 文字列 +echo "a" <=> "a", ' '; // 0 +echo "a" <=> "b", ' '; // -1 +echo "b" <=> "a", ' '; // 1 + +echo "a" <=> "aa", ' '; // -1 +echo "zz" <=> "aa", ' '; // 1 + +// 配列 +echo [] <=> [], ' '; // 0 +echo [1, 2, 3] <=> [1, 2, 3], ' '; // 0 +echo [1, 2, 3] <=> [], ' '; // 1 +echo [1, 2, 3] <=> [1, 2, 1], ' '; // 1 +echo [1, 2, 3] <=> [1, 2, 4], ' '; // -1 + +// オブジェクト +$a = (object) ["a" => "b"]; +$b = (object) ["a" => "b"]; +echo $a <=> $b, ' '; // 0 + +$a = (object) ["a" => "b"]; +$b = (object) ["a" => "c"]; +echo $a <=> $b, ' '; // -1 + +$a = (object) ["a" => "c"]; +$b = (object) ["a" => "b"]; +echo $a <=> $b, ' '; // 1 + +// 比較するのは値だけではない; キーも一致しなければならない +$a = (object) ["a" => "b"]; +$b = (object) ["b" => "b"]; +echo $a <=> $b, ' '; // 1 + +?> +]]> + + + + + + 多くの型では、以下の表にしたがって(上から順に)比較が行われます。 + + + さまざまな型の比較 + + + + 第 1 オペランドの型 + 第 2 オペランドの型 + 結果 + + + + + null または string + string + &null; を "" に変換し、数値または文字として比較します + + + bool または null + あらゆる型 + 両辺を bool に変換し、&false; < &true; と判断します + + + object + object + 組み込みクラスには独自の比較基準が定義されています。 + 異なるクラスは比較できません。同じクラスであるかどうかは + ここで説明されています。 + + + + string, resource, int または float + string, resource, int または float + 文字列やリソースを数値に変換し、算術演算を行います + + + array + array + 要素数の少ない配列のほうが小さくなります。オペランド 1 のキーが + オペランド 2 に存在しない場合、配列は比較できません。そうでない場合は + 個々の要素の値を比較します(以下の例を参照ください) + + + object + あらゆる型 + object のほうが常に大きくなります + + + array + あらゆる型 + array のほうが常に大きくなります + + + +
+ + + + Boolean/null の比較 + + +]]> + + + + + + + 一般的な配列の比較 + + count($op2)) { + return 1; // $op1 > $op2 + } + foreach ($op1 as $key => $val) { + if (!array_key_exists($key, $op2)) { + return 1; + } elseif ($val < $op2[$key]) { + return -1; + } elseif ($val > $op2[$key]) { + return 1; + } + } + return 0; // $op1 == $op2 +} +?> +]]> + + + + + + 浮動小数点数値の比較 + + + ふたつの float 値が等しいかどうかを調べてはいけません。 + float の内部的な表現方法がその理由です。 + + + + 詳細な情報は float のドキュメントを参照ください。 + + + + + + PHP における型の相互変換の動作は、 + 異なる型同士を比較する時には必ずしも自明でないことに注意して下さい。 + 整数型 と boolean を比較したり、 + 整数型 を 文字列 と比較する場合は特にそうです。 + よって一般的には、 + ==!= + ではなく + ===!== + を使う方がほとんどの場合は好ましいです。 + + + + + 比較できない値 + + (===!== を使った) + 同一性の比較は、あらゆる値に適用できますが、 + それ以外の演算子は、比較できる値同士の場合にのみ適用可能です。 + 比較できない値同士を比較した場合の結果は未定義であり、 + その結果に依存すべきではありません。 + + + + + &reftitle.seealso; + + + strcasecmp + strcmp + Array operators + Types + + + + + + 三項演算子 + + もうひとつの条件演算子として "?:"(あるいは三項)演算子があります。 + + デフォルト値を設定する + + +]]> + + + (expr1) ? (expr2) : (expr3) + という式は、式1 が &true; の場合に + 式2 を、 + 式1 が &false; の場合に + 式3 を値とします。 + + + 三項演算子のまんなかの部分をなくすこともできます。 + 式 expr1 ?: expr3 の結果は、expr1 が + &true; と同等の場合は expr1、 + それ以外の場合は expr3 となります。 + この場合、expr1 は一度だけ評価されます。 + + + + 三項演算子は式であり、値としては評価されずに式の結果として評価される + ことに注意してください。演算結果をリファレンスとして返したい場合に、 + これを知っておくことが大切です。結果をリファレンスとして返す関数で + return $var == 42 ? $a : $b; とすることはできず、 + 警告が発生します。 + + + + + 三項演算子を "積み重ねて" 使用することは避けましょう。 + ひとつの文の中で括弧で囲わずに複数の三項演算子を使用した際の PHP の振る舞いは、 + 他のプログラミング言語のそれと比べて、少々わかりにくいものです。 + + PHP 8.0.0 より前のバージョンでは、三項演算子は左から右に評価されていました。 + 他の殆どのプログラミング言語では、右から左に評価されます。 + 左から右に評価される振る舞いに依存することは、PHP 7.4.0 以降は推奨されません。 + PHP 8.0.0 以降は、三項演算子はどの演算とも結合しなくなっています。 + + 三項演算子のわかりにくい挙動 + + +]]> + + + + + + + 一方で、三項演算子の短縮形の挙動は安定しており、 + 理にかなった動作をします。 + これは、&false; と評価されない最初の引数を評価します。 + 但し、未定義の値については未だ警告が出るので注意して下さい。 + + 三項演算子の短縮形 + + + +]]> + + + + + + + + Null 合体演算子 + + 別の便利な短縮形式の演算子として、 + "??" 演算子 (Null 合体演算子) を使うことが出来ます。 + + デフォルト値の代入 + + +]]> + + + 式 (expr1) ?? (expr2) は、 + expr1 が &null; である場合は expr2 + と評価され、それ以外の場合は expr1 と評価されます。 + + + この演算子は、左側の値が存在しない場合でも notice や warning が発生しません。 + isset と同じ挙動です。 + これは、配列のキーを扱う場合に便利です。 + + + + Null 合体演算子は式であることに注意しましょう。変数として評価されるのではなく、式の結果として評価されます。 + 変数を参照で返そうとするときには、これを意識しておくことが重要です。 + 参照返しの関数で return $foo ?? $bar; のように書いてもうまく動かずに、 + 警告が発生します。 + + + + + + Null 合体演算子の優先順位は低いです。 + (文字列結合や、算術演算子のような) + 他の演算子と組み合わせる場合には、おそらくカッコが必要になるでしょう。 + + + +]]> + + + + + Null 合体演算子はネストさせることもできます。 + + Null 合体演算子のネスト + + +]]> + + + + + +
diff --git a/language/operators/errorcontrol.xml b/language/operators/errorcontrol.xml new file mode 100644 index 0000000000..c8b7e9c52b --- /dev/null +++ b/language/operators/errorcontrol.xml @@ -0,0 +1,95 @@ + + + + + エラー制御演算子 + エラー制御演算子 + + PHP はエラー制御演算子(@)をサポートしています。 + PHP の式の前に付けた場合、 + その式により生成されたエラーメッセージは無視されます。 + + + set_error_handler で自作のエラーハンドラを設定した場合は + エラー制御演算子があってもそのエラーハンドラがコールされます。 + + + + + PHP 8.0.0 より前のバージョンでは、 + エラー制御演算子(@)でエラーが無視されている場合、 + カスタムのエラーハンドラでコールされた + error_reporting が常に 0 を返していました。 + PHP 8.0.0 以降では、以下の (ビット和の) 値を返すようになっています: + E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE + + + + + 式によって生成されたあらゆるエラーメッセージは + error_get_last 関数が返す配列要素 + "message" から取得できます。 + この関数の結果はエラーごとに変わります。よって速やかに確認する必要があります。 + + + + 意図的なエラー + + +]]> + + + + + + 式でのエラー抑制 + + +]]> + + + + + + @ 演算子は、 + 式 + に対してのみ動作します。基本的なルールは次のようになります。 + 値を得ることができるものの場合、 + @ 演算子を前に付けることが可能です。 + 例えば、変数、関数、いくつかの言語構造(例: include) + のコールなどの前に、この演算子をつけることが可能です。 + 関数またはクラスの定義、 + if や &foreach; 等のような + 条件構造の前には、この演算子を付けることはできません。 + + + + + PHP 8.0.0 より前のバージョンでは、 + スクリプトの実行を停止させるような致命的な場合であっても + @ 演算子でエラーメッセージを抑止することが可能でした。 + たとえば、存在しなかったり、ミスタイプされていたり、 + 利用できない関数コールの前に @ 演算子を付けると、 + 原因を示すことなく、その場所でスクリプトは終了してしまっていました。 + + + + + &reftitle.seealso; + + + error_reporting + エラーハンドリングとロギング関数 + + + + diff --git a/language/operators/execution.xml b/language/operators/execution.xml new file mode 100644 index 0000000000..258a7a1d96 --- /dev/null +++ b/language/operators/execution.xml @@ -0,0 +1,52 @@ + + + + + 実行演算子 + 実行演算子 + + PHP は 1 種類の実行演算子、バッククォート (``) をサポートします。 + シングルクォートではないことに注意してください! PHP は、バッククォートの + 中身をシェルコマンドとして実行しようとします。出力が返されます + (すなわち、出力を単にダンプするのではなく、変数に代入することが + できます) 。 + バッククォート演算子の使用は shell_exec と等価です。 + + + + バッククォート演算子 + +$output"; +?> +]]> + + + + + + バッククォート演算子は、 + shell_exec が無効な場合は無効となります。 + + + + + 他の言語とは異なり、 + ダブルクォートで囲まれた文字列の中でのバッククォート演算子には何の効力もありません。 + + + + + &reftitle.seealso; + + + システムプログラムの実行 + popen + proc_open + PHPをコマンドラインから使用する + + + + diff --git a/language/operators/functional.xml b/language/operators/functional.xml new file mode 100644 index 0000000000..b23e98293c --- /dev/null +++ b/language/operators/functional.xml @@ -0,0 +1,123 @@ + + + + + パイプ演算子 + パイプ演算子 + + PHP 8.5 以降では、callable に直接値を渡す演算子をサポートしています。 + |> 演算子、または "パイプ" は、右辺にパラメーターをひとつ取る + callable を受け入れ、左辺値をそれに渡し、callable の結果を評価します。 + 右辺の callable は、有効な PHP の callable であれば何でも構いません: + つまり、Closure、 + 第一級callableを生成する記法、 + __invoke() を実装したオブジェクトなどです。 + + + 論理的には同じ意味になる、2行のコードを以下に示します。 + + <literal>|></literal> を使う + + strlen(...); +echo $result, PHP_EOL; + +$result = strlen("Hello World"); +echo $result, PHP_EOL; +?> +]]> + + &example.outputs; + + + + + + + 単一の呼び出しは特に役に立ちませんが、 + 複数の呼び出しを一緒にチェインさせると役に立ちます。 + たとえば、論理的には同じ意味になるコード片を2つ、以下に示します: + + |> の呼び出しをチェインさせる + + htmlentities(...) + |> str_split(...) + |> (fn($x) => array_map(strtoupper(...), $x)) + |> (fn($x) => array_filter($x, fn($v) => $v != 'O')) +; +print_r($result); + +$temp = "PHP Rocks"; +$temp = htmlentities($temp); +$temp = str_split($temp); +$temp = array_map(strtoupper(...), $temp); +$temp = array_filter($temp, fn($v) => $v != 'O'); +$result = $temp; +print_r($result); +?> +]]> + + &example.outputs; + + P + [1] => H + [2] => P + [3] => + [4] => R + [6] => C + [7] => K + [8] => S +) +Array +( + [0] => P + [1] => H + [2] => P + [3] => + [4] => R + [6] => C + [7] => K + [8] => S +) +]]> + + + + + パイプの左側は、値や式であれば何でも構いません。 + パイプの右側は、パラメーターをひとつ取る PHP の有効な callable か、 + そのように評価できる任意の式であれば何でも構いません。 + 必須のパラメーターをひとつ以上とる関数を右側に指定した場合、 + それは許可されず、 + 引数が不足した状態で関数をコールしたかのように失敗します。 + リファレンスの値を取る関数も許可されていません。 + 右辺が有効な callable として評価されない場合、Error がスローされます。 + + + + 上の例で示したとおり、文法的な曖昧さを回避するため、 + アロー関数 は、 + パイプ演算子と一緒に使う場合に括弧で囲わなければならない点に注意してください。 + そうしない場合、致命的なエラーが発生します。 + + + + + &reftitle.seealso; + + + Closure + + + + diff --git a/language/operators/increment.xml b/language/operators/increment.xml new file mode 100644 index 0000000000..0eecb5871a --- /dev/null +++ b/language/operators/increment.xml @@ -0,0 +1,206 @@ + + + + + 加算子/減算子 + 加算子/減算子 + + PHP は 加算子/減算子(前置・後置ともに)をサポートします。 + これらの単項演算子は、値をインクリメント(ひとつ増や)したり、デクリメント(ひとつ減ら)したりできます。 + + + 加算子/減算子 + + + + + 名前 + 効果 + + + + + ++$a + 前置加算子 + $a をインクリメントし、$a を返します。 + + + $a++ + 後置加算子 + $a を返し、$a をインクリメントします。 + + + --$a + 前置減算子 + $a をデクリメントし、$a を返します。 + + + $a-- + 後置減算子 + $a を返し、$a をデクリメントします。 + + + +
+ + + + インクリメント/デクリメントの例 + + +]]> + + &example.outputs; + + + + + + + + bool 型の値に、加算子や減算子を適用しても何も起こりません。 + PHP 8.3.0 以降では、この操作に対して E_WARNING が発生するようになりました。なぜなら、bool 型の値を暗黙のうちに数値型にキャストするように将来変更されるからです。 + + + null 型の値に、減算子を適用しても何も起こりません。 + PHP 8.3.0 以降では、この操作に対して E_WARNING が発生するようになりました。なぜなら、null 型の値を暗黙のうちに数値型にキャストするように将来変更されるからです。 + + + 数値形式の文字列 でない文字列に対して、減算子を適用しても何も起こりません。 + PHP 8.3.0 以降では、この操作に対して E_WARNING が発生するようになりました。なぜなら、こうした操作は TypeError がスローされるように将来変更されるからです。 + + + + + 加算や減算の振る舞いをオーバーロードする機能をサポートしている内部オブジェクトも、インクリメントしたり、デクリメントしたりできます。このような内部オブジェクトの例としては、GMP が挙げられます。  + + + + + + Perl 風の、文字列をインクリメントする機能 + + + この機能は、PHP 8.3.0 以降は soft-deprecated 扱い + (E_DEPRECATED は発生しないものの、新しいコードではこの機能を使うべきではない) になっています。 + str_increment を代わりに使いましょう。 + + + + + PHP では、数値形式の文字列 でない文字列をインクリメントすることも可能です。この場合、文字列は英数字からなる、ASCII 文字列である必要があり、文字を次の文字に変更します。文字が Z に達すると、左の文字がひとつ繰り上がります。たとえば、$a = 'Z'; $a++; というコードは、$a'AA' に変更します。 + + + + Perl 風に、文字列をインクリメントする例 + + +]]> + + &example.outputs; + + + + + + + + 英数字からなる文字列が、数値形式の文字列 として解釈できる場合、その値は int または float にキャストされます。この挙動は、文字列が科学的記法で書かれた浮動小数点数の場合に特に問題になります。str_increment を使えば、こうした暗黙の型変換の影響を受けません。 + + + 英数字が浮動小数点数にキャストされる挙動 + + +]]> + + &example.outputs; + + + + + 上記の出力になる理由は、"5e0" という値が float として解釈され、インクリメントされる前に 5.0 にキャストされるためです。 + + + + +
diff --git a/language/operators/logical.xml b/language/operators/logical.xml new file mode 100644 index 0000000000..c051f21779 --- /dev/null +++ b/language/operators/logical.xml @@ -0,0 +1,112 @@ + + + + + 論理演算子 + 論理演算子 + + + 論理演算子 + + + + + 名前 + 結果 + + + + + $a and $b + 論理積 + $a および $b が共に &true; の場合に &true; + + + $a or $b + 論理和 + $a または $b のどちらかが &true; の場合に &true; + + + $a xor $b + 排他的論理和 + + $a または $b のどちらかが &true; でかつ両方とも &true; でない場合に &true; + + + + ! $a + 否定 + $a が &true; でない場合 &true; + + + $a && $b + 論理積 + $a および $b が共に &true; の場合に &true; + + + $a || $b + 論理和 + $a または $b のどちらかが &true; の場合に &true; + + + +
+ + "and" および "or" 演算子が 2 種類あるのは、演算が行われる際の優先順位が + 異なっているためです + (演算子の優先順位 + を参照ください)。 + + + 論理演算子についての説明 + + +]]> + + &example.outputs.similar; + + + + +
diff --git a/language/operators/precedence.xml b/language/operators/precedence.xml new file mode 100644 index 0000000000..3daee0d122 --- /dev/null +++ b/language/operators/precedence.xml @@ -0,0 +1,470 @@ + + + + + 演算子の優先順位 + 演算子の優先順位 + + 演算子の優先順位は、二つの式が"緊密に"結合している度合いを指定します。 + 例えば、式 1 + 5 * 3 の答えは + 16 になり、18 とはなりません。 + これは乗算演算子("*")は、加算演算子("+")より高い優先順位を有するか + らです。必要に応じて強制的に優先順位を設定するために括弧を使用する + ことが可能です。例えば、18と評価するためには、 + (1 + 5) * 3 とします。 + + + 演算子の優先順位が等しい場合は、その結合性によって評価順 + (右から評価するのか、あるいは左から評価するのか) が決まります。 + たとえば "-" は左結合なので、 + 1 - 2 - 3(1 - 2) - 3 とグループ分けされて、 + 評価結果は -4 になります。 + 一方、"=" は右結合です。つまり $a = $b = $c のグループ分けは + $a = ($b = $c) となります。 + + + 優先順位が同じで結合しない演算子を並べることはできません。つまり、たとえば + 1 < 2 > 1 は PHP では無効になります。 + 一方 1 <= 1 == 1 は問題ありません。 + == 演算子の優先順位が + <= 演算子より低いからです。 + + + 演算子の結合は、 + 二項演算子(および三項演算子) の場合にだけ意味があります。 + 単項演算子は、前置または後置しかないため、 + 演算子の結合の考え方は適用できません。 + たとえば、 + !!$a は、 + !(!$a) という形でのみグループ化できます。 + + + 厳密には不要な場所であっても、括弧をつけておけばコードの可読性があがります。 + 明示的にグループ分けをしておくことで、演算子の優先順位や結合性による暗黙のグループ分けに頼らずに済むからです。 + + + 次の表では、優先順位が高い順に演算子を挙げています。 + 同じ行にある演算子は優先順位が等しくなります。そのような場合は、 + 結合時の評価にしたがってグループ分けが決まります。 + + 演算子の優先順位 + + + + 結合時の評価 + 演算子 + 追加情報 + + + + + (n/a) + + clone + new + + clone および new + + + right + ** + 算術演算子 + + + (n/a) + + + + - + ++ + -- + ~ + (int) + (float) + (string) + (array) + (object) + (bool) + @ + + + 算術演算子 (単項演算の +-), + 加算子/減算子, + ビット演算子, + 型の相互変換&listendand; + エラー制御演算子 + + + + left + instanceof + + 型演算子 + + + + (n/a) + ! + + 論理演算子 + + + + left + + * + / + % + + + 算術演算子 + + + + left + + + + - + . + + + 算術演算子 (二項演算の +-), + 配列演算子&listendand; + 文字列演算子 (PHP 8.0.0 より前のバージョンの.) + + + + left + + << + >> + + + ビット演算子 + + + + left + . + + 文字列演算子 (PHP 8.0.0 以降) + + + + 結合しない + + < + <= + > + >= + + + 比較演算子 + + + + 結合しない + + == + != + === + !== + <> + <=> + + + 比較演算子 + + + + left + & + + ビット演算子&listendand; + リファレンス + + + left + ^ + + ビット演算子 + + + + left + | + + ビット演算子 + + + + left + && + + 論理演算子 + + + + left + || + + 論理演算子 + + + + right + ?? + + NULL合体演算子 + + + + 結合しない + ? : + + 三項演算子 + (PHP 8.0.0 より前のバージョンでは、左結合でした) + + + + right + + = + += + -= + *= + **= + /= + .= + %= + &= + |= + ^= + <<= + >>= + ??= + + + 代入演算子 + + + + (n/a) + yield from + + yield from + + + + (n/a) + yield + + yield + + + + (n/a) + print + print + + + left + and + + 論理演算子 + + + + left + xor + + 論理演算子 + + + + left + or + + 論理演算子 + + + + +
+
+ + + 結合時の評価 + + $a = 5, $b = 5 +var_dump($a, $b); +?> +]]> + + + + + 三項演算子は特に、優先順位を明確にするための括弧が必要となります。 + + + + 優先順位の明示 + + +]]> + + + + + 演算子の優先順位や結合性は、あくまでも式のグループ分けだけを決めるものであり、評価順を決めるものではありません。 + PHP では一般に、式をどの順番で評価するかは決めていません。 + そのため、特定の順序で式が評価されることを前提としたコードを書いてはいけません。 + PHP のバージョンが変わったり前後のコードが変わったりしたときに、評価順が変わる可能性があるからです。 + + 評価順序は未定義 + + +]]> + + + + <literal>+</literal>、<literal>-</literal>、<literal>.</literal> の優先順位 + + +]]> + + &example.outputs; + + + + + + PHP 8 より前のバージョンでは、 <literal>+</literal>, <literal>-</literal> and <literal>.</literal> の優先順位は同じ + + +]]> + + &example.outputs; + + + + + + + + = は他のほとんどの演算子よりも優先順位が低いはずなのにもかかわらず、 + PHP は依然として if (!$a = foo()) + のような式も許します。この場合は foo() の戻り値が + $a に代入されます。 + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + 文字列の連結 (.) + の優先順位は、 + 算術演算子の加算/減算 + (+ および -) + と ビットシフト演算子 + (<< および >>); + よりも低くなりました。 + これより前のバージョンでは、文字列の連結は + +- + と同じ優先順位を持ち、 + <<>> + よりは高い優先順位を持っていました。 + + + + 8.0.0 + + 三項演算子 (? :) は、 + どの演算とも結合しなくなりました。 + これより前のバージョンでは、左結合でした。 + + + + 7.4.0 + + 三項演算子(? :) が左結合であることに依存すること、 + つまり、括弧で囲わずに三項演算子をネストすることは推奨されなくなりました。 + + + + 7.4.0 + + 文字列の連結 (.) 演算と、 + 算術演算子の加算/減算 + (+ および -) + と ビットシフト演算子 + (<< および >>); + の優先順位に依存するコードは、推奨されなくなりました。 + つまり、これらを括弧を使わずに一緒に使うことは推奨されなくなりました。 + + + + + + +
diff --git a/language/operators/string.xml b/language/operators/string.xml new file mode 100644 index 0000000000..8e15e57ae0 --- /dev/null +++ b/language/operators/string.xml @@ -0,0 +1,43 @@ + + + + + 文字列演算子 + 文字列演算子 + + 文字列の演算子は 2 種類あります。最初のは結合演算子('.')で、右引数と + 左引数を結合したものを返します。2 番目は、結合代入演算子('.=')で、 + この演算子は右側の引数に左側の引数を追加します。詳細は、代入演算子 を + 参照ください。 + + + + + 文字列結合 + + +]]> + + + + + + &reftitle.seealso; + + + 文字列 + 文字列 関数 + + + + diff --git a/language/operators/type.xml b/language/operators/type.xml new file mode 100644 index 0000000000..854e619574 --- /dev/null +++ b/language/operators/type.xml @@ -0,0 +1,273 @@ + + + + + 型演算子 + 型演算子 + + instanceof を使用して、 + ある PHP 変数が特定の + クラス + のオブジェクトのインスタンスであるかどうかを調べます。 + + クラスでの <literal>instanceof</literal> の使用法 + + +]]> + + &example.outputs; + + + + + + + instanceof は、ある変数が + 特定の親クラスを継承したクラスのオブジェクトのインスタンスであるかどうかを調べることもできます。 + + 継承したクラスでの <literal>instanceof</literal> の使用法 + + +]]> + + &example.outputs; + + + + + + + あるオブジェクトが特定のクラスのインスタンスで ない + ことを調べるには、 + 論理 否定 演算子 + を使用します。 + + <literal>instanceof</literal> を使用して、オブジェクトがクラスのインスタンスで <emphasis>ない</emphasis> + かどうかを調べる方法 + + +]]> + + &example.outputs; + + + + + + + 最後に、instanceof + は、ある変数が特定の + インターフェイス + を実装したクラスのオブジェクトのインスタンスであるかどうかも調べることができます。 + + インターフェイスでの <literal>instanceof</literal> の使用法 + + +]]> + + &example.outputs; + + + + + + + 通常、instanceof ではリテラルのクラス名を使用しますが、 + 別のオブジェクトや文字列変数を使用することもできます。 + + 変数を用いた <literal>instanceof</literal> の使用法 + + +]]> + + &example.outputs; + + + + + + + instanceof は、もし確かめる変数がオブジェクトでなくてもエラーになりません。単に + &false; を返すだけです。ただし、PHP 7.3.0 以前では、定数を調べることはできませんでした。 + + <literal>instanceof</literal> での他の変数の調べかた + + +]]> + + &example.outputs; + + + + + + + PHP 7.3.0 以降では、 + instanceof の左辺値に定数を指定できるようになりました。 + + <literal>instanceof</literal> を使って定数を確認する + + +]]> + + &example.outputs.73; + + + + + + + PHP 8.0.0 以降では、 + instanceof は任意の式と一緒に使えるようになりました。 + 式は文字列を生成するもので、かつ括弧で囲む必要があります。 + + + <literal>instanceof</literal> を任意の式と一緒に使う + + +]]> + + &example.outputs.8; + + + + + + + instanceof 演算子は、is_a + 関数とは機能的に異なる部分があります。 + + + + &reftitle.seealso; + + + get_class + is_a + + + + diff --git a/language/predefined/allowdynamicproperties/construct.xml b/language/predefined/allowdynamicproperties/construct.xml new file mode 100644 index 0000000000..0a4017a5fc --- /dev/null +++ b/language/predefined/allowdynamicproperties/construct.xml @@ -0,0 +1,45 @@ + + + + + + AllowDynamicProperties::__construct + 新しい AllowDynamicProperties のインスタンスを作成する + + + + &reftitle.description; + + public AllowDynamicProperties::__construct + + + + 新しい AllowDynamicProperties のインスタンスを作成します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + diff --git a/language/predefined/argumentcounterror.xml b/language/predefined/argumentcounterror.xml index 45325b00bc..a3c21eb2b7 100644 --- a/language/predefined/argumentcounterror.xml +++ b/language/predefined/argumentcounterror.xml @@ -1,13 +1,8 @@ - + - - + ArgumentCountError ArgumentCountError @@ -20,6 +15,9 @@ ArgumentCountError は、 ユーザー定義の関数あるいはメソッドに渡された引数が少なすぎる場合にスローされます。 + + 可変長引数でない組み込み関数に、多過ぎる引数を渡した場合にもスローされます。 +
@@ -27,37 +25,35 @@ &reftitle.classsynopsis; - - ArgumentCountError - - - - - ArgumentCountError - + + + ArgumentCountError + - - extends - TypeError - - - + + extends + TypeError + &InheritedProperties; - + &InheritedMethods; - + + + + + +
- - + - - - + + + ArithmeticError ArithmeticError @@ -18,8 +14,8 @@ ArithmeticError は、数学的な操作でエラーが発生した場合にスローされます。 - PHP 7.0 では、たとえばマイナスのビットシフトを行おうとした場合などに発生します。 - また、結果が integer の範囲をこえてしまうような + たとえばマイナスのビットシフトを行おうとした場合などに発生します。 + また、結果が int の範囲をこえてしまうような intdiv の呼び出しの際にも発生します。
@@ -29,37 +25,35 @@ &reftitle.classsynopsis; - - ArithmeticError - - - - - ArithmeticError - + + + ArithmeticError + - - extends - Error - - - + + extends + Error + &InheritedProperties; - + - + &InheritedMethods; - + + + + + +
- - + - + - - + ArrayAccess インターフェイス ArrayAccess @@ -23,42 +22,35 @@ &reftitle.interfacesynopsis; - - ArrayAccess - - - - - ArrayAccess - - - - + + + ArrayAccess + + &Methods; - + + +
+ &reftitle.examples; 基本的な使用法 container = array( - "one" => 1, - "two" => 2, - "three" => 3, - ); - } + public $container = [ + "one" => 1, + "two" => 2, + "three" => 3, + ]; - public function offsetSet($offset, $value) { + public function offsetSet($offset, $value): void { if (is_null($offset)) { $this->container[] = $value; } else { @@ -66,15 +58,15 @@ class Obj implements ArrayAccess { } } - public function offsetExists($offset) { + public function offsetExists($offset): bool { return isset($this->container[$offset]); } - public function offsetUnset($offset) { + public function offsetUnset($offset): void { unset($this->container[$offset]); } - public function offsetGet($offset) { + public function offsetGet($offset): mixed { return isset($this->container[$offset]) ? $this->container[$offset] : null; } } @@ -126,8 +118,7 @@ obj Object &language.predefined.arrayaccess.offsetset; &language.predefined.arrayaccess.offsetunset; - - + - - + ArrayAccess::offsetExists @@ -10,8 +9,8 @@ &reftitle.description; - - abstract public boolArrayAccess::offsetExists + + public boolArrayAccess::offsetExists mixedoffset @@ -54,7 +53,7 @@ - 非 boolean 値が返された場合は boolean にキャストして返します。 + 非 boolean 値が返された場合は bool にキャストして返します。 @@ -67,20 +66,21 @@ - - - + + ArrayAccess::offsetGet @@ -10,8 +10,8 @@ &reftitle.description; - - abstract public mixedArrayAccess::offsetGet + + public mixedArrayAccess::offsetGet mixedoffset @@ -38,15 +38,21 @@ - + + + &reftitle.returnvalues; + + すべての型の値を返すことができます。 + + + &reftitle.notes; - PHP 5.3.4 以降ではプロトタイプのチェックが緩和され、 - このメソッドの実装で参照を返せるようになりました。 + このメソッドの実装で参照を返すことができます。 これにより、ArrayAccess - オブジェクトのオーバーロードされた配列に対する間接的な変更ができるようになりました。 + オブジェクトのオーバーロードされた配列に対する間接的な変更ができます。 直接的な変更とは、$obj[6] = 7 @@ -68,13 +74,6 @@ - - &reftitle.returnvalues; - - すべての型の値を返すことができます。 - - - - - + + ArrayAccess::offsetSet @@ -10,8 +10,8 @@ &reftitle.description; - - abstract public voidArrayAccess::offsetSet + + public voidArrayAccess::offsetSet mixedoffset mixedvalue @@ -81,7 +81,7 @@ Array - + この関数は、参照による代入の場合にはコールされません。また、 @@ -90,8 +90,7 @@ Array 下位の次元やプロパティを変更したり、配列の次元を別の変数に参照で代入したりすることです) の場合にもコールされません。これらの場合は、かわりに ArrayAccess::offsetGet がコールされます。 - この操作が成功するのはメソッドが参照を返せるようになっているときだけで、 - 参照を返せるようになるのは PHP 5.3.4 以降を使っている場合のみです。 + この操作が成功するのはメソッドが参照を返せるようになっているときだけです。 @@ -130,7 +129,6 @@ Array --> - - - + ArrayAccess::offsetUnset @@ -10,8 +9,8 @@ &reftitle.description; - - abstract public voidArrayAccess::offsetUnset + + public voidArrayAccess::offsetUnset mixedoffset @@ -84,7 +83,6 @@ --> - - - - + + AssertionError AssertionError @@ -26,37 +21,35 @@ &reftitle.classsynopsis; - - AssertionError - - - - - AssertionError - + + + AssertionError + - - extends - Error - - - + + extends + Error + &InheritedProperties; - + &InheritedMethods; - + + + + + +
- - + + + + + Attribute::__construct + 新しい Attribute のインスタンスを作成する + + + + &reftitle.description; + + public Attribute::__construct + intflagsAttribute::TARGET_ALL + + + 新しい Attribute のインスタンスを作成します。 + + + + + &reftitle.parameters; + + + flags + + + + + + + + + + diff --git a/language/predefined/attributes.xml b/language/predefined/attributes.xml new file mode 100644 index 0000000000..eaced5e7bf --- /dev/null +++ b/language/predefined/attributes.xml @@ -0,0 +1,39 @@ + + + + + 定義済みのアトリビュート + + + + PHP には、定義済みのアトリビュートがいくつか用意されています。 + + + + &language.predefined.attributes.attribute; + &language.predefined.attributes.allowdynamicproperties; + &language.predefined.attributes.deprecated; + &language.predefined.attributes.override; + &language.predefined.attributes.returntypewillchange; + &language.predefined.attributes.sensitiveparameter; + + diff --git a/language/predefined/attributes/allowdynamicproperties.xml b/language/predefined/attributes/allowdynamicproperties.xml new file mode 100644 index 0000000000..e286f7d572 --- /dev/null +++ b/language/predefined/attributes/allowdynamicproperties.xml @@ -0,0 +1,100 @@ + + + + + AllowDynamicProperties アトリビュート + AllowDynamicProperties + + + +
+ &reftitle.intro; + + このアトリビュートを使うと、 + クラスに + 動的なプロパティ + を許可することをマークできます。 + +
+ +
+ &reftitle.classsynopsis; + + + + final + AllowDynamicProperties + + + &Methods; + + + + + +
+ +
+ &reftitle.examples; + + 動的なプロパティは、PHP 8.2.0 以降は推奨されなくなりました。 + よって、このアトリビュートでクラスをマークせずに、 + 動的なプロパティを使うと、 + 推奨されない警告が発生します。 + + + +nonExistingProp = true; +$o2->nonExistingProp = true; +?> +]]> + + &example.outputs.82; + + + + +
+ +
+ &reftitle.seealso; + アトリビュートの概要 +
+ +
+ + &language.predefined.allowdynamicproperties.construct; + +
+ diff --git a/language/predefined/attributes/attribute.xml b/language/predefined/attributes/attribute.xml new file mode 100644 index 0000000000..20839c44c3 --- /dev/null +++ b/language/predefined/attributes/attribute.xml @@ -0,0 +1,191 @@ + + + + + Attribute アトリビュート + Attribute + + + +
+ &reftitle.intro; + + アトリビュートを使うと、 + コンピューターが解析できる構造化されたメタデータの情報を、 + コードの宣言時に埋め込むことができます。 + つまり、クラス、メソッド、関数、パラメータ、プロパティ、クラス定数にアトリビュートを指定することができます。 + アトリビュートで定義されたメタデータは、 + 実行時に リフレクションAPI を使って調べることが出来ます。 + よって、アトリビュートは、 + コードに直接埋め込むことが出来る、 + 設定のための言語とみなすことができます。 + +
+ +
+ &reftitle.classsynopsis; + + + + final + Attribute + + + &Constants; + + const + int + Attribute::TARGET_CLASS + + + const + int + Attribute::TARGET_FUNCTION + + + const + int + Attribute::TARGET_METHOD + + + const + int + Attribute::TARGET_PROPERTY + + + const + int + Attribute::TARGET_CLASS_CONSTANT + + + const + int + Attribute::TARGET_PARAMETER + + + const + int + Attribute::TARGET_ALL + + + const + int + Attribute::IS_REPEATABLE + + + &Properties; + + public + int + flags + + + &Methods; + + + + +
+ +
+ &reftitle.constants; + + + Attribute::TARGET_CLASS + + + + + + + Attribute::TARGET_FUNCTION + + + + + + + Attribute::TARGET_METHOD + + + + + + + Attribute::TARGET_PROPERTY + + + + + + + Attribute::TARGET_CLASS_CONSTANT + + + + + + + Attribute::TARGET_PARAMETER + + + + + + + Attribute::TARGET_ALL + + + + + + + Attribute::IS_REPEATABLE + + + + + +
+ +
+ &reftitle.properties; + + + flags + + + + + +
+ +
+ &reftitle.seealso; + アトリビュートの概要 +
+
+ + &language.predefined.attribute.construct; + +
+ diff --git a/language/predefined/attributes/deprecated.xml b/language/predefined/attributes/deprecated.xml new file mode 100644 index 0000000000..8da2547bd6 --- /dev/null +++ b/language/predefined/attributes/deprecated.xml @@ -0,0 +1,141 @@ + + + + + + Deprecated アトリビュート + Deprecated + + + +
+ &reftitle.intro; + + このアトリビュートは、機能を非推奨としてマークします。 + マークされた機能を使用すると、E_USER_DEPRECATED エラーが発生します。 + +
+ +
+ &reftitle.classsynopsis; + + + + final + Deprecated + + + &Properties; + + public + readonly + stringnull + message + + + public + readonly + stringnull + since + + + &Methods; + + + + +
+ +
+ &reftitle.properties; + + + message + + + 非推奨となった理由と可能なら代替機能を説明する追加のメッセージ。 + 発生する非推奨エラーのメッセージに含まれます。 + + + + + since + + + 機能がいつから非推奨になったかを示す追加の文字列。 + 内容は PHP によって検証されず、バージョン番号、日付、 + または適切と考えられる他の値を含むことができます。 + 発生する非推奨エラーのメッセージに含まれます。 + + + PHP 自体の機能は、since の値として Major.Minor を利用します。 + 例えば '8.4' です。 + + + + +
+ +
+ &reftitle.examples; + + + +]]> + + &example.outputs.84.similar; + + + + +
+ +
+ &reftitle.seealso; + + アトリビュートの概要 + ReflectionFunctionAbstract::isDeprecated + ReflectionClassConstant::isDeprecated + E_USER_DEPRECATED + +
+ +
+ + &language.predefined.attributes.deprecated.construct; + +
+ diff --git a/language/predefined/attributes/deprecated/construct.xml b/language/predefined/attributes/deprecated/construct.xml new file mode 100644 index 0000000000..52cd1b61d7 --- /dev/null +++ b/language/predefined/attributes/deprecated/construct.xml @@ -0,0 +1,64 @@ + + + + + + + Deprecated::__construct + 新しい Deprecated のインスタンスを作成する + + + + &reftitle.description; + + public Deprecated::__construct + stringnullmessage&null; + stringnullsince&null; + + + 新しい Deprecated のインスタンスを作成します。 + + + + + &reftitle.parameters; + + + message + + + message プロパティの値。 + + + + + since + + + since プロパティの値。 + + + + + + + diff --git a/language/predefined/attributes/override.xml b/language/predefined/attributes/override.xml new file mode 100644 index 0000000000..f17cea3363 --- /dev/null +++ b/language/predefined/attributes/override.xml @@ -0,0 +1,154 @@ + + + + + Override アトリビュート + Override + + + +
+ &reftitle.intro; + + このアトリビュートは、 + 親クラスのメソッドやプロパティをオーバーライドしている意図があるか、 + インターフェイスで定義されたプロパティやメソッドを実装していることを示します。 + + + 親クラス中に同じ名前のメソッドやプロパティが存在しなかったり、 + 実装されているインターフェイスがない場合は、 + コンパイル時にエラーが発生します。 + + + シグネチャのチェックを回避できてしまうため、 + このアトリビュートは __construct() + に対しては使えません。 + +
+ +
+ &reftitle.classsynopsis; + + + + final + Override + + + &Methods; + + + + + +
+ +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.5.0 + + Override は、 + プロパティにも適用できるようになりました。 + + + + + +
+ +
+ &reftitle.examples; + + メソッドと一緒に使う + + +]]> + + &example.outputs.83.similar; + + + + + + プロパティと一緒に使う + + +]]> + + &example.outputs.85.similar; + + + + +
+ +
+ &reftitle.seealso; + + アトリビュート + +
+ +
+ + &language.predefined.attributes.override.construct; + +
+ diff --git a/language/predefined/attributes/override/construct.xml b/language/predefined/attributes/override/construct.xml new file mode 100644 index 0000000000..f0c526712d --- /dev/null +++ b/language/predefined/attributes/override/construct.xml @@ -0,0 +1,45 @@ + + + + + + Override::__construct + 新しいOverrideアトリビュートのインスタンスを作成する + + + + &reftitle.description; + + public Override::__construct + + + + 新しい Override のインスタンスを構築します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + diff --git a/language/predefined/attributes/returntypewillchange.xml b/language/predefined/attributes/returntypewillchange.xml new file mode 100644 index 0000000000..a876bd98ad --- /dev/null +++ b/language/predefined/attributes/returntypewillchange.xml @@ -0,0 +1,71 @@ + + + + + ReturnTypeWillChange アトリビュート + ReturnTypeWillChange + + + +
+ &reftitle.intro; + + ほとんどの final でない内部メソッドは、 + それをオーバライドする際、 + 互換性がある戻り値の型を宣言することが必須になっています。 + そうしない場合、継承が有効かを検証する際に、 + 推奨されない警告が発生します。 + PHP のバージョン間の互換性を保ちたいがために、 + 戻り値の型を宣言できない場合、 + アトリビュート #[\ReturnTypeWillChange] + を追加することで警告を抑止できます。 + +
+ +
+ &reftitle.classsynopsis; + + + + final + ReturnTypeWillChange + + + &Methods; + + + + + +
+ +
+ &reftitle.seealso; + アトリビュートの概要 +
+ +
+ + &language.predefined.returntypewillchange.construct; + +
+ diff --git a/language/predefined/attributes/sensitiveparameter.xml b/language/predefined/attributes/sensitiveparameter.xml new file mode 100644 index 0000000000..bc36d385be --- /dev/null +++ b/language/predefined/attributes/sensitiveparameter.xml @@ -0,0 +1,124 @@ + + + + + SensitiveParameter アトリビュート + SensitiveParameter + + + +
+ &reftitle.intro; + + + このアトリビュートを使うと、スタックトレース中に現れた場合に、 + 値を削除すべき秘密の値としてパラメータをマークできます。 + +
+ +
+ &reftitle.classsynopsis; + + + + final + SensitiveParameter + + + &Methods; + + + + + +
+ +
+ &reftitle.examples; + + + +]]> + + &example.outputs.82.similar; + + + + +
+ +
+ &reftitle.seealso; + + + アトリビュートの概要 + SensitiveParameterValue + + +
+ +
+ + &language.predefined.sensitiveparameter.construct; + +
+ diff --git a/language/predefined/backedenum.xml b/language/predefined/backedenum.xml new file mode 100644 index 0000000000..2d464c15ff --- /dev/null +++ b/language/predefined/backedenum.xml @@ -0,0 +1,77 @@ + + + + + BackedEnum インターフェイス + BackedEnum + + + + +
+ &reftitle.intro; + + BackedEnum インターフェイスは、 + Backed Enum を定義すると、PHP のエンジンが自動的に適用します。 + ユーザー定義のクラスとして実装してはいけません。 + 列挙型はメソッドのオーバーライドを禁止しています。 + デフォルトの実装は PHP のエンジンから提供されるからです。 + このインターフェイスは、型チェックのためだけに存在しています。 + +
+ + +
+ &reftitle.interfacesynopsis; + + + + + BackedEnum + + + + extends + UnitEnum + + + &Methods; + + + + + &InheritedMethods; + + + + + + +
+ +
+ + &language.predefined.backedenum.from; + &language.predefined.backedenum.tryfrom; + +
+ diff --git a/language/predefined/backedenum/from.xml b/language/predefined/backedenum/from.xml new file mode 100644 index 0000000000..ca85d0ee79 --- /dev/null +++ b/language/predefined/backedenum/from.xml @@ -0,0 +1,115 @@ + + + + + + BackedEnum::from + スカラー型の値を列挙型にマップする + + + + &reftitle.description; + + public static staticBackedEnum::from + intstringvalue + + + from メソッドは + 文字列型や整数型の値を、存在する場合に + 列挙型の case に変換します。 + マッチする case が定義されていない場合は、 + ValueError + がスローされます。 + + + + + + &reftitle.parameters; + + + value + + + 列挙型の case にマップするスカラー値。 + + + + + + + + &reftitle.returnvalues; + + この列挙型の case のインスタンスを返します。 + + + + + &reftitle.examples; + + 基本的な使用法 + + 以下の例は、列挙型の case がどのように返されるかを示しています。 + + + +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + + UnitEnum::cases + BackedEnum::tryFrom + + + + + + diff --git a/language/predefined/backedenum/tryfrom.xml b/language/predefined/backedenum/tryfrom.xml new file mode 100644 index 0000000000..fbd92c96d1 --- /dev/null +++ b/language/predefined/backedenum/tryfrom.xml @@ -0,0 +1,115 @@ + + + + + + BackedEnum::tryFrom + スカラー型の値を列挙型にマップするか、&null; を返す + + + + &reftitle.description; + + public static staticnullBackedEnum::tryFrom + intstringvalue + + + tryfrom メソッドは + 文字列型や整数型の値を、存在する場合に + 列挙型の case に変換します。 + マッチする case が定義されていない場合は、&null; を返します。 + + + + + + &reftitle.parameters; + + + value + + + 列挙型の case にマップするスカラー値。 + + + + + + + + &reftitle.returnvalues; + + この列挙型の case のインスタンスを返します。 + 対応する case が見つからない場合は、null を返します。 + + + + + &reftitle.examples; + + 基本的な使用法 + + 以下の例は、列挙型の case がどのように返されるかを示しています。 + + + +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + + UnitEnum::cases + BackedEnum::from + + + + + + diff --git a/language/predefined/closedgeneratorexception.xml b/language/predefined/closedgeneratorexception.xml new file mode 100644 index 0000000000..91dfd4b8a9 --- /dev/null +++ b/language/predefined/closedgeneratorexception.xml @@ -0,0 +1,74 @@ + + + + + ClosedGeneratorException クラス + ClosedGeneratorException + + + + +
+ &reftitle.intro; + + ClosedGeneratorException は + 閉じられた Generator + から値を取得しようとした場合にスローされます。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + ClosedGeneratorException + + + + extends + Exception + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + +
+ +
+ +
+ diff --git a/language/predefined/closure.xml b/language/predefined/closure.xml index 2b86709778..7766d95680 100644 --- a/language/predefined/closure.xml +++ b/language/predefined/closure.xml @@ -1,8 +1,8 @@ - - - + + + Closure クラス Closure @@ -17,17 +17,15 @@ - 無名関数は PHP 5.3 で実装された機能で、この型のオブジェクトを生成します。 - かつてこれは、内部実装がたまたまそうなっているだけという扱いでした。 - しかし今では、この事実を前提として考慮してもかまいません。 - PHP 5.4 以降ではこのクラスにメソッドが用意され、 - 生成した無名関数をさらにコントロールできるようになります。 + 無名関数は、Closure 型のオブジェクトを生成します。 + このクラスにはメソッドが用意され、 + 生成した無名関数をさらにコントロールできるようになっています。 ここであげたメソッド以外にも、このクラスには __invoke メソッドが存在します。 - これは、マジックコール + これは、マジックメソッド __invoke() を実装した他のクラスとの一貫性を保つためのものであり、 関数をコールするときにこのメソッドは使われません。 @@ -39,24 +37,47 @@ &reftitle.classsynopsis; - - Closure + + + final + Closure + - - - - Closure - - - - &Methods; - + + + + + +
+
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + Closure::__debugInfo の出力に、 + クロージャーの名前、行、ファイルを含むようになりました。 + + + + + +
+ &language.predefined.closure.construct; @@ -65,8 +86,7 @@ &language.predefined.closure.call; &language.predefined.closure.fromcallable; - - + - + + @@ -12,15 +13,14 @@ &reftitle.description; - - public static ClosureClosure::bind + + public static ClosurenullClosure::bind Closureclosure - objectnewthis - mixednewscope - "static" + objectnullnewThis + objectstringnullnewScope"static" - このメソッドは、静的メソッド版の Closure::bindTo です。 + このメソッドは、staticメソッド版の Closure::bindTo です。 詳細な説明は Closure::bindTo のドキュメントを参照ください。 @@ -38,7 +38,7 @@ - newthis + newThis 指定した無名関数をバインドするオブジェクト。クロージャのバインドを解除するには @@ -47,13 +47,13 @@ - newscope + newScope クロージャを関連づけるクラススコープ、あるいは 'static' で現在のスコープを維持します。 オブジェクトを渡した場合は、そのオブジェクトの型をその代わりに使います。 これは、バインドしたオブジェクトの protected メソッドや private - メソッドの可視性を決めます。 + メソッドのアクセス権を決めます。 このパラメータに、内部クラスのオブジェクトを渡すことはできません。 @@ -65,32 +65,7 @@ &reftitle.returnvalues; 新しい Closure オブジェクトを返します。 - &return.falseforfailure; - - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.0.0 - - newscope に内部クラスのオブジェクトを渡すことができなくなりました。 - 以前のバージョンでは、渡すことができていました。 - - - - - + 失敗した場合は &null; を返します。 @@ -139,7 +114,6 @@ echo $bcl2(), "\n"; - - + @@ -13,11 +13,10 @@ &reftitle.description; - - public ClosureClosure::bindTo - objectnewthis - mixednewscope - "static" + + public ClosurenullClosure::bindTo + objectnullnewThis + objectstringnullnewScope"static" 自身と同じ本体とバインド変数を持つ新しい 無名関数 @@ -29,21 +28,21 @@ が関数本体で持つ値が決まり、“クラスのスコープ” は、無名関数からどのクラスの private メンバーや protected メンバーにアクセスできるのかが決まります。 すなわち、無名関数から見えるメンバーは、 - その無名関数が newscope + その無名関数が newScope クラスのメソッドであった場合と同じものになります。 - 静的なクロージャは何もオブジェクトをバインドできません - (newthis の値は &null; でなければなりません) が、 - それでもこの関数を使ってクラスのスコープを変えることができます。 + static なクロージャは何もオブジェクトをバインドできません + (newThis の値は &null; でなければなりません) が、 + それでもこのメソッドを使ってクラスのスコープを変えることができます。 - この関数が静的でないクロージャに関して保証するのは、 + このメソッドが static でないクロージャに関して保証するのは、 バインドされたインスタンスを持っていればスコープ内にあるということです。 - また、その逆も成り立ちます。そのため、静的でないクロージャにスコープとして - &null; インスタンスを渡すとそれは静的となり、静的でなくスコープにもないクロージャに + また、その逆も成り立ちます。そのため、static でないクロージャにスコープとして + &null; インスタンスを渡すとそれはstaticとなり、staticでなくスコープにもないクロージャに &null; でないインスタンスを渡すと、特定されていない何らかのクラスのスコープに入ります。 @@ -60,7 +59,7 @@ &reftitle.parameters; - newthis + newThis 指定した無名関数をバインドするオブジェクト。クロージャのバインドを解除するには @@ -69,13 +68,13 @@ - newscope + newScope クロージャを関連づけるクラススコープ、あるいは 'static' で現在のスコープを維持します。 オブジェクトを渡した場合は、そのオブジェクトの型をその代わりに使います。 これは、バインドしたオブジェクトの protected メソッドや private - メソッドの可視性を決めます。 + メソッドのアクセス権を決めます。 内部クラス (のオブジェクト) を をパラメータとして渡すことはできません。 @@ -87,33 +86,7 @@ &reftitle.returnvalues; 新しい Closure オブジェクトを返します。 - &return.falseforfailure; - - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.0.0 - - newscope には、 - 内部クラス (のオブジェクト) をパラメータとして渡すことができなくなりました。 - これより前のバージョンでは、それが可能でした。 - - - - - + 失敗した場合に &null; を返します。 @@ -125,13 +98,21 @@ val = $val; } - function getClosure() { + + public function getClosure() + { // このオブジェクトとスコープにバインドしたクロージャを返します。 - return function() { return $this->val; }; + return function() { + return $this->val; + }; } } @@ -140,8 +121,10 @@ $ob2 = new A(2); $cl = $ob1->getClosure(); echo $cl(), "\n"; + $cl = $cl->bindTo($ob2); echo $cl(), "\n"; + ?> ]]> @@ -155,7 +138,6 @@ echo $cl(), "\n"; - &reftitle.seealso; @@ -165,7 +147,6 @@ echo $cl(), "\n"; - - + @@ -9,13 +9,13 @@ &reftitle.description; - + public mixedClosure::call - objectnewthis - mixed... + objectnewThis + mixedargs - クロージャを一時的に newthis に束縛し、 + クロージャを一時的に newThis に束縛し、 指定したパラメータでそれを呼び出します。 @@ -23,7 +23,7 @@ &reftitle.parameters; - newthis + newThis この呼び出しの間だけクロージャを束縛するオブジェクト。 @@ -31,7 +31,7 @@ - ... + args クロージャに渡すパラメータがある場合は、ここで指定します。 @@ -84,7 +84,6 @@ int(8) - - + + @@ -10,10 +11,10 @@ &reftitle.description; - + private Closure::__construct - - + + このメソッドは、 Closure クラスのインスタンスを作れないようにするために存在します。 @@ -28,16 +29,6 @@ &no.function.parameters; - - &reftitle.returnvalues; - - このメソッドは値を返しません。単に - (E_RECOVERABLE_ERROR 型の) - エラーが発生するだけです。 - - - - &reftitle.seealso; @@ -48,7 +39,6 @@ - - + @@ -11,24 +11,29 @@ &reftitle.description; - + public static ClosureClosure::fromCallable - callablecallable + callablecallback - 現在のスコープを用いて、指定された callable から新しい + 現在のスコープを用いて、指定された callback から新しい 無名関数 を作って返します。 - このメソッドは、現在のスコープで callable + このメソッドは、現在のスコープで callback が呼び出し可能かどうかをチェックし、可能でなければ TypeError をスローします。 + + + PHP 8.1.0 以降では、このメソッドと同等の機能を実現するやり方として、第一級callableを生成する記法 があります。 + + &reftitle.parameters; - callable + callback 変換する callable。 @@ -42,10 +47,19 @@ &reftitle.returnvalues; 新しく作られた Closure を返します。 - callable が現在のスコープで呼び出し可能でなければ、 + callback が現在のスコープで呼び出し可能でなければ、 TypeError をスローします。 + + + &reftitle.seealso; + + 無名関数 + 第一級callableを生成する記法 + + + - diff --git a/language/predefined/compileerror.xml b/language/predefined/compileerror.xml index a23e3ee489..5b7f3c4487 100644 --- a/language/predefined/compileerror.xml +++ b/language/predefined/compileerror.xml @@ -1,12 +1,7 @@ - - - - + + + CompileError CompileError @@ -27,37 +22,35 @@ &reftitle.classsynopsis; - - CompileError - - - - - CompileError - + + + CompileError + - - extends - Error - - - + + extends + Error + &InheritedProperties; - + &InheritedMethods; - + + + + + +
- - + + + + + Countable インターフェイス + Countable + + + + +
+ &reftitle.intro; + + Countable を実装したクラスは、 + count 関数で使用することができます。 + +
+ + +
+ &reftitle.interfacesynopsis; + + + + + Countable + + + &Methods; + + + + + + +
+ +
+ + &language.predefined.countable.count; + +
+ diff --git a/language/predefined/countable/count.xml b/language/predefined/countable/count.xml new file mode 100644 index 0000000000..59fe078d5d --- /dev/null +++ b/language/predefined/countable/count.xml @@ -0,0 +1,101 @@ + + + + + + Countable::count + オブジェクトの要素の数を数える + + + + &reftitle.description; + + public intCountable::count + + + + このメソッドは、 + count 関数の + value パラメーターが + Countable を実装している場合に実行されます。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 数えたカスタムの結果を整数値として返します。 + + + + + &reftitle.examples; + + <function>Countable::count</function> の例 + +count; + } +} + +$counter = new Counter; + +for ($i = 0; $i < 10; ++$i) { + echo "I have been count()ed " . count($counter) . " times\n"; +} + +?> +]]> + + &example.outputs.similar; + + + + + + + + diff --git a/language/predefined/divisionbyzeroerror.xml b/language/predefined/divisionbyzeroerror.xml index d421cf7f37..d02846c336 100644 --- a/language/predefined/divisionbyzeroerror.xml +++ b/language/predefined/divisionbyzeroerror.xml @@ -1,12 +1,7 @@ - - - + + DivisionByZeroError DivisionByZeroError @@ -26,37 +21,35 @@ &reftitle.classsynopsis; - - DivisionByZeroError - - - - - DivisionByZeroError - + + + DivisionByZeroError + - - extends - ArithmeticError - - - + + extends + ArithmeticError + &InheritedProperties; - + &InheritedMethods; - + + + + + +
- - + - - - + + Error Error @@ -26,27 +21,28 @@ &reftitle.classsynopsis; - - Error - - - - - Error - + + + Error + - - implements - Throwable - - - + + implements + Throwable + &Properties; protected string message + "" + + + private + string + string + "" protected @@ -57,16 +53,33 @@ protected string file + "" protected int line + + private + array + trace + [] + + + private + Throwablenull + previous + null + &Methods; - - + + + + + + @@ -100,6 +113,24 @@ エラーが発生した行番号
+ + previous + + 直前にスローされた例外 + + + + string + + スタックトレースを示す文字列 + + + + trace + + スタックトレースを示す配列 + +
@@ -116,8 +147,7 @@ &language.predefined.error.gettraceasstring; &language.predefined.error.tostring; &language.predefined.error.clone; - - + - - + Error::__clone @@ -10,9 +9,9 @@ &reftitle.description; - - final private voidError::__clone - + + private voidError::__clone + エラーはクローンできないので、このメソッドは fatal エラーとなります。 @@ -37,8 +36,30 @@ エラーはクローン可能ではありません + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.1.0 + + Error::__clone は、 + final ではなくなりました。 + + + + + + - - diff --git a/language/predefined/error/construct.xml b/language/predefined/error/construct.xml index 908be4cadc..9d08f77b84 100644 --- a/language/predefined/error/construct.xml +++ b/language/predefined/error/construct.xml @@ -1,6 +1,6 @@ - + @@ -8,20 +8,20 @@ Error::__construct エラーオブジェクトを生成する - + &reftitle.description; - + public Error::__construct stringmessage"" intcode0 - Throwableprevious&null; + Throwablenullprevious&null; エラーを生成する。 - + &reftitle.parameters; @@ -64,7 +64,6 @@ - - diff --git a/language/predefined/error/getcode.xml b/language/predefined/error/getcode.xml index 03f20f11ac..fc6c6c9799 100644 --- a/language/predefined/error/getcode.xml +++ b/language/predefined/error/getcode.xml @@ -1,6 +1,6 @@ - - + + @@ -10,9 +10,9 @@ &reftitle.description; - - final public mixedError::getCode - + + final public intError::getCode + エラーコードを返します @@ -27,7 +27,7 @@ &reftitle.returnvalues; - エラーコードを integer 型として返します + エラーコードを int 型として返します @@ -66,7 +66,6 @@ The Error code is: 30 - - diff --git a/language/predefined/error/getfile.xml b/language/predefined/error/getfile.xml index 457474dc68..ad9e2634d9 100644 --- a/language/predefined/error/getfile.xml +++ b/language/predefined/error/getfile.xml @@ -1,7 +1,6 @@ - - - + + Error::getFile @@ -10,9 +9,9 @@ &reftitle.description; - + final public stringError::getFile - + エラーが起きたファイル名を取得します @@ -66,7 +65,6 @@ try { - - diff --git a/language/predefined/error/getline.xml b/language/predefined/error/getline.xml index c50744616c..d9c6680b98 100644 --- a/language/predefined/error/getline.xml +++ b/language/predefined/error/getline.xml @@ -1,7 +1,6 @@ - - - + + Error::getLine @@ -10,9 +9,9 @@ &reftitle.description; - + final public intError::getLine - + エラーが起きた行番号を取得します @@ -66,7 +65,6 @@ The error was created on line: 3 - - diff --git a/language/predefined/error/getmessage.xml b/language/predefined/error/getmessage.xml index 70ebd55a1e..67a92fbd5a 100644 --- a/language/predefined/error/getmessage.xml +++ b/language/predefined/error/getmessage.xml @@ -1,7 +1,6 @@ - - + Error::getMessage @@ -10,9 +9,9 @@ &reftitle.description; - + final public stringError::getMessage - + エラーメッセージを返す。 @@ -66,7 +65,6 @@ Some error message - - diff --git a/language/predefined/error/getprevious.xml b/language/predefined/error/getprevious.xml index cec91370ab..27b5ccb3b2 100644 --- a/language/predefined/error/getprevious.xml +++ b/language/predefined/error/getprevious.xml @@ -1,7 +1,6 @@ - - + Error::getPrevious @@ -10,9 +9,9 @@ &reftitle.description; - - final public ThrowableError::getPrevious - + + final public ThrowablenullError::getPrevious + 直前の Throwable(Error::__construct の3番目の引数)を返す。 @@ -84,7 +83,6 @@ try { - - diff --git a/language/predefined/error/gettrace.xml b/language/predefined/error/gettrace.xml index 70475dbda8..04cea9f367 100644 --- a/language/predefined/error/gettrace.xml +++ b/language/predefined/error/gettrace.xml @@ -1,7 +1,6 @@ - - - + + Error::getTrace @@ -10,9 +9,9 @@ &reftitle.description; - + final public arrayError::getTrace - + スタックトレースを返します @@ -83,7 +82,6 @@ array(1) { - - diff --git a/language/predefined/error/gettraceasstring.xml b/language/predefined/error/gettraceasstring.xml index 7c2354d649..d105ab54d3 100644 --- a/language/predefined/error/gettraceasstring.xml +++ b/language/predefined/error/gettraceasstring.xml @@ -1,7 +1,6 @@ - - - + + Error::getTraceAsString @@ -10,9 +9,9 @@ &reftitle.description; - + final public stringError::getTraceAsString - + スタックトレースを文字列として返します @@ -71,7 +70,6 @@ try { - - diff --git a/language/predefined/error/tostring.xml b/language/predefined/error/tostring.xml index b1d6614cc1..a4f24fd79c 100644 --- a/language/predefined/error/tostring.xml +++ b/language/predefined/error/tostring.xml @@ -1,7 +1,6 @@ - - - + + Error::__toString @@ -10,9 +9,9 @@ &reftitle.description; - - public string Error::__toString - + + public stringError::__toString + エラーの string 型の表現を返します @@ -68,7 +67,6 @@ Stack trace: - - diff --git a/language/predefined/errorexception.xml b/language/predefined/errorexception.xml index 6260238620..2b5f75017d 100644 --- a/language/predefined/errorexception.xml +++ b/language/predefined/errorexception.xml @@ -1,12 +1,7 @@ - - - + + ErrorException ErrorException @@ -25,38 +20,41 @@ &reftitle.classsynopsis; - - ErrorException - - - - - ErrorException - - - - extends - Exception - - - - + + + ErrorException + + + + extends + Exception + + &Properties; protected int severity + E_ERROR - + &InheritedProperties; - + + + &Methods; - - - + + + + + + + &InheritedMethods; - + + + @@ -76,6 +74,7 @@
+
&reftitle.examples; @@ -84,29 +83,38 @@ ]]> &example.outputs.similar; @@ -118,8 +126,7 @@ Stack trace: &language.predefined.errorexception.construct; &language.predefined.errorexception.getseverity; - - + - diff --git a/language/predefined/errorexception/construct.xml b/language/predefined/errorexception/construct.xml index 555c29000d..a7c65abf51 100644 --- a/language/predefined/errorexception/construct.xml +++ b/language/predefined/errorexception/construct.xml @@ -1,6 +1,7 @@ - + + @@ -10,14 +11,14 @@ &reftitle.description; - + public ErrorException::__construct stringmessage"" intcode0 - intseverityE_ERROR - stringfilename__FILE__ - intlineno__LINE__ - Exceptionprevious&null; + intseverityE_ERROR + stringnullfilename&null; + intnullline&null; + Throwablenullprevious&null; 例外を作成します。 @@ -52,7 +53,7 @@ - 任意の integer を設定できますが、ここでは + 任意の int を設定できますが、ここでは エラー定数 を用いることを想定しています。 @@ -67,7 +68,7 @@ - lineno + line 例外がスローされた行番号。 @@ -88,27 +89,30 @@ &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - previous パラメータが追加されました。 - - - - - - + + + + + &Version; + &Description; + + + + + 8.0.0 + + filenameline は、 + nullable になりました。 + これより前のバージョンでは、 + それらのデフォルト値はそれぞれ __FILE__ と + __LINE__ でした。 + + + + + + - diff --git a/language/predefined/errorexception/getseverity.xml b/language/predefined/errorexception/getseverity.xml index bdb3d7a681..575933bccc 100644 --- a/language/predefined/errorexception/getseverity.xml +++ b/language/predefined/errorexception/getseverity.xml @@ -1,7 +1,6 @@ - - + ErrorException::getSeverity @@ -10,9 +9,9 @@ &reftitle.description; - + final public intErrorException::getSeverity - + 例外の深刻度を返します。 @@ -59,7 +58,6 @@ bool(true) - - diff --git a/language/predefined/exception.xml b/language/predefined/exception.xml index 9d549cdc89..fa623307b2 100644 --- a/language/predefined/exception.xml +++ b/language/predefined/exception.xml @@ -1,12 +1,8 @@ - - - + + + Exception Exception @@ -16,13 +12,8 @@
&reftitle.intro; - Exception - は、PHP 5 ではすべての例外の基底クラスです。 - PHP 7 では、すべてのユーザー例外の基底クラスとなります。 - - - PHP 7 より前は、Exception は - Throwable インターフェイスを実装しませんでした。 + Exception は、 + すべてのユーザー例外の基底クラスです。
@@ -31,29 +22,30 @@ &reftitle.classsynopsis; - - Exception - - - - - Exception - + + + Exception + + + + implements + Throwable + - - implements - Throwable - - - - &Properties; protected string message + "" + private + string + string + "" + + protected int code @@ -62,16 +54,33 @@ protected string file + "" protected int line + + private + array + trace + [] + + + private + Throwablenull + previous + null + &Methods; - - + + + + + + @@ -106,6 +115,24 @@ 例外が作られた行 + + previous + + 直前にスローされた例外 + + + + string + + スタックトレースを示す文字列 + + + + trace + + スタックトレースを示す配列 + +
@@ -123,8 +150,7 @@ &language.predefined.exception.tostring; &language.predefined.exception.clone; - - + - diff --git a/language/predefined/exception/clone.xml b/language/predefined/exception/clone.xml index ae10a34160..efecba3052 100644 --- a/language/predefined/exception/clone.xml +++ b/language/predefined/exception/clone.xml @@ -1,7 +1,6 @@ - - + Exception::__clone @@ -10,12 +9,13 @@ &reftitle.description; - - final private voidException::__clone - + + private voidException::__clone + - 例外のコピーを作成しようとします。結果としてこれは Fatal エラーとなります。 + Exception のコピーは作成できません。 + 作成しようとすると、Error がスローされます。 @@ -37,8 +37,30 @@ 例外はクローン不可能です。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.1.0 + + Exception::__clone は、 + final ではなくなりました。 + + + + + + - - diff --git a/language/predefined/exception/construct.xml b/language/predefined/exception/construct.xml index 2d15afd597..1df112b181 100644 --- a/language/predefined/exception/construct.xml +++ b/language/predefined/exception/construct.xml @@ -1,6 +1,7 @@ - + + @@ -10,11 +11,11 @@ &reftitle.description; - + public Exception::__construct stringmessage"" intcode0 - Throwableprevious&null; + Throwablenullprevious&null; 例外を作成します。 @@ -59,36 +60,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.0.0 - - パラメータ previous の型が Throwable に変わりました。 - - - - 5.3.0 - - previous パラメータが追加されました。 - - - - - - - - &reftitle.notes; @@ -100,7 +71,6 @@ - - diff --git a/language/predefined/exception/getcode.xml b/language/predefined/exception/getcode.xml index ae1d43c19a..85a05afcb7 100644 --- a/language/predefined/exception/getcode.xml +++ b/language/predefined/exception/getcode.xml @@ -1,6 +1,7 @@ - + + @@ -10,9 +11,9 @@ &reftitle.description; - - final public mixedException::getCode - + + final public intException::getCode + 例外コードを返します。 @@ -68,7 +69,6 @@ The exception code is: 30 - - diff --git a/language/predefined/exception/getfile.xml b/language/predefined/exception/getfile.xml index df2fc0dd7e..2f7ac52dea 100644 --- a/language/predefined/exception/getfile.xml +++ b/language/predefined/exception/getfile.xml @@ -1,7 +1,6 @@ - - + Exception::getFile @@ -10,9 +9,9 @@ &reftitle.description; - + final public stringException::getFile - + 例外が作られたファイルの名前を取得します。 @@ -66,7 +65,6 @@ try { - - diff --git a/language/predefined/exception/getline.xml b/language/predefined/exception/getline.xml index f8c6ff542a..a0e325ab5e 100644 --- a/language/predefined/exception/getline.xml +++ b/language/predefined/exception/getline.xml @@ -1,7 +1,6 @@ - - + Exception::getLine @@ -10,9 +9,9 @@ &reftitle.description; - + final public intException::getLine - + 例外が作られた行番号を取得します。 @@ -66,7 +65,6 @@ The exception was created on line: 3 - - diff --git a/language/predefined/exception/getmessage.xml b/language/predefined/exception/getmessage.xml index 65b3ba5bf7..871c970f1b 100644 --- a/language/predefined/exception/getmessage.xml +++ b/language/predefined/exception/getmessage.xml @@ -1,7 +1,6 @@ - - + Exception::getMessage @@ -10,9 +9,9 @@ &reftitle.description; - + final public stringException::getMessage - + 例外メッセージを返します。 @@ -66,7 +65,6 @@ Some error message - - diff --git a/language/predefined/exception/getprevious.xml b/language/predefined/exception/getprevious.xml index e6f9f3586a..a8336a5bd4 100644 --- a/language/predefined/exception/getprevious.xml +++ b/language/predefined/exception/getprevious.xml @@ -1,21 +1,21 @@ - - + + Exception::getPrevious - 前の例外を返す + 前の例外(Throwable)を返す &reftitle.description; - - final public ExceptionException::getPrevious - + + final public ThrowablenullException::getPrevious + - 前に発生した例外 (Exception::__construct の 3 番目の引数) + 前に発生した Throwable (Exception::__construct に渡された 3 番目の引数) を返します。 @@ -32,30 +32,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.0.0 - - 返り値の型宣言が Throwable へ変更されました。 - - - - - - - - &reftitle.examples; @@ -108,7 +84,6 @@ try { - - diff --git a/language/predefined/exception/gettrace.xml b/language/predefined/exception/gettrace.xml index e4d13836c5..204723411d 100644 --- a/language/predefined/exception/gettrace.xml +++ b/language/predefined/exception/gettrace.xml @@ -1,7 +1,6 @@ - - + Exception::getTrace @@ -10,9 +9,9 @@ &reftitle.description; - + final public arrayException::getTrace - + 例外のスタックトレースを返します。 @@ -83,7 +82,6 @@ array(1) { - - diff --git a/language/predefined/exception/gettraceasstring.xml b/language/predefined/exception/gettraceasstring.xml index 631dbefec7..b11366be96 100644 --- a/language/predefined/exception/gettraceasstring.xml +++ b/language/predefined/exception/gettraceasstring.xml @@ -1,7 +1,6 @@ - - + Exception::getTraceAsString @@ -10,9 +9,9 @@ &reftitle.description; - + final public stringException::getTraceAsString - + 例外のスタックトレースを文字列で返します。 @@ -71,7 +70,6 @@ try { - - diff --git a/language/predefined/exception/tostring.xml b/language/predefined/exception/tostring.xml index ce27344b00..f8b7ba724f 100644 --- a/language/predefined/exception/tostring.xml +++ b/language/predefined/exception/tostring.xml @@ -1,7 +1,6 @@ - - + Exception::__toString @@ -10,9 +9,9 @@ &reftitle.description; - - public string Exception::__toString - + + public stringException::__toString + 例外を文字列で表現したものを返します。 @@ -68,7 +67,6 @@ Stack trace: - - diff --git a/language/predefined/exceptions.xml b/language/predefined/exceptions.xml index 8c25827642..3ab289e4bf 100644 --- a/language/predefined/exceptions.xml +++ b/language/predefined/exceptions.xml @@ -1,6 +1,7 @@ - + + 定義済みの例外 @@ -13,6 +14,7 @@ &language.predefined.exception; &language.predefined.errorexception; + &language.predefined.closedgeneratorexception; @@ -24,6 +26,10 @@ &language.predefined.compileerror; &language.predefined.parseerror; &language.predefined.typeerror; + &language.predefined.valueerror; + &language.predefined.unhandledmatcherror; + &language.predefined.fibererror; + &language.predefined.requestparsebodyexception; + + + Fiber クラス + Fiber + + + + +
+ &reftitle.intro; + + ファイバー(Fiber) は 完全なスタックを持つ、停止可能な関数です。 + ファイバー はコールスタック中のどこからでも停止することができますし、 + 後に再開されるまで実行を停止したままにできます。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + Fiber + + + &Methods; + + + + + + + + + +
+ +
+ &reftitle.seealso; + ファイバーの概要 +
+ +
+ + &language.predefined.fiber.construct; + &language.predefined.fiber.start; + &language.predefined.fiber.resume; + &language.predefined.fiber.throw; + &language.predefined.fiber.getreturn; + &language.predefined.fiber.isstarted; + &language.predefined.fiber.issuspended; + &language.predefined.fiber.isrunning; + &language.predefined.fiber.isterminated; + &language.predefined.fiber.suspend; + &language.predefined.fiber.getcurrent; + +
+ diff --git a/language/predefined/fiber/construct.xml b/language/predefined/fiber/construct.xml new file mode 100644 index 0000000000..d71e1de339 --- /dev/null +++ b/language/predefined/fiber/construct.xml @@ -0,0 +1,55 @@ + + + + + + Fiber::__construct + 新しいファイバーのインスタンスを構築する + + + + &reftitle.description; + + public Fiber::__construct + callablecallback + + + + + &reftitle.parameters; + + + callback + + + ファイバーを開始する時の callable を指定します。 + Fiber::start + に引数を指定することで、 + ここで指定する callable に引数を与えます。 + + + + + + + + diff --git a/language/predefined/fiber/getcurrent.xml b/language/predefined/fiber/getcurrent.xml new file mode 100644 index 0000000000..c6434c6011 --- /dev/null +++ b/language/predefined/fiber/getcurrent.xml @@ -0,0 +1,53 @@ + + + + + + Fiber::getCurrent + 現在実行中のファイバーのインスタンスを取得する + + + + &reftitle.description; + + public static FibernullFiber::getCurrent + + + + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 現在実行中の Fiber のインスタンスを返します。 + このメソッドがファイバーの外から実行された場合は &null; を返します。 + + + + + diff --git a/language/predefined/fiber/getreturn.xml b/language/predefined/fiber/getreturn.xml new file mode 100644 index 0000000000..863bc944a7 --- /dev/null +++ b/language/predefined/fiber/getreturn.xml @@ -0,0 +1,57 @@ + + + + + + Fiber::getReturn + ファイバーが返した値を取得する + + + + &reftitle.description; + + public mixedFiber::getReturn + + + + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + Fiber::__construct + に指定した callable が返した値を返します。 + ファイバーが値を返さなかった場合、 + ファイバーそのものが開始されていないか、 + 終了していないか、例外をスローしている場合で、 + それらの場合は FiberError がスローされます。 + + + + + diff --git a/language/predefined/fiber/isrunning.xml b/language/predefined/fiber/isrunning.xml new file mode 100644 index 0000000000..e5885920ef --- /dev/null +++ b/language/predefined/fiber/isrunning.xml @@ -0,0 +1,58 @@ + + + + + + Fiber::isRunning + ファイバーが実行中かどうかを調べる + + + + &reftitle.description; + + public boolFiber::isRunning + + + + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + ファイバーが実行中の場合にのみ &true; を返します。 + Fiber::start, + Fiber::resume, + Fiber::throw のいずれかがコールされた + (但し、Fiber::throw の場合は、まだ制御が戻っていない場合に限る) 後、 + ファイバーは実行中と見なされます。 + ファイバーが実行中でない場合、&false; を返します。 + + + + + diff --git a/language/predefined/fiber/isstarted.xml b/language/predefined/fiber/isstarted.xml new file mode 100644 index 0000000000..cb749cc7b2 --- /dev/null +++ b/language/predefined/fiber/isstarted.xml @@ -0,0 +1,54 @@ + + + + + + Fiber::isStarted + ファイバーが開始したかどうかを調べる + + + + &reftitle.description; + + public boolFiber::isStarted + + + + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + ファイバーが既に開始した後にのみ、 + &true; を返します。 + そうでない場合、&false; を返します。 + + + + + diff --git a/language/predefined/fiber/issuspended.xml b/language/predefined/fiber/issuspended.xml new file mode 100644 index 0000000000..f967447507 --- /dev/null +++ b/language/predefined/fiber/issuspended.xml @@ -0,0 +1,53 @@ + + + + + + Fiber::isSuspended + ファイバーが停止中かどうかを調べる + + + + &reftitle.description; + + public boolFiber::isSuspended + + + + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + ファイバーが現在停止中の場合に &true; を返します。 + そうでない場合、&false; を返します。 + + + + + diff --git a/language/predefined/fiber/isterminated.xml b/language/predefined/fiber/isterminated.xml new file mode 100644 index 0000000000..8a903130d9 --- /dev/null +++ b/language/predefined/fiber/isterminated.xml @@ -0,0 +1,54 @@ + + + + + + Fiber::isTerminated + ファイバーが終了しているかを調べる + + + + &reftitle.description; + + public boolFiber::isTerminated + + + + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + ファイバーが終了した後にのみ、&true; を返します。 + 値を返したか、例外をスローした場合のいずれかに限ります。 + そうでない場合、&false; を返します。 + + + + + diff --git a/language/predefined/fiber/resume.xml b/language/predefined/fiber/resume.xml new file mode 100644 index 0000000000..b0165a8ed2 --- /dev/null +++ b/language/predefined/fiber/resume.xml @@ -0,0 +1,75 @@ + + + + + + Fiber::resume + 値を渡して、ファイバーの実行を再開させる + + + + &reftitle.description; + + public mixedFiber::resume + mixedvalue&null; + + + 現在の + Fiber::suspend + の呼び出し結果として、指定した値を渡すことでファイバーを再開します。 + + + このメソッドがコールされた時点で ファイバーが停止していない場合、 + FiberError がスローされます。 + + + + + &reftitle.parameters; + + + value + + + ファイバーの実行を再開するための値。 + この値は、 + 現在の Fiber::suspend + からの戻り値となります。 + + + + + + + + &reftitle.returnvalues; + + Fiber::suspend + が次回コールされた際に指定した値を返します。 + ファイバーから制御が戻った場合は &null; を返します。 + 停止する前に ファイバーが例外をスローする場合、 + このメソッドの呼び出しからスローされます。 + + + + + diff --git a/language/predefined/fiber/start.xml b/language/predefined/fiber/start.xml new file mode 100644 index 0000000000..7f4cdda934 --- /dev/null +++ b/language/predefined/fiber/start.xml @@ -0,0 +1,71 @@ + + + + + + Fiber::start + ファイバーの実行を開始する + + + + &reftitle.description; + + public mixedFiber::start + mixedargs + + + ファイバーを構築する際に使われる callable に対して、可変長引数を指定します。 + + + このメソッドをコールした時点で ファイバーが既に開始されている場合、 + FiberError がスローされます。 + + + + + &reftitle.parameters; + + + args + + + ファイバーのコンストラクタに指定する callable を呼び出す際に、 + 使用する引数。 + + + + + + + + &reftitle.returnvalues; + + Fiber::suspend + が最初にコールされた際に指定した値を返します。 + ファイバーから制御が戻った場合は &null; を返します。 + 停止する前に ファイバーが例外をスローする場合、 + このメソッドの呼び出しからスローされます。 + + + + + diff --git a/language/predefined/fiber/suspend.xml b/language/predefined/fiber/suspend.xml new file mode 100644 index 0000000000..819c7f4e28 --- /dev/null +++ b/language/predefined/fiber/suspend.xml @@ -0,0 +1,87 @@ + + + + + + Fiber::suspend + 現在実行中のファイバーを停止する + + + + &reftitle.description; + + public static mixedFiber::suspend + mixedvalue&null; + + + 現在実行中のファイバーを停止します。 + このメソッドに渡した値が、 + Fiber::start, + Fiber::resume, + Fiber::throw から返されます。 + 但し、Fiber::throw + は 実行の制御が現在のファイバーに移った場合に限ります。 + + + ファイバーの実行が再開されると、 + このメソッドは Fiber::resume + に渡された値を返します。 + ファイバーの実行が Fiber::throw + を使って再開された場合、 + そのメソッドに渡された例外が、 + このメソッドの呼び出しからスローされます。 + + + このメソッドがファイバーの外部からコールされた場合、 + FiberError がスローされます。 + + + + + &reftitle.parameters; + + + value + + + Fiber::start, + Fiber::resume, + Fiber::throw を呼び出した際に返される値。 + 但し、Fiber::throw + は 実行の制御が現在のファイバーに移った場合に限ります。 + + + + + + + + &reftitle.returnvalues; + + Fiber::resume + に渡された値を返します。 + + + + + + diff --git a/language/predefined/fiber/throw.xml b/language/predefined/fiber/throw.xml new file mode 100644 index 0000000000..dc82163fd0 --- /dev/null +++ b/language/predefined/fiber/throw.xml @@ -0,0 +1,74 @@ + + + + + + Fiber::throw + ファイバーの実行を、例外をスローすることで再開する + + + + &reftitle.description; + + public mixedFiber::throw + Throwableexception + + + 現在の + Fiber::suspend への呼び出しから、 + 指定した例外をスローさせることでファイバーを再開させます。 + + + このメソッドがコールされた時点でファイバーが停止していない場合、 + FiberError がスローされます。 + + + + + &reftitle.parameters; + + + exception + + + 現在の + Fiber::suspend への呼び出しから、 + ファイバーにスローする例外を指定します。 + + + + + + + + &reftitle.returnvalues; + + Fiber::suspend + が次回コールされた際に指定した値を返します。 + ファイバーから制御が戻った場合は &null; を返します。 + 停止する前にファイバーが例外をスローする場合、 + このメソッドの呼び出しからスローされます。 + + + + + diff --git a/language/predefined/fibererror.xml b/language/predefined/fibererror.xml new file mode 100644 index 0000000000..7cfb860d72 --- /dev/null +++ b/language/predefined/fibererror.xml @@ -0,0 +1,79 @@ + + + + + FiberError + FiberError + + + + +
+ &reftitle.intro; + + FiberError は、 + Fiber + に対して不正な操作が行われた場合にスローされます。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + FiberError + + + + extends + Error + + + &InheritedProperties; + + + + + &Methods; + + + + + &InheritedMethods; + + + + + + + +
+
+ + &language.predefined.fibererror.construct; + +
+ diff --git a/language/predefined/fibererror/construct.xml b/language/predefined/fibererror/construct.xml new file mode 100644 index 0000000000..911a7de094 --- /dev/null +++ b/language/predefined/fibererror/construct.xml @@ -0,0 +1,49 @@ + + + + + + FiberError::__construct + インスタンス化を禁止するためのコンストラクタ + + + + &reftitle.description; + + public FiberError::__construct + + + + + + &reftitle.parameters; + &no.function.parameters; + + + &reftitle.errors; + + このメソッドがコールされると、 + Error 例外がスローされます。 + + + + diff --git a/language/predefined/generator.xml b/language/predefined/generator.xml index b065afd501..8dac024c69 100644 --- a/language/predefined/generator.xml +++ b/language/predefined/generator.xml @@ -1,8 +1,8 @@ - - - + + + Generator クラス Generator @@ -31,28 +31,31 @@ &reftitle.classsynopsis; - - Generator + + + final + Generator + + + + implements + Iterator + - - - - Generator - - - - Iterator - - - - &Methods; - + + +
+
+ &reftitle.seealso; + オブジェクトの反復処理 も参照ください。 +
+ &language.predefined.generator.current; @@ -65,8 +68,7 @@ &language.predefined.generator.valid; &language.predefined.generator.wakeup; - - + - - + Generator::current @@ -10,9 +9,9 @@ &reftitle.description; - + public mixedGenerator::current - + @@ -30,7 +29,6 @@ - - - - + Generator::getReturn @@ -11,9 +9,9 @@ &reftitle.description; - + public mixedGenerator::getReturn - + @@ -64,7 +62,6 @@ echo $gen->getReturn(), PHP_EOL; - - - + Generator::key @@ -10,9 +9,9 @@ &reftitle.description; - + public mixedGenerator::key - + yield した値のキーを取得します。 @@ -60,7 +59,6 @@ key => value - - + - Generator::next @@ -11,9 +10,9 @@ &reftitle.description; - + public voidGenerator::next - + Generator::next のコールは、 @@ -36,7 +35,6 @@ - - - + Generator::rewind - イテレータを巻き戻す + イテレータを最初の yield まで巻き戻す &reftitle.description; - + public voidGenerator::rewind - + - 既に処理が始まっている場合は、例外をスローします。 + このメソッドは ジェネレーターを最初の &yield; の前のポイントまで巻き戻します。 + このメソッドがコールされた際に、 + ジェネレーターが最初の &yield; 式に達していない場合、 + 巻き戻す前に最初の &yield; まで進めます。 + ジェネレーターが既に二番目の &yield; の始点に達している場合は + Exception がスローされます。 + + + これは、&foreach; ループを開始する際に 最初に + コールされるメソッドです。&foreach; ループが実行された + 後に 実行されるのでは + ありません。 + + @@ -32,9 +44,84 @@ + + &reftitle.examples; + + + <methodname>Generator::rewind</methodname> の例 + + +function generator(): Generator +{ + echo "I'm a generator!\n"; + + for ($i = 1; $i <= 3; $i++) { + yield $i; + } +} + +// ジェネレータを初期化 +$generator = generator(); + +// まだ達していない場合、最初の yield 式の開始までジェネレータを巻き戻します。 +$generator->rewind(); // I'm a generator! + +// ここでは何も起きません; ジェネレータは既に巻き戻されています。 +$generator->rewind(); // No output (NULL) + +// ここでは、まだ達していない場合、 +// 最初の yield 式の開始までジェネレータを巻き戻します。 +// そして、ジェネレータを反復します。 +foreach ($generator as $value) { + // 最初の値を yield したあと、ジェネレータは + // 実行が再開されて次の yield に進むまで最初の + // yield 式にとどまったままです。 + echo $value, PHP_EOL; // 1 + + break; +} +// 巻き戻しを再開します。 +// エラーは発生しません。なぜんら、ジェネレータは最初の yield を越えて +// 進んでいないからです。 +$generator->rewind(); + +echo $generator->current(), PHP_EOL; // 1 + +// エラーは起きません。 +// ジェネレータはまだ最初の yield に留まっています。 +$generator->rewind(); + +// ここで、ジェネレータを二回目の yield 式に進めます。 +$generator->next(); + +try { + // これは、例外をスローします。 + // なぜなら、既にジェネレータが二回目の yield に進んでいるからです。 + $generator->rewind(); // Fatal error: Uncaught Exception: Cannot rewind a generator that was already run +} catch (Exception $e) { + echo $e->getMessage(); +} + +?> +]]> + + &example.outputs; + + + + + + + + - - + Generator::send @@ -10,7 +9,7 @@ &reftitle.description; - + public mixedGenerator::send mixedvalue @@ -82,7 +81,6 @@ Bye world! - - + - Generator::throw @@ -11,7 +10,7 @@ &reftitle.description; - + public mixedGenerator::throw Throwableexception @@ -46,31 +45,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.0.0 - - exception パラメーターは、 - Throwable も受け入れるようになりました。 - - - - - - - - &reftitle.examples; @@ -107,7 +81,6 @@ Bar - - - + Generator::valid @@ -10,9 +9,9 @@ &reftitle.description; - + public boolGenerator::valid - + @@ -30,7 +29,6 @@ - - + @@ -10,9 +10,9 @@ &reftitle.description; - + public voidGenerator::__wakeup - + ジェネレータはシリアライズできないので、例外をスローします。 diff --git a/language/predefined/interfaces.xml b/language/predefined/interfaces.xml index cb26926f9c..9e19c19786 100644 --- a/language/predefined/interfaces.xml +++ b/language/predefined/interfaces.xml @@ -1,6 +1,6 @@ - - + + 定義済みのインターフェイスとクラス @@ -15,12 +15,22 @@ &language.predefined.traversable; &language.predefined.iterator; &language.predefined.iteratoraggregate; + &language.predefined.internaliterator; &language.predefined.throwable; + &language.predefined.countable; &language.predefined.arrayaccess; &language.predefined.serializable; &language.predefined.closure; + &language.predefined.stdclass; &language.predefined.generator; + &language.predefined.fiber; &language.predefined.weakreference; + &language.predefined.weakmap; + &language.predefined.stringable; + &language.predefined.unitenum; + &language.predefined.backedenum; + &language.predefined.sensitiveparametervalue; + &language.predefined.php-incomplete-class; diff --git a/language/predefined/internaliterator.xml b/language/predefined/internaliterator.xml new file mode 100644 index 0000000000..430b218a36 --- /dev/null +++ b/language/predefined/internaliterator.xml @@ -0,0 +1,76 @@ + + + + + InternalIterator クラス + InternalIterator + + + + +
+ &reftitle.intro; + + 内部クラス が、 + IteratorAggregate を実装しやすくするためのクラスです。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + InternalIterator + + + + implements + Iterator + + + &Methods; + + + + + + + + + +
+ +
+ + &language.predefined.internaliterator.construct; + &language.predefined.internaliterator.current; + &language.predefined.internaliterator.key; + &language.predefined.internaliterator.next; + &language.predefined.internaliterator.rewind; + &language.predefined.internaliterator.valid; + +
+ diff --git a/language/predefined/internaliterator/construct.xml b/language/predefined/internaliterator/construct.xml new file mode 100644 index 0000000000..47edd225ec --- /dev/null +++ b/language/predefined/internaliterator/construct.xml @@ -0,0 +1,42 @@ + + + + + + InternalIterator::__construct + private なコンストラクタのため、直接インスタンス化できません + + + + &reftitle.description; + + private InternalIterator::__construct + + + + + + &reftitle.parameters; + &no.function.parameters; + + + diff --git a/language/predefined/internaliterator/current.xml b/language/predefined/internaliterator/current.xml new file mode 100644 index 0000000000..445027f66b --- /dev/null +++ b/language/predefined/internaliterator/current.xml @@ -0,0 +1,52 @@ + + + + + + InternalIterator::current + 現在の要素を返す + + + + &reftitle.description; + + public mixedInternalIterator::current + + + + 現在の要素を返します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 現在の要素を返します。 + + + + diff --git a/language/predefined/internaliterator/key.xml b/language/predefined/internaliterator/key.xml new file mode 100644 index 0000000000..133365c652 --- /dev/null +++ b/language/predefined/internaliterator/key.xml @@ -0,0 +1,52 @@ + + + + + + InternalIterator::key + 現在の要素のキーを返す + + + + &reftitle.description; + + public mixedInternalIterator::key + + + + 現在の要素のキーを返します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 現在の要素のキーを返します。 + + + + diff --git a/language/predefined/internaliterator/next.xml b/language/predefined/internaliterator/next.xml new file mode 100644 index 0000000000..77784b18ad --- /dev/null +++ b/language/predefined/internaliterator/next.xml @@ -0,0 +1,52 @@ + + + + + + InternalIterator::next + 次の要素に進む + + + + &reftitle.description; + + public voidInternalIterator::next + + + + 現在位置を次の要素に移動します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + &return.void; + + + + diff --git a/language/predefined/internaliterator/rewind.xml b/language/predefined/internaliterator/rewind.xml new file mode 100644 index 0000000000..0f83cda592 --- /dev/null +++ b/language/predefined/internaliterator/rewind.xml @@ -0,0 +1,52 @@ + + + + + + InternalIterator::rewind + イテレータの最初の要素に巻き戻す + + + + &reftitle.description; + + public voidInternalIterator::rewind + + + + イテレータの最初の要素に巻き戻します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + &return.void; + + + + diff --git a/language/predefined/internaliterator/valid.xml b/language/predefined/internaliterator/valid.xml new file mode 100644 index 0000000000..6997972d50 --- /dev/null +++ b/language/predefined/internaliterator/valid.xml @@ -0,0 +1,52 @@ + + + + + + InternalIterator::valid + 現在位置が有効かどうかを調べる + + + + &reftitle.description; + + public boolInternalIterator::valid + + + + 現在位置が有効かどうかを調べます。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 現在位置が有効かどうかを返します。 + + + + diff --git a/language/predefined/iterator.xml b/language/predefined/iterator.xml index aa3e5ad337..4f1626cf5e 100644 --- a/language/predefined/iterator.xml +++ b/language/predefined/iterator.xml @@ -1,8 +1,8 @@ - - - + + + Iterator インターフェイス Iterator @@ -22,24 +22,20 @@ &reftitle.interfacesynopsis; - - Iterator - - - - - Iterator - - - - extends - Traversable - - - - + + + Iterator + + + + extends + Traversable + + &Methods; - + + + @@ -76,27 +72,29 @@ class myIterator implements Iterator { $this->position = 0; } - public function rewind() { + public function rewind(): void { var_dump(__METHOD__); $this->position = 0; } + #[\ReturnTypeWillChange] public function current() { var_dump(__METHOD__); return $this->array[$this->position]; } + #[\ReturnTypeWillChange] public function key() { var_dump(__METHOD__); return $this->position; } - public function next() { + public function next(): void { var_dump(__METHOD__); ++$this->position; } - public function valid() { + public function valid(): bool { var_dump(__METHOD__); return isset($this->array[$this->position]); } @@ -142,6 +140,10 @@ string(17) "myIterator::valid"
+
+ &reftitle.seealso; + オブジェクトの反復処理も参照ください。 +
@@ -151,8 +153,7 @@ string(17) "myIterator::valid" &language.predefined.iterator.rewind; &language.predefined.iterator.valid; - - + - diff --git a/language/predefined/iterator/current.xml b/language/predefined/iterator/current.xml index 6377da8707..7d57992c27 100644 --- a/language/predefined/iterator/current.xml +++ b/language/predefined/iterator/current.xml @@ -1,7 +1,6 @@ - - + Iterator::current @@ -10,9 +9,9 @@ &reftitle.description; - - abstract public mixedIterator::current - + + public mixedIterator::current + 現在の要素を返します。 @@ -32,7 +31,6 @@ - - diff --git a/language/predefined/iterator/key.xml b/language/predefined/iterator/key.xml index d6cec3b233..4dd08545d7 100644 --- a/language/predefined/iterator/key.xml +++ b/language/predefined/iterator/key.xml @@ -1,6 +1,6 @@ - + @@ -10,9 +10,9 @@ &reftitle.description; - - abstract public scalarIterator::key - + + public mixedIterator::key + 現在の要素のキーを返します。 @@ -40,7 +40,6 @@ - - diff --git a/language/predefined/iterator/next.xml b/language/predefined/iterator/next.xml index 811e428810..403f24ac19 100644 --- a/language/predefined/iterator/next.xml +++ b/language/predefined/iterator/next.xml @@ -1,7 +1,6 @@ - - + Iterator::next @@ -10,9 +9,9 @@ &reftitle.description; - - abstract public voidIterator::next - + + public voidIterator::next + 現在位置を次の要素に移動します。 @@ -33,12 +32,11 @@ &reftitle.returnvalues; - 返り値は無視されます。 + 戻り値は無視されます。 - - diff --git a/language/predefined/iterator/rewind.xml b/language/predefined/iterator/rewind.xml index ed38f4e3dd..33a0c6849e 100644 --- a/language/predefined/iterator/rewind.xml +++ b/language/predefined/iterator/rewind.xml @@ -1,7 +1,6 @@ - - + Iterator::rewind @@ -10,9 +9,9 @@ &reftitle.description; - - abstract public voidIterator::rewind - + + public voidIterator::rewind + イテレータの最初の要素に巻き戻します。 @@ -35,12 +34,11 @@ &reftitle.returnvalues; - 返り値は無視されます。 + 戻り値は無視されます。 - - diff --git a/language/predefined/iterator/valid.xml b/language/predefined/iterator/valid.xml index a13c3d743c..e6600840f9 100644 --- a/language/predefined/iterator/valid.xml +++ b/language/predefined/iterator/valid.xml @@ -1,7 +1,6 @@ - - + Iterator::valid @@ -10,14 +9,14 @@ &reftitle.description; - - abstract public boolIterator::valid - + + public boolIterator::valid + このメソッドは Iterator::rewind および Iterator::next の後にコールされ、 - 現在の位置が有効化どうかを調べます。 + 現在の位置が有効かどうかを調べます。 @@ -29,13 +28,12 @@ &reftitle.returnvalues; - 返り値は boolean にキャストして評価されます。 + 戻り値は bool にキャストして評価されます。 &return.success; - - diff --git a/language/predefined/iteratoraggregate.xml b/language/predefined/iteratoraggregate.xml index 406f9d85a8..67780ef47c 100644 --- a/language/predefined/iteratoraggregate.xml +++ b/language/predefined/iteratoraggregate.xml @@ -1,8 +1,7 @@ - - - + + IteratorAggregate インターフェイス IteratorAggregate @@ -22,55 +21,58 @@ &reftitle.interfacesynopsis; - - IteratorAggregate - - - - - IteratorAggregate - - - - extends - Traversable - - - - + + + IteratorAggregate + + + + extends + Traversable + + &Methods; - + + +
+ &reftitle.examples; 基本的な例 property4 = "last property"; } - public function getIterator() { + public function getIterator(): Traversable + { return new ArrayIterator($this); } } -$obj = new myData; +$obj = new myData(); -foreach($obj as $key => $value) { +foreach ($obj as $key => $value) { var_dump($key, $value); echo "\n"; } + ?> ]]> @@ -99,8 +101,7 @@ string(13) "last property" &language.predefined.iteratoraggregate.getiterator; - - + - - + IteratorAggregate::getIterator - 外部イテレータを取得する + 外部イテレータ または traversable を取得する &reftitle.description; - - abstract public TraversableIteratorAggregate::getIterator - + + public TraversableIteratorAggregate::getIterator + - 外部イテレータを返します。 + 外部イテレータ または traversable を返します。 @@ -40,7 +39,6 @@ - - + - - + ParseError ParseError @@ -35,37 +30,35 @@ &reftitle.classsynopsis; - - ParseError - - - - - ParseError - + + + ParseError + - - extends - CompileError - - - + + extends + CompileError + &InheritedProperties; - + &InheritedMethods; - + + + + + +
- - +
+ + + + __PHP_Incomplete_Class クラス + __PHP_Incomplete_Class + + + +
+ &reftitle.intro; + + 未定義のクラスや、 + unserializeoptions + 配列の allowed_classes のリストに入っていなかったクラスを + アンシリアライズしようとした場合に、 + unserialize が生成します。 + + + + PHP 7.2.0 より前のバージョンでは、 + __PHP_Incomplete_Class + に対して is_object + を呼び出すと &false; を返していました。 + PHP 7.2.0 以降では &true; を返します。 + +
+ +
+ &reftitle.classsynopsis; + + + + final + __PHP_Incomplete_Class + + + + + このクラスはデフォルトのプロパティやメソッドを持っていません。 + unserialize がこのクラスを生成した場合、 + アンシリアライズされたプロパティやオブジェクトの値について、 + アンシリアライズされたクラス名を含む + __PHP_Incomplete_Class_Name プロパティを持ちます。 + +
+ +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + このクラスは final になりました。 + + + + + +
+ +
+ &reftitle.examples; + + <function>unserialize</function> によって生成されるクラス + + false]); + +var_dump($disallowed); + +// unserializes all objects into __PHP_Incomplete_Class objects except those of MyClass2 and MyClass3 +$disallowed2 = unserialize($foo, ["allowed_classes" => ["MyClass2", "MyClass3"]]); + +var_dump($disallowed2); + +// unserializes undefined class into __PHP_Incomplete_Class object +$undefinedClass = unserialize('O:16:"MyUndefinedClass":0:{}'); + +var_dump($undefinedClass); +]]> + + &example.outputs; + + + string(7) "MyClass" + ["property"]=> + string(7) "myValue" +} +object(__PHP_Incomplete_Class)#3 (2) { + ["__PHP_Incomplete_Class_Name"]=> + string(7) "MyClass" + ["property"]=> + string(7) "myValue" +} +object(__PHP_Incomplete_Class)#4 (1) { + ["__PHP_Incomplete_Class_Name"]=> + string(16) "MyUndefinedClass" +} + +]]> + + +
+ +
+ +
+ diff --git a/language/predefined/requestparsebodyexception.xml b/language/predefined/requestparsebodyexception.xml new file mode 100644 index 0000000000..179733b968 --- /dev/null +++ b/language/predefined/requestparsebodyexception.xml @@ -0,0 +1,74 @@ + + + + + + RequestParseBodyException + RequestParseBodyException + + + + +
+ &reftitle.intro; + + RequestParseBodyException は、 + request_parse_body 内でリクエストボディが無効な場合にスローされます。 + これは、 Content-Type ヘッダーに基づいて判断されます。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + RequestParseBodyException + + + + extends + Exception + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + + +
+
+
+ diff --git a/language/predefined/returntypewillchange/construct.xml b/language/predefined/returntypewillchange/construct.xml new file mode 100644 index 0000000000..ab210aa0d2 --- /dev/null +++ b/language/predefined/returntypewillchange/construct.xml @@ -0,0 +1,45 @@ + + + + + + ReturnTypeWillChange::__construct + 新しい ReturnTypeWillChange のインスタンスを作成する + + + + &reftitle.description; + + public ReturnTypeWillChange::__construct + + + + 新しい ReturnTypeWillChange のインスタンスを作成します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + diff --git a/language/predefined/sensitiveparameter/construct.xml b/language/predefined/sensitiveparameter/construct.xml new file mode 100644 index 0000000000..912a78429f --- /dev/null +++ b/language/predefined/sensitiveparameter/construct.xml @@ -0,0 +1,45 @@ + + + + + + SensitiveParameter::__construct + 新しい SensitiveParameter のインスタンスを作成する + + + + &reftitle.description; + + public SensitiveParameter::__construct + + + + 新しい SensitiveParameter のインスタンスを作成します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + diff --git a/language/predefined/sensitiveparametervalue.xml b/language/predefined/sensitiveparametervalue.xml new file mode 100644 index 0000000000..5ec561b92a --- /dev/null +++ b/language/predefined/sensitiveparametervalue.xml @@ -0,0 +1,98 @@ + + + + + SensitiveParameterValue クラス + SensitiveParameterValue + + + + +
+ &reftitle.intro; + + SensitiveParameterValue クラスを使うと、 + 秘密の値をうっかり公開してしまうことを防ぐために値をラップすることができます。 + + + SensitiveParameter + アトリビュートを持つパラメータに渡される値は、 + スタックトレース中では SensitiveParameterValue + オブジェクトで自動的にラップされます。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + SensitiveParameterValue + + + &Properties; + + private + readonly + mixed + value + + + &Methods; + + + + + + + + + +
+ + +
+ &reftitle.properties; + + + value + + + うっかり公開してしまうことを防ぎたい、秘密の値 + + + + +
+ + +
+ + &language.predefined.sensitiveparametervalue.construct; + &language.predefined.sensitiveparametervalue.debuginfo; + &language.predefined.sensitiveparametervalue.getvalue; + +
+ diff --git a/language/predefined/sensitiveparametervalue/construct.xml b/language/predefined/sensitiveparametervalue/construct.xml new file mode 100644 index 0000000000..b0ca57557b --- /dev/null +++ b/language/predefined/sensitiveparametervalue/construct.xml @@ -0,0 +1,69 @@ + + + + + + SensitiveParameterValue::__construct + 新しい SensitiveParameterValue オブジェクトを作成する + + + + &reftitle.description; + + public SensitiveParameterValue::__construct + mixedvalue + + + 秘密の値を保持した SensitiveParameterValue を作成します。 + + + + + &reftitle.parameters; + + + value + + + SensitiveParameterValue + オブジェクトの内部に保存すべき、任意の値 + + + + + + + + + + + + diff --git a/language/predefined/sensitiveparametervalue/debuginfo.xml b/language/predefined/sensitiveparametervalue/debuginfo.xml new file mode 100644 index 0000000000..36995fb599 --- /dev/null +++ b/language/predefined/sensitiveparametervalue/debuginfo.xml @@ -0,0 +1,79 @@ + + + + + + SensitiveParameterValue::__debugInfo + 秘密の値をうっかり公開することを防止する + + + + &reftitle.description; + + public arraySensitiveParameterValue::__debugInfo + + + + var_dump を使った時にうっかり秘密の値を公開しないように、 + 空の配列を返します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 空の配列を返します + + + + + &reftitle.examples; + + + <classname>SensitiveParameterValue</classname> オブジェクトを <function>var_dump</function> に渡す + + +]]> + + &example.outputs; + + + + + + + + + diff --git a/language/predefined/sensitiveparametervalue/getvalue.xml b/language/predefined/sensitiveparametervalue/getvalue.xml new file mode 100644 index 0000000000..a6daea169e --- /dev/null +++ b/language/predefined/sensitiveparametervalue/getvalue.xml @@ -0,0 +1,77 @@ + + + + + + SensitiveParameterValue::getValue + 秘密の値を返す + + + + &reftitle.description; + + public mixedSensitiveParameterValue::getValue + + + + 秘密の値を取得します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 秘密の値を返します。 + + + + + &reftitle.examples; + + + <function>SensitiveParameterValue::getValue</function> の例 + +getValue(), "\n"; +?> +]]> + + &example.outputs; + + + + + + + + + diff --git a/language/predefined/serializable.xml b/language/predefined/serializable.xml index e81d501b8a..0652bfbefb 100644 --- a/language/predefined/serializable.xml +++ b/language/predefined/serializable.xml @@ -1,8 +1,7 @@ - - - + + Serializable インターフェイス Serializable @@ -27,6 +26,16 @@ メソッドのかわりに適切な unserialize() メソッドがコールされます。 標準のコンストラクタを実行させたい場合は、unserialize() メソッドの中でそれをコールします。 + + + + PHP 8.1.0 以降は、 + __serialize() と + __unserialize() + がない状態で Serializable + を実装したクラスに対しては、推奨されない警告が発生します。 + + @@ -34,25 +43,22 @@ &reftitle.interfacesynopsis; - - Serializable - - - - - Serializable - - - - + + + Serializable + + &Methods; - + + +
+ &reftitle.examples; 基本的な使用法 @@ -101,8 +107,7 @@ string(15) "My private data" &language.predefined.serializable.serialize; &language.predefined.serializable.unserialize; - - + - - + + Serializable::serialize @@ -10,9 +10,9 @@ &reftitle.description; - - abstract public stringSerializable::serialize - + + public stringnullSerializable::serialize + オブジェクトを文字列であらわしたものを返します。 @@ -44,12 +44,12 @@ __sleep() + __serialize() - - + + @@ -10,9 +11,9 @@ &reftitle.description; - - abstract public voidSerializable::unserialize - stringserialized + + public voidSerializable::unserialize + stringdata オブジェクトのアンシリアライズ時にコールされます。 @@ -32,7 +33,7 @@ - serialized + data オブジェクトの文字列表現。 @@ -47,7 +48,7 @@ &reftitle.returnvalues; - このメソッドの返り値は無視されます。 + このメソッドの戻り値は無視されます。 @@ -56,12 +57,12 @@ __wakeup() + __unserialize() - + + + + + stdClass クラス + stdClass + + + +
+ &reftitle.intro; + + 動的なプロパティが使える、汎用的な空のクラスです。 + + + + このクラスのインスタンスは、 + new + 演算子や、 + オブジェクトへの型変換 + によって作成できます。 + PHP の関数によっては、このクラスのインスタンスを返すものがあります。 + たとえば + json_decode, + mysqli_fetch_object, + PDOStatement::fetchObject + が挙げられます。 + + + + マジックメソッド + __get()/__set() + を実装しているかどうかに関わらず、 + このクラスでは動的なプロパティが許可されています。 + よって、#[\AllowDynamicProperties] アトリビュートは必要ありません。 + + + + PHP には全てのクラスの親となる基底クラスの概念がないため、 + このクラスは基底クラスではありません。 + ただ、stdClass + を継承させることで、 + 動的なプロパティの機能を持ったカスタムクラスを結果的に作ることはできます。 + +
+ +
+ &reftitle.classsynopsis; + + + + stdClass + + + + + このクラスは、メソッドやデフォルトのプロパティを持っていません。 + +
+ +
+ &reftitle.examples; + + オブジェクトへの型変換を使い、stdClass を作る + + 'bar'); +var_dump($obj); +]]> + + &example.outputs; + + + string(3) "bar" +} +]]> + + + + <function>json_decode</function> によって、stdClass を作る + + + + &example.outputs; + + + string(3) "bar" +} +]]> + + + + 動的にプロパティを宣言する + +foo = 42; +$obj->{1} = 42; +var_dump($obj); +]]> + + &example.outputs; + + + int(42) + ["1"]=> + int(42) +} +]]> + + +
+ +
+ +
+ diff --git a/language/predefined/stringable.xml b/language/predefined/stringable.xml new file mode 100644 index 0000000000..2315da8157 --- /dev/null +++ b/language/predefined/stringable.xml @@ -0,0 +1,121 @@ + + + + + + Stringable インターフェイス + Stringable + + + + +
+ &reftitle.intro; + + Stringable + インターフェイスは、 + 特定のクラスが __toString() + メソッドを実装していることを示します。 + ほとんどのインターフェイスと異なり、 + Stringable + は、マジックメソッド + __toString() + が定義されているあらゆるクラスで + 暗黙のうちに存在すると見なされますが、 + 明示的に宣言することもできますし、宣言すべきです。 + + + このインターフェイスの一番の存在意義は、 + 文字列プリミティブや、 + 文字列にキャストできるオブジェクトを受け入れる + union型 string|Stringable + に対する型チェックを、関数ができるようにすることです。 + +
+ + +
+ &reftitle.interfacesynopsis; + + + + + Stringable + + + &Methods; + + + + + + +
+ +
+ Stringable インターフェイスの例 + + + 基本的な Stringable インターフェイスの使い方 + 以下は、コンストラクタのプロモーション を使っています。 + +oct1.$this->oct2.$this->oct3.$this->oct4"; + } +} + +function showStuff(string|Stringable $value) { + // Stringable を渡した場合、以下は暗黙のうちに __toString() をコールします。 + print $value; +} + +$ip = new IPv4Address('123', '234', '42', '9'); + +showStuff($ip); +?> +]]> + + &example.outputs.similar; + + + + + +
+ +
+ + &language.predefined.stringable.tostring; +
+ diff --git a/language/predefined/stringable/tostring.xml b/language/predefined/stringable/tostring.xml new file mode 100644 index 0000000000..6d5fa4415c --- /dev/null +++ b/language/predefined/stringable/tostring.xml @@ -0,0 +1,60 @@ + + + + + + Stringable::__toString + オブジェクトの文字列表現を取得する + + + + &reftitle.description; + + public stringStringable::__toString + + + + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + オブジェクトの文字列表現を返します。 + + + + + &reftitle.seealso; + + + __toString() + + + + + diff --git a/language/predefined/throwable.xml b/language/predefined/throwable.xml index 8ba236c3df..8bdd1b8ce1 100644 --- a/language/predefined/throwable.xml +++ b/language/predefined/throwable.xml @@ -1,8 +1,8 @@ - - - + + + Throwable Throwable @@ -14,7 +14,7 @@ &reftitle.intro; Throwable - は、PHP 7 の &throw; 文でスロー可能なあらゆるオブジェクトが実装する基底インターフェイスです。 + は、&throw; 文でスロー可能なあらゆるオブジェクトが実装する基底インターフェイスです。 ErrorException も、これを実装しています。 @@ -31,24 +31,52 @@ &reftitle.interfacesynopsis; - - Throwable + + + Throwable + + + + extends + Stringable + - - - - Throwable - - - - &Methods; - + + + + + &InheritedMethods; + + +
+
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + Throwable は、 + Stringable を新たに実装しました。 + + + + + +
@@ -60,8 +88,7 @@ &language.predefined.throwable.gettraceasstring; &language.predefined.throwable.getprevious; &language.predefined.throwable.tostring; -
- + - - + Throwable::getCode @@ -10,9 +9,9 @@ &reftitle.description; - - abstract public intThrowable::getCode - + + public intThrowable::getCode + スローされたオブジェクトのエラーコードを返します。 @@ -28,7 +27,7 @@ &reftitle.returnvalues; 例外コードを返します。 - Exception の場合は integer ですが、 + Exception の場合は int ですが、 その派生クラスでは別の型かもしれません (たとえば PDOException の場合は string です)。 @@ -43,7 +42,6 @@ - - - + Throwable::getFile @@ -10,9 +9,9 @@ &reftitle.description; - - abstract public stringThrowable::getFile - + + public stringThrowable::getFile + スローされたオブジェクトが作られたファイル名を取得します。 @@ -40,7 +39,6 @@ - - - + Throwable::getLine @@ -10,9 +9,9 @@ &reftitle.description; - - abstract public intThrowable::getLine - + + public intThrowable::getLine + スローされたオブジェクトのインスタンスが作られた行番号を返します。 @@ -40,7 +39,6 @@ - - - + Throwable::getMessage @@ -10,9 +9,9 @@ &reftitle.description; - - abstract public stringThrowable::getMessage - + + public stringThrowable::getMessage + スローされたオブジェクトに関連づけられたメッセージを返します。 @@ -40,7 +39,6 @@ - - - + Throwable::getPrevious @@ -10,9 +9,9 @@ &reftitle.description; - - abstract public ThrowableThrowable::getPrevious - + + public ThrowablenullThrowable::getPrevious + ひとつ前の Throwable (たとえば Exception::__construct の第三パラメータで指定したもの) を返します。 @@ -41,7 +40,6 @@ - - - + Throwable::getTrace @@ -10,9 +9,9 @@ &reftitle.description; - - abstract public arrayThrowable::getTrace - + + public arrayThrowable::getTrace + スタックトレースの配列を返します。 @@ -41,7 +40,6 @@ - - - + Throwable::getTraceAsString @@ -10,9 +9,9 @@ &reftitle.description; - - abstract public stringThrowable::getTraceAsString - + + public stringThrowable::getTraceAsString + @@ -39,7 +38,6 @@ - - + @@ -10,9 +10,9 @@ &reftitle.description; - - abstract public stringThrowable::__toString - + + public stringThrowable::__toString + diff --git a/language/predefined/traversable.xml b/language/predefined/traversable.xml index f4c1aba0a2..64668676cf 100644 --- a/language/predefined/traversable.xml +++ b/language/predefined/traversable.xml @@ -1,8 +1,7 @@ - - - + + <interfacename>Traversable</interfacename> インターフェイス Traversable @@ -20,25 +19,6 @@ IteratorAggregate あるいは Iterator を実装しなければなりません。 - - - このインターフェイスを実装した内部クラス (組み込みクラス) は - &foreach; で使用することができます。 - IteratorAggregate や - Iterator を実装する必要はありません。 - - - - - これは内部エンジンのインターフェイスであり、PHP スクリプト内で実装することはできません。 - そのかわりに IteratorAggregate あるいは - Iterator を使用しなければなりません。 - Traversable を継承したインターフェイスを実装するときは、 - implements 句の中でそのインターフェイスより前に - IteratorAggregate か - Iterator を指定しておきましょう。 - - @@ -46,17 +26,10 @@ &reftitle.interfacesynopsis; - - Traversable - - - - - Traversable - - - - + + + Traversable + @@ -67,10 +40,56 @@ - +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 7.4.0 + + Traversable インターフェイスは、抽象クラスによって実装できるようになりました。 + これを拡張するには、 + Iterator あるいは + IteratorAggregate を実装しなければなりません。 + + + + + +
-
+
+ &reftitle.notes; + + + このインターフェイスを実装した内部(組み込み)クラスは、 + &foreach; の中で使うことができます。 + IteratorAggregate や + Iterator を実装する必要はありません。 + + + + + PHP 7.4.0 より前のバージョンでは、 + この内部的なエンジンのインターフェイスは + PHP スクリプトが実装できませんでした。 + 代わりに、 + IteratorAggregate + か Iterator を使わなければなりませんでした。 + + +
+ + + - diff --git a/language/predefined/typeerror.xml b/language/predefined/typeerror.xml index c55feebe0d..d9287b1ab1 100644 --- a/language/predefined/typeerror.xml +++ b/language/predefined/typeerror.xml @@ -1,64 +1,94 @@ - - - + + + TypeError TypeError - + - +
&reftitle.intro; - TypeError がスローされるのは、以下の三つの場合です。 - まず、関数に渡された引数の型が、関数の宣言時に指定された型と一致しない場合。 - 次に、関数の戻り値の型が、関数の宣言時に指定された型と一致しない場合。 - そして、PHP 組み込みの関数に渡す引数の数を間違えた場合 (これは、strict モードの場合に限ります)。 - + TypeError がスローされるのは、以下の場合です: + + + クラスのプロパティに設定されている値が、プロパティで宣言されている型と一致しない場合。 + + + 関数に渡された引数の型が、関数の宣言時に指定された型と一致しない場合。 + + + 関数の戻り値の型が、関数の宣言時に指定された型と一致しない場合。 + + +
- +
&reftitle.classsynopsis; - + - - TypeError - - - - - TypeError - + + + TypeError + - - extends - Error - - - + + extends + Error + &InheritedProperties; - + &InheritedMethods; - + + + + + + - + - +
+ +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 7.1.0 + + strict モードの場合に、 + PHP の組み込みの関数に渡す引数の数を間違えた場合でも、 + TypeError はスローされなくなりました。 + 代わりに、TypeError を継承した + ArgumentCountError + がスローされるようになっています。 + + + + + +
+
-
- + + + + UnhandledMatchError + UnhandledMatchError + + + + +
+ &reftitle.intro; + + UnhandledMatchError は、 + &match; 式がどの分岐でも処理できなかったことを検知した場合にスローされます。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + UnhandledMatchError + + + + extends + Error + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + + +
+
+
+ diff --git a/language/predefined/unitenum.xml b/language/predefined/unitenum.xml new file mode 100644 index 0000000000..2962f48540 --- /dev/null +++ b/language/predefined/unitenum.xml @@ -0,0 +1,66 @@ + + + + + UnitEnum インターフェイス + UnitEnum + + + + +
+ &reftitle.intro; + + UnitEnum インターフェイスは、 + 全ての列挙型に対して、PHP のエンジンが自動的に適用するものです。 + ユーザー定義のクラスとして実装してはいけません。 + 列挙型はメソッドのオーバーライドを禁止しています。 + デフォルトの実装は PHP のエンジンから提供されるからです。 + このインターフェイスは、型チェックのためだけに存在しています。 + +
+ + +
+ &reftitle.interfacesynopsis; + + + + + UnitEnum + + + &Methods; + + + + + + +
+ +
+ + &language.predefined.unitenum.cases; + +
+ diff --git a/language/predefined/unitenum/cases.xml b/language/predefined/unitenum/cases.xml new file mode 100644 index 0000000000..2e307ea685 --- /dev/null +++ b/language/predefined/unitenum/cases.xml @@ -0,0 +1,96 @@ + + + + + + UnitEnum::cases + 列挙型の case 一覧を生成する + + + + &reftitle.description; + + public static arrayUnitEnum::cases + + + + このメソッドは列挙型の全ての case を含む配列を返します。 + 要素は宣言された順に並びます。 + + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 列挙型で定義されている全ての case を含む配列を返します。 + 要素は宣言された順に並びます。 + + + + + &reftitle.examples; + + 基本的な使用法 + + 以下の例は、列挙型の case がどのように返されるかを示しています。 + + + +]]> + + &example.outputs; + + + enum(Suit::Hearts) + [1]=> + enum(Suit::Diamonds) + [2]=> + enum(Suit::Clubs) + [3]=> + enum(Suit::Spades) +} +]]> + + + + + + diff --git a/language/predefined/valueerror.xml b/language/predefined/valueerror.xml new file mode 100644 index 0000000000..e1f82f1d78 --- /dev/null +++ b/language/predefined/valueerror.xml @@ -0,0 +1,72 @@ + + + + + ValueError + ValueError + + + + +
+ &reftitle.intro; + + ValueError は、 + 引数の型は正しいものの、値が正しくない場合にスローされます。 + たとえば、関数は正の整数を期待しているのに負の値を渡したり、 + 空でない文字列/配列を期待しているのに空の値を渡したりした場合です。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + ValueError + + + + extends + Error + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + +
+
+
+ diff --git a/language/predefined/variables.xml b/language/predefined/variables.xml index b51b211616..310cfc9859 100644 --- a/language/predefined/variables.xml +++ b/language/predefined/variables.xml @@ -1,24 +1,20 @@ - + + - 定義済の変数 + 定義済みの変数 - PHP には定義済みの定数が多く用意されており、すべてのスクリプトで使用することができます。 + PHP には定義済みの定数が用意されています。 外部から来る変数 - や組み込みの環境変数、直近のエラーメッセージや最後に取得したヘッダなどのあらゆる内容が取得できます。 + や組み込みの環境変数、そしてスクリプトに渡した引数の数や値のような、 + 実行環境に関するその他の情報の定数があります。 - - 関連情報については、FAQ の - "register_globals の影響は?" - を参照ください。 - - &language.predefined.variables.superglobals; @@ -32,7 +28,6 @@ &language.predefined.variables.env; &language.predefined.variables.cookie; &language.predefined.variables.phperrormsg; - &language.predefined.variables.httprawpostdata; &language.predefined.variables.httpresponseheader; &language.predefined.variables.argc; &language.predefined.variables.argv; diff --git a/language/predefined/variables/argc.xml b/language/predefined/variables/argc.xml index 8f56640071..111fdc8ff6 100644 --- a/language/predefined/variables/argc.xml +++ b/language/predefined/variables/argc.xml @@ -2,7 +2,7 @@ - + $argc スクリプトに渡された引数の数 @@ -73,7 +73,7 @@ int(4)
- +
- + - + $argv スクリプトに渡された引数の配列 @@ -25,6 +25,14 @@ が無効になっている場合には使えません。 + + + スクリプトがコマンドラインから実行されているかどうかを確認するには、 + $argv$_SERVER['argv'] + が設定されているかを確認するのではなく、php_sapi_name + を使うべきです。 + + @@ -81,7 +89,7 @@ array(4) { - + - + + - + $_COOKIE - $HTTP_COOKIE_VARS [非推奨] HTTP クッキー @@ -15,13 +15,6 @@ 現在のスクリプトに HTTP クッキーから渡された変数の連想配列です。 - - $HTTP_COOKIE_VARS は同じ情報を持っていますが、 - これはスーパーグローバルではありません - ($HTTP_COOKIE_VARS$_COOKIE - は違う変数であり、PHP はそれぞれ別に扱います)。 - - @@ -65,7 +58,7 @@ Hello Hannes! - + - + + - + $_ENV - $HTTP_ENV_VARS [非推奨] 環境変数 @@ -30,13 +30,6 @@ 実行されているかに関わらずここに含まれます。 - - $HTTP_ENV_VARS は同じ情報を持っていますが、 - これはスーパーグローバルではありません - ($HTTP_ENV_VARS と - $_ENV は違う変数であり、PHP はそれぞれ別に扱います)。 - - @@ -79,7 +72,7 @@ My username is bjori! - + - + + - + $_FILES - $HTTP_POST_FILES [非推奨] HTTP ファイルアップロード変数 @@ -18,13 +18,6 @@ を参照ください。 - - $HTTP_POST_FILES は同じ情報を持っていますが、 - これはスーパーグローバルではありません - ($HTTP_POST_FILES$_FILES - は異なる変数であり、PHP はこれらを異なる変数として扱うことに注意してください)。 - - @@ -42,7 +35,7 @@ - + - + - + $_GET - $HTTP_GET_VARS [非推奨] - HTTP GET 変数 + クエリストリング変数 &reftitle.description; URL パラメータ (a.k.a クエリストリング) で現在のスクリプトに渡された変数の連想配列です。 - この配列の値は、GETリクエストだけでなく、クエリストリングが含まれた全てのリクエストで収集されることに注意して下さい。 + この配列の値は、HTTP リクエストメソッドに関係なく、クエリストリングが含まれた全てのリクエストで収集されることに注意して下さい。 - - $HTTP_GET_VARS は同じ情報を持っていますが、 - これはスーパーグローバルではありません - (HTTP_GET_VARS$_GET - は違う変数であり、PHPはそれぞれ別に扱います)。 - - @@ -39,7 +31,7 @@ echo 'Hello ' . htmlspecialchars($_GET["name"]) . '!'; ]]> - ユーザーが http://example.com/?name=Hannes と入力したとします。 + ユーザーが http://example.com/?name=Hannes と入力したとします。 &example.outputs.similar; @@ -56,7 +48,7 @@ Hello Hannes! ¬e.is-superglobal; - GET 変数は urldecode 関数を介して渡されます。 + $_GET の値は urldecode 関数を介して自動的に渡されます。 @@ -71,7 +63,7 @@ Hello Hannes! - + - + - + $GLOBALS グローバルスコープで使用可能なすべての変数への参照 @@ -24,7 +24,9 @@ ]]> @@ -45,6 +48,30 @@ $foo in current scope: local variable + + + PHP 8.1.0 以降、$GLOBALS 配列全体を書き換える操作はサポートされなくなりました: + + <varname>$GLOBALS</varname> 配列全体を書き換える操作はエラーになる + + +]]> + + + + @@ -57,9 +84,42 @@ $foo in current scope: local variable とは異なり、$GLOBALS は PHP で常に使用可能です。 + + + PHP 8.1.0 以降、$GLOBALS はグローバルな シンボルテーブル の、読み取り専用のコピーになりました。つまり、グローバル変数は $GLOBALS のコピーを通じて書き換えられなくなったということです。 + それより前のバージョンでは、 + $GLOBALS 配列は値渡しの振る舞いの例外とされ、そのコピーを通じてグローバル変数の書き換えができていました。 + + + $value) { + $GLOBALS[$key] = $value; +} + +?> +]]> + + + + - + - diff --git a/language/predefined/variables/httprawpostdata.xml b/language/predefined/variables/httprawpostdata.xml deleted file mode 100644 index 40d2339544..0000000000 --- a/language/predefined/variables/httprawpostdata.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - $HTTP_RAW_POST_DATA - 生の POST データ - - - - &reftitle.description; - &warn.deprecated.feature-5-6-0.removed-7-0-0; - - $HTTP_RAW_POST_DATA には生の POST データが格納されます。 - always_populate_raw_post_data - も参照ください。 - - - $HTTP_RAW_POST_DATA の代わりに、 - php://input - を使うべきです。 - - - - - - diff --git a/language/predefined/variables/httpresponseheader.xml b/language/predefined/variables/httpresponseheader.xml index 4bce796913..0a9d1492e8 100644 --- a/language/predefined/variables/httpresponseheader.xml +++ b/language/predefined/variables/httpresponseheader.xml @@ -1,13 +1,20 @@ - + - + $http_response_header HTTP レスポンスヘッダ - + + + &warn.deprecated.feature-8-5-0; + + http_get_last_response_headers を代わりに使ってください。 + + + &reftitle.description; @@ -32,10 +39,10 @@ ]]> @@ -62,15 +69,24 @@ array(9) { [8]=> string(38) "Content-Type: text/html; charset=UTF-8" } + +Warning: Undefined variable $http_response_header NULL ]]> - - - + + + &reftitle.seealso; + + http_get_last_response_headers + http_clear_last_response_headers + + + + - diff --git a/language/predefined/variables/phperrormsg.xml b/language/predefined/variables/phperrormsg.xml index 03f295dbdc..86ca9a94ba 100644 --- a/language/predefined/variables/phperrormsg.xml +++ b/language/predefined/variables/phperrormsg.xml @@ -1,15 +1,16 @@ - + + - + $php_errormsg 直近のエラーメッセージ - &warn.deprecated.feature-7-2-0; + &warn.deprecated.feature-7-2-0.removed-8-0-0; 代わりに error_get_last を使用してください。 @@ -32,7 +33,41 @@ - + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.0.0 + + $php_errormsg を利用できるようにしていた + track_errors ディレクティブ + が削除されました。 + + + + 7.2.0 + + $php_errormsg を利用できるようにしていた + track_errors ディレクティブ + は非推奨になりました。 + + + + + + + + &reftitle.examples; @@ -65,7 +100,7 @@ Wrong parameter count for strpos() - + - + + - + $_POST - $HTTP_POST_VARS [非推奨] - HTTP POST 変数 + HTTP POST リクエストから得られるフォームデータ @@ -17,13 +17,6 @@ HTTP POST メソッドから現在のスクリプトに渡された変数の連想配列です。 - - $HTTP_POST_VARS は同じ情報を持っていますが、 - これはスーパーグローバルではありません - (HTTP_POST_VARS$_POST - は違う変数であり、PHPはそれぞれ別に扱います)。 - - @@ -39,7 +32,8 @@ echo 'Hello ' . htmlspecialchars($_POST["name"]) . '!'; ]]> - ユーザーが name=Hannes と POST したとします。 + ユーザーがリクエストボディに name=Hannes + を付けて POST リクエストを送信したとします。 &example.outputs.similar; @@ -54,6 +48,20 @@ Hello Hannes! &reftitle.notes; ¬e.is-superglobal; + + + その他の content type + (例: application/json や + application/xml) + を指定して送信された POST データを読み取るには、 + php://input + を使わなければいけません。 + application/x-www-form-urlencoded と + multipart/form-data を指定した場合にだけ動作する + $_POST とは異なり、 + php://input はリクエストボディの生データに直接アクセスします。 + + @@ -66,7 +74,7 @@ Hello Hannes! - + - + + - + $_REQUEST HTTP リクエスト変数 @@ -18,31 +19,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - request_order が導入されました。 - このディレクティブは $_REQUEST の内容に影響を及ぼします。 - - - - - - - - &reftitle.notes; ¬e.is-superglobal; @@ -62,8 +38,10 @@ GET や POST そして COOKIE といった仕組みでスクリプトに渡されます。 これらはリモートユーザーが変更可能なので、信頼できるとは限りません。 この配列内に含まれる変数の値や順序は、 - PHP の設定ディレクティブ variables_order - で決まります。 + PHP の設定ディレクティブ + request_order や + variables_order + によって決まります。 @@ -71,13 +49,12 @@ &reftitle.seealso; - import_request_variables 外部からくる変数の処理 filter 拡張モジュール - + - + - + $_SERVER - $HTTP_SERVER_VARS [削除] サーバー情報および実行時の環境情報 @@ -15,33 +14,38 @@ $_SERVER は、ヘッダ、パス、スクリプトの位置のような 情報を有する配列です。この配列のエントリは、Web サーバーにより - 生成されます。全ての Web サーバーがこれら全てを提供する保障はありません。 + 生成されます。全ての Web サーバーがこれら全てを提供する保証はありません。 サーバーは、これらのいくつかを省略したり、この一覧にない他のものを - 定義する可能性があります。これらの変数の多くは、 + 定義する可能性があります。しかし、これらの変数のほとんどは、 CGI/1.1 specification - で定義されています。したがって、これらについては定義されていることを + で定義されています。したがって、これらのほとんどは定義されていることを 期待することができます。 - PHP 5.4.0 より前のバージョンでは、$HTTP_SERVER_VARS にも同じ初期情報が含まれていましたが、これは - スーパーグローバル ではありませんでした - (HTTP_SERVER_VARS と - $_SERVER は異なる変数であり、 - PHP は異なる変数として処理を行うことに注意してください)。 + PHP を + コマンドライン + から実行している場合、 + これらの変数のほとんどは利用できないか、 + なんの意味も持ちません。 + + 以下に示された要素に加え、 + PHP はリクエストヘッダから追加の要素を生成します。 + それらの要素は + HTTP_ で始まり、 + その後にヘッダの名前が続き、 + かつ大文字に変換され、ハイフンがアンダースコアになります。 + たとえば、 + Accept-Language ヘッダは + $_SERVER['HTTP_ACCEPT_LANGUAGE'] として利用可能です。 + &reftitle.indices; - - 以下の各要素のいくつかは $_SERVER に現れない可能性があります。PHP - をコマンドラインで実行している場合には、 - 使用できるものは僅かであることに注意してください。 - - @@ -53,13 +57,12 @@ 例えば、http://example.com/foo/bar.php というアドレス上にあるスクリプトでは $_SERVER['PHP_SELF']/foo/bar.php となります。 - __FILE__ 定数 + __FILE__ 定数 には、カレント(すなわち読み込まれた)ファイルのパスとファイル名が含まれます。 - PHP がコマンドラインから実行される場合、PHP 4.3.0 以降、 - この変数にはスクリプト名が含まれます。これより前のバージョンでは、 - この変数は使用できません。 + PHP がコマンドラインから実行される場合、 + この変数にはスクリプト名が含まれます。 @@ -91,7 +94,7 @@ サーバーが使用している CGI のバージョンです。 - 例 'CGI/1.1' + 例 'CGI/1.1' @@ -139,7 +142,7 @@ ページがリクエストされた際のプロトコル名とバージョンです。 - 例.'HTTP/1.0' + 例. 'HTTP/1.0' @@ -149,8 +152,10 @@ ページにアクセスする際に使用されたリクエストのメソッド名です。 - 'GET', 'HEAD', - 'POST', 'PUT' など。 + 'GET', + 'HEAD', + 'POST', + 'PUT' など。 @@ -166,7 +171,7 @@ 'REQUEST_TIME' - リクエストの開始時のタイムスタンプ。PHP 5.1.0 以降で利用可能。 + リクエストの開始時のタイムスタンプ。 @@ -176,7 +181,6 @@ リクエストの開始時のタイムスタンプ (マイクロ秒までの精度)。 - PHP 5.4.0 以降で利用可能。 @@ -201,96 +205,6 @@ - - 'HTTP_ACCEPT' - - - 現在のリクエストの Accept: ヘッダがもしあれば - その内容。 - - - - - - 'HTTP_ACCEPT_CHARSET' - - - 現在のリクエストの Accept-Charset: ヘッダが - もしあればその内容。例: 'iso-8859-1,*,utf-8' - - - - - - 'HTTP_ACCEPT_ENCODING' - - - 現在のリクエストに Accept-Encoding: ヘッダが - もしあればその内容。例: 'gzip' - - - - - - 'HTTP_ACCEPT_LANGUAGE' - - - 現在のリクエストに Accept-Language: ヘッダが - もしあればその内容。例: 'en' - - - - - - 'HTTP_CONNECTION' - - - 現在のリクエストに Connection: ヘッダが - もしあればその内容。例: 'Keep-Alive' - - - - - - 'HTTP_HOST' - - - 現在のリクエストに Host: ヘッダが - もしあればその内容。 - - - - - - 'HTTP_REFERER' - - - 現在のページに遷移する前にユーザーエージェントが参照していた - ページのアドレス(もしあれば)。これはユーザーエージェントに - よってセットされます。全てのユーザーエージェントが - これをセットしているわけではなく、また、HTTP_REFERER - を変更する機能を持つものもあります。 - 要するに、信頼するべきものではありません。 - - - - - - 'HTTP_USER_AGENT' - - - 現在のリクエストに User-Agent: ヘッダが - もしあればその内容。ページにアクセスしてきているユーザーエージェント - のしるしの文字列です。典型的な例は、 - Mozilla/4.5 [en] (X11; U; - Linux 2.2.9 i586)。たとえば、 - get_browser でこの値を使って - ページの出力をそのブラウザにあわせたものにすることも - できるでしょう。 - - - - 'HTTPS' @@ -298,12 +212,6 @@ スクリプトが HTTPS プロトコルを通じて実行されている場合に 空でない値が設定されます。 - - - ISAPI を IIS で使用している場合は、HTTPS プロトコルを通さないでリクエストが行われたときの値は - off となることに注意しましょう。 - - @@ -395,7 +303,7 @@ Web サーバーの通信ポートとして使用されているポート番号。デフォルトでは - '80' ですが、例えば SSL を使用している場合は + '80' ですが、例えば SSL を使用している場合は セキュア HTTP ポートとして設定されている値に変わります。 @@ -431,16 +339,6 @@ でのパス。 - - PHP 4.3.2 以降、PATH_TRANSLATED は、 - Apache 2 SAPI において暗黙のうちに設定されなく - なりました。一方、Apache 1 では、この値が Apache により設定されない場合、 - SCRIPT_FILENAME と同じ値に設定されます。 - この変更は、PATH_TRANSLATED は - PATH_INFO が定義されている場合のみ - 存在するべきであるという CGI の規約を満たすために - 行われました。 - Apache 2 ユーザーは、PATH_INFO を定義するために httpd.conf の中で @@ -457,7 +355,7 @@ 現在のスクリプトのパス。 スクリプト自身のページを指定するのに有用です。 - __FILE__ + __FILE__ 定数には、カレント(すなわち読み込まれた)ファイルのパスとファイル名が 含まれます。 @@ -520,7 +418,7 @@ 実際のスクリプトファイル名とクエリ文字列の間にある、クライアントが提供するパス名情報。 たとえば、現在のスクリプトに http://www.example.com/php/path_info.php/some/stuff?foo=bar - という URL でアクセスしていた場合の $_SERVER['PATH_INFO'] + という URI でアクセスしていた場合の $_SERVER['PATH_INFO']/some/stuff となります。 @@ -539,39 +437,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.4.0 - - $HTTP_SERVER_VARS は使えなくなりました。 - 長い形式の配列への登録が廃止されたからです。 - - - - 5.3.0 - - register_long_arrays - ディレクティブを使って $HTTP_SERVER_VARS - を有効にする機能が、非推奨になりました。 - - - - - - - - &reftitle.examples; @@ -608,8 +473,7 @@ www.example.com - - + - + + - + $_SESSION - $HTTP_SESSION_VARS [非推奨] セッション変数 @@ -18,12 +18,6 @@ のドキュメントを参照ください。 - - $HTTP_SESSION_VARS は同じ情報を格納していますが、 - これはスーパーグローバルではありません - ($HTTP_SESSION_VARS$_SESSION - は異なる変数であり、PHP はこれらを異なる変数として扱うことに注意してください)。 - @@ -40,7 +34,7 @@ - + - + - + スーパーグローバル すべてのスコープで使用できる組み込みの変数 @@ -44,21 +44,6 @@ のドキュメントを参照ください。 - - register_globals の扱い - - 非推奨の register_globals - ディレクティブが on に設定されている場合は、 - 内部の変数もスクリプトのグローバルスコープで使用できるようになります。 - たとえば $_POST['foo'] - は $foo という名前でも使えるようになるということです。 - - - 関連情報については、FAQ の - "register_globals の影響は?" - を参照ください。 - - 可変変数 @@ -80,7 +65,7 @@ - + + + + + WeakMap クラス + WeakMap + + + + +
+ &reftitle.intro; + + WeakMap は、 + オブジェクトをキーとして受け入れるマップ(辞書)です。 + SplObjectStorage と似ていますが、 + WeakMap のキーとなるオブジェクトは、 + オブジェクトのリファレンスカウントが更新されません。 + つまり、WeakMap + のキーとなっているオブジェクトだけが唯一の残された参照だった場合、 + オブジェクトはガベージコレクションの対象となり + WeakMap から削除されます。 + WeakMap の用途は、 + 長く生き残る必要がないオブジェクトから派生した、 + データのキャッシュを作ることです。 + + + WeakMap は + ArrayAccess, + Traversable (IteratorAggregate 経由), + Countable を実装しています。 + よって、ほとんどのケースで、 + 連想配列と同じやり方で操作できます。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + WeakMap + + + + implements + ArrayAccess + + + + Countable + + + + IteratorAggregate + + + &Methods; + + + + + + +
+ +
+ &reftitle.examples; + + + <classname>Weakmap</classname> の使い方の例 + + + + &example.outputs; + + + + + +
+ + +
+ + &language.predefined.weakmap.count; + &language.predefined.weakmap.getiterator; + &language.predefined.weakmap.offsetexists; + &language.predefined.weakmap.offsetget; + &language.predefined.weakmap.offsetset; + &language.predefined.weakmap.offsetunset; + +
+ diff --git a/language/predefined/weakmap/count.xml b/language/predefined/weakmap/count.xml new file mode 100644 index 0000000000..399d8d0975 --- /dev/null +++ b/language/predefined/weakmap/count.xml @@ -0,0 +1,52 @@ + + + + + + WeakMap::count + マップ内に存在する有効なエントリの数を数える + + + + &reftitle.description; + + public intWeakMap::count + + + + マップ内の有効なエントリの数を数えます。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + マップ内の有効なエントリの数を返します。 + + + + diff --git a/language/predefined/weakmap/getiterator.xml b/language/predefined/weakmap/getiterator.xml new file mode 100644 index 0000000000..b8a6ea8bee --- /dev/null +++ b/language/predefined/weakmap/getiterator.xml @@ -0,0 +1,62 @@ + + + + + + WeakMap::getIterator + イテレータを取得する + + + + &reftitle.description; + + public IteratorWeakMap::getIterator + + + + イテレータを返します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + Iterator または + Traversable + を実装したオブジェクトのインスタンスを返します。 + + + + + &reftitle.errors; + + 失敗した場合は Exception をスローします。 + + + + + diff --git a/language/predefined/weakmap/offsetexists.xml b/language/predefined/weakmap/offsetexists.xml new file mode 100644 index 0000000000..0ba5afb8b1 --- /dev/null +++ b/language/predefined/weakmap/offsetexists.xml @@ -0,0 +1,63 @@ + + + + + + WeakMap::offsetExists + あるオブジェクトがマップ内に存在するかを調べる + + + + &reftitle.description; + + public boolWeakMap::offsetExists + objectobject + + + 指定されたオブジェクトが、マップ内で参照されているかを調べます。 + + + + + + &reftitle.parameters; + + + object + + + チェックするオブジェクト + + + + + + + + &reftitle.returnvalues; + + オブジェクトがマップ内に含まれている場合、&true; を返します。 + そうでない場合、&false; を返します。 + + + + diff --git a/language/predefined/weakmap/offsetget.xml b/language/predefined/weakmap/offsetget.xml new file mode 100644 index 0000000000..09b0300dc9 --- /dev/null +++ b/language/predefined/weakmap/offsetget.xml @@ -0,0 +1,69 @@ + + + + + + WeakMap::offsetGet + オブジェクトが指す値を返す + + + + &reftitle.description; + + public mixedWeakMap::offsetGet + objectobject + + + 指定されたオブジェクトが指す値を返します。 + + + + + &reftitle.parameters; + + + object + + + マップにキーとして含まれるオブジェクト + + + + + + + + &reftitle.returnvalues; + + 引数で渡されたオブジェクトに関連付けられた値を返します。 + + + + + &reftitle.errors; + + 失敗した場合、Error をスローします。 + + + + + diff --git a/reference/weakref/weakmap/offsetset.xml b/language/predefined/weakmap/offsetset.xml similarity index 75% rename from reference/weakref/weakmap/offsetset.xml rename to language/predefined/weakmap/offsetset.xml index 04b0b3c772..eba701c0c0 100644 --- a/reference/weakref/weakmap/offsetset.xml +++ b/language/predefined/weakmap/offsetset.xml @@ -1,23 +1,22 @@ - - + WeakMap::offsetSet - 新しいキー/値のペアでマップを更新する + 新しいキーと値でマップを更新する &reftitle.description; - + public voidWeakMap::offsetSet objectobject mixedvalue - 新しいキー/値のペアでマップを更新します。そのキーが既にマップに存在する場合は、 - 古い値を新しい値で置き換えます。 + 新しいキーと値でマップを更新します。 + 既にキーがマップに存在した場合、古い値は新しい値で置き換えられます。 @@ -28,7 +27,7 @@ object - キー/値のペアでキーになるオブジェクト。 + キーと値のペアを構成する、キーとなるオブジェクト @@ -36,7 +35,7 @@ value - キー/値のペアで値として扱う任意のデータ。 + キーと値のペアのうち、値となる任意のデータ @@ -52,7 +51,6 @@ - - - + WeakMap::offsetUnset - エントリをマップから削除する + マップからエントリを削除する &reftitle.description; - + public voidWeakMap::offsetUnset objectobject - エントリをマップから削除します。 + マップからエントリを削除します。 @@ -26,7 +25,7 @@ object - マップから削除するキーのオブジェクト。 + マップから削除するオブジェクト @@ -42,7 +41,6 @@ - - - - + + + WeakReference クラス WeakReference @@ -13,18 +12,15 @@
&reftitle.intro; - 弱い参照により、オブジェクトが破棄されるのを防がないオブジェクトへの参照を保持することが可能です。 + 弱い参照により、オブジェクトが破棄されるのを妨げないオブジェクトへの参照を保持することが可能です。 この機能は、キャッシュのようなデータ構造を実装するのに役立ちます。 + 元のオブジェクトが破棄されている場合、WeakReference::get + メソッドを呼び出すと &null; を返します。 + 元のオブジェクトは、refcount が 0 になると破棄されます。 + 弱い参照を作成しても、参照されているオブジェクトの refcount は増加しません。 - - - WeakReference クラスは、 - Weakref 拡張機能の - WeakRef クラスと混乱させる意図はありません。 - - - WeakReference クラスはシリアライズ化できません。 + WeakReference クラスはシリアライズできません。
@@ -33,23 +29,18 @@ &reftitle.classsynopsis; - - WeakReference - - - - - WeakReference - - - - + + + final + WeakReference + + &Methods; - - + + - - + + @@ -64,11 +55,16 @@ get()); + unset($obj); + var_dump($weakref->get()); + ?> ]]> @@ -84,14 +80,37 @@ NULL +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + WeakReference::__debugInfo の出力に、 + 参照されたオブジェクトを含むようになりました。また、参照が有効ではなくなっている場合は、 + 参照されたオブジェクトは NULL となります。 + + + + + +
+ &language.predefined.weakreference.construct; &language.predefined.weakreference.create; &language.predefined.weakreference.get; -
- + - - + + WeakReference::__construct @@ -10,9 +9,9 @@ &reftitle.description; - + public WeakReference::__construct - + このメソッドは、WeakReference クラスの @@ -47,7 +46,6 @@ - - + + @@ -10,9 +10,9 @@ &reftitle.description; - + public static WeakReferenceWeakReference::create - objectreferent + objectobject 新しい WeakReference を生成します @@ -23,7 +23,7 @@ &reftitle.parameters; - referent + object このオブジェクトは、弱く参照されます。 @@ -36,12 +36,13 @@ &reftitle.returnvalues; - インスタンス化されたばかりのオブジェクトを返します + 新しい WeakReference を返します。 + 既に同じオブジェクトに対する WeakReference + のインスタンスが存在する場合は、それを返します。 - - - + + WeakReference::get @@ -10,9 +9,9 @@ &reftitle.description; - - public ?objectWeakReference::get - + + public objectnullWeakReference::get + 弱く参照されたオブジェクトを取得します。 @@ -34,7 +33,6 @@ - - + リファレンスの説明 @@ -13,7 +13,7 @@ リファレンスを使ってポインタの演算をすることはできませんし、 リファレンスは実メモリのアドレスでもありません。詳細は を参照ください。 - そうではなく、リファレンスはシンボルテーブルのエイリアスです。 + そうではなく、リファレンスは シンボルテーブル のエイリアスです。 PHP では、変数名と変数の内容は異なっており、 このため、同じ内容は異なった複数の名前を有する事が可能であることに 注意してください。最も良く似ているのは、Unix のファイル名とファイルの @@ -43,7 +43,9 @@ ]]> @@ -68,7 +70,8 @@ $a =& $b; d); var_dump(property_exists($c, 'd')); // bool(true) + ?> ]]> @@ -92,23 +96,21 @@ var_dump(property_exists($c, 'd')); // bool(true) ]]> - PHP 5 以降、new - は自動的にリファレンスを返すようになりました。そのため、この場面で - =& を使用することは非推奨となりました。 - PHP 5.3 以降では E_DEPRECATED、それより前のバージョンでは - E_STRICT レベルのメッセージが表示されます。 - また、PHP 7.0.0 以降は、文法的に無効となります - (技術的な話をすると、PHP 5 以降では、リソース型のようなオブジェクト変数は - 実際のデータへの単なるポインタとなりました。つまり、 - オブジェクトのリファレンスはこれまでのような意味での "リファレンス" - つまりエイリアスとは異なります。 - 詳細な情報は - オブジェクトと参照 にあります)。 + + + リファレンスを返さない関数で、同じ構文を使うとエラーになります。 + new + 演算子の結果に対して同じ構文を使った場合もエラーになります。 + オブジェクトはポインタで渡されますが、 + これはリファレンスとは異なります。 + 詳細な情報は オブジェクトと参照 にあります。 @@ -120,12 +122,14 @@ $foo =& find_var($bar); ]]> @@ -155,12 +161,16 @@ echo "var2 の値は '$var2'\n"; // var2 の値は 'Example variable' ]]> @@ -176,11 +186,16 @@ echo $ref; // 3 - 配列の最後の要素 ]]> @@ -189,13 +204,14 @@ $arr[0]++; $arr[1]++; $arr[2]++; しかし、配列の内部のリファレンスは危険もあるということに気をつけましょう。 通常の (リファレンスではない) 代入の右辺にリファレンスを使っても - 左辺はリファレンスには変わりませんが、配列の内部のリファレンスは通常の代入のままとなります。 + 左辺がリファレンスに変わることはありませんが、配列の内部のリファレンスは通常の代入においても維持されます。 これは、関数をコールする際に配列をリファレンスで渡すときも同じです。 たとえば、次のようになります。 ]]> @@ -228,6 +245,7 @@ $arr2[0]++; ]]> @@ -248,10 +267,10 @@ foo($a); - リファレンスによる返り値 + リファレンスによる戻り値 リファレンスの第 3 の使用法は、 - リファレンスによる返り値 + リファレンスによる戻り値 です。 @@ -266,11 +285,14 @@ foo($a); ]]> @@ -287,7 +309,7 @@ foo($bar); foo からは利用できないからです (この変数は $var として表されていますが、 $var はその変数の内容のみを有しており、 - コール側のシンボルテーブルで名前と変数を結合したものではありません)。 + コール側の シンボルテーブル で名前と変数を結合したものではありません)。 関数内で指定した変数を参照するには、リファレンス返し が使用可能です。 @@ -303,14 +325,17 @@ foo($bar); ]]> @@ -320,10 +345,6 @@ foo($a); 関数コールの際には、リファレンス記号がないことに注意してください。 関数定義にのみリファレンス記号があります。リファレンスで正しく引数を 渡すには、関数定義のみで十分です。 - PHP 5.3.0 以降では、foo(&$a); のような形式で & を利用すると - "Call-time pass-by-reference" を非推奨とする警告が発生します。 - また、PHP 5.4.0 以降では call-time pass-by-reference 機能自体が削除されたので、 - これを使おうとすると fatal エラーが発生します。 @@ -342,22 +363,26 @@ foo($a); ]]> リファレンスによる - 返り値 に関する説明も参照ください。 + 戻り値 に関する説明も参照ください。 @@ -369,27 +394,28 @@ foo(bar()); ]]> @@ -410,18 +436,21 @@ foo(new Foobar()) // PHP 7.0.7 以降は E_NOTICE が発生 value; } } -$obj = new foo; +$obj = new Foo(); $myValue = &$obj->getValue(); // $myValue は $obj->value へのリファレンス、つまり 42 となります $obj->value = 2; echo $myValue; // $obj->value の新しい値である 2 を表示します + ?> ]]> @@ -433,7 +462,7 @@ echo $myValue; // $obj->value の新しい値である 2 を表 パラメータを渡す場合と異なり、ここでは、通常のようにコピーでは - なくリファレンスで返り値を指定し、リファレンス結合を指定するために + なくリファレンスで戻り値を指定し、リファレンス結合を指定するために 両方の場所で & を使用する必要があります。 $myValue について行われたのは、通常の代入ではありません。 @@ -445,9 +474,6 @@ echo $myValue; // $obj->value の新しい値である 2 を表 の結果を返してくれることはありません。 可能なことは、値へのリファレンスを返すことができるということだけで、 それ以外の何者でもありません。 - PHP 5.1.0 以降では、式の結果や new - 演算子の結果をそのまま返そうとした場合に E_NOTICE - エラーが発生します。 @@ -456,27 +482,51 @@ echo $myValue; // $obj->value の新しい値である 2 を表 foo +// ) + ?> ]]> + + + $collection = collector(); のような形で、 + & を使わずに代入が行われると、 + 変数 $collection は値のコピーを受け取ります。 + 関数から返されたリファレンスではありません。 + + 返されたリファレンスを、リファレンスを要求する別の関数に渡すには、 この構文を使います。 ]]> @@ -500,9 +550,11 @@ array_push(collector(), 'foo'); ]]> @@ -522,7 +574,7 @@ unset($a); PHP の多くの構文構造は、リファレンス機構を利用して実装されています。 このため、前記のリファレンス結合に関する事項はこれらの構造についても - 適用されます。リファレンス渡しおよびリファレンスの返り値のような + 適用されます。リファレンス渡しおよびリファレンスの戻り値のような いくつかの構造について前節で記述されています。リファレンスを使用する 他の構造には次のものがあります。 @@ -538,7 +590,9 @@ unset($a); ]]> @@ -550,14 +604,6 @@ $var =& $GLOBALS["var"]; - - <literal>$this</literal> - - - オブジェクトのメソッドでは、$this は - 常にコール側のオブジェクトへのリファレンスです。 - - diff --git a/language/types.xml b/language/types.xml index fbd40fb671..3303eec050 100644 --- a/language/types.xml +++ b/language/types.xml @@ -1,228 +1,142 @@ - - - + + はじめに - - - PHP は 10 種類の基本型をサポートします。 - - - - 4 種類のスカラー型: - - - - - - - 論理値 (boolean) - - - - - - 整数 (integer) - - - - - - 浮動小数点数 (float, double も同じ) - - - - - - 文字列 (string) - - - - - 4 種類の複合型: + PHP における単一の式はそれぞれ、 + その値に応じて、以下の組み込み型のうちのひとつを持ちます: + + null + bool + int + float (浮動小数点数) + string + array + object + callable + resource + - - - - - 配列 (array) - - - - - - オブジェクト (object) - - - - - - callable - - - - - - iterable - - - - - - - そして、最後に 2 種類の特別な型: - - - - - - - リソース (resource) - - - - - - ヌル (NULL) - - - - - - 本マニュアルでは、可読性を向上させるため、以下のような擬似的な型も使用します。 + PHP は、動的に型付けを行う言語です。 + これは、PHP が実行時に型を決定するため、 + デフォルトでは変数の型を指定する必要がないということです。 + しかし、 + 型宣言 を使うことで、 + その一部に静的に型を指定することができます。 - - - - - mixed - - - - - - number - - - - - - callback (別名 callable) - - - - - - array|object - - - - - - void - - - - - - そして擬似変数 $...。 + 型は、それに対して行える操作を制限します。 + しかし、式や変数に対して、型がサポートしていない操作を行うと、 + PHP はその操作をサポートする + 型に変換 しようとします。 + この処理は、値が使われる文脈によって異なります。 + 詳細は + 型の相互変換 + のページを参照ください。 - - マニュアル内のいくつかの場所で "double" 型という記述が残っているかもしれません。 - double は float と同じものだと考えてください。2 種類の名前が存在するのは、 - 歴史的な理由によるものです。 - + + + 型の比較表 + も役に立つかもしれません。 + さまざまな型の値の比較に関する例があります。 + + - - 変数の型は、基本的にプログラマが設定するものではありません。 - その変数が使用される文脈に応じ、PHP が実行時に決定します。 - - - 式の型と値を正確に知りたい場合は、 - var_dump 関数を使用してください。 + ある式を強制的に他の型として評価させたい場合、 + 型キャスト を使います。 + settype 関数を変数に対して使うと、 + 変数の型をその場で変換できます。 + - - デバッグのために、単純に人間が読みやすい形で型を表示したい場合には - gettype を使用してください。型をチェックする場合には - gettype を使用してはいけません - is_type - 関数を使用してください。いくつかの例を以下に示します。 - - - + + 式の型と値を知りたい場合は、 + var_dump 関数を使用してください。 + 式 の型を知りたい場合は、 + get_debug_type を使用してください。 + 式がある型であるかどうかをチェックするには + + is_type + 関数を代わりに使用してください。 + + 異なる型 ]]> - + &example.outputs.8; + + + + + + + + PHP 8.0.0 より前のバージョンでは、 + get_debug_type が使えません。 + 代わりに gettype が使えますが、 + この関数は正規化された型の名前を使いません。 + - - - ある変数の型を強制的に他の型に変換したい場合、変数を - キャスト するか、 - settype 関数を使用します。 - - - - 変数は、その型に依存して異なった動作をする場合があることに注意してください。 - 詳細な情報については、 - 型の変換 - のセクションを参照ください。 - またPHP 型の比較表 - もご覧ください。さまざまな型の変数の比較に関する例があります。 - - + + &language.types.type-system; + &language.types.null; &language.types.boolean; &language.types.integer; &language.types.float; &language.types.string; + &language.types.numeric-strings; &language.types.array; - &language.types.iterable; &language.types.object; + &language.types.enumerations; &language.types.resource; - &language.types.null; &language.types.callable; - &language.types.pseudo-types; + &language.types.mixed; + &language.types.void; + &language.types.never; + &language.types.relative-class-types; + &language.types.singleton; + &language.types.iterable; + &language.types.declarations; &language.types.type-juggling; - + - - + 配列 @@ -30,11 +30,11 @@ <function>array</function> で指定 - 配列 は、言語に組み込まれた + 配列(array)は、言語に組み込まれた array で作成することが可能です。この構造は、 特定の数のカンマで区切られた - キー => の組を引数とします。 + key => value の組を引数とします。 @@ -55,34 +55,38 @@ array( そうしておけば、配列の最後に要素を追加するのが容易になるからです。 - - PHP 5.4 以降では配列の短縮構文が追加され、 - array() の代わりに [] を使えるようになりました。 - + + + array()[] + で置き換えることが出来る、配列の短縮構文も使えます。 + + シンプルな配列定義 "bar", "bar" => "foo", ); -// PHP 5.4 以降ではこのようにも書けます -$array = [ +// 配列の短縮構文 +$array2 = [ "foo" => "bar", "bar" => "foo", ]; + +var_dump($array1, $array2); ?> ]]> - key は、整数 または - 文字列です。 + key は、int または + stringです。 value には任意の型を指定できます。 @@ -91,9 +95,9 @@ $array = [ - 10 進数の integer として妥当な形式の String は、 + 10 進数の int として妥当な形式の String は、 数値の前に + 記号がついていない限り、 - integer 型にキャストされます。 + int 型にキャストされます。 つまり、キーに "8" を指定すると、実際には 8 として格納されるということです。一方 "08" はキャストされません。これは十進数として妥当な形式ではないからです。 @@ -101,16 +105,16 @@ $array = [ - floats もまた integer にキャストされます。つまり、 + floats もまた int にキャストされます。つまり、 小数部分は切り捨てられるということです。たとえばキーに 8.7 を指定すると、実際には 8 として格納されます。 - boolinteger にキャストされます。つまり、 - キーに true を指定すると実際には 1 に格納され、 - 同様にキーを false とすると実際には 0 となります。 + boolint にキャストされます。つまり、 + キーに &true; を指定すると実際には 1 に格納され、 + 同様にキーを &false; とすると実際には 0 となります。 @@ -273,6 +277,107 @@ array(4) { 6 だからです。 + + + 複雑な型のキャストと上書きの例 + + 以下の例は、型のキャストされた時と、要素が上書きされる時の全ての場合を示しています。 + + + 'a', + '1' => 'b', // 値 "a" は "b" で上書きされます。 + 1.5 => 'c', // 値 "b" は "c" で上書きされます。 + -1 => 'd', + '01' => 'e', // この値は数値形式の文字列ではないので、キー1を上書きしません + '1.5' => 'f', // この値は数値形式の文字列ではないので、キー1を上書きしません + true => 'g', // 値 "c" は "g" で上書きされます。 + false => 'h', + '' => 'i', + null => 'j', // 値 "i" は "j" で上書きされます。 + 'k', // 値 "k" にはキー2が割り当てられます。なぜなら、これより前のキーの最大値は1だからです。 + 2 => 'l', // 値 "k" は "l" で上書きされます。 +); + +var_dump($array); +?> +]]> + + &example.outputs; + + + string(1) "g" + [-1]=> + string(1) "d" + ["01"]=> + string(1) "e" + ["1.5"]=> + string(1) "f" + [0]=> + string(1) "h" + [""]=> + string(1) "j" + [2]=> + string(1) "l" +} + +]]> + + + + + 負のインデックスの例 + + 負の整数キー n を代入すると、PHP は次のキーを n+1 に代入します。 + + + +]]> + + &example.outputs; + + + int(1) + [-4]=> + int(2) +} +]]> + + + + + PHP 8.3.0 より前のバージョンでは、負の整数キー n を代入すると、 + 次のキーは 0 に代入されていました。 + そのため、前の例は次のように出力されていました: + + + + + int(1) + [0]=> + int(2) +} +]]> + + + + @@ -315,21 +420,17 @@ string(3) "foo" - 角括弧と波括弧は、配列の要素にアクセスするときにはどちらも同じ意味で使えます + PHP 8.0.0 より前のバージョンでは、 + 配列の要素にアクセスするときに、 + 角括弧と波括弧がどちらも同じ意味で使えていました。 (つまり、この例で $array[42]$array{42} は同じものを表しているということです)。 + 波括弧で配列にアクセスする文法は、 + PHP 7.4.0 以降は非推奨になり、 + PHP 8.0.0 以降はサポートされなくなっています。 - - PHP 5.4 以降では、関数やメソッドの返す結果を直接配列として扱えるようになりました。 - 以前は、いったん一次変数に代入しないと配列としては扱えませんでした。 - - - - PHP 5.5 以降では、配列リテラルをデリファレンスできるようになりました。 - - 配列のデリファレンス @@ -339,15 +440,9 @@ function getArray() { return array(1, 2, 3); } -// PHP 5.4以降 ではこのように書けます。 $secondElement = getArray()[1]; -// 以前は、このようにするか -$tmp = getArray(); -$secondElement = $tmp[1]; - -// あるいはこのようにしなければなりませんでした。 -list(, $secondElement) = getArray(); +var_dump($secondElement); ?> ]]> @@ -357,15 +452,18 @@ list(, $secondElement) = getArray(); 配列に定義されていないキーへアクセスしたときの挙動は、 未定義の変数にアクセスしたときと同じです。 - E_NOTICE メッセージが発行され、 - 返される結果は &null; となります。 + つまり、E_WARNING レベルの警告 + (PHP 8.0.0 より前のバージョンでは E_NOTICE) + が発生し、結果が &null; になります。 配列で文字列以外のスカラー値をデリファレンスした場合は、 返される結果は &null; となります。 - 何もエラーは発生しません。 + PHP 7.4.0 より前のバージョンでは、何もエラーは発生しませんでした。 + PHP 7.4.0 以降では、E_NOTICE が発生します。 + PHP 8.0.0 以降では、E_WARNING が発生します。 @@ -384,15 +482,17 @@ list(, $secondElement) = getArray(); -$arr[キー] = ; -$arr[] = ; -// キー文字列 または -// 整数のどちらかです。 -// の型は、何でもかまいません。 +$arr[key] = value; +$arr[] = value; +// keystring または +// intのどちらかです。 +// value の型は、何でもかまいません。 - $arr がまだ存在しない場合は、新しく作成します。 + $arr がまだ存在しない場合、 + あるいは &null; や &false; に設定されている場合は、 + 新しく配列を作成します。 つまり、これは配列を作成する方法のひとつでもあります。 とはいえ、この方法を使うことはおすすめしません。なぜなら、既に $arr に何らかの値 @@ -409,6 +509,13 @@ $arr[] = ; これまでのバージョンではエラーにならず、文字列が配列に変換されていました。 + + + PHP 8.1.0 以降では、 + &false; に設定している値から新しく配列を作成することは推奨されません。 + &null; や未定義の値から配列を新しく作成することはまだ許可されています。 + + ある値を変更するには、 @@ -416,7 +523,8 @@ $arr[] = ; unset を使用する必要があります。 - + + 角括弧と配列の使用 ]]> - + @@ -447,7 +559,7 @@ unset($arr); // 配列全体を削除します PHP 4.3.0 以降、上記のような添字生成動作は変更されました。 現在では、配列に追加する際に、 - その配列の最大添字が負である場合は次の添え字はゼロ + その配列の最大添字が負である場合は次の添字はゼロ (0) となります。 以前は、正の添字の場合と同様に新しい添字は最大添字に +1 したものがセットされました。 @@ -513,11 +625,155 @@ Array ) ]]> - + + + + 配列の分解 + + + 配列は、言語構造 [] (PHP 7.1.0 以降) + または、list を使って分解することができます。 + これらの言語構造は、 + 配列を個別の値に分解する用途に使えます。 + + + + 配列の分解 + + +]]> + + + + + これは、多次元配列を &foreach; で反復処理しながら分解する用途に使えます。 + + + + foreach での配列の分解 + + +]]> + + + + + 変数が与えられない配列の要素は無視されます。 + 配列の分解は、常にインデックス 0 から始まります。 + + + + 要素を無視する + + +]]> + + + + + PHP 7.1.0 以降では、 + 連想配列も分解できるようになりました。 + 数値をキーとした配列の右側の要素を、 + インデックスを明示的に指定することで簡単に選択できるようになっています。 + + + + 連想配列の分解 + + 1, 'bar' => 2, 'baz' => 3]; + +// インデックス 'baz' の要素を、変数 $three に代入します。 +['baz' => $three] = $source_array; + +echo $three, PHP_EOL; // 3 を出力します。 + +$source_array = ['foo', 'bar', 'baz']; + +// インデックス 2 の要素を、変数 $baz に代入します。 +[2 => $baz] = $source_array; + +echo $baz, PHP_EOL; // "baz" を出力します。 +?> +]]> + + + + + 配列の分解を使うと、2つの変数を簡単に入れ替えることができます。 + + + + 2つの変数の入れ替え + + +]]> + + + + + + 分解時に値を代入する際には、... 演算子はサポートされていません。 + + + + + + 定義されていない配列のキーにアクセスしようとすると、 + 未定義の変数にアクセスする場合と同じ扱いになります。 + つまり、E_WARNING レベルの警告 + (PHP 8.0.0 より前のバージョンでは E_NOTICE) + が発生し、結果が &null; になります。 + + + + + スカラー値を分解すると、全ての変数に &null; が代入されます。 + + + + @@ -538,24 +794,28 @@ Array を用いてインデックスを再構築することができます。 - + + 中間にある要素を unset する 'one', 2 => 'two', 3 => 'three'); -unset($a[2]); + /* これにより配列は以下の様に定義されます。 $a = array(1 => 'one', 3 => 'three'); 以下ではありません: $a = array(1 => 'one', 2 =>'three'); */ +unset($a[2]); +var_dump($a); $b = array_values($a); // $b は、array(0 => 'one', 1 =>'three')となります +var_dump($b); ?> ]]> - + @@ -591,7 +851,7 @@ echo $foo[bar]; これは間違っていますが、動作します。では、なぜ間違っているのでしょう? - それは、このコードには文字列 ('bar' - 引用符で括られている) + それは、このコードには文字列 ('bar' - 引用符で括られている) ではなく未定義の定数 (bar) が使用されているためです。 下位互換性の維持のため、未定義の定数は同じ名前の文字列に自動的に変換されます。 そのため、このコードは動作します。 @@ -600,33 +860,37 @@ echo $foo[bar]; - 生の文字列を未定義の定数として扱う振る舞いは、PHP 7.2.0 - 以降では推奨されなくなり、 - E_WARNING レベルの警告が発生するようになりました。 - それ以前のバージョンでは、E_NOTICE - レベルの警告が発生していました。 + 生の文字列を未定義の定数として扱う振る舞いは、 + E_NOTICE + レベルの警告が発生します。 + この振る舞いは PHP 7.2.0 以降は推奨されなくなり、 + E_WARNING レベルの警告が発生します。 + PHP 8.0.0 以降は、この振る舞いは削除され、 + Error 例外がスローされるようになっています。 - - - これは、添字を常にクォートするという意味ではありません。 - 定数や - 変数 - を添字として使う際には、クォートしてしまうと PHP - はそれを解釈できなくなってしまいます。 - + + これは、キーを 常に クォートするという意味ではありません。 + 定数や + 変数 + をキーとして使う際には、クォートしてしまうと PHP + はそれを解釈できなくなってしまいます。 + - - + + キーのクォート + ]]> - &example.outputs; - + この具体例を以下に示します。 - + + その他の例 'apple', 'veggie' => 'carrot'); // 正しい -print $arr['fruit']; // apple -print $arr['veggie']; // carrot +echo $arr['fruit'], PHP_EOL; // apple +echo $arr['veggie'], PHP_EOL; // carrot -// 間違い。これは動作しますが、未定義の定数fruitを使用しているため、 -// 同時にE_NOTICEレベルのPHPエラーを発生します +// 間違い。未定義の定数fruitを使用しているため動作せず、 +// PHP がエラーを発生させます。 // -// Notice: Use of undefined constant fruit - assumed 'fruit' in... -print $arr[fruit]; // apple +// Error: Undefined constant "fruit" +try { + echo $arr[fruit]; +} catch (Error $e) { + echo get_class($e), ': ', $e->getMessage(), PHP_EOL; +} // 検証のため、定数を定義してみましょう。 // fruitという名前の定数に値'veggie'を代入します。 define('fruit', 'veggie'); // ここでは、出力が異なることに注意してください。 -print $arr['fruit']; // apple -print $arr[fruit]; // carrot +echo $arr['fruit'], PHP_EOL; // apple +echo $arr[fruit], PHP_EOL; // carrot // 以下は文字列の中であるためOKです。定数は、文字列の中では解釈されな -// いため、E_NOTICEエラーはここでは発生しません。 -print "Hello $arr[fruit]"; // Hello apple +// いため、エラーはここでは発生しません。 +echo "Hello $arr[fruit]", PHP_EOL; // Hello apple // 例外が1つあり、文字列の中で波括弧で配列を括った場合には、 // 定数が解釈されます -print "Hello {$arr[fruit]}"; // Hello carrot -print "Hello {$arr['fruit']}"; // Hello apple +echo "Hello {$arr[fruit]}", PHP_EOL; // Hello carrot +echo "Hello {$arr['fruit']}", PHP_EOL; // Hello apple +// 文字列結合で同じことをすることもできます +echo "Hello " . $arr['fruit'], PHP_EOL; // Hello apple +?> +]]> + + + + + + ]]> - - error_reporting で - (E_ALL を指定する等により) - E_NOTICE レベルのエラー出力を有効にした場合、 - 上記のエラーが出力されます。 - デフォルトでは、 - error_reporting はこれらを表示しない設定になっています。 - - 構文の節に記述したように、角括弧 + >構文 で説明した通り、角括弧 ('[' および ']') - の間には、式がなければなりません。これは、 - 次のように書くことが可能であることを意味します。 + の間には、式がなければなりません。つまり、 + 次のように書けるということです。 @@ -781,15 +1048,6 @@ $error_descriptions[8] = "This is just an informal notice"; と等しいこと等によります。 - - では、なぜ $foo[bar] は動作することが可能なのでしょう? - それは、bar が定数式であることを - 期待される構文で使用されているためです。しかし、この場合、 - bar という名前の定数は存在しません。PHP は、 - この場合、あなたが文字列"bar" のようにリテラル - bar を指定したが引用符を忘れたと仮定します。 - - では、なぜ間違っているのでしょう? @@ -804,12 +1062,12 @@ $error_descriptions[8] = "This is just an informal notice"; - 二重引用符で括られた文字列の中では + 二重引用符で括られた string の中では 引用符で配列の添字を括らないことができ、このため、 "$foo[bar]" は有効です。 この理由の詳細については、上記の例や - - 文字列中での変数のパースを参照してください。 + + 文字列中での変数のパースを参照ください。 @@ -821,11 +1079,13 @@ $error_descriptions[8] = "This is just an informal notice"; 配列への変換 - integer, float, string, - boolean, resourceのいずれの型においても、 + int, float, string, + bool, resourceのいずれの型においても、 array に変換する場合、 - 最初のスカラー値が割り当てられている一つの要素 (添字は 0) + 最初のスカラー値が割り当てられている一つの要素 (添字は 0) を持つ配列を得ることになります。 + 言い換えると、(array) $scalarValue + は、array($scalarValue) と全く同じです。 @@ -835,11 +1095,49 @@ $error_descriptions[8] = "This is just an informal notice"; 整数のプロパティはアクセス不能になります。 private 変数の場合、変数名の頭にクラス名がつきます。また、 protected 変数の場合は、変数名の頭に '*' がつきます。 - このとき、頭に追加される値の前後に null バイトがついてきます。 - その結果、予期せぬ振る舞いをすることがあります。 + このとき、頭に追加される値の前後に NUL バイトがついてきます。 + 未初期化の + 型付きプロパティ は黙って捨てられます。 + + + + 配列への変換 + + {1} = null; + } +} +var_export((array) new A()); +?> +]]> + + &example.outputs; + + NULL, + '' . "\0" . '*' . "\0" . 'C' => NULL, + 'D' => NULL, + 1 => NULL, +) +]]> + + + + + これらの NUL バイトは、以下のような予期せぬ振る舞いをすることがあります: - + + オブジェクトを配列にキャストする ]]> - + &example.outputs; + + + NULL + ["AA"]=> + NULL + ["AA"]=> + NULL +} +]]> + + 上の例では 'AA' というキーがふたつあるように見えますが、 @@ -879,6 +1190,112 @@ var_dump((array) new B()); + + 配列のアンパック + + + 配列の前に ... を付けると、 + 配列を定義する際に、その配列の値を展開(アンパック)させることができます。 + 配列と、Traversable + を実装したオブジェクトを展開させることができます。 + ... を使った配列のアンパックは、 + PHP 7.4.0 以降で利用可能です。これは、スプレッド演算子とも呼ばれます。 + + + + 配列のアンパックは、配列中で何度でも行うことができます。 + ... の前後に通常の要素を置くこともできます: + + + 簡単な配列のアンパック + + 'd']; // ['a', 'b', 'c' => 'd'] + +var_dump($arr1, $arr2, $arr3, $arr4, $arr5, $arr6); +?> +]]> + + + + + + ... を使ったアンパックの動作は、 + array_merge 関数の仕様に従います。 + つまり、キーが文字列の場合は後に指定された値が前の値を上書きしますし、 + キーが整数の場合は、ゼロから値が振り直されます: + + + キーが重複した場合の配列のアンパック + + 1]; +$arr2 = ["a" => 2]; +$arr3 = ["a" => 0, ...$arr1, ...$arr2]; +var_dump($arr3); // ["a" => 2] + +// キーが整数の場合 +$arr4 = [1, 2, 3]; +$arr5 = [4, 5, 6]; +$arr6 = [...$arr4, ...$arr5]; +var_dump($arr6); // [1, 2, 3, 4, 5, 6] +// $arr6 は、 [0 => 1, 1 => 2, 2 => 3, 3 => 4, 4 => 5, 5 => 6] と同義です。 +// ここでは、キーの値は保存されません。 +?> +]]> + + + + + + + キーが整数でも文字列でもない場合は、 + TypeError がスローされます。 + そのようなキーを持つ値は、 + Traversable + オブジェクト経由でしか生成できません。 + + + + + PHP 8.1 より前のバージョンでは、 + キーが文字列の場合に、アンパックをサポートしていませんでした: + + + + 4]; +$arr3 = [...$arr1, ...$arr2]; +// Fatal error: Uncaught Error: Cannot unpack array with string keys in example.php:5 + +$arr4 = [1, 2, 3]; +$arr5 = [4, 5]; +$arr6 = [...$arr4, ...$arr5]; // 動作します。 [1, 2, 3, 4, 5] +?> +]]> + + + + + + @@ -887,7 +1304,8 @@ var_dump((array) new B()); ここでいくつかの例を紹介します。 - + + 多様な配列 'red', $b = array('a', 'b', 'c'); -// は、完全にこれと同じです。 +var_dump($a, $b); + +// 完全にこれと同じです。 $a = array(); $a['color'] = 'red'; $a['taste'] = 'sweet'; @@ -918,10 +1338,12 @@ $b[] = 'c'; // array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round', // 'name' => 'apple', 0 => 4) となり、$b は // array(0 => 'a', 1 => 'b', 2 => 'c') あるいは単に array('a', 'b', 'c') となります + +var_dump($a, $b); ?> ]]> - + array() の使用例 @@ -934,28 +1356,32 @@ $map = array( 'version' => 4, 'lang' => 'english', 'short_tags' => true ); +var_dump($map); // 数値キーのみを有する +// これは、array(0 => 7, 1 => 8, ...) と同じです $array = array( 7, 8, 0, 156, -10 ); -// これは、array( 0 => 7, 1 => 8, ...) と同じです +var_dump($array); $switching = array( 10, // key = 0 5 => 6, 3 => 7, 'a' => 4, - 11, // key = 6 (最大の添字は5です) + 11, // key = 6 (最大の添字は5です) '8' => 2, // key = 8 (整数!) '02' => 77, // key = '02' 0 => 12 // 値10は12で上書きされます ); +var_dump($switching); // 空の配列 -$empty = array(); +$empty = array(); +var_dump($empty); ?> ]]> - - + + 論理型 (boolean) - 論理型は、最も簡単な型です。boolean は、真偽の値を表します。 + bool 型は、ふたつの値だけを持ち、真偽の値を表します。 この値は、&true; または &false; のどちらかになります。 構文 - boolean リテラルを指定するには、定数 &true; + bool リテラルを指定するには、定数 &true; または &false; を指定してください。 - 両方とも大文字小文字に依存しません。 + 両方とも大文字小文字を区別しません。 @@ -29,7 +29,7 @@ $foo = True; // 値TRUEを$fooに代入する - 通常、boolean 型の値を返すbool 型の値を返す演算子を使用してから、 制御構造にその結果を渡します。 @@ -38,6 +38,9 @@ $foo = True; // 値TRUEを$fooに代入する boolean への変換 - boolean に明示的に変換を行うには、キャスト - (bool) または (boolean) - を使用します。しかし、演算子、関数、制御構造が boolean - 型の引数を必要とする場合には、値は自動的に変換されるため、 - 多くの場合はキャストは不要です。 - - - + bool に明示的に変換を行うには、キャスト + (bool) を使用します。 + 論理型が必要な場合には、値は自動的に bool + 型に変換されるので、一般的にはキャストは不要です。 + 詳細な情報は 型の相互変換 - も参照ください。 + のページを参照ください。 - + - boolean に変換する場合、次の値は &false; とみなされます。 + bool に変換する場合、次の値は &false; とみなされます。 @@ -88,20 +88,20 @@ if ($show_separators) { integer - の 0 および -0 (ゼロ) + の 0 (ゼロ) float - の 0.0 および -0.0 (ゼロ) + の 0.0 および -0.0 (ゼロ) - 空の文字列、 + 空の文字列 ""、 および文字列の - "0" + "0" @@ -111,22 +111,23 @@ if ($show_separators) { - 特別な値 NULL + unit 型 NULL (値がセットされていない変数を含む) - 空のタグから作成された SimpleXML - オブジェクト + bool 型へキャストするように動作がオーバーロードされた内部オブジェクト。 + 例: 属性がない空要素から作成された SimpleXML + オブジェクト。 - その他の値は全て &true; とみなされます (全ての - resource - および NAN を含みます)。 + その他の値は全て &true; とみなされます。 + (resource + および NAN を含みます) @@ -136,11 +137,13 @@ if ($show_separators) { - + + Boolean にキャストする ]]> - + - - - + + コールバック / Callable - - - コールバックは、PHP 5.4 以降では callable タイプヒントで表されます。 - このページでは、callback 型情報を同じ目的で使っています。 - - - - call_user_funcusort - 等の関数は、ユーザーが定義するコールバック関数を引数として受け入れます。 - コールバック関数は、単純な関数だけでなく、オブジェクトのメソッド - あるいはクラスの静的メソッドであってもかまいません。 - + + + callable は、 + 別の関数への引数として渡される関数またはメソッドを参照するものです。 + これらは、callable 型を宣言することで表されます。 + + + + +]]> + + + + + 関数によっては、コールバック関数を引数として受け入れるものがあります。 + 例として + array_map, usort, + preg_replace_callback が挙げられます。 + - 受け渡し + callable の作成 + + + callable は、呼び出し可能な何かを表す型です。 + コールバック関数をパラメータとして期待する関数や、 + メソッドの引数として渡すことができますし、 + 直接呼び出すこともできます。 + + callable 型は、 + クラスのプロパティの型宣言には使えません。 + 代わりに、Closure を型宣言に使ってください。 + + + + callable は、複数の異なる方法で作成できます: + + + + + Closure オブジェクト + + + 関数またはメソッドの名前を含む文字列 + + + + 配列。クラス名または object + をインデックス 0 に、メソッド名をインデックス 1 に含みます。 + + + + + __invoke() + マジックメソッドを実装した &object; + + + + + + Closure オブジェクトは、 + 無名関数、 + アロー関数、 + 第一級callableを生成する記法、 + もしくは Closure::fromCallable + メソッドを使って作成できます。 + + + + + 第一級callableを生成する記法 + は、PHP 8.1.0 以降でのみ利用可能です。 + + + + + + <classname>Closure</classname> を使ったコールバックの例 + + + $a * 2; + +// Using Closure::fromCallable +$double4 = Closure::fromCallable('double_function'); + +// Use the closure as a callback here to +// double the size of each element in our range +$new_numbers = array_map($double1, range(1, 5)); +print implode(' ', $new_numbers) . PHP_EOL; + +$new_numbers = array_map($double2, range(1, 5)); +print implode(' ', $new_numbers) . PHP_EOL; + +$new_numbers = array_map($double3, range(1, 5)); +print implode(' ', $new_numbers) . PHP_EOL; + +$new_numbers = array_map($double4, range(1, 5)); +print implode(' ', $new_numbers); - - PHP 関数はその名前を単に文字列として渡します。 - どのようなビルトインまたはユーザー定義の関数も渡すことができます。 - ただし、 +?> +]]> + + &example.outputs.81; + + + + + + + callable は、 + 関数名や static メソッドを含む文字列でも表現できます。 + ビルトイン関数、またはユーザー定義関数も使えます。 + 但し、以下のような言語構造は除きます: array, echo, - empty, eval, - exit, isset, - list, print あるいは + empty, eval, + isset, + list, print, unset - といった言語構造はコールバックとしては使えないことに注意しましょう。 - - - - オブジェクトのインスタンスを渡すには配列を使います。 - 配列の 0 番目の要素にオブジェクトを、 - そして 1 番目の要素にメソッド名を指定します。 - protected メソッドや private メソッドは、クラスの内部からはアクセスできます。 - - - - 静的なクラスメソッドの場合、オブジェクトのインスタンスは不要です。 - 0 番目の要素として、オブジェクトのかわりにクラス名を指定します。 - PHP 5.2.3 以降では、 - 'ClassName::methodName' 形式で指定することもできます。 - - - - 一般的なユーザー定義関数とは異なり、 - 無名関数 と - アロー関数 もパラメータとして渡せます。 - - - - 一般的には、 - __invoke() を実装した任意のオブジェクトもパラメータとして渡せます。 - - - - - - コールバック関数の例 - - + + + + static メソッドは、クラスの object + 型をインスタンス化せずに使えます。 + クラス名をインデックス 0 に、 + メソッド名をインデックス 1 に配置した配列を作成するか、 + 'ClassName::methodName' のような、 + スコープ解決演算子 :: を使った特殊構文が使えます。 + + + + インスタンス化された object + のメソッドは、object をインデックス 0 に、 + メソッド名をインデックス 1 に配置した配列を作成することで、 + callable にできます。 + + + + Closure オブジェクトと callable 型の主な違いは、 + Closure + オブジェクトがスコープに依存せず常に呼び出せるのに対し、 + callable はスコープに依存する場合があり、 + 直接呼び出せない可能性がある点です。 + Closure が、callable を作成する望ましい方法です。 + + + + + Closure オブジェクトは、 + それが作成されたスコープにバインドされますが、 + クラスメソッドを文字列または配列で参照する callable は、 + それらが呼び出されたスコープの内部で解決されます。 + callable を private または protected メソッドから作成し、 + クラスのスコープ外から呼び出せるようにするには、 + Closure::fromCallable または、 + 第一級callableを生成する記法 を使います。 + + + + + PHP は、コールバック引数として使えるものの、 + 直接は呼び出せない callable を作成できます。 + これらはコンテキスト依存の callable であり、 + 例えば 'parent::method' や + ["static", "method"] + の形で、クラスの継承階層におけるクラスメソッドを参照します。 + + + + + PHP 8.2.0 以降では、 + コンテキスト依存の callable は推奨されなくなりました。 + 'parent::method' を + parent::class . '::method' + 形式に置き換えることでコンテキスト依存を除去するか、 + 第一級callableを生成する記法 を使ってください。 + + + + + + <function>call_user_function</function> + を使って、様々なタイプの callable を呼び出す + + ]]> - - - - - - - クロージャを使ったコールバックの例 - - + + &example.outputs; + -]]> - - &example.outputs; - - - - - + + ¬e.func-callback-exceptions; - + + + + 型宣言 + + + 関数のパラメータや戻り値、 + クラスのプロパティ (PHP 7.4.0 以降)、クラス定数 (PHP 8.3.0 以降) に対して型を宣言することができます。 + これによって、その値がコール時に特定の型であることを保証できます。 + その型でない場合は、TypeError がスローされます。 + + + + PHP がサポートしている単一の型それぞれを、 + ユーザーが行う型宣言の中で使うことができます。 + 但し、resource 型を除きます。 + このページでは、それぞれの型がいつ利用可能になったかの変更履歴や、 + 型宣言におけるそれらの使い方について記しています。 + + + + + クラスがインターフェイスのメソッドを実装したり、 + 親クラスで既に定義されているメソッドを再実装する場合、 + そのメソッドは、既に存在するメソッドと互換性がなければなりません。 + 共変性と反変性 + のルールに従っている場合、メソッドには互換性があります。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + クラス、インターフェイス、トレイト、そして列挙型の定数は、新たに型宣言をサポートするようになりました。 + + + + 8.2.0 + + DNF 型のサポートが追加されました。 + + + + 8.2.0 + + リテラル型 true のサポートが追加されました。 + + + + 8.2.0 + + nullfalse 型が、独立した型として使えるようになりました。 + + + + 8.1.0 + + 交差型のサポートが追加されました。 + + + + 8.1.0 + + 戻り値を void とした関数からリファレンスを返すことは、 + 推奨されなくなりました。 + + + + 8.1.0 + + 戻り値にのみ指定できる型として、 + never 型のサポートが追加されました。 + + + + 8.0.0 + + mixed 型のサポートが追加されました。 + + + + 8.0.0 + + 戻り値にのみ指定できる型として、 + static 型のサポートが追加されました。 + + + + 8.0.0 + + union 型のサポートが追加されました。 + + + + 7.4.0 + + クラスのプロパティに、型宣言のサポートが追加されました。 + + + + 7.2.0 + + object 型のサポートが追加されました。 + + + + 7.1.0 + + iterable 型のサポートが追加されました。 + + + + 7.1.0 + + void 型のサポートが追加されました。 + + + + 7.1.0 + + nullable な型のサポートが追加されました。 + + + + + + + + + 基本型を使うときの注意 + + + 基本型は、ここで説明する小さな注意事項はいくつかあるものの、 + わかりやすい振る舞いをします。 + + + + スカラー型 + + + スカラー型(bool, int, + float, string) のエイリアスはサポートされていません。 + つまり、これらはクラスやインターフェイスの名前として扱われているということです。 + たとえば、型の宣言に boolean を使った場合、 + 値が boolean + クラスまたはインターフェイスのインスタンスであることが要求されます。 + bool 型ではありません。 + + + + +]]> + + &example.outputs.8; + + + + + + + + + void + + + void を返す関数からリファレンスを返すことは、PHP 8.1.0 以降は推奨されなくなりました。 + なぜなら、関数の定義そのものが矛盾しているからです。 + PHP 8.1.0 より前のバージョンでは、 + 関数をコールした際に次のような E_NOTICE が発生していました: + Only variable references should be returned by reference + + + +]]> + + + + + + + + Callable + + この型は、クラスのプロパティの型宣言では使うことができません。 + + + + + 関数のシグネチャに指定することもできません。 + + + + + + リファレンス渡しのパラメータに対する型宣言 + + + リファレンス渡しのパラメータに対して宣言される型は、 + 関数の入り口で だけ チェックされます。 + しかし、関数から返される時はチェックされません。 + これは、変数のリファレンスについては、関数が型を変更できるということです。 + + + リファレンス渡しのパラメータに対する型宣言 + + +]]> + + &example.outputs.similar; + + + + + + + + + 複合型を使うときの注意 + + 複合型を宣言する場合、制限がいくつか存在します。 + また、簡単なバグを防ぐために、型の冗長チェックがコンパイル時に行われます。 + + + + + PHP 8.2.0 より前のバージョン、 + つまり DNF 型がサポートされる前は、 + 交差型とunion型を組み合わせることはできませんでした。 + + + + + union 型 + + + union 型の中で、シングルトン型 true と + false を同時に組み合わせて使うことはできません。 + bool 型を使ってください。 + + + + + + PHP 8.2.0 より前のバージョンでは、 + &false; と null 型は + 独立した型として使えず、 + union 型でそれらだけを指定することも許されませんでした。 + つまり、&false;, false|null, + ?false のような型はいずれも許されませんでした。 + + + + + nullable な型とシンタックスシュガー + + + 単一の基本型を宣言した場合、 + 型の名前の前にクエスチョンマーク (?) を付けることで、nullable であるという印を付けることができます。 + よって、?TT|null は同じ意味です。 + + + + + この文法は、PHP 7.1.0 以降でサポートされており、 + 一般化された union 型がサポートされる前から存在します。 + + + + + + デフォルト値に null を指定することで、 + null を許容するパラメータを指定することができます。 + これは、子クラスでデフォルト値が変更された場合にクラスの互換性が壊れ、 + 型宣言で null + 型を追加しなければならなくなるため、おすすめできません。 + この振る舞いは、PHP 8.4 以降は推奨されなくなっています。 + + + 引数にnullを許容する古いやり方 + + +]]> + + &example.outputs; + + + + + + + + + + 重複した冗長な型 + + 複合型の宣言に関する単純なバグを見つけるため、 + クラスの読み込みを行わずに検出できる冗長な型はコンパイル時にエラーになります。 たとえば、以下のような場合です: + + + + + 名前が解決された型は、一度しか現れることができません。 + int|string|INT や + Countable&Traversable&COUNTABLE + のような型はエラーになります。 + + + + + mixed 型や、 + never 型を複合型で使うとエラーになります。 + + + + union 型に適用される制限: + + + + bool 型が使われている場合、false や + true 型は追加で使えません。 + + + + + object 型が使われている場合、クラス型は追加で使えません。 + + + + + iterable 型が使われている場合、 + arrayTraversable + は追加で使えません。 + + + + + + 交差型に適用される制限: + + + + クラス型でない型を、交差型で使うとエラーになります。 + + + + + self, parent, + static のいずれかを、交差型で使うとエラーになります。 + + + + + + DNF 型に適用される制限: + + + + より広い型をひとつ使った場合、 + それより狭い型は冗長とみなされます。 + + + + + ふたつの等しい交差型を使った場合、冗長とみなされます。 + + + + + + + + + + これによって、型が "最低限" であることは保証しません。 + なぜなら、最低限であることを保証するためには、 + 使われている全てのクラスの型を読み込まなければならないからです。 + + + + + たとえば、AB + がクラスのエイリアスだったとします。 + この場合、A|BA + または B のみに縮めることができますが、 + 正しい union 型です。 同様に、B extends A {} + というクラスがあった場合、 A|B + は A のみに縮めることができますが、 + 正しい union 型です。 + + + + +]]> + + + + + + + + &reftitle.examples; + + クラスによる型宣言の基本 + + +]]> + + &example.outputs.8; + + + + + + + インターフェイスによる型宣言の基本 + + +]]> + + &example.outputs.8; + + + + + + + 基本的な戻り値の型宣言 + + +]]> + + &example.outputs; + + + + + + + オブジェクトを返す + + +]]> + + &example.outputs; + + + + + + + Null を許容する型宣言 + + +]]> + + &example.outputs; + + + + + + + Null を許容する戻り値の型宣言 + + +]]> + + + + + クラスのプロパティで型宣言 + +id = $id; + $this->username = $username; + } +} +?> +]]> + + + + + + + 厳密な型付け + + + デフォルトでは、PHP は誤った型の値を + 可能であれば期待されたスカラー型の宣言に従うよう自動的に変換します(coercive モード)。 + たとえば、関数に int が与えられたが、 + パラメータで文字列が期待されていた場合、文字列型の値を取得します。 + + + + ファイルごとに strict モードを有効にすることができます。 + strict モードでは、型宣言に正確に対応する値のみを受け入れ、 + それ以外の値の場合、TypeError がスローされます。 + このルールに関する唯一の例外は、int の値が + float 型の宣言に渡せることだけです。 + + + + + 内部関数の中からの関数呼び出しは、 + strict_types 宣言の影響を受けません。 + + + + + strict モードを有効にするには、&declare; 文を strict_types 宣言と一緒に使います。 + + + + + 厳密な型付けは、strict モードが有効になったファイルの + 内部 から行われる関数呼び出しに適用されます。 + そのファイルで宣言された関数への呼び出しに対して適用されるわけではありません。 + 厳密な型付けが有効になっていないファイルから、 + 厳密な型付けが有効になっているファイルで定義された関数を呼び出した場合は、 + 呼び出し側の好み(型の自動変換)が尊重され、値は型変換されます。 + + + + + + 厳密な型付けは、スカラー型の宣言に対してのみ定義されます。 + + + + + 引数の値に対する厳密な型付け + + +]]> + + &example.outputs.8; + + + + + + + 引数の値に対する型の自動変換 + + +]]> + + &example.outputs; + + + + + + + 戻り値に対する厳密な型付け + + +]]> + + &example.outputs; + + + + + + + + diff --git a/language/types/enumerations.xml b/language/types/enumerations.xml new file mode 100644 index 0000000000..cd194801f5 --- /dev/null +++ b/language/types/enumerations.xml @@ -0,0 +1,80 @@ + + + + + 列挙型 / Enum + + + + 列挙型の基礎 + + + 列挙型は、クラスやクラス定数に対して、さらに制限を加えたものです。 + ある型に対して、取り得る値の限られた集合を定義する方法を提供します。 + + + + + +]]> + + + + + 完全な説明は、 + 列挙型(Enum) を参照ください。 + + + + + + キャスト + + + 列挙型を object にキャストしても、値は変更されません。 + 列挙型を array にキャストすると、 + name というキーだけ(Pure Enum の場合) + をもつ配列か、 + namevalue + というキー(Backed Enum の場合) を持つ配列が生成されます。 + それ以外のキャストを行っても、エラーが発生します。 + + + + + diff --git a/language/types/float.xml b/language/types/float.xml index f0c3118916..eec65a606f 100644 --- a/language/types/float.xml +++ b/language/types/float.xml @@ -1,6 +1,6 @@ - + 浮動小数点数 @@ -13,8 +13,8 @@ @@ -30,7 +30,7 @@ $d = 1_234.567; // PHP 7.4.0 以降 @@ -52,7 +52,7 @@ EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM}) 複雑な算術演算をすると、誤差はさらに大きくなるでしょう。そしてもちろん、 いくつかの演算を組み合わせる場合にも誤差を考慮しなければなりません。 - + さらに、十進数では正確な小数で表せる有理数、たとえば 0.10.7 は、 @@ -82,17 +82,37 @@ EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM}) float への変換 - - - 文字列型がどのようにして浮動小数点数に変換されるかに関する詳細な情報は、 - 文字列の数値型への変換 - のセクションをご覧ください。 - そのほかの型の浮動小数点数への変換については、整数型への変換と同様です。 - 詳細は整数型への変換 - のセクションをご覧ください。 - PHP 5 以降、オブジェクトを浮動小数点数に変換しようとした場合には、 - 通知がスローされます。 - + + + 文字列から float への変換 + + + 文字列が + 数値形式の文字列 + の場合、対応する float の値に解決されます。 + そうでない場合、ゼロ(0)に変換されます。 + + + + + 他の型から float への変換 + + + 文字列以外の値については、 + まず最初に int に変換された後、 + float に変換されます。 + 詳細は + 整数への変換 + を参照ください。 + + + + + 型によっては、int に変換したときの動作が未定義のものがあります。 + この場合、float に変換する場合の動作も未定義です。 + + + @@ -111,10 +131,12 @@ EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM}) 計算時に扱える最小の差分を表します。 - - - $a$b は、精度 5 桁では等しくなります。 - + + $a$b は、精度 5 桁では等しくなります。 + + + + 浮動小数点数の比較 ]]> - + - + NaN @@ -141,7 +163,7 @@ if(abs($a-$b) < $epsilon) { NAN はさまざまな値の数を表すものなので、 - NAN を他の値を比較してはいけません。たとえ自分自身とであってもです。 + NAN を他の値と比較してはいけません。たとえ自分自身とであってもです。 チェックをする場合には、かわりに is_nan を使います。 diff --git a/language/types/integer.xml b/language/types/integer.xml index 1831c37f57..4569a29b52 100644 --- a/language/types/integer.xml +++ b/language/types/integer.xml @@ -1,36 +1,25 @@ - + 整数 - integer は、ℤ = {..., -2, -1, 0, 1, 2, ...} + int は、ℤ = {..., -2, -1, 0, 1, 2, ...} という集合です。 - - 以下も参照ください。 - - - - - - 任意精度整数 / GMP - - - - - 浮動小数点数 - - - - - 任意精度整数 / BCMath - - - + + &reftitle.seealso; + + + 浮動小数点数 + 任意精度整数 / BCMath + 任意精度整数 / GMP + + + 構文 @@ -40,13 +29,13 @@ 表記で指定可能です。オプションで、符号(-または+)を前に付けることが可能です。 - - 2 進数の整数リテラルは、PHP 5.4.0 から利用可能となりました。 - - 8 進数表記を使用する場合、数の前に 0 (ゼロ) - を付ける必要があります。また、16 進数表記を使用するには、数の前に + を付ける必要があります。 + PHP 8.1.0 以降では、数の前に + 0o0O を付けても + 8進数を表記できます。 + また、16 進数表記を使用するには、数の前に 0x を付ける必要があります。 2 進数表記を使用する場合、数の前に 0b を付ける必要があります。 @@ -59,11 +48,12 @@ 整数リテラル - + - PHP 7.4.0 以降で使用可能な整数リテラルの形式は以下のように定義されています。 - (これより前のバージョンでは、アンダースコアは許されませんでした) + PHP 8.1.0 以降で使用可能な整数リテラルの形式は以下のように定義されています。 + (これより前のバージョンでは、8進数のプレフィックス 0o0O が許されませんでした。さらに、PHP 7.4.0 より前のバージョンでは、アンダースコアも許されませんでした) @@ -85,7 +75,7 @@ decimal : [1-9][0-9]*(_[0-9]+)* hexadecimal : 0[xX][0-9a-fA-F]+(_[0-9a-fA-F]+)* -octal : 0[0-7]+(_[0-7]+)* +octal : 0[oO]?[0-7]+(_[0-7]+)* binary : 0[bB][01]+(_[01]+)* @@ -101,113 +91,80 @@ integer : decimal 整数のサイズはプラットフォームに依存しますが、 約 20 億 (32 ビット符号付) が一般的な値です。 64 ビットプラットフォームでの通常の最大値は、およそ 9*10^18 (900京) になります。 - しかし PHP 7 より前のバージョンにおける Windows は例外で、Windows で PHP 7 より前のバージョンを使う場合はは常に 32 ビットとなります。 PHP は符号無し整数をサポートしていません。 整数のサイズは定数 PHP_INT_SIZE で、 - そして整数の最大値は定数 PHP_INT_MAX でそれぞれ決まります。 - これらの定数は、PHP 5.0.5 以降で使えます。 - PHP 7.0.0 以降では、整数の最小値を表す定数 PHP_INT_MIN - が使えるようになりました。 + 整数の最大値は定数 PHP_INT_MAX で、 + 整数の最小値は定数 PHP_INT_MIN で決まります。 - - - PHP 7 より前のバージョンでは、 - 8 進数の整数値として不正な数字(例: 8 または 9)が渡された場合、 - 数値の残りの部分は無視されます。 - PHP 7 以降では、パースエラーが発生します。 - - 整数のオーバーフロー - integer型の範囲外の数を指定した場合、かわりに + int型の範囲外の数を指定した場合、かわりに floatとして解釈されます。また、結果が - integer型の範囲外の数となるような計算を行うと + int型の範囲外の数となるような計算を行うと floatが代わりに返されます。 - 32 ビットシステムにおける整数のオーバーフロー + 整数のオーバーフロー ]]> + - - 64 ビットシステムにおける整数のオーバーフロー - - + 整数の除算 -$million = 1000000; -$large_number = 50000000000000 * $million; -var_dump($large_number); // float(5.0E+19) -?> -]]> - - - - PHP には整数の割り算はありません。1/2 + PHP には整数の割り算を行う演算子はありません。 + 整数の割り算を行うには、intdiv 関数を使って下さい。 + 1/2 float 型の 0.5 になります。 0 に近い方向の整数値に値を丸めるためにキャストを使用することができ、 また、round 関数を使用することもできます。 - - - PHP 7.0.0 以降では、整数の割り算に intdiv - 関数を使うことができます。 - - - + + 除算の例 ]]> - + 整数への変換 - integer に値を明示的に変換するには、キャスト + int に値を明示的に変換するには、キャスト (int) または (integer) のどちらかを使用してください。しかし、多くの場合、演算子、関数、制御構造が - integer 引数を必要とする場合、値は自動的に変換されるため、 + int 引数を必要とする場合、値は自動的に変換されるため、 キャストを使用する必要はありません。 関数 intval を用いて値を整数に変換することも可能です。 - resourceinteger に変換すると、その結果は一意なリソース番号となります。 + resourceint に変換すると、その結果は一意なリソース番号となります。 これは、その resource に対して PHP が実行時に割り当てた番号です。 @@ -232,11 +189,30 @@ var_dump(round(25/7)); // float(4) float から整数に変換する場合、その数はゼロのほうに丸められます。 + PHP 8.1.0 以降では、精度を損なうことになる &float; から &integer; への暗黙の変換は推奨されなくなり、警告が発生します。 + + + float 型からキャストする + + +]]> + + float が整数の範囲 (通常は、32 ビットプラットフォームでは +/- 2.15e+9 = - 2^31、PHP 7 より前の Windows 以外の 64 ビットプラットフォームでは +/- 9.22e+18 = 2^63 + 2^31、64 ビットプラットフォームでは +/- 9.22e+18 = 2^63 ) を越える場合、結果は undefined となります。これは、 その float が正しい整数の結果を得るために十分な精度を得られなかったからです。 この場合、警告も通知も発生しません! @@ -244,14 +220,13 @@ var_dump(round(25/7)); // float(4) - NaN や無限大を integer にキャストした結果は - 未定義でプラットフォーム依存でしたが、PHP 7.0.0 以降は常にゼロとなります。 + NaN, Inf, -Infint にキャストした結果は、常にゼロとなります。 - 未知の端数を integer にキャストしないでください。 + 未知の端数を int にキャストしないでください。 この場合、予期しない結果となることがあります。 @@ -276,8 +251,10 @@ echo (int) ( (0.1+0.7) * 10 ); // 7が出力されます! 文字列から - 文字列変換 - を参照ください。 + 文字列が + 数値形式の文字列 + の場合は、対応する整数値に解決されます。 + そうでない場合は、ゼロ (0) に変換されます。 diff --git a/language/types/iterable.xml b/language/types/iterable.xml index 0b72824a0b..6a12843f38 100644 --- a/language/types/iterable.xml +++ b/language/types/iterable.xml @@ -1,111 +1,34 @@ - - - + Iterable - Iterable は PHP 7.1 で導入された疑似型です。&array;、あるいは - Traversable インターフェイスを実装したオブジェクトを - 許容します。これらの型は、いずれも &foreach; で繰り返し可能であり、また、 - ジェネレータ 内で - yield from できます。 + Iterable は組み込みの、コンパイル時に変換される + array|Traversable 型のエイリアスです。 + + この型は PHP 7.1.0 で導入されました。 + PHP 8.2.0 より前のバージョンでは、 + この型は上で述べた型のエイリアスとして振る舞う組み込みの疑似型でした。 + この型は、型宣言でも使うことができます。 + iterable 型は、&foreach; で繰り返し可能であり、 + ジェネレータ + 内で yield from できます。 - - Iterable の使用 - - - Iterable は、関数が値のセットを要求するものの、&foreach; とともに使うため、 - 値の形式は問わないことを示すパラメータ型として使用できます。値が、配列でも - Traversable のインスタンスでもない場合は、 - TypeError がスローされます。 - - - - - - Iterable パラメータ型の例 - - - -]]> - - - - - - Iterable として宣言されたパラメータは、&null; または配列をデフォルト値 - として使用できます。 - - - - - - Iterable パラメータのデフォルト値の例 - - - -]]> - - - - - - Iterable は、繰り返し可能な値を関数が返すことを示すため、戻り値の型としても - 使用できます。戻り値が、配列でも Traversable の - インスタンスでもない場合、TypeError がスローされます。 - - + + 戻り値の型として iterable を宣言する関数は、 + ジェネレータ にもなります。 - Iterable 戻り値の例 + iterable を戻り値の型として使った、ジェネレータの例 - -]]> - - - - - - 戻り値の型として Iterable を宣言する関数は、ジェネレータ にもなります。 - - - - - - Iterable 戻り値のジェネレータの例 - - - -]]> - - - - - - - Iterable 型の可変性 - - - 継承したクラス、あるいはインターフェイスを実装したクラスは、 - パラメータ型に &array; や Traversable を使っている - メソッドを Iterable に拡張できます。また、戻り値の型を - Iterable から &array; や Traversable - に縮小できます。 - - - - - - Iterable 型の可変性の例 - - - ]]> - - + - + + + Mixed + + + mixed は、あらゆる値を受け入れる型です。 + これは、以下の + union 型 + と同等です。 + + object|resource|array|string|float|int|bool|null. + この型は、PHP 8.0.0 以降で利用可能です。 + + + + mixed 型は、型理論の用語で言うと、トップ型にあたります。 + つまり、他の全ての型は、この型の部分型になります + + + + diff --git a/language/types/never.xml b/language/types/never.xml new file mode 100644 index 0000000000..53e18fb6bb --- /dev/null +++ b/language/types/never.xml @@ -0,0 +1,43 @@ + + + + + Never + + + never は、 + 関数が戻ってこないことを示す戻り値の型です。 + これは、関数の中で exit がコールされるか、 + 例外がスローされるか、 + 無限ループに入るかのいずれかであることを意味します。 + よって、この型は union 型 の一部として指定することが出来ません。 + PHP 8.1.0 以降で利用できます。 + + + never は、 + 型理論の用語で言うと、ボトム型にあたります。 + つまり、全ての他の型の部分型であり、 + 継承する際に他の戻り値の型を置き換えることができます。 + + + + diff --git a/language/types/null.xml b/language/types/null.xml index b3afaa02a5..dab30fe7aa 100644 --- a/language/types/null.xml +++ b/language/types/null.xml @@ -1,43 +1,25 @@ - - + NULL - 特別な &null; 値は、ある変数が値を持たないことを表します。&null; - は、null 型の唯一の値です。 + null 型は、PHP の unit 型 (意味のある情報を持たないことを示す型) です。 + つまり、単一の値 &null; しか持ちません。 - 変数は、以下の場合に &null; とみなされます。 + 未定義、そして unset + された値は、値 &null; に解決されます。 - - - - - 定数 &null; が代入されている場合。 - - - - - まだ値が何も代入されていない場合。 - - - - - unset されている場合。 - - - - 構文 + 文法 - &null; 型の値は一つだけで、 - 大文字小文字を区別しない定数 &null;です。 + null 型の値は一つだけで、 + 大文字小文字を区別しない定数 &null; です。 @@ -49,31 +31,32 @@ $var = NULL; ]]> - - - is_null および unset - も参照ください。 - - - + &null; へのキャスト + &warn.deprecated.feature-7-2-0.removed-8-0-0; + - &warn.deprecated.feature-7-2-0; + (unset) $var を使って変数を null + にキャストすると、その変数を削除したり値の設定を解除したりは + しません。単に &null; 値を返すだけです。 + + + + &reftitle.seealso; - (unset) $var を使って変数を null にキャストすると、 - その変数を削除したり値の設定を解除したりはしません。 - 単に &null; 値を返すだけです。 + + is_null + unset + - - + + + + 数値形式の文字列 + + PHP の 文字列 は、 + intfloat と解釈できる場合は + 数値と見なされます。 + + + + PHP 8.0.0 以降の正式な仕様は下記の通りです: + + + + + + + + + + PHP は 先頭から始まる 数値形式の文字列という概念も持っています。 + これは、数値形式の文字列から始まり、その後に任意の文字が続く文字列です。 + + + + + 文字 E (大文字小文字を区別しません) が含まれる文字列のうち、 + その文字で数値を区切っている場合、科学的記法で記された数値とみなされます。 + この場合、予期しない結果が発生するかもしれません。 + + + 科学的記法の比較 + + +]]> + + + + + + 数値の文脈で使われる文字列 + + 文字列が数値として評価される必要がある場合 + (例: 算術演算や、int 型の宣言がある場合など) + は、次のステップを踏むことで結果が決まります: + + + + + 文字列が数値の場合、かつそれが + int 型の範囲 + (PHP_INT_MAX で定義されています) + に含まれる場合、int に解決されます。 + そうでない場合、float に解決されます。 + + + + + 文脈が 先頭から始まる数値形式の文字列を許す場合、 + かつ値が文字列の場合は、次のように解決されます: + + 文字列の先頭部分が数値形式の文字列、かつそれが + int 型の範囲 + (PHP_INT_MAX で定義されています) + に含まれる場合、int に解決されます。 + そうでない場合、float に解決されます。 + + それに加えて、エラーレベル E_WARNING が発生します。 + + + + + 文字列が数値でない場合、 + TypeError がスローされます。 + + + + + + + + PHP 8.0.0 より前の振る舞い + + PHP 8.0.0 より前のバージョンでは、 + 先頭に ホワイトスペースがある場合にだけ、 + 文字列は数値と見なされていました。 + + 数値の後に ホワイトスペースがある場合は、 + その文字列は 先頭から始まる 数値形式の文字列とみなされていました。 + + + + PHP 8.0.0 より前のバージョンでは、 + 文字列が数値の文脈で使われる場合、既に述べたステップと同じ処理を行いますが、 + 以下の違いがあります: + + + + + 先頭から始まる数値形式の文字列の場合、 + E_WARNING ではなく、 + E_NOTICE が発生していました。 + + + + + 文字列が数値でない場合、 + E_WARNING が発生し、 + 0 が返されていました。 + + + + PHP 7.1.0 より前のバージョンでは、 + E_NOTICE + も + E_WARNING も発生していませんでした。 + + + + + +]]> + + + + + diff --git a/language/types/object.xml b/language/types/object.xml index c0ac4a1440..836f0cb97e 100644 --- a/language/types/object.xml +++ b/language/types/object.xml @@ -1,6 +1,6 @@ - + オブジェクト @@ -13,7 +13,8 @@ 命令によりオブジェクトのインスタンスを変数に作成します。 - + + オブジェクトの作成 do_foo(); ?> ]]> - + 詳細な事項については、 @@ -45,30 +46,34 @@ $bar->do_foo(); オブジェクトがオブジェクトに変換される場合はなにも修正されません。 - オブジェクト以外の型の値がオブジェクトに変換される時には、stdClass というビルトインクラス(予めPHPの内部で定義されているクラス)のインスタンスが新しく生成されます。 + オブジェクト以外の型の値がオブジェクトに変換される時には、stdClass というビルトインクラス(予めPHPの内部で定義されているクラス)のインスタンスが新しく生成されます。 その際、値が null の場合は新しいインスタンスは空となります。 また、配列がオブジェクトに変換される場合、配列のキーと値がそれぞれオブジェクトのプロパティ名とその値となります。 PHP 7.2.0 より前のバージョンでは、数値のキーの場合プロパティ名によるアクセスはできなかった点に注意して下さい。 - + + オブジェクトにキャストする 'foo'); -var_dump(isset($obj->{'1'})); // PHP 7.2.0 以降は 'bool(true)' それより前は 'bool(false)' -var_dump(key($obj)); // PHP 7.2.0 以降は 'string(1) "1"' それより前は 'int(1)' +var_dump(isset($obj->{'1'})); // outputs 'bool(true)' + +// PHP 8.1 以降は非推奨 +var_dump(key($obj)); // outputs 'string(1) "1"' ?> ]]> - + 上記以外の値の場合には、scalar という名前のメンバ変数が値を格納します。 - + + <literal>(object)</literal> によるキャスト scalar; // 'ciao' を出力します ?> ]]> - + - + - - - - 本ドキュメントにおける疑似的な型および変数 - - 擬似型は、PHPドキュメントで引数が持つことができる型や値を指定するために使用されるキーワードです。 PHP言語のプリミティブではないことに注意してください。 したがって、独自のカスタム関数では、型ヒントとして擬似型を使用することはできません。 - - - mixed - - - mixed は、引数に多様な型 (全てである必要はない) - を使うことができることを示します。 - - - - 例えば gettype 関数は全ての PHP の型を受け入れるのに対し、 - str_replacestringarray のみを受け入れます。 - - - - - - number - - - number は、引数が integer または float - のどちらでもよいことを示します。 - - - - - - callback - - - callback 疑似型がこのドキュメントで使われていたのは、PHP 5.4 で - callable タイプヒントが導入される前のことでした。両者はまったく同じ意味です。 - - - - - - array|object - - - array|object は、引数がarray または object - のどちらでもよいことを示します。 - - - - - - void - - - 返り値の型が void である場合は、 - 返り値に意味がないことを表します。パラメータ一覧で - void が使用されている場合は、 - その関数がパラメータを受け付けないことを表します。 - PHP 7.1 以降では、void - が返り値の型ヒントとして受け付けできるようになりました。 - - - - - - ... - - - 関数のプロトタイプ宣言における $... は、 - …など を表します。 - この変数名を用いるのは、たとえば任意の数の引数を取りうる関数などです。 - - - - - - diff --git a/language/types/relative-class-types.xml b/language/types/relative-class-types.xml new file mode 100644 index 0000000000..15ffd29c3d --- /dev/null +++ b/language/types/relative-class-types.xml @@ -0,0 +1,52 @@ + + + + + クラス内での関係を示す相対型 + + + 以下の型宣言は、クラスの内部でのみ使えます。 + + + + <type>self</type> + + 値が、型宣言が行われているクラスと同じクラスのインスタンスでなければいけません。 + + + + + <type>parent</type> + + 値が、型宣言が行われたクラスの、親クラスのインスタンスでなければいけません。 + + + + + static + + 値が、メソッドが呼び出されているクラスと同じインスタンスでなければならないことを示す、戻り値でのみ指定できる型です。PHP 8.0.0 以降で利用できます。 + + + + + diff --git a/language/types/singleton.xml b/language/types/singleton.xml new file mode 100644 index 0000000000..3954fa3756 --- /dev/null +++ b/language/types/singleton.xml @@ -0,0 +1,50 @@ + + + + + シングルトン型 + + + シングルトン型は、ただひとつの値のみを受け入れる型です。 + PHP はふたつのシングルトン型をサポートしています。 + PHP 8.0.0 以降でサポートされた &false; 型と、 + PHP 8.2.0 以降でサポートされた &true; 型です。 + + + + + PHP 8.2.0 より前のバージョンでは、 + false型は + union 型 + の一部としてのみ使える型でした。 + + + + + + カスタムのシングルトン型を定義することはできません。 + そうしたい場合、列挙型(Enum) を使うことを検討してください。 + + + + + diff --git a/language/types/string.xml b/language/types/string.xml index b5853afd4a..6aad5cdf9b 100644 --- a/language/types/string.xml +++ b/language/types/string.xml @@ -1,6 +1,6 @@ - + 文字列 @@ -14,9 +14,7 @@ - PHP 7.0.0 以降では、64bit ビルドでの string 型の長さについて、 - 特別な制限はなくなりました。 - 32bit ビルドと PHP 7.0.0 より前のバージョンの + 32bit ビルドでは、 文字列の最大長は 2GB (2147483647 バイト) です。 @@ -47,7 +45,6 @@ Nowdoc 構文 - (PHP 5.3.0 以降) @@ -74,40 +71,41 @@ ダブルクォート 構文や - heredoc 構文とは異なり、 + ヒアドキュメント構文 とは異なり、 変数と特殊文字のエスケープシーケンスは、 引用符 (シングルクオート) で括られた文字列にある場合には展開されません - + + Syntax Variants ]]> - + @@ -115,7 +113,7 @@ echo 'Variables do not $expand $either'; 二重引用符 - 文字列が二重引用符 (") で括られた場合、 + 文字列が二重引用符 (") で括られた場合、 PHP は、以下のエスケープシーケンスを特殊な文字として解釈します。 @@ -145,15 +143,15 @@ echo 'Variables do not $expand $either'; \v - 垂直タブ (VT またはアスキーの 0x0B (11)) (PHP 5.2.5 以降) + 垂直タブ (VT またはアスキーの 0x0B (11)) \e - エスケープ (ESC あるいはアスキーの 0x1B (27)) (PHP 5.4.4 以降) + エスケープ (ESC あるいはアスキーの 0x1B (27)) \f - フォームフィード (FF またはアスキーの 0x0C (12)) (PHP 5.2.5 以降) + フォームフィード (FF またはアスキーの 0x0C (12)) \\ @@ -170,22 +168,24 @@ echo 'Variables do not $expand $either'; \[0-7]{1,3} + 8進数: 正規表現 [0-7]{1,3} にマッチする文字シーケンスは、8 進数表記の 1 文字 (例:. "\101" === "A") です。 正規表現にマッチする文字シーケンスは、8 進数表記の 1 文字です。 1 バイトに収まらない部分は、何もメッセージを出さずにオーバーフローします - (そのため、"\400" === "\000" となります)。 + (例: "\400" === "\000") 。 \x[0-9A-Fa-f]{1,2} - 正規表現にマッチする文字シーケンスは、16 進数表記の 1 文字です。 + 16進数: 正規表現 [0-9A-Fa-f]{1,2} にマッチする文字シーケンスは、16 進数表記の 1 文字(例: "\x41" === "A")です。 \u{[0-9A-Fa-f]+} - 正規表現にマッチする文字シーケンスは、Unicode のコードポイントです。 - そのコードポイントの UTF-8 表現を文字列として出力します (PHP 7.0.0 で追加されました)。 + Unicode: 正規表現 [0-9A-Fa-f]+ にマッチする文字シーケンスは、Unicode のコードポイントです。 + そのコードポイントの UTF-8 表現を文字列として出力します。 + シーケンスを波括弧で囲む必要があります。例 "\u{41}" === "A" @@ -195,14 +195,12 @@ echo 'Variables do not $expand $either'; 繰り返しますが、この他の文字をエスケープしようとした場合には、 バックスラッシュも出力されます! - PHP 5.1.1 より前のバージョンでは、\{$var} - のバックスラッシュは出力されません。 しかし、二重引用符で括られた文字列で最も重要なのは、 変数名が展開されるところです。詳細は、文字列のパースを参照ください。 + linkend="language.types.string.parsing">文字列の補間を参照ください。 @@ -213,37 +211,224 @@ echo 'Variables do not $expand $either'; 文字列を区切る別の方法としてヒアドキュメント構文 ("<<<") があります。この場合、ある ID (と、それに続けて改行文字) を <<< - の後に指定し、文字列を置いた後で、同じ ID を括りを閉じるために置きます。 + の後に指定し、文字列を置いた後で、 + 同じ ID (終端ID) を括りを閉じるために置きます。 + + + + 終端ID は、スペースまたはタブでインデントできます。 + その場合、インデントされた部分は文字列の全ての行から取り除かれます。 + PHP 7.3.0 より前のバージョンでは、 + 終端ID はその行の最初のカラムから始めなければ + いけませんでした - 終端 ID は、その行の最初のカラムから始める必要があります。 - 使用するラベルは、PHP の他のラベルと同様の命名規則に従う必要があります。 + また、終端ID は、PHP の他のラベルと同様の命名規則に従う必要があります。 つまり、英数字およびアンダースコアのみを含み、 数字でない文字またはアンダースコアで始まる必要があります。 - + + + PHP 7.3.0 以降での、基本的なヒアドキュメントの使い方 + + + + &example.outputs.73; + + + + + + + 終端ID が、文字列のいずれかの行より奥にインデントされている場合、 + ParseError がスローされます。 + + + + 終端ID は 文字列本体よりも奥にインデントしてはいけない + + + + &example.outputs.73; + + + + + + + 終端ID をインデントする場合、 + インデントに使う文字として、タブまたはスペースが使えます。 + しかし、終端ID、および (終端ID までの)文字列の本体どちらであっても、 + インデントする際にタブとスペースを混ぜては + いけません。 + 混ぜた場合、 + ParseError がスローされます。 + + インデントに使う文字に制限があるのは、 + タブとスペースを混ぜてしまうと可読性が損なわれるためです。 + + + + 文字列本体 や 終端ID のインデントに違う文字を使う + + + + &example.outputs.73; + + + + + + + 文字列本体の後に置かれる 終端ID の後に、 + セミコロンや改行を続ける必要はありません。 + たとえば、次のようなコードが PHP 7.3.0 以降で動作します: + + + + 終端ID の後に式を継続する + + + + &example.outputs.73; + + + string(11) "a + b + c" + [1] => + string(5) "d e f" +} +]]> + + + - 非常に重要なことですが、終端 ID がある行には、セミコロン - (;) 以外の他の文字が含まれていてはならないことに注意しましょう。 + 終端ID が行のはじめに見つかった場合、 + それが別の単語の一部かどうかにかかわらず、 + それが終端IDと見なされ、 + ParseError が起きる可能性があります。 + + + + 文字列本体に 終端ID が含まれると、ParseError が起きがち + + + + &example.outputs.73; + + + + + + + この問題を避けるために、 + 次のようなシンプルなルールに従っておくと安全です: + + 文字列本体に出現するテキストを、終端ID として採用しない + + + + + + + + PHP 7.3.0 より前のバージョンで注意すべき非常に重要な点は、 + 終端ID がある行には、セミコロン + (;) + 以外の他の文字が含まれていてはいけなかったことです。 これは、特に ID はインデントしてはならないということ、 - セミコロンの前に空白やタブを付けてはいけないことを意味します。 - 終端 ID の前の最初の文字は、使用するオペレーティングシステムで定義された + セミコロンの前に空白やタブを付けてはいけないことを意味していました。 + 終端ID の前の最初の文字は、使用するオペレーティングシステムで定義された 改行である必要があることにも注意を要します。 これは、UNIX システムでは macOS を含め \n となります。 最後の区切り文字の後にもまた、改行を入れる必要があります。 - この規則が破られて終端 ID が "clean" でない場合、 - 終端 ID と認識されず、PHP はさらに終端 ID を探し続けます。 - 適当な終了 ID がみつからない場合、 + この規則が破られて 終端ID が "clean" でない場合、 + 終端ID と認識されず、PHP はさらに終端 ID を探し続けます。 + 適当な 終端ID がみつからない場合、 スクリプトの最終行でパースエラーが発生します。 - 間違った例 + PHP 7.3.0 より前のバージョンでの間違った例 - 有効な例 + PHP 7.3.0 より前のバージョンでも有効な例 - ヒアドキュメント構文を、クラスのプロパティの初期化に用いることはできません。 - PHP 5.3 以降では、変数を含まないヒアドキュメントではこの制約はなくなりました。 + 変数を含んでいるヒアドキュメントは、クラスのプロパティの初期化に用いることはできません。 @@ -284,7 +468,8 @@ EOT; ヒアドキュメントは二重引用符を使用しませんが、 二重引用符で括られた文字列と全く同様に動作します。 - しかし、この場合でも上記のリストでエスケープされたコードを使用することも可能です。 + これはつまり、引用符をエスケープする必要はないが、 + 上記のリストにあるエスケープされたコードは同様に使用できるということです。 変数は展開されますが、文字列の場合と同様に ヒアドキュメントの内部で複雑な変数を表わす場合には注意が必要です。 @@ -353,16 +538,16 @@ EOD - PHP 5.3.0 以降、静的な変数やクラスのプロパティ/定数を - ヒアドキュメント構文で初期化できるようになりました。 + static変数やクラスのプロパティ/定数は、 + ヒアドキュメント構文で初期化することができます。 ヒアドキュメントを用いた静的な値の初期化 - + - PHP 5.3.0 以降では、ヒアドキュメントの宣言をダブルクォートで囲めるようにもなりました。 + ヒアドキュメントの宣言をダブルクォートで囲むこともできます。 @@ -413,7 +598,7 @@ FOOBAR; ヒアドキュメントがダブルクォートで囲んだ文字列として扱われるのに対して、 Nowdoc はシングルクォートで囲んだ文字列として扱われます。 Nowdoc の使用方法はヒアドキュメントとほぼ同じですが、 - その中身について パース処理を行いません。 + その中身について 文字列の補間処理を行いません。 PHP のコードや大量のテキストを埋め込む際に、 エスケープが不要になるので便利です。この機能は、SGML の <![CDATA[ ]]> @@ -427,7 +612,7 @@ FOOBAR; しかし、その後に続く識別子をシングルクォートで囲んで <<<'EOT' のようにします。 ヒアドキュメントの識別子に関する決まりがすべて Nowdoc - の識別子にも当てはまります。特に終了識別子の書き方に関する決まりに注意しましょう。 + の識別子にも当てはまります。特に 終端ID の書き方に関する決まりに注意しましょう。 @@ -453,7 +638,7 @@ e.g. \\ and \'. - Nowdoc string quoting example with variables + 変数がある場合の、Nowdoc による文字列のクォートの例 - 静的データの例 - + 静的なデータの例 + - - - Nowdoc のサポートは PHP 5.3.0 で追加されました。 - - - 変数のパース + 文字列の補間処理 - スクリプトが二重引用符で括られるかヒアドキュメントで指定された場合、 - その中の変数はパースされます。 + 文字列が二重引用符で括られるかヒアドキュメントで指定された場合、 + その中の変数は置き換えられます。 構文の型には、単純な構文と - 複雑な - 構文の 2 種類があります。簡単な構文は、最も一般的で便利です。 - この構文では、変数、配列値やオブジェクトのプロパティをパースすることが可能です。 - - - - 複雑な構文は、式を波括弧で括ることにより認識されます。 + linkend="language.types.string.parsing.basic">単純な構文と + 高度な + 構文の 2 種類があります。単純な構文は、最も一般的で便利です。 + この構文では、変数や配列の値、オブジェクトのプロパティを、 + 簡単に文字列に埋め込むことができます。 - - 簡単な構文 - + + 単純な構文 ドル記号 ($) を見付けると、 - パーサは、有効な変数名を形成することが可能な最長のトークンを取得します。 - 変数名の終りを明示的に指定したい場合は、変数名を波括弧で括ってください。 + その後に変数名で使える文字は変数として解釈され、置き換えられます。 - - + + 文字列の置き換え ]]> @@ -559,42 +731,132 @@ echo "He drank some juice made of ${juice}s."; - + - 同様に、配列添字とオブジェクトのプロパティをパースすることも可能です。 - 配列添字の場合、閉じ角括弧 (]) は添字の終りを意味します。 - シンプルな変数の場合と同じ規則が、オブジェクトのプロパティに対しても適用されます。 + 形式的には、文字列の変数の置き換えの文法は下記のようになります: + + + +簡単な構文の例 +offset-or-property:: + offset-in-string + | property-in-string + +offset-in-string:: + [ name ] + | [ variable-name ] + | [ integer-literal ] + +property-in-string:: + -> name + +variable-name:: + $ name + +name:: + [a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]* + +]]> + + + + + + ${ expression } の形式は、 + PHP 8.2.0 以降では推奨されなくなりました。 + なぜなら、これは + 可変変数: + として解釈される可能性があるからです。 + + + +]]> + + &example.outputs.82; + + + + &example.outputs; + + + + + 高度な + 文字列補間の記法を代わりに使うべきです。 + + + + + + 有効な変数名にならない場合、ドル記号は文字列中でそのまま解釈されます: + + + + +]]> + + &example.outputs; + + + + + + + + 配列の最初の次元やプロパティの値を補間させる "purple"); - -echo "He drank some $juices[0] juice.".PHP_EOL; -echo "He drank some $juices[1] juice.".PHP_EOL; -echo "He drank some $juices[koolaid1] juice.".PHP_EOL; - -class people { - public $john = "John Smith"; - public $jane = "Jane Smith"; - public $robert = "Robert Paulsen"; - - public $smith = "Smith"; +$juices = array("apple", "orange", "string_key" => "purple"); + +echo "He drank some $juices[0] juice."; +echo PHP_EOL; +echo "He drank some $juices[1] juice."; +echo PHP_EOL; +echo "He drank some $juices[string_key] juice."; +echo PHP_EOL; + +class A { + public $s = "string"; } -$people = new people(); +$o = new A(); -echo "$people->john drank some $juices[0] juice.".PHP_EOL; -echo "$people->john then said hello to $people->jane.".PHP_EOL; -echo "$people->john's wife greeted $people->robert.".PHP_EOL; -echo "$people->robert greeted the two $people->smiths."; // 動作しません +echo "Object value: $o->s."; ?> ]]> @@ -604,16 +866,23 @@ echo "$people->robert greeted the two $people->smiths."; // 動作しません He drank some apple juice. He drank some orange juice. He drank some purple juice. -John Smith drank some apple juice. -John Smith then said hello to Jane Smith. -John Smith's wife greeted Robert Paulsen. -Robert Paulsen greeted the two . +Object value: string. ]]> + + + 配列のキーについては、クォートを外さなければなりません。 + よって、単純な記法では定数をキーとして参照できません。 + 高度な + 記法を使ってください。 + + + - PHP 7.1.0 以降では、 負の 数値インデックスもサポートされました。 + PHP 7.1.0 以降では、負の + 数値インデックスもサポートされています 負の数値インデックス @@ -637,158 +906,107 @@ Changing the character at index -3 to o gives strong. - より複雑な場合は、複雑な構文を使用する必要があります。 + さらに複雑な処理は、 + 高度な + 記法を使う必要があります。 - - 複雑な (波括弧) 構文 + + 高度な (波括弧) 記法 - この構文が「複雑(complex)な構文」と呼ばれているのは、 - 構文が複雑であるからではなく、 - この方法では複雑な式を含めることができるからです。 + 高度な波括弧を使った記法を使うと、 + 任意のアクセス方法で 変数 + の補間を行うことができます。 - どんなスカラー変数、配列の要素あるいはオブジェクトのプロパティの文字列表現であっても - この構文で含めることができます。 - 文字列の外側に置く場合と同様に式を書き、これを - { と } の間に含めてください。'{' はエスケープすることができないため、 - この構文は $ が { のすぐ後に続く場合にのみ認識されます - (リテラル "{$" を指定するには、"{\$" を使用してください)。 - 以下のいくつかの例を見ると理解しやすくなるでしょう。 + 任意のスカラー変数や、配列の要素、オブジェクトのプロパティ + (static かそうでないかは問いません) + の文字列表現を、この記法に含めることができます。 + 式は文字列の外部に現れるものと同じやり方で書くことができ、 + {} で囲みます。 + { はエスケープできないので、 + この記法は { のすぐ後に $ + が続く場合にのみ認識されます。 + {$ を使いたい場合は + {\$ と書くようにしてください。 + 以下の複数の例を見ると、わかりやすいでしょう: - + + {} による記法 'Indexed value', + 'const-key' => 'Key with minus sign', + 'foo' => ['foo1', 'foo2', 'foo3'] +]; + +// Won't work, outputs: This is { fantastic} echo "This is { $great}"; -// うまく動作します。出力: This is fantastic +// Works, outputs: This is fantastic echo "This is {$great}"; -// 動作します -echo "This square is {$square->width}00 centimeters broad."; +class Square { + public $width; + public function __construct(int $width) { $this->width = $width; } +} -// 動作します。クォートしたキーを使う場合は、波括弧構文を使わなければなりません -echo "This works: {$arr['key']}"; +$square = new Square(5); +// Works +echo "This square is {$square->width}00 centimeters wide."; -// 動作します -echo "This works: {$arr[4][3]}"; -// これが動作しない理由は、文字列の外で $foo[bar] -// が動作しない理由と同じです。 -// 言い換えると、これは動作するともいえます。しかし、 -// PHP はまず最初に foo という名前の定数を探すため、 -// E_NOTICE レベルのエラー(未定義の定数) となります。 -echo "This is wrong: {$arr[foo][3]}"; +// Works, quoted keys only work using the curly brace syntax +echo "This works: {$arr['key']}"; + -// 動作します。多次元配列を使用する際は、 -// 文字列の中では必ず配列を波括弧で囲むようにします。 -echo "This works: {$arr['foo'][3]}"; +// Works +echo "This works: {$arr[3][2]}"; -// 動作します -echo "This works: " . $arr['foo'][3]; +echo "This works: {$arr[DATA_KEY]}"; -echo "You can even write {$obj->values[3]->name}"; +// When using multidimensional arrays, always use braces around arrays +// when inside of strings +echo "This works: {$arr['foo'][2]}"; -echo "This is the value of the var named $name: {${$name}}"; +echo "This works: {$obj->values[3]->name}"; -echo "This is the value of the var named by the return value of getName(): {${getName()}}"; +echo "This works: {$obj->$staticProp}"; -echo "This is the value of the var named by the return value of \$object->getName(): {${$object->getName()}}"; +// Won't work, outputs: C:\directory\{fantastic}.txt +echo "C:\directory\{$great}.txt"; -// 動作しません。出力: This is the return value of getName(): {getName()} -echo "This is the return value of getName(): {getName()}"; +// Works, outputs: C:\directory\fantastic.txt +echo "C:\\directory\\{$great}.txt"; ?> ]]> - - - - - 文字列内で、変数を使ってクラスのプロパティにアクセスすることもできます。 - このような構文を使います。 - - - - - -$foo = new foo(); -$bar = 'bar'; -$baz = array('foo', 'bar', 'baz', 'quux'); -echo "{$foo->$bar}\n"; -echo "{$foo->{$baz[1]}}\n"; -?> -]]> - - &example.outputs; - - - - - - - {$} の内部における - 関数やメソッドのコール、静的クラス変数、クラス定数は、PHP 5 から動作します。 - しかし、アクセスする値は文字列が定義されたスコープにおける変数名として解釈します。 - ひとつの波括弧 ({}) では、 - 関数やメソッドの返り値、クラス定数や静的クラス変数の値にはアクセスできません。 - + + この記法を使うと任意の式が使えるので、 + 可変変数 + を使うこともできます。 + - - - - -]]> - - - - + 文字列への文字単位のアクセスと修正 @@ -814,13 +1032,17 @@ echo "I'd like an {${beers::$ale}}\n"; - $str{42} のように波括弧を使用してアクセスすることも可能です。 + PHP 8.0.0 より前のバージョンでは、 + $str{42} + のように波括弧を使用してアクセスすることもできました。 + この文法は PHP 7.4.0 以降は非推奨になり、 + PHP 8.0.0 以降はサポートされなくなっています。 - 範囲外のオフセットに書き込んだ場合は、空いた部分に空白文字が埋められます。 + 範囲外のオフセットに書き込んだ場合は、その地点まで空白文字で埋められます。 整数型以外の型は整数型に変換されます。 無効なオフセット形式を指定した場合は E_WARNING を発行します。 文字列を代入した場合は最初の文字だけを使用します。 @@ -854,78 +1076,70 @@ echo "I'd like an {${beers::$ale}}\n"; // 文字列の最初の文字を取得します $str = 'This is a test.'; $first = $str[0]; +var_dump($first); // 文字列の 3 番目の文字を取得します $third = $str[2]; +var_dump($third); // 文字列の最後の文字を取得します $str = 'This is still a test.'; -$last = $str[strlen($str)-1]; +$last = $str[strlen($str)-1]; +var_dump($last); // 文字列の最後の文字を変更します $str = 'Look at the sea'; $str[strlen($str)-1] = 'e'; - +var_dump($str); ?> ]]> - PHP 5.4 以降では、文字列のオフセットは整数あるいは整数と見なせる文字列に限られるようになりました。 - それ以外の場合は警告が発生します。以前のバージョンでは、たとえば - "foo" のようなオフセットを指定しても単に 0 にキャストされるだけでした。 + 文字列のオフセットは整数あるいは整数と見なせる文字列に限られます。 + それ以外の場合は警告が発生します。 - PHP 5.3 と PHP 5.4 の違い + 不正な文字列のオフセットの例 getMessage(), PHP_EOL; + } -var_dump($str['1x']); -var_dump(isset($str['1x'])); + echo PHP_EOL; +} ?> ]]> - &example.outputs.53; + &example.outputs; - - &example.outputs.54; - - @@ -941,10 +1155,19 @@ bool(false) - PHP 5.5 以降では、文字列リテラル内の文字に対して - []{} でアクセスできるようになりました。 + 文字列リテラル内の文字に対して + []{} でアクセスすることができます。 + + + + 文字列リテラル内の文字に対して、 + {} を使ってアクセスする機能は、 + PHP 7.4 で非推奨になり、PHP 8.0 で削除されました。 + + + @@ -988,21 +1211,21 @@ bool(false) 関数を使って変数を文字列へ変換することができます。 文字列型を必要とする式のスコープにおいて、文字列への変換は自動的に行われます。 echoprint 関数を使うとき、 - あるいは可変変数を文字列を比較するときにこの自動変換が行われます。 + あるいは変数を文字列と比較するときにこの自動変換が行われます。 マニュアルの型 と 型の相互変換 の項を読むとわかりやすいでしょう。 - settypeも参照してください。 + settypeも参照ください。 - boolean の &true; は文字列の "1" に、 + bool の &true; は文字列の "1" に、 &false; は "" (空文字列) に変換されます。 これにより boolean と文字列の値を相互に変換することができます。 - integer (整数) や浮動小数点数 (float) は + int (整数) や浮動小数点数 (float) は その数値の数字として文字列に変換されます (指数の表記や浮動小数点数を含めて)。 浮動小数点数は、指数表記 (4.1E+6) を使用して変換されます。 @@ -1010,7 +1233,9 @@ bool(false) - 小数点を表す文字は、スクリプトのロケール (LC_NUMERIC カテゴリ) + PHP 8.0.0 以降では、小数点を表す文字は常にピリオド (".") です。 + それより前のバージョンでは、 + スクリプトのロケール (LC_NUMERIC カテゴリ) によって決まります。 setlocale を参照ください。 @@ -1060,76 +1285,6 @@ bool(false) - - 文字列の数値への変換 - - - 数値として文字列が評価された時、結果の値と型は次のように定義されます。 - - - - 文字列の中に '.' や 'e'、'E' といった文字が含まれず、 - 数値が integer 型の範囲内 (PHP_INT_MAX - で定義されています) におさまる場合は - integer として評価されます。それ以外の場合は、すべて - float として評価されます。 - - - - 文字列の最初の部分により値が決まります。文字列が、 - 有効な数値データから始まる場合、この値が使用されます。その他の場合、 - 値は 0 (ゼロ) となります。有効な数値データは符号(オプション)の後に、 - 1 つ以上の数字 (オプションとして小数点を 1 つ含む)、 - オプションとして指数部が続きます。指数部は 'e' または 'E' の後に - 1 つ以上の数字が続く形式です。 - - - - - -]]> - - - - - この変換に関する詳細は、Unix のマニュアルページで - strtod(3) を参照ください。 - - - - 本節の例を試したい場合、その例をカットアンドペーストしてから - 動作を確認するために次の行を挿入してください。 - - - - -\n"; -?> -]]> - - - - - (C 言語で行われるように) 数値に変換することで - 一つの文字のコードを取得できると期待してはいけません。 - 文字と文字コードを相互に変換するには ord - および chr 関数を使用してください。 - - - - 文字列型の詳細 @@ -1200,15 +1355,6 @@ echo "\$foo==$foo; type is " . gettype ($foo) . "
\n"; 現在のロケール (setlocale を参照ください) を使うけれども、 処理はバイト単位で行う関数もあります。 - このタイプの関数は strcasecmp や - strtoupper そして ucfirst です。 - つまり、これらの関数はシングルバイトエンコーディングでしか使えず、 - さらにエンコーディングとロケールがマッチしていなければならないということです。 - たとえば、strtoupper("á") が正しく "Á" - を返すには、ロケールを正しく設定したうえで á - をシングルバイトで符号化しておかなければなりません。仮に UTF-8 を使っていたとすると、 - 正しい結果は返されないでしょう。さらに、現在のロケール設定によっては - 返される文字列が壊れてしまう可能性もあります。 @@ -1218,16 +1364,14 @@ echo "\$foo==$foo; type is " . gettype ($foo) . "
\n"; intl の関数や PCRE の関数 (u 修飾子を使う場合のみ) - の多くがこのタイプになります。また、その関数の目的上、 - utf8_decode 関数は入力が UTF-8 であることを前提とし、 - utf8_encode 関数は入力が ISO-8859-1 であることを前提としています。 + の多くがこのタイプになります。
結局、Unicode を使うプログラムをきちんと書くには、 - うまく動かない関数の使わないよう注意するしかないということです。 + うまく動かない関数を使わないよう注意するしかないということです。 特にデータを破壊してしまう可能性のある関数の使用は避け、 きちんと動作する関数を使うようにしましょう。 intl や diff --git a/language/types/type-juggling.xml b/language/types/type-juggling.xml index 42e7d83f80..71d46dd203 100644 --- a/language/types/type-juggling.xml +++ b/language/types/type-juggling.xml @@ -1,185 +1,386 @@ - - + 型の相互変換 - PHP は、変数定義時に明示的な型定義を必要と(または、サポート) - しません。ある変数の型は、その変数が使用される文により定義されます。 - これは、ある文字列を変数 var に代入した場合には、 - var は文字列になることを意味しています。 - ある整数値を var に代入した場合には、 - その変数は整数になります。 + PHP は変数宣言時に明示的な型定義を必要としません。 + 型を定義しない場合、変数の型は保存する値によって決まります。 + これは、変数 $var に文字列を代入した場合、 + $var の型は文字列 (string) + になることを意味しています。 + その後、整数値を $var に代入すると、 + その変数の型は整数 (int) になります。 - PHP の自動型変換の例の一つは、乗算演算子 '*' です。 - オペランドのどれかが float の場合、全てのオペランドは float - として評価され、結果は float になります。 - その他の場合、オペランドは整数として解釈され、結果も整数になります。 - この自動型変換は、 - オペランド自体の型を変更するものではないということに注意してください。 - 変わるのは、オペランドがどのように評価されるかだけです。 + コンテクスト(文脈)によっては、 + PHP が値を別の型に自動変換しようとすることがあります。 + 自動変換が行われる異なるコンテクストが存在するのは、以下のとおりです: + + + 数値のコンテクスト + + + 文字列のコンテクスト + + + 論理コンテクスト + + + 整数と文字列のコンテクスト + + + 比較のコンテクスト + + + 関数のコンテクスト + + - - - -]]> - - - + + このコンテクストでは、 + オペランドのどちらかが float + (または整数と解釈できない場合) の場合か、 + 両方のオペランドが float の場合、 + 結果の型は float になります。 + そうでない場合、オペランドは整数として解釈され、 + 結果の型も整数になります。 + PHP 8.0.0 以降では、いずれかのオペランドが解釈できない場合、 + TypeError がスローされます。 + +
- - 最後の二つの例が奇妙に思える場合には、 - 文字列変換 - を参照ください。 - + + 文字列のコンテクスト - - ある変数を強制的にある特定の型として評価させたい場合には、 - 型キャスト - のセクションを参照ください。ある変数の型を変更したい場合には、 - settype を参照してください。 - - - 本節の例をテストしたい場合には、 - var_dump を使用することが可能です。 - + + これは、 + echo, + print や + 文字列中の変数のパース、または + 文字列演算子 + を使った場合です。 + - - - 配列への自動変換の動作は現時点で定義されていません。 - + + 値は文字列として解釈されます。 + 文字列として解釈できない場合、 + TypeError がスローされます。 + PHP 7.4.0 より前のバージョンでは、 + E_RECOVERABLE_ERROR が発生していました。 + + + + + 論理コンテクスト + + + これは、 + 制御構文や + 三項演算子, + 論理演算子 + を使った場合です。 + + + + 値は論理値 (bool) として解釈されます。 + + + + + 整数と文字列のコンテクスト + + + これは、 + ビット演算子 + を使った場合です。 + + + + 全てのオペランドが文字列の場合、 + 結果の型も文字列になります。 + そうでない場合、 + オペランドは整数として解釈され、 + 結果の型も整数になります。 + PHP 8.0.0 以降では、いずれかのオペランドが解釈できない場合、 + TypeError がスローされます。 + + + + + 比較のコンテクスト + + + これは、 + 比較演算子 + を使った場合です。 + + + + このコンテクストで発生する型変換については、 + さまざまな型の比較表 + に説明があります。 + + + + + 関数のコンテクスト + + + これは、値が型付きの引数、型付きプロパティに渡された場合や、 + 戻り値の型を宣言している関数から値が返される場合です。 + - また、PHP では配列の添字と同じ構文を使用した文字列へのアクセスをサポートしているので、 - 次の例はあらゆるバージョンの PHP で成立します。 + このコンテクストでは、値はその型の値でなければなりません。 + これにはふたつ例外があります。 + ひとつめは値の型が int で、 + 宣言されている型が float の場合、 + 整数が浮動小数点に変換されることです。 + ふたつめは型が スカラー型、 + または値がスカラー型に変換可能な場合で、 + + かつ型の自動変換モードが有効な場合(デフォルト)、 + スカラー型の値だけが別の変換可能なスカラー型に変換される可能性があることです。 + この振る舞いに関する詳細は、以下を参照ください: - - + + + 内部関数 は、&null; を自動的にスカラー型に変換します。 + この振る舞いは PHP 8.1.0 以降は 推奨されなくなっています。 + + + + + 単一の型宣言における、型の自動変換 + + + + 論理型(bool) が宣言されている場合: 値は bool として解釈されます。 + + + + + 整数型 (int) が宣言されてい場合: int への変換が定義されている場合は、int として解釈されます。たとえば、文字列が 数値形式 である場合です。 + + + + + float が宣言されている場合: float への変換が定義されている場合は、float として解釈されます。たとえば、文字列が 数値形式 である場合です。 + + + + + 文字列 (string) 型として宣言されている場合: 値は文字列として解釈されます。 + + + + + + + union 型と型の自動変換 + + strict_types が有効になっていない場合、 + スカラー型の宣言は、限られた暗黙の型変換が行われます。 + 値の正確な型が union の一部に指定されていない場合、 + 次の順に対象となる型が選択されます: + + + + + int + + + + + float + + + + + string + + + + + bool + + + + + 正確な型が union の中に存在し、 + かつ値が PHP の既存の型チェックのセマンティクスによって型変換できる場合、 + その型が選択されます。 + そうでない場合、次の型を試そうとします。 + + + + + 例外として、値が文字列で、int と float が union に含まれていた場合、 + 型は既存の 数値形式の文字列 を解釈するセマンティクスによって決まります。 + たとえば、"42" の場合、 + int が選ばれますし、 + "42.0" の場合、float が選ばれます。 + + + + + + 上のリストに入っていない型については、 + 暗黙の型変換が行われる対象ではありません。 + 特に、暗黙のうちに + null, false, true + に変換されることはありません。 + + + + + union の型のひとつに変換される例 + 42 // 正確に型が一致 +"42" --> "42" // 正確に型が一致 +new ObjectWithToString --> "Result of __toString()" + // オブジェクトは int と互換性がないので、文字列にフォールバック +42.0 --> 42 // float は int と互換性がある +42.1 --> 42 // float は int と互換性がある +1e100 --> "1.0E+100" // int には大きすぎる float なので、文字列にフォールバック +INF --> "INF" // int には大きすぎる float なので、文字列にフォールバック +true --> 1 // bool は int と互換性がある +[] --> TypeError // 配列はint, string と互換性はない。 +// int|float|bool +"45" --> 45 // int の数値形式の文字列 +"45.0" --> 45.0 // float の数値形式の文字列 +"45X" --> true // 数値形式の文字列ではない。boolにフォールバック +"" --> false // 数値形式の文字列ではない。boolにフォールバック +"X" --> true // 数値形式の文字列ではない。boolにフォールバック +[] --> TypeError // 配列はint, float, bool と互換性はない。 ?> ]]> - - + + + - - 詳細は、 - 文字として文字列をアクセスするというセクションを参照してください。 - - + 型キャスト - - PHP の型キャストは、C 言語と同様に動作します。つまり、 - 変換しようとする型を括弧で括り、キャストする変数の前に置きます。 - + + 型キャストは、変換しようとする型の名前を括弧で括り、 + キャストする変数の前に置くことで、値を別の型に変換するものです。 + - + + 型キャストの例 ]]> - + - - 使用可能なキャストを以下に示します。 - + + 使用可能なキャストを以下に示します: + - - - (int), (integer) - 整数へのキャスト - - - (bool), (boolean) - 論理値へのキャスト - - - (float), (double), (real) - float へのキャスト - - - (string) - 文字列へのキャスト - - - (array) - 配列へのキャスト - - - (object) - オブジェクトへのキャスト - - - (unset) - NULL へのキャスト - - + + (int) - 整数(int) へのキャスト + (bool) - 論理値(bool) へのキャスト + (float) - float へのキャスト + (string) - 文字列(string) へのキャスト + (array) - 配列(array) へのキャスト + (object) - オブジェクト(object) へのキャスト + (unset) - NULL へのキャスト + - - (binary) によるキャストや b プレフィックスのサポートは、PHP 5.2.1 で追加されました。 - (binary) によるキャストは本質的には (string) - と同じですが、それに依存すべきではありません。 - + + + (integer) は、(int) のエイリアスです。 + (boolean) は、(bool) のエイリアスです。 + (binary) は、(string) のエイリアスです。 + (double)(real) は、(float) のエイリアスです。 + これらのキャストは、正規化された型の名前を使っていません。そのため使うこと自体がおすすめできません。 + + - - (unset) によるキャストは PHP 7.2.0 以降推奨されなくなりました。 - (unset) によるキャストは、値に NULL - 値を代入することと同じです。 - (unset) によるキャストは、PHP 8.0.0 で削除される予定です。 - + + + キャストのエイリアス (real) を使うことは、PHP 7.4.0 以降は推奨されなくなり、PHP 8.0.0 で削除されました。 + + - - 括弧の中でタブとスペースを使用することができることに注意してください。 - したがって、次の文は機能的に等価です。 - - - - + + + (unset) によるキャストは、 + PHP 7.2.0 以降推奨されなくなりました。 + (unset) によるキャストは、 + 値に NULL 値を代入することと同じです。 + (unset) によるキャストは、PHP 8.0.0 で削除されました。 + + + + + + 将来サポートされることを見越して、(binary) によるキャストと b プレフィックスが存在しています。 + (binary)(string) は現状は等価ですが、将来変更される可能性があります。そのため、現状等価であることに依存すべきではありません。 + + + + + + キャストの括弧内のホワイトスペースは無視されます。 + よって、以下のふたつのキャストは等価です: + + ]]> - - - - リテラル文字列や変数を、バイナリ文字列にキャストします。 + + + + + + + 以下の例は、リテラル文字列や変数を、バイナリ文字列にキャストします: + - - - ある変数を文字列にキャストする代わりに、 - 二重引用符で括ることもできます。 - + + + ある変数を文字列にキャストする代わりに、 + 二重引用符で括ることもできます。 + - - + + 異なるキャストの仕組み + ]]> - - - + + 型の間でキャストを行う際の動作は、必ずしも明確ではありません。 - 詳細については、以下の節を参照ください。 + 詳細については、以下の節を参照ください: + + 論理値への変換 + 整数への変換 + 浮動小数点数への変換 + 文字列への変換 + 配列への変換 + オブジェクトへの変換 + リソース型への変換 + NULL への変換 + 型の比較表 + - - - - - 論理値への変換 - - - - - 整数への変換 - - - - - 浮動小数点数への変換 - - - - - 文字列への変換 - - - - - 配列への変換 - - - - - オブジェクトへの変換 - - - - - リソース型への変換 - - - - - NULL への変換 - - - - - 型の比較表 - - - + + + PHP では配列の添字と同じ構文を使用した文字列へのアクセスをサポートしているので、次の例はあらゆるバージョンの PHP で成立します: + + + + 文字列で配列の添字を使う + + +]]> + + + + + 詳細は、 + 文字列への文字単位のアクセス を参照ください。 + + +
- + + + 型システム + + + PHP は部分型の関係を満たしつつ(behavioral subtyping)、 + 名前ベースで一致を調べる型システム(nominal type system) を採用しています。 + 部分型の関係はコンパイル時にチェックされますが、 + 型の検証は実行時に動的に行われます。 + + + + PHP の型システムは、様々な基本型(atomic type)をサポートしており、 + それらを組み合わせてより複雑な型を作ることができます。 + そうした複雑な型の一部については、 + 型宣言 時に記述できます。 + + + + 基本型 + + 基本型の一部は言語に強く統合されている組み込み型であり、 + ユーザー定義の型として再現できません。 + + + + 基本型の一覧は以下になります: + + + 組み込みの型 + + + + スカラー型: + + + + 論理値(bool) + + + 整数(int) + + + 浮動小数点数(float) + + + 文字列(string) + + + + + 配列(array) + + + オブジェクト(object) + + + リソース(resource) + + + never + + + void + + + + クラス内での関係を示す相対型: + self, parent, static + + + + + シングルトン型 + + + + false + + + true + + + + + + Unit 型 + + + + null + + + + + + + + ユーザー定義型 (一般的に、クラス型とも呼びます) + + + + インターフェイス + + + クラス + + + 列挙型(Enum) + + + + + callable + + + + + + スカラー型 + + 値が int, float, string, + bool のうちのひとつの場合、スカラーとみなされます。 + + + + + ユーザー定義型 + + インターフェイス, + クラス, + 列挙型(Enum) + を使うと、カスタムの型を定義することができます。 + これらはユーザー定義型、またはクラス型と見なせます。 + たとえば、Elephant というクラスを定義することができます。 + さらに、Elephant 型のオブジェクトをインスタンス化できます。 + そして、関数は Elephant 型のパラメータをリクエストできます。 + + + + + + 複合型 + + 複数の基本型を組み合わせて、複合型を作ることができます。 + PHP では、次のやり方で型を組み合わせることができます: + + + + + + (インターフェイスやクラスの)交差型 + + + + + union 型 + + + + + + 交差型 + + 交差型 は、宣言した複数のクラス型を(単一ではなく) + すべて満たす値を受け入れることができます。 + 交差型を構成する個別の型は、& 記号で結合します。 + よって、型 T, U, + V の交差型は T&U&V と書きます。 + + + + + union 型 + + union 型は、ひとつではなく、 + 複数の異なる型を値として受け入れることができます。 + union 型を構成する個別の型は、| 記号で結合します。 + よって、型 T, U, + V の union 型は T|U|V と書きます。 + 型のひとつが交差型の場合、DNF で記すために + 括弧で囲む必要があります。 + つまり、T|(X&Y) と書く必要があります。 + + + + + + 型のエイリアス + + + PHP は型のエイリアスをふたつサポートしています。 + mixediterable です。 + それぞれ、 + union 型 + object|resource|array|string|float|int|bool|null + と、Traversable|array に対応します。 + + + + + PHP は、ユーザー定義の型のエイリアスはサポートしていません。 + + + + + + diff --git a/language/types/void.xml b/language/types/void.xml new file mode 100644 index 0000000000..e6c2ad00b7 --- /dev/null +++ b/language/types/void.xml @@ -0,0 +1,40 @@ + + + + + Void + + + void は、関数が値を返さないことを示す、 + 戻り値のみで指定できる型ですが、関数を終了させても構いません。 + よって、この型は union 型 の一部として指定することが出来ません。 PHP 7.1.0 以降で利用できます。 + + + + + 戻り値の型が void である関数であっても、 + 値を返すことはできます。その場合には、戻り値は常に &null; になります。 + + + + + diff --git a/language/variables.xml b/language/variables.xml index f4bcd3d528..cdda256161 100644 --- a/language/variables.xml +++ b/language/variables.xml @@ -1,62 +1,100 @@ - + 変数 基本的な事 - + PHP の変数はドル記号の後に変数名が続く形式で表されます。 変数名は大文字小文字を区別します。 - 変数名は、PHPの他のラベルと同じルールに従います。 - 有効な変数名は文字またはアンダースコアから始まり、任意の数の文字、 - 数字、アンダースコアが続きます。正規表現によれば、これは次の + 変数名は、文字 + (A-Z, a-z, + 128から255 までのバイト) で始まり、 + 任意の数の文字、 + 数字、アンダースコアが続きます。正規表現を使うと、これは次の ように表現することができます。 ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$ - + - ここで言うところの文字とはa-z、A-Z、128から255まで - (0x80-0xff)のバイトを意味します。 + PHP は Unicode の変数名はサポートしていませんが、 + (UTF-8のような)文字エンコーディングによっては、 + マルチバイト文字の全てのバイトを可能な範囲にまでエンコードする場合があり、 + その結果正しい変数名になる場合があります。 $this は特別な変数であり、ここに代入することはできません。 + PHP 7.1.0 より前のバージョンでは、 + (可変変数 を使った) + 間接的な代入 が可能でした。 &tip.userlandnaming; - - 変数関連の関数に関する情報については、 - 変数関数リファレンス - を参照ください。 - - - - - + + 有効な変数名 + ]]> - - - + + + + + 無効な変数名 + + + + + + + PHP は、任意のバイトの連続を変数名として受け入れます。 + 既に述べたルールに従わない変数名は、実行時にのみ動的にアクセスできます。 + アクセスする方法については + 可変変数 + を参照ください。 + + + + 曖昧な変数名にアクセスする + + +]]> + + &example.outputs; + + + + デフォルトでは、変数に代入されるのは常にその値です。 @@ -95,7 +133,7 @@ echo $foo; // $fooも変更される。 - 注意すべき重要な点として、名前のある変数のみが参照により代入できる + 注意すべき重要な点として、変数のみが参照により代入できる ということがあります。 @@ -109,114 +147,98 @@ function test() { return 25; } -$bar = &test(); // 無効。 +$bar = &test(); // 無効。なぜなら、リファレンスで値を返していないからです。 ?> ]]> - - + - PHP では変数を初期化する必要はありませんが、そのようにするのはとてもよいことです。 - 初期化されていない変数の値は、状況に応じたその型のデフォルト値 - - boolean なら &false;、integer や float ならゼロ、 - 文字列 (echo で使う場合など) - なら空の文字列、配列なら空の配列となります。 + PHP では変数を初期化する必要はありませんが、 + そうするのはとてもよいことです。 + 初期化されていない場合、 + E_WARNING + (PHP 8.0.0 より前のバージョンでは E_NOTICE) + が発生します。 + 未定義の変数は、デフォルト値 &null; を持ちます。 + 変数が既に初期化済みかどうかを検知するには、 + 言語構造 isset が使えます。 - 初期化されていない変数のデフォルト値 + 未初期化の変数のデフォルト値 25 -var_dump($unset_int); - -// float/double として使用すると、出力は 'float(1.25)' となります -$unset_float += 1.25; -var_dump($unset_float); - -// 配列として使用すると、出力は array(1) { [3]=> string(3) "def" } となります -$unset_arr[3] = "def"; // array() + array(3 => "def") => array(3 => "def") -var_dump($unset_arr); - -// オブジェクトとして使用し、新しい stdClass オブジェクト (http://www.php.net/manual/ja/reserved.classes.php を参照ください) -// を作成すると、出力は object(stdClass)#1 (1) { ["foo"]=> string(3) "bar" } となります -$unset_obj->foo = 'bar'; -var_dump($unset_obj); ?> ]]> + &example.outputs; + + + - + + + PHP は、未定義の変数からの配列の autovivification + (新しい配列の自動生成) を許可しています。 + 未定義の変数に要素を追加する操作は、 + 新しい配列を生成し、警告は発生しません。 + + + 未定義の変数から配列を自動生成する + + +]]> + + + + + 初期化されていない変数のデフォルト値に依存すると、そのファイルを - include している別のファイルで同名の変数が使用されていた場合などに - 問題を起こします。また、register_globals - が on の場合には重大なセキュリティリスク - を抱えることになります。初期化されていない変数を使用すると、 - E_NOTICE レベルのエラーが発生します。 - しかし、初期化されていない配列に要素を追加する場合はエラーにはなりません。 - 変数が初期化されているかどうかの判断には、isset - を使用します。 - + include している別のファイルで同名の変数が使用されていた場合に問題を起こします。 + + + + + 変数は、言語構造 + unset + を使って破棄できます。 + + + + 変数に関連した関数については、 + 関数リファレンス + を参照ください。 + - + 定義済みの変数 - PHPは、実行する全てのスクリプトに定義済みの多くの変数を - 提供します。しかし、これらの変数の多くは、 - 実行するサーバーの種類、サーバーのバージョンおよび設定、 - その他の要素に依存しており、完全に記述することはできません。 - これらの変数のいくつかは、PHPを - コマンドライン - で実行した場合には利用できません。 - これらの変数の一覧については、 - 予約済みの定義済みの変数 - のセクションを参照してください。 - - - + PHPは、多くの + 定義済みの変数 を提供します。 PHP には、(使用する場合)Webサーバー、環境変数、 ユーザー入力からの変数を値とする定義済みの配列が追加されています。 - これらの配列は、自動グローバル、すなわち、自動的に全ての - スコープで利用可能であるという点でかなり特別です。このため、これらは + これらの配列は、自動的に全ての + スコープで利用可能です。このため、これらは "スーパーグローバル" といわれることもあります。 (PHPには、ユーザー定義のスーパーグローバルという機構はありません。) - スーパーグローバルのリストは、ここ - から見ることが出来ます。 - しかし、これらの内容のリストおよび定義済みのPHP変数とそれらの特性に - 関する更なる議論については、 - 定義済みの予約変数の - セクションを参照してください。 + スーパーグローバルの一覧 も参照ください。 - - - PHP 5.4 - より前のバージョンでは、HTTPリクエストに関する情報を取得する古い方法として、 - スーパーグローバルの代わりに HTTP_*_VARS 変数がまだ利用可能でした。 - これらの機能は PHP 5.0.0 以降では、register_long_arrays - iniディレクティブ を使って無効にすることが可能でした。 - - - 可変変数 @@ -236,46 +258,57 @@ var_dump($unset_obj); 変数のスコープ - 変数のスコープは、その変数が定義されたコンテキストです。ほとんどの - PHP 変数は、スコープを1つだけ有しています。このスコープの範囲は、 - includeやrequireにより読みこまれたファイルも含みます。例えば、 + 変数のスコープは、その変数が定義されたコンテキストです。 + PHP には関数スコープとグローバルスコープがあります。 + 関数の外部で定義されたあらゆる変数は、グローバルスコープになります。 + ファイルが include された場合、 + そのファイルに含まれるコードは、 + include が行われた行の変数のスコープを引き継ぎます。 - + + グローバル変数のスコープの例 ]]> - + - この例で、変数$aはインクルードされた - b.inc スクリプトの中でも利用可能です。しかし、 - ユーザー定義の関数の中では変数の有効範囲はローカル関数の中となりま - す。関数の中で使用された変数はデフォルトで有効範囲が関数内部に制限 - されます。例えば、 + 名前付きの関数や + 無名関数 + の内部で作られた変数は、関数の内部のスコープでのみ使えます。 + しかし、アロー関数 + は親のスコープの変数を内部で利用できるようにするために、 + 変数をバインドします。 + ファイルの include が呼び出し側のファイルで発生した場合、 + 呼び出されたファイルに含まれる変数は、 + 関数を呼び出す内部で定義されたかのように利用できます。 - + + ローカル変数のスコープ ]]> - + - このスクリプトは、出力を全く行いません。これは、echo 命令がローカ - ル版の $a 変数を参照しているにもかかわらず、こ + このスクリプトは、未定義の変数があるという E_WARNING + (PHP 8.0.0 より前のバージョンでは E_NOTICE) + を生成します。 + これは、echo 命令がローカル版の + $a 変数を参照しているにもかかわらず、こ のスコープでは値が代入されていないからです。この動作は、特にローカ ルな定義で上書きしない限りグローバル変数が自動的に関数で使用可能で ある C 言語と少々異なっていると気がつかれるかもしれません。C言語の @@ -287,7 +320,12 @@ test(); <literal>global</literal> キーワード - まず、globalの使用例を示します。 + global キーワードは + グローバルスコープの変数をローカルスコープにバインドするために使います。 + このキーワードは変数のリストや、単一の変数を指定できます。 + グローバル変数と同じ名前の変数を参照するローカル変数が作られます。 + グローバル変数が存在しない場合、グローバルスコープの変数が作られ、 + &null; が代入されます。 @@ -310,11 +348,17 @@ echo $b; ?> ]]> + &example.outputs; + + + - 上のスクリプトは、3 を出力します。関数の内部で + 関数の内部で $a$b をグローバル宣言を行うことにより、両変数への参照は、グローバル変数 の方を参照することになります。ある関数により操作できるグローバル変 @@ -372,24 +416,24 @@ function test_superglobal() - + global キーワードを関数の外部で使ってもエラーにはなりません。 そのファイルが関数の内部からインクルードされたときに使うことができます。 - + - 静的変数の使用 + static 変数の使用 - 変数のスコープに関する別の重要な機能は、静的 - (static) 変数です。静的変数はローカル関数スコープのみに + 変数のスコープに関する別の重要な機能は、static (静的) + 変数です。static 変数はローカル関数スコープのみに 存在しますが、プログラム実行がこのスコープの外で行われるようになっ - てもその値を失わないません。次の例を見てください。 + てもその値を失いません。次の例を見てください。 - 静的変数が必要な場面の例 + static 変数が必要な場面の例 $aが消えてしまうために目的を達成しません。現在 のカウントの追跡ができるようにカウント関数を使用できるようにするた - めには、変数$aをstaticとして宣言します。 + めには、変数$aを static として宣言します。 - 静的変数の使用例 + static 変数の使用例 - static変数は、再帰関数を実現する1つの手段としても使用されます。再帰 - 関数は、自分自身をコールする関数です。再帰関数を書くときには、無限 - に再帰を行う可能性があるため、注意する必要があります。適当な方法に - より再帰を確実に終了させる必要があります。次の簡単な関数は、中止す + static 変数は、再帰関数を実現する1つの手段としても使用されます。 + 次の簡単な関数は、中止す るタイミングを知るためにstatic変数$countを用いて、 10 回まで再帰を行います。 - 再帰関数での静的変数の使用 + 再帰関数でのstatic変数の使用 - - - 静的変数は、上の例に見られるような方法で宣言されます。 - PHP 5.6 以降は、これらの変数に式の結果の値を代入できます。 - しかし関数は使えません。関数を使おうとするとパースエラーが発生します。 - - - - 静的変数の宣言 - + + PHP 8.3.0 より前のバージョンでは、 + static 変数には、定数式でのみ初期化できていました。 + PHP 8.3.0 以降では、動的な式(例: 関数呼び出し) での初期化も許可されています。 + + + + static 変数の宣言 + ]]> - - - - - - - 静的な宣言は、コンパイル時に解決されます。 - - + + + + + + 無名関数の内部にある static 変数は、 + その特定の関数のインスタンス内でのみ生き残ります。 + コールされるたびに無名関数が再作成される場合、 + static 変数は再初期化されます。 + + + 無名関数の内部にある static 変数 + + +]]> + + + + + (オーバーライドされていない場合) + 内部でstatic 変数を使ったメソッドも継承されます。 + PHP 8.1.0 以降は、継承されたメソッドは、 + 親クラスのメソッドとstatic 変数を共有するようになりました。 + つまり、メソッド内でのstatic 変数も、 + static プロパティと同じ振る舞いになったということです。 + + + + PHP 8.3.0 以降では、static 変数は任意の式で初期化できるようになりました。 + これはたとえば、メソッドをコールすることでも、 + static 変数を初期化できるようになったということです。 + + + + 継承されたメソッドのstatic 変数を使う + + +]]> + + - グローバル変数と静的変数のリファレンス + グローバル変数とstatic 変数のリファレンス PHP は、 リファレンス @@ -522,13 +624,13 @@ function foo(){ 類似の動作がstatic命令にも適用されます。 - リファレンスは静的に保存することができません。 + リファレンスはstaitc 変数に保存することができません。 @@ -566,7 +668,7 @@ function &get_instance_ref() { echo 'Static object: '; var_dump($obj); if (!isset($obj)) { - $new = new stdclass; + $new = new stdClass; // Assign a reference to the static variable $obj = &$new; } @@ -584,7 +686,7 @@ function &get_instance_noref() { echo 'Static object: '; var_dump($obj); if (!isset($obj)) { - $new = new stdclass; + $new = new stdClass; // Assign the object to the static variable $obj = $new; } @@ -676,7 +778,7 @@ $$a = 'world'; ]]> @@ -720,14 +822,6 @@ echo "$a $hello"; $bar が配列へのアクセスであっても同じです。 - - - 可変プロパティが配列である場合の解決方法が、PHP 5 と PHP 7 では異なります。 - PHP 7.0 移行ガイド - に、変更点の詳細をまとめました。また、波括弧を使って曖昧さを除去する方法も示します。 - - - 波括弧を使って、プロパティ名の区切りを明確にすることもできます。 これが特に有用なのは、配列が格納されているプロパティにアクセスするときや @@ -744,15 +838,15 @@ echo "$a $hello"; $bar . "\n"; echo $foo->{$baz[1]} . "\n"; @@ -761,17 +855,20 @@ $end = 'ar'; echo $foo->{$start . $end} . "\n"; $arr = 'arr'; -echo $foo->{$arr[1]} . "\n"; +echo $foo->{$arr}[1] . "\n"; ?> ]]> &example.outputs; + @@ -816,7 +913,7 @@ I am r. - PHP 5.4.0 以降、HTML フォームからデータにアクセスする方法は二種類だけとなります。 + HTML フォームからデータにアクセスする方法は二種類だけしかありません。 現在使える方法を、以下にまとめます。 @@ -834,32 +931,6 @@ echo $_REQUEST['username']; - - 古いバージョンの PHP では、これら以外にもユーザーの入力にアクセスする方法がありました。 - それを以下にまとめます。詳細は、最後の変更履歴を参照ください。 - - ユーザーの入力にアクセスするための古い方法 - - -]]> - - - - GETフォームを使用した場合も同じですが、かわりに適当な定義済みの GET変数を使用するところが異なります。 @@ -881,7 +952,7 @@ echo $_REQUEST['username']; PHPではフォーム変数のコンテキスト内で配列が使用可能です(FAQの関連箇所も参照してください)。 + linkend="faq.html">FAQの関連箇所も参照ください)。 例えば、関連する変数をグループ化したり、select inputで複数の値を 取得するといったことが可能です。フォームを同じスクリプトに投稿し、 投稿したデータを表示する例を示します。 @@ -890,7 +961,7 @@ echo $_REQUEST['username']; より複雑なフォーム変数 - + $_COOKIE のような適当なCookieデータ 配列で参照可能です。また、 $_REQUESTでも 参照可能です。詳細および例については、 - setcookieのマニュアルページを参照してください。 + setcookieのマニュアルページを参照ください。 + + + セキュリティ上の理由により、 + PHP 7.2.34, 7.3.23, 7.4.11 以降では、外部から入力される Cookie の 名前 + はurlデコードされなくなりました。 + + + 単一のCookieに複数の値を代入したい場合は、配列として 代入することが可能です。以下に例を示します。 @@ -1094,21 +1173,10 @@ $varname.ext; /* 無効な変数名 */ - 5.4.0 - - グローバル変数の登録機能、 - マジッククォートおよび - register_long_arrays - が削除されました。 - - - - 5.3.0 + 7.2.34, 7.3.23, 7.4.11 - グローバル変数の登録機能、 - マジッククォートおよび - register_long_arrays - が非推奨となりました。 + セキュリティ上の理由により、外部から入力される Cookie の + 名前 はurlデコードされなくなりました。 diff --git a/language/wrappers/audio.xml b/language/wrappers/audio.xml index 7a80efdbf0..51dfd38293 100644 --- a/language/wrappers/audio.xml +++ b/language/wrappers/audio.xml @@ -1,9 +1,9 @@ - + - + ogg:// オーディオストリーム @@ -32,7 +32,7 @@ このラッパーはデフォルトでは有効になっていません ogg:// ラッパーを使用するには、 - PECL から + &link.pecl; から OGG/Vorbis 拡張モジュールを インストールする必要があります。 @@ -171,10 +171,6 @@ - - &reftitle.examples; - - - + - + zlib:// bzip2:// @@ -115,6 +115,12 @@ + + &reftitle.seealso; + + + + - - + + - + data:// データ (RFC 2397) @@ -12,9 +12,9 @@ &reftitle.description; + data: (RFC - 2397) ストリームラッパーは、 PHP 5.2.0 - 以降で使用可能です。 + 2397) ストリームラッパーです。 @@ -40,7 +40,7 @@ allow_url_fopen で制約される - No + Yes allow_url_include で制約される diff --git a/language/wrappers/expect.xml b/language/wrappers/expect.xml index aceb9f06c5..3f777f381e 100644 --- a/language/wrappers/expect.xml +++ b/language/wrappers/expect.xml @@ -1,9 +1,9 @@ - + - + expect:// 対話的プロセスストリーム @@ -20,7 +20,7 @@ このラッパーはデフォルトでは有効となっていません。 expect:// ラッパーを使用するには、 - PECL にある + &link.pecl; にある Expect 拡張モジュールを インストールする必要があります。 @@ -94,10 +94,6 @@ - - &reftitle.examples; - - - + - + file:// ローカルファイルシステムへのアクセス @@ -12,13 +12,23 @@ &reftitle.description; - PHP で使用されるデフォルトのラッパーは Filesystem で、 + file:// is the default wrapper used with PHP and + represents the local filesystem. + When a relative path is specified (a path which does not begin with + /, \, \\, or a + Windows drive letter) the path provided will be applied against the current + working directory. In many cases this is the directory in which the script + resides unless it has been changed. Using the CLI + SAPI, this defaults to the directory from which the + script was called. + + PHP で使用されるデフォルトのラッパーは file:// で、 これはローカルファイルシステムを表します。 - 相対パス(/, \, \\,または Windows のドライブ文字で始まらないパス)が指定された場合、 + 相対パス(/, \, \\, または Windows のドライブ文字で始まらないパス)が指定された場合、 指定されたパスは、現在の作業ディレクトリに対して適用されます。 多くの場合、これは、スクリプトがあるディレクトリです。ただし、カレントディレクトリが 変更されている場合を除きます。 - CLI SAPI を使用した場合、このデフォルトはスクリプトがコールされたディレクトリとなります。 + CLI SAPI を使用した場合、このデフォルトはスクリプトがコールされたディレクトリとなります。 fopenfile_get_contents diff --git a/language/wrappers/ftp.xml b/language/wrappers/ftp.xml index 86ebf026dd..98b48128c3 100644 --- a/language/wrappers/ftp.xml +++ b/language/wrappers/ftp.xml @@ -1,9 +1,9 @@ - + - + ftp:// ftps:// @@ -79,10 +79,9 @@ stat のサポート - filesize、 + filesizefilemtimefiletypefile_exists、 - is_file および is_dir のみ。 - PHP 5.1.0 以降: filemtime。 + is_fileis_dir のみ。 diff --git a/language/wrappers/glob.xml b/language/wrappers/glob.xml index c71c5ac4c3..44824da4b1 100644 --- a/language/wrappers/glob.xml +++ b/language/wrappers/glob.xml @@ -1,9 +1,9 @@ - - + + - + glob:// パターンにマッチするパス名の検索 @@ -12,7 +12,8 @@ &reftitle.description; - glob: ストリームラッパーは PHP 5.3.0 以降で使用可能です。 + + glob: ストリームラッパーは、パターンにマッチするパス名の探索が行なえます。 diff --git a/language/wrappers/http.xml b/language/wrappers/http.xml index d7a00c8c8a..7b9ff59e99 100644 --- a/language/wrappers/http.xml +++ b/language/wrappers/http.xml @@ -1,9 +1,9 @@ - + - + http:// https:// @@ -13,8 +13,9 @@ &reftitle.description; - HTTP 1.0 により HTTP GET メソッドを用いてファイル/リソースに読み込みのみの - アクセスが可能です。仮想ホストにホスト名でアクセスするために、 + HTTP GET メソッドを用いて、 + ファイル/リソースに対する読み取り専用のアクセスが可能です。 + 仮想ホストにホスト名でアクセスするために、 Host: ヘッダが送信されます。 &php.ini; ファイルまたはストリームコンテキストによって user_agent 文字列を設定している場合、 diff --git a/language/wrappers/phar.xml b/language/wrappers/phar.xml index 2dcd0b4d81..cae4c99c18 100644 --- a/language/wrappers/phar.xml +++ b/language/wrappers/phar.xml @@ -1,9 +1,9 @@ - - + + - + phar:// PHP アーカイブ @@ -11,9 +11,10 @@ &reftitle.description; + - phar:// ストリームラッパーは PHP 5.3.0 以降で使用可能です。 - 詳細は Phar ストリームラッパー + phar:// ストリームラッパーに関する詳細は + Phar ストリームラッパー を参照ください。 diff --git a/language/wrappers/php.xml b/language/wrappers/php.xml index 4e034a1606..1eacf2ed27 100644 --- a/language/wrappers/php.xml +++ b/language/wrappers/php.xml @@ -1,9 +1,9 @@ - - + + - + php:// さまざまな入出力ストリームへのアクセス @@ -29,7 +29,6 @@ php://stdin をオープンしたあとでそれを閉じたとしても、 識別子のコピーが閉じられるだけです。STDIN で参照される実際のストリームは何も影響を受けません。 - PHP 5.2.1 より前のバージョンでは、これに関連する挙動にバグがあります。 これらのラッパーを使うのではなく、定数 STDIN, STDOUT および STDERR を使用することを推奨します。 @@ -46,27 +45,9 @@ php://input は読み込み専用のストリームで、 リクエストの body 部から生のデータを読み込むことができます。 - POST リクエストの場合は $HTTP_RAW_POST_DATA - よりも php://input を使うのが望ましいでしょう。&php.ini; ディレクティブの設定に依存しないからです。 - さらに、$HTTP_RAW_POST_DATA がデフォルトで設定されない場合は、 - always_populate_raw_post_data - を有効にするよりも $HTTP_RAW_POST_DATA - を使うほうがメモリの消費量が少なくなるでしょう。 - php://input は、 - enctype="multipart/form-data" に対しては使用できません。 + enable_post_data_reading オプションが有効になっている場合、 + かつ enctype="multipart/form-data" を指定した POST リクエストでは、php://input は使用できません。 - - - PHP 5.6 より前のバージョンでは、 - php://input でオープンしたストリームは、一度しか読み込めません。 - また、このストリームは seek 操作をサポートしていません。 - しかし、SAPI の実装によっては、別の php://input - ストリームをオープンして読み込みを再開できる可能性もあります。 - これは、リクエストの body 部のデータが保存されている場合にのみ可能となります。 - 通常、POST リクエストの場合はそのようになりますが、 - PUT や PROPFIND といった他のメソッドの場合は保存されません。 - - @@ -91,7 +72,7 @@ php://memory および php://temp は読み書き可能なストリームで、一時データをファイルのように保存できるラッパーです。 - 両者の唯一の違いは、 + 両者の違いは、 php://memory が常にデータをメモリに格納するのに対して php://temp は定義済みの上限 (デフォルトは 2 MB) に達するとテンポラリファイルを使うという点です。 @@ -104,6 +85,13 @@ はメモリに保持するデータの最大量で、単位はバイトです。 このサイズを超えるとテンポラリファイルを使います。 + + + PHP の拡張モジュールによっては、 + 標準入出力が必須なものがあるかもしれません。 + その場合、指定されたストリームを標準入出力のストリームにキャストしようとするかもしれませんが、メモリに格納するストリームの場合、このキャストは失敗する可能性があります。なぜなら、C言語の fopencookie 関数が使える必要があるからです。この関数は、Windows では 利用できません。 + + @@ -247,8 +235,9 @@ stat のサポート - php://memory および - php://temp のみ。 + No. + 但し、php://memory および + php://temp は、fstat をサポートしています。 @@ -283,43 +272,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.6.0 - - php://input が再利用可能になりました。 - - - - 5.3.6 - - php://fd が追加されました。 - - - - 5.1.0 - - php://memory および php://temp - が追加されました。 - - - - - - - - &reftitle.examples; @@ -408,8 +360,31 @@ file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello + + + + リクエストボディから、JSON データを読み取るために php://input を使う + + この例は、php://input を使って POST, PUT, + PATCH リクエスト経由で生の JSON データを読み取る方法を示します。 + + + ]]> diff --git a/language/wrappers/rar.xml b/language/wrappers/rar.xml index 7282239a46..a983d75b3d 100644 --- a/language/wrappers/rar.xml +++ b/language/wrappers/rar.xml @@ -1,9 +1,9 @@ - + - + rar:// RAR @@ -41,7 +41,7 @@ このラッパーはデフォルトでは有効になっていません rar:// ラッパーを使用するには、 - PECL から + &link.pecl; から rar 拡張モジュールを インストールする必要があります。 diff --git a/language/wrappers/ssh2.xml b/language/wrappers/ssh2.xml index cb5d5df7e5..9f34662347 100644 --- a/language/wrappers/ssh2.xml +++ b/language/wrappers/ssh2.xml @@ -1,9 +1,9 @@ - + - + ssh2:// Secure Shell 2 @@ -24,7 +24,7 @@ このラッパーはデフォルトでは有効になっていません ssh2.*:// ラッパーを使用するには、 - PECL から + &link.pecl; から SSH2 拡張モジュールを インストールする必要があります。 diff --git a/make_chm_index.html b/make_chm_index.html index 70bdb13521..d07685c804 100644 --- a/make_chm_index.html +++ b/make_chm_index.html @@ -1,6 +1,6 @@ - + PHP マニュアル diff --git a/preface.xml b/preface.xml index 126b88bf92..23f6770488 100644 --- a/preface.xml +++ b/preface.xml @@ -1,22 +1,24 @@ - + - 序文 - - - PHP は、"PHP: Hypertext Preprocessor" - を意味し、広く使用されているオープンソースの汎用スクリプト言語です。 - HTML に埋め込むことができ、Web アプリケーションの開発に特に適しています。 - PHP の構文の多くは C、Java、Perl 言語から転用したもので、 - 簡単に習得することができます。この言語は、動的に生成されるウェブページを - Web 開発者が速やかに作成できるようにすることを主な目標として - つくられました。しかし、それだけにとどまらず、 - もっと多くのことを PHP を使って行うことができます。 - - - + + 序文 + このマニュアルについて + + + PHP は、PHP: Hypertext Preprocessor + を意味し、広く使用されているオープンソースの汎用スクリプト言語です。 + HTML に埋め込むことができ、Web アプリケーションの開発に特に適しています。 + PHP の構文の多くは C、Java、Perl 言語から転用したもので、 + 簡単に習得することができます。この言語は、動的に生成されるウェブページを + Web 開発者が速やかに作成できるようにすることを主な目標として + つくられました。しかし、それだけにとどまらず、 + もっと多くのことを PHP を使って行うことができます。 + + + このマニュアルは、 @@ -26,6 +28,16 @@ そして、その他の 付録 から構成されています。 + + このマニュアルには、もっとも直近のメジャーバージョンふたつ分の PHP + のリリースの情報(バージョン 7 と 8) が含まれています。 + これらのバージョンに既に含まれていない拡張モジュールの情報と、 + これらのバージョンより前の変更点は含まれていません。 + これらのバージョンより前の PHP についてドキュメント化した、 + 古いマニュアルのアーカイブは + PHP のサイトの "Documentation" のページ + に情報があります。 + 本マニュアルを様々な形式で @@ -34,7 +46,7 @@ このマニュアルがどのように作成されているか、といった詳細な情報は 付録の 本マニュアルについて にあります。 PHP の歴史 に興味がある場合は、 - 関連する付録も参照して下さい。 + 関連する付録も参照ください。 &contributors; diff --git a/reference/apache/book.xml b/reference/apache/book.xml index 6a02bc388c..85c2d0240d 100644 --- a/reference/apache/book.xml +++ b/reference/apache/book.xml @@ -1,6 +1,6 @@ - + @@ -15,9 +15,8 @@ - + &reference.apache.setup; - &reference.apache.constants; &reference.apache.reference; diff --git a/reference/apache/constants.xml b/reference/apache/constants.xml deleted file mode 100644 index aa0f870033..0000000000 --- a/reference/apache/constants.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - &reftitle.constants; - &no.constants; - - - - diff --git a/reference/apache/functions/apache-child-terminate.xml b/reference/apache/functions/apache-child-terminate.xml index 393c20d36d..23d8412723 100644 --- a/reference/apache/functions/apache-child-terminate.xml +++ b/reference/apache/functions/apache-child-terminate.xml @@ -1,7 +1,7 @@ - - + + apache_child_terminate @@ -11,7 +11,7 @@ &reftitle.description; - boolapache_child_terminate + voidapache_child_terminate @@ -21,42 +21,20 @@ スを使用するために使用することが可能です。これは、メモリは通常内 部的にのみ解放され、オペレーティングシステムに戻されないためです。 - - - - &reftitle.returnvalues; - もし PHP が Apache 1 モジュールとして実行している場合、&true; を返します。 - この Apache バージョンはマルチスレッドバージョンではなく、 - child_terminate PHP - ディレクティブは有効です (デフォルトは無効) 。 - もしこれらの条件に適合しない場合 &false; が返され、エラーレベル - E_WARNING が発生します。 + この関数は、Apache, FastCGI ウェブサーバーで動作します。 - - &reftitle.changelog; + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; - - - - - &Version; - &Description; - - - - - 5.4.0 - - この関数は、FastCGI で使用可能になりました。 - 以前は、PHP が Apache モジュールとしてインストールされた時だけサポートされました。 - - - - - + &return.void; @@ -74,7 +52,6 @@ - - + apache_get_modules @@ -18,6 +18,11 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; diff --git a/reference/apache/functions/apache-get-version.xml b/reference/apache/functions/apache-get-version.xml index c9722a521f..bb19cad45e 100644 --- a/reference/apache/functions/apache-get-version.xml +++ b/reference/apache/functions/apache-get-version.xml @@ -1,6 +1,6 @@ - + apache_get_version @@ -10,7 +10,7 @@ &reftitle.description; - stringapache_get_version + stringfalseapache_get_version @@ -18,6 +18,11 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; diff --git a/reference/apache/functions/apache-getenv.xml b/reference/apache/functions/apache-getenv.xml index 280c7ad449..605ffaf996 100644 --- a/reference/apache/functions/apache-getenv.xml +++ b/reference/apache/functions/apache-getenv.xml @@ -1,6 +1,7 @@ - + + apache_getenv @@ -10,16 +11,13 @@ &reftitle.description; - stringapache_getenv + stringfalseapache_getenv stringvariable boolwalk_to_top&false; variable で指定された Apache 環境変数を取得します。 - - この関数は Apache 2 を必要とします。それ以外では定義されていません。 - @@ -92,7 +90,6 @@ echo $ret; - - - + + apache_lookup_uri @@ -13,7 +13,7 @@ &reftitle.description; - objectapache_lookup_uri + objectfalseapache_lookup_uri stringfilename @@ -70,6 +70,9 @@ request_time + + 失敗時に &false; を返します。 + @@ -119,7 +122,6 @@ file exists! - - + @@ -11,13 +11,9 @@ &reftitle.description; - stringapache_note + stringfalseapache_note stringnote_name - - - stringapache_note - stringnote_name - stringnote_value + stringnullnote_value&null; この関数は、Apache の table_get および @@ -58,15 +54,37 @@ &reftitle.returnvalues; - 引数が1つだけ指定されてコールされた場合、 - 現在の記号の値note_nameが返されます。 - 引数が2つ指定されてコールされた場合、記号note_name + note_value が省略されるか、&null; の場合、 + note_name の現在の値が返されます。 + そうでない場合、記号note_name の値をnote_valueにセットし、前の記号 note_nameの値を返します。 もし記号が処理できない場合、&false; が返されます。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + note_value は、nullable になりました。 + + + + + + + &reftitle.examples; @@ -132,7 +150,6 @@ apache_note('sessionID', session_id()); - - - + + apache_request_headers @@ -16,14 +16,19 @@ 現在のリクエストにおけるすべての HTTP リクエストヘッダを取得します。 + Apache, FastCGI, CLI, FPM ウェブサーバーで動作します。 + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; - 現在のリクエストにおけるすべての HTTP ヘッダの連想配列、 - あるいは失敗時は &false; を返します。 + 現在のリクエストにおけるすべての HTTP ヘッダの連想配列を返します。 @@ -45,20 +50,6 @@ FPM SAPI でもこの関数が使えるようになりました。 - - 5.5.7 - - CLI サーバーでもこの関数が使えるようになりました。 - - - - 5.4.0 - - この関数は、FastCGI で使用可能になりました。 - 以前は、PHP が Apache モジュールあるいは - Netscape/iPlanet/SunONE の NSAPI サーバーモジュール としてインストールされた時だけサポートされました。 - - diff --git a/reference/apache/functions/apache-reset-timeout.xml b/reference/apache/functions/apache-reset-timeout.xml deleted file mode 100644 index ae26d98d7e..0000000000 --- a/reference/apache/functions/apache-reset-timeout.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - apache_reset_timeout - Apache の書き込みタイマーをリセットする - - - - &reftitle.description; - - boolapache_reset_timeout - - - - apache_reset_timeout は Apache - の書き込みタイマーをリセットします。デフォルトは 300 秒です。 - set_time_limit(0); ignore_user_abort(true) と定期的な - apache_reset_timeout をコールすることで、 - 理論的に Apache を永遠に実行することができます。 - - - この関数は Apache 1 を必要とします。 - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.notes; - ¬e.sm.disabled; - - - - &reftitle.seealso; - - - set_time_limit - ignore_user_abort - - - - - - - diff --git a/reference/apache/functions/apache-response-headers.xml b/reference/apache/functions/apache-response-headers.xml index 8ae6ceaf48..68c89be335 100644 --- a/reference/apache/functions/apache-response-headers.xml +++ b/reference/apache/functions/apache-response-headers.xml @@ -1,7 +1,7 @@ - - + + apache_response_headers @@ -18,48 +18,22 @@ 全てのApacheレスポンスヘッダを配列として取得します。 + Apache, FastCGI, CLI, FPM ウェブサーバーで動作します。 + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; - 全てのApacheレスポンスヘッダの配列、&return.falseforfailure;。 + 全てのApacheレスポンスヘッダの配列を返します。 - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.5.7 - - CLI サーバーでもこの関数が使えるようになりました。 - - - - 5.4.0 - - この関数は、FastCGI で使用可能になりました。 - 以前は、PHP が Apache モジュールあるいは - Netscape/iPlanet/SunONE の NSAPI サーバーモジュール としてインストールされた時だけサポートされました。 - - - - - - - - &reftitle.examples; diff --git a/reference/apache/functions/getallheaders.xml b/reference/apache/functions/getallheaders.xml index 4433b15135..e1352e55fd 100644 --- a/reference/apache/functions/getallheaders.xml +++ b/reference/apache/functions/getallheaders.xml @@ -1,7 +1,7 @@ - - + + getallheaders @@ -27,10 +27,15 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; - 全てのHTTPリクエストヘッダの連想配列、もしくは失敗時に &false; を返します。 + 全てのHTTPリクエストヘッダの連想配列を返します。 @@ -52,20 +57,6 @@ FPM SAPI でもこの関数が使えるようになりました。 - - 5.5.7 - - CLI サーバーでもこの関数が使えるようになりました。 - - - - 5.4.0 - - この関数は、FastCGI で使用可能になりました。 - 以前は、PHP が Apache モジュールあるいは - Netscape/iPlanet/SunONE の NSAPI サーバーモジュール としてインストールされた時だけサポートされました。 - - diff --git a/reference/apache/functions/virtual.xml b/reference/apache/functions/virtual.xml index b808aef478..690684cd2e 100644 --- a/reference/apache/functions/virtual.xml +++ b/reference/apache/functions/virtual.xml @@ -1,6 +1,6 @@ - + @@ -12,7 +12,7 @@ &reftitle.description; boolvirtual - stringfilename + stringuri virtual は、mod_include の @@ -37,7 +37,7 @@ - filename + uri virtual コマンドが実行されるファイル @@ -99,7 +99,6 @@ - - +
&reftitle.runtime; @@ -32,25 +32,25 @@ engine "1" - PHP_INI_ALL + INI_ALL child_terminate "0" - PHP_INI_ALL + INI_ALL last_modified "0" - PHP_INI_ALL + INI_ALL xbithack "0" - PHP_INI_ALL + INI_ALL @@ -67,7 +67,7 @@ engine - boolean + bool @@ -84,20 +84,20 @@ child_terminate - boolean + bool リクエストの終了時にPHPスクリプトが子プロセスの終了を指定するか どうかを指定します。 - apache_child_terminateも参照してください。 + apache_child_terminateも参照ください。 last_modified - boolean + bool @@ -109,7 +109,7 @@ xbithack - boolean + bool diff --git a/reference/apache/setup.xml b/reference/apache/setup.xml index 022bca563a..35d9390e01 100644 --- a/reference/apache/setup.xml +++ b/reference/apache/setup.xml @@ -1,24 +1,17 @@ - + &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- -
&reftitle.install; PHPのApacheへのインストール方法については、インストールの章を参照してください。 + linkend="install">インストールの章を参照ください。
@@ -27,13 +20,6 @@ &reference.apache.ini; - -
- &reftitle.resources; - &no.resource; -
- -
- - - - - APCIterator クラス - APCIterator - - - - -
- &reftitle.intro; - - APCIterator クラスを使うと、巨大な - APC キャッシュの反復処理を容易に行えます。 - 巨大なキャッシュを順を追って処理し、 - ロックインスタンス単位で決まった数のエントリを取得することができます。 - そのため、キャッシュ全体を抱え込んで 100 件 (デフォルト) - のエントリを取り込むのではなく、 - キャッシュのロックを解放して他の操作ができる状態にすることが可能です。 - また、正規表現によるマッチングは C 言語レベルで行われるのでより効率的です。 - -
- - -
- &reftitle.classsynopsis; - - - - APCIterator - - - - - APCIterator - - - - Iterator - - - - - - Methods - - - - -
- -
- - &reference.apc.entities.apciterator; - -
- - diff --git a/reference/apc/apciterator/construct.xml b/reference/apc/apciterator/construct.xml deleted file mode 100644 index 573a93df99..0000000000 --- a/reference/apc/apciterator/construct.xml +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - APCIterator::__construct - APCIterator イテレータオブジェクトを作成する - - - - &reftitle.description; - - public APCIterator::__construct - stringcache - mixedsearch&null; - intformatAPC_ITER_ALL - intchunk_size100 - intlistAPC_LIST_ACTIVE - - - APCIterator オブジェクトを作成します。 - - - - - &reftitle.parameters; - - - cache - - - キャッシュの形式。user あるいは - file となります。 - - - - - search - - - APC のキーの名前にマッチする PCRE 正規表現。 - 単一の正規表現の場合は文字列で、複数の正規表現の場合は配列で指定します。 - &null; を渡すと、検索をスキップします。 - - - - - format - - - 希望する書式。 - APC_ITER_* 定数の組み合わせで指定します。 - - - - - chunk_size - - - チャンクサイズ。0 より大きい値でなければなりません。 - デフォルト値は 100 です。 - - - - - list - - - 一覧にする形式。APC_LIST_ACTIVE - あるいは APC_LIST_DELETED を渡します。 - - - - - - - - &reftitle.returnvalues; - - 成功した場合に APCIterator オブジェクト、 - 失敗した場合に &null; を返します。 - - - - - &reftitle.examples; - - - <function>APCIterator::__construct</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - apc_exists - apc_cache_info - - - - - - - diff --git a/reference/apc/apciterator/current.xml b/reference/apc/apciterator/current.xml deleted file mode 100644 index 3f6143356b..0000000000 --- a/reference/apc/apciterator/current.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - APCIterator::current - 現在の項目を取得する - - - - &reftitle.description; - - public mixedAPCIterator::current - - - - APCIterator から現在の項目を取得します。 - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - 成功した場合に現在の項目を返します。 - もう項目が存在しない場合や取得に失敗した場合は &false; を返します。 - - - - - &reftitle.seealso; - - APCIterator::next - Iterator::current - - - - - - diff --git a/reference/apc/apciterator/gettotalcount.xml b/reference/apc/apciterator/gettotalcount.xml deleted file mode 100644 index 69133ebd88..0000000000 --- a/reference/apc/apciterator/gettotalcount.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - APCIterator::getTotalCount - 総数を取得する - - - - &reftitle.description; - - public intAPCIterator::getTotalCount - - - - 総数を取得します。 - - - &warn.undocumented.func; - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - 総数を返します。 - - - - - &reftitle.seealso; - - APCIterator::getTotalHits - APCIterator::getTotalSize - apc_cache_info - - - - - - diff --git a/reference/apc/apciterator/gettotalhits.xml b/reference/apc/apciterator/gettotalhits.xml deleted file mode 100644 index 408df67184..0000000000 --- a/reference/apc/apciterator/gettotalhits.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - APCIterator::getTotalHits - キャッシュヒットの総数を取得する - - - - &reftitle.description; - - public intAPCIterator::getTotalHits - - - - キャッシュヒットの総数を取得します。 - - - &warn.undocumented.func; - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - 成功した場合にヒット数、失敗した場合に &false; を返します。 - - - - - &reftitle.seealso; - - APCIterator::getTotalCount - APCIterator::getTotalSize - apc_cache_info - - - - - - diff --git a/reference/apc/apciterator/gettotalsize.xml b/reference/apc/apciterator/gettotalsize.xml deleted file mode 100644 index 324dd0d8e4..0000000000 --- a/reference/apc/apciterator/gettotalsize.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - APCIterator::getTotalSize - キャッシュのサイズの合計を取得する - - - - &reftitle.description; - - public intAPCIterator::getTotalSize - - - - キャッシュのサイズの合計を取得します。 - - - &warn.undocumented.func; - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - キャッシュのサイズの合計を返します。 - - - - - &reftitle.seealso; - - APCIterator::getTotalCount - APCIterator::getTotalHits - apc_cache_info - - - - - - diff --git a/reference/apc/apciterator/key.xml b/reference/apc/apciterator/key.xml deleted file mode 100644 index e24b0e1e4e..0000000000 --- a/reference/apc/apciterator/key.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - APCIterator::key - イテレータのキーを取得する - - - - &reftitle.description; - - public stringAPCIterator::key - - - - 現在のイテレータのキーを取得します。 - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - 成功した場合にキー、失敗した場合に &false; を返します。 - - - - - &reftitle.seealso; - - APCIterator::current - Iterator::key - - - - - - diff --git a/reference/apc/apciterator/next.xml b/reference/apc/apciterator/next.xml deleted file mode 100644 index 8ad0485f69..0000000000 --- a/reference/apc/apciterator/next.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - APCIterator::next - ポインタを次の項目に移動させる - - - - &reftitle.description; - - public boolAPCIterator::next - - - - イテレータのポインタを次の要素に移動させます。 - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.seealso; - - APCIterator::current - APCIterator::rewind - Iterator::next - - - - - - diff --git a/reference/apc/apciterator/rewind.xml b/reference/apc/apciterator/rewind.xml deleted file mode 100644 index 3da9992915..0000000000 --- a/reference/apc/apciterator/rewind.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - APCIterator::rewind - イテレータを巻き戻す - - - - &reftitle.description; - - public voidAPCIterator::rewind - - - - イテレータを最初の要素に巻き戻します。 - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - &return.void; - - - - - &reftitle.seealso; - - APCIterator::next - Iterator::next - - - - - - diff --git a/reference/apc/apciterator/valid.xml b/reference/apc/apciterator/valid.xml deleted file mode 100644 index 7e9901ffdc..0000000000 --- a/reference/apc/apciterator/valid.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - APCIterator::valid - 現在位置が有効かどうかを調べる - - - - &reftitle.description; - - public boolAPCIterator::valid - - - - イテレータの現在位置が有効かどうかを調べます。 - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - イテレータの現在位置が有効な場合に &true;、それ以外の場合に &false; を返します。 - - - - - &reftitle.seealso; - - APCIterator::current - Iterator::valid - - - - - - diff --git a/reference/apc/book.xml b/reference/apc/book.xml deleted file mode 100644 index 76379aab5f..0000000000 --- a/reference/apc/book.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - Alternative PHP Cache - APC - - - &reftitle.intro; - - Alternative PHP Cache (APC) は、PHP の実行コードをキャッシュする仕組みで、 - フリーかつオープンに使用できます。PHP の中間コードのキャッシュ・最適化を行うための、 - フリーでオープンかつ堅牢なフレームワークを提供するということを目標としています。 - - - - &pecl.info.dead.git; &url.apc.source;. - - - - - この拡張モジュールの代替には、OPcache, APCu, - Windows Cache for PHP, Session Upload Progress API - などがあります。 - - - - - &reference.apc.setup; - &reference.apc.constants; - &reference.apc.reference; - &reference.apc.apciterator; - - - - - diff --git a/reference/apc/constants.xml b/reference/apc/constants.xml deleted file mode 100644 index 27066259c3..0000000000 --- a/reference/apc/constants.xml +++ /dev/null @@ -1,265 +0,0 @@ - - - - - - &reftitle.constants; - &extension.constants; - - - - - - APC_BIN_VERIFY_CRC32 - (integer) - - - - - - - - - - APC_BIN_VERIFY_MD5 - (integer) - - - - - - - - - - APC_ITER_ALL - (integer) - - - - - - - - - - APC_ITER_ATIME - (integer) - - - - - - - - - - APC_ITER_CTIME - (integer) - - - - - - - - - - APC_ITER_DEVICE - (integer) - - - - - - - - - - APC_ITER_DTIME - (integer) - - - - - - - - - - APC_ITER_FILENAME - (integer) - - - - - - - - - - APC_ITER_INODE - (integer) - - - - - - - - - - APC_ITER_KEY - (integer) - - - - - - - - - - APC_ITER_MD5 - (integer) - - - - - - - - - - APC_ITER_MEM_SIZE - (integer) - - - - - - - - - - APC_ITER_MTIME - (integer) - - - - - - - - - - APC_ITER_NONE - (integer) - - - - - - - - - - APC_ITER_NUM_HITS - (integer) - - - - - - - - - - APC_ITER_REFCOUNT - (integer) - - - - - - - - - - APC_ITER_TTL - (integer) - - - - - - - - - - APC_ITER_TYPE - (integer) - - - - - - - - - - APC_ITER_VALUE - (integer) - - - - - - - - - - APC_LIST_ACTIVE - (integer) - - - - - - - - - - APC_LIST_DELETED - (integer) - - - - - - - - - - - - diff --git a/reference/apc/functions/apc-add.xml b/reference/apc/functions/apc-add.xml deleted file mode 100644 index aa0cb3273e..0000000000 --- a/reference/apc/functions/apc-add.xml +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - apc_add - - 新規の変数をデータ領域にキャッシュする - - - - &reftitle.description; - - boolapc_add - stringkey - mixedvar - intttl0 - - - arrayapc_add - arrayvalues - mixedunusedNULL - intttl0 - - - まだ保存されていない場合にのみ、変数をデータ領域にキャッシュします。 - - - - PHP の他の多くの仕組みと異なり、apc_add - を用いて格納された変数はリクエストを超えて - (その値がキャッシュから取り除かれるまで)持続します。 - - - - - &reftitle.parameters; - - - - key - - - この名前を用いて変数を格納します。key は - キャッシュ内で一意です。そのため、apc_add - を使用して同一の key - で新しい値を格納しようとしても、それは保存されません。 - かわりに &false; が返されます (これが、apc_add - と apc_store の唯一の相違点です)。 - - - - - var - - - 格納する変数。 - - - - - ttl - - - 有効期間。var は、キャッシュに - ttl 秒間だけ格納されます。 - ttl が経過すると、格納されている変数は - (次のリクエスト時に)キャッシュから削除されます。 - ttl が指定されていない(あるいは - ttl0 の場合)は、 - キャッシュから手動で削除される・あるいはキャッシュに存在できなくなる - (clear, restart など)まで値が持続します。 - - - - - values - - - 名前をキー、変数を値に指定します。 - - - - - - - - &reftitle.returnvalues; - - 何かがキャッシュに正しく追加されたときに TRUE、それ以外の場合に FALSE を返します。 - 二番目の構文は、エラーになったキーを含む配列を返します。 - - - - - &reftitle.examples; - - - <function>apc_add</function> の例 - - -]]> - - &example.outputs; - - - - - - - - - &reftitle.seealso; - - - apc_store - apc_fetch - apc_delete - - - - - - - diff --git a/reference/apc/functions/apc-bin-dump.xml b/reference/apc/functions/apc-bin-dump.xml deleted file mode 100644 index 4930c3bd5f..0000000000 --- a/reference/apc/functions/apc-bin-dump.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - apc_bin_dump - 指定したファイルおよびユーザー変数のバイナリダンプを取得する - - - - &reftitle.description; - - stringapc_bin_dump - arrayfilesNULL - arrayuser_varsNULL - - - 指定したファイルおよびユーザー変数のバイナリダンプを APC キャッシュから返します。 - files や user_vars に &null; を指定すると、全エントリを表します。 - 一方、array() を渡すと何もダンプしません。 - - - - - &reftitle.parameters; - - - files - - - ファイル。&null; を渡すと全エントリを意味し、 - array を渡すと何もダンプしません。 - - - - - user_vars - - - ユーザー変数。&null; を渡すと全エントリを意味し、 - array を渡すと何もダンプしません。 - - - - - - - - &reftitle.returnvalues; - - 指定したファイルおよびユーザー変数のバイナリダンプを APC キャッシュから返します。 - APC が有効でない場合は &false;、未知のエラーが発生した場合は &null; を返します。 - - - - - &reftitle.seealso; - - apc_bin_dumpfile - apc_bin_load - - - - - - diff --git a/reference/apc/functions/apc-bin-dumpfile.xml b/reference/apc/functions/apc-bin-dumpfile.xml deleted file mode 100644 index cc6c872695..0000000000 --- a/reference/apc/functions/apc-bin-dumpfile.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - apc_bin_dumpfile - キャッシュされたファイルやユーザー変数のバイナリダンプをファイルに出力する - - - - &reftitle.description; - - intapc_bin_dumpfile - arrayfiles - arrayuser_vars - stringfilename - intflags0 - resourcecontextNULL - - - キャッシュされたファイルやユーザー変数のバイナリダンプを - APC キャッシュから取得し、指定したファイルに出力します。 - - - - - &reftitle.parameters; - - - files - - - The file names being dumped. - - - - - user_vars - - - The user variables being dumped. - - - - - filename - - - The filename where the dump is being saved. - - - - - flags - - - Flags passed to the filename stream. See the - file_put_contents documentation for details. - - - - - context - - - The context passed to the filename stream. See the - file_put_contents documentation for details. - - - - - - - - &reftitle.returnvalues; - - The number of bytes written to the file, otherwise - &false; if APC is not enabled, filename is an invalid file name, - filename can't be opened, the file dump can't be completed - (e.g., the hard drive is out of disk space), or an unknown error was encountered. - - - - - &reftitle.seealso; - - apc_bin_dump - apc_bin_load - - - - - - diff --git a/reference/apc/functions/apc-bin-load.xml b/reference/apc/functions/apc-bin-load.xml deleted file mode 100644 index 6664bf3a45..0000000000 --- a/reference/apc/functions/apc-bin-load.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - apc_bin_load - バイナリダンプを APC のファイル/ユーザーキャッシュに読み込む - - - - &reftitle.description; - - boolapc_bin_load - stringdata - intflags0 - - - 指定したバイナリダンプを APC のファイル/ユーザーキャッシュに読み込みます。 - - - - - &reftitle.parameters; - - - data - - - 読み込むバイナリダンプ。通常は - apc_bin_dump で出力したもの。 - - - - - flags - - - APC_BIN_VERIFY_CRC32APC_BIN_VERIFY_MD5 - あるいはその両方。 - - - - - - - - &reftitle.returnvalues; - - バイナリダンプの読み込みに成功した場合に &true;、 - それ以外の場合に &false; を返します。&false; が返される理由には、 - APC が有効でない場合や data - が有効な APC バイナリダンプでない (予期せぬサイズなど) - 場合などがあります。 - - - - - &reftitle.examples; - - <function>apc_bin_load</function> の例 - - -]]> - - - - - - &reftitle.seealso; - - apc_bin_dump - apc_bin_loadfile - - - - - - diff --git a/reference/apc/functions/apc-bin-loadfile.xml b/reference/apc/functions/apc-bin-loadfile.xml deleted file mode 100644 index bdbb17f2d6..0000000000 --- a/reference/apc/functions/apc-bin-loadfile.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - apc_bin_loadfile - バイナリダンプをファイルから APC のファイル/ユーザーキャッシュに読み込む - - - - &reftitle.description; - - boolapc_bin_loadfile - stringfilename - resourcecontextNULL - intflags0 - - - 指定したファイルから、バイナリダンプを APC のファイル/ユーザーキャッシュに読み込みます。 - - - - - &reftitle.parameters; - - - filename - - - ダンプを含むファイルの名前。通常は - apc_bin_dumpfile で出力したもの。 - - - - - context - - - ファイルのコンテキスト。 - - - - - flags - - - APC_BIN_VERIFY_CRC32APC_BIN_VERIFY_MD5 - あるいはその両方。 - - - - - - - - &reftitle.returnvalues; - - バイナリダンプの読み込みに成功した場合に &true;、 - それ以外の場合に &false; を返します。&false; が返される理由には、 - APC が有効でない場合や filename - が無効なファイルの場合、空のファイルの場合、 - filename のオープンに失敗した場合、 - ダンプが不完全な場合、そして data - が有効な APC バイナリダンプでない (予期せぬサイズなど) - 場合などがあります。 - - - - - &reftitle.seealso; - - apc_bin_dumpfile - apc_bin_load - - - - - diff --git a/reference/apc/functions/apc-cache-info.xml b/reference/apc/functions/apc-cache-info.xml deleted file mode 100644 index 81cc8b0778..0000000000 --- a/reference/apc/functions/apc-cache-info.xml +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - apc_cache_info - - APC のデータから、キャッシュされた情報を取得する - - - - &reftitle.description; - - arrayapc_cache_info - stringcache_type"" - boollimited&false; - - - APC のデータから、キャッシュされた情報およびメタデータを取得します。 - - - - - &reftitle.parameters; - - - - cache_type - - - cache_type が "user" - の場合はユーザーキャッシュの情報を返します。 - - - cache_type が "filehits" - の場合は、現在のリクエストにおいて - バイトコードキャッシュから提供したファイルがどれなのかについての情報を返します。 - この機能を使用するには、コンパイル時に - - を指定する必要があります。 - - - cache_type に無効な値を指定したり、 - 値を指定しなかったりした場合は、 - システムキャッシュ (キャッシュされたファイル) - の情報を返します。 - - - - - limited - - - limited が &true; の場合は、 - 返り値にキャッシュエントリの個々の一覧が含まれません。 - これは、統計情報の収集時に呼び出しを最適化したい場合などに有用です。 - - - - - - - - - &reftitle.returnvalues; - - キャッシュされたデータ(およびメタデータ)の配列を返します。 - &return.falseforfailure; - - - - もし APC キャッシュのデータを取得できなかった場合、 - apc_cache_info は警告を発生します。これが起こるのは、 - 一般的には APC が有効になっていない場合などです。 - - - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 3.0.11 - - パラメータ limited が追加されました。 - - - - 3.0.16 - - "filehits" オプションが - cache_type パラメータに追加されました。 - - - - - - - - - - &reftitle.examples; - - - <function>apc_cache_info</function> の例 - - -]]> - - &example.outputs.similar; - - 2000 - [ttl] => 0 - [num_hits] => 9 - [num_misses] => 3 - [start_time] => 1123958803 - [cache_list] => Array - ( - [0] => Array - ( - [filename] => /path/to/apc_test.php - [device] => 29954 - [inode] => 1130511 - [type] => file - [num_hits] => 1 - [mtime] => 1123960686 - [creation_time] => 1123960696 - [deletion_time] => 0 - [access_time] => 1123962864 - [ref_count] => 1 - [mem_size] => 677 - ) - [1] => Array (...iterates for each cached file) -) -]]> - - - - - - - &reftitle.seealso; - - - APC 設定ディレクティブ - APCIterator::getTotalSize - APCIterator::getTotalHits - APCIterator::getTotalCount - - - - - - - diff --git a/reference/apc/functions/apc-cas.xml b/reference/apc/functions/apc-cas.xml deleted file mode 100644 index 8d419bd2cc..0000000000 --- a/reference/apc/functions/apc-cas.xml +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - apc_cas - 古い値を新しい値に更新する - - - - &reftitle.description; - - boolapc_cas - stringkey - intold - intnew - - - apc_cas は、既に保存されている整数値が old - パラメータにマッチする値のときに、それを new - パラメータの値に更新します。 - - - - - &reftitle.parameters; - - - key - - - 更新する値のキー。 - - - - - old - - - 古い値 (現在保存されている値)。 - - - - - new - - - 新しく更新したい値。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - <function>apc_cas</function> の例 - - -]]> - - &example.outputs.similar; - - - - - - - - &reftitle.seealso; - - apc_dec - apc_store - - - - - - diff --git a/reference/apc/functions/apc-clear-cache.xml b/reference/apc/functions/apc-clear-cache.xml deleted file mode 100644 index 7bb833a216..0000000000 --- a/reference/apc/functions/apc-clear-cache.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - apc_clear_cache - - APC キャッシュをクリアする - - - - &reftitle.description; - - boolapc_clear_cache - stringcache_type"" - - - ユーザー/システム キャッシュをクリアします。 - - - - - &reftitle.parameters; - - - - cache_type - - - cache_type が "user" - の場合はユーザーキャッシュがクリアされます。 - それ以外の場合はシステムキャッシュ (キャッシュされたファイル) - がクリアされます。 - - - - - - - - - &reftitle.returnvalues; - - 常に &true; を返します。 - - - - - &reftitle.seealso; - - - apc_cache_info - - - - - - - diff --git a/reference/apc/functions/apc-compile-file.xml b/reference/apc/functions/apc-compile-file.xml deleted file mode 100644 index 8f586c1994..0000000000 --- a/reference/apc/functions/apc-compile-file.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - apc_compile_file - - ファイルをバイトコードキャッシュに保存し、すべてのフィルタをバイパスする - - - - &reftitle.description; - - mixedapc_compile_file - stringfilename - boolatomic&true; - - - ファイルをバイトコードキャッシュに保存し、すべてのフィルタをバイパスします。 - - - - - &reftitle.parameters; - - - - filename - - - コンパイルし、バイトコードキャッシュに保存したい - PHP ファイルへの完全パスあるいは相対パス。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.seealso; - - apc_bin_dumpfile - apc_bin_loadfile - - - - - - diff --git a/reference/apc/functions/apc-dec.xml b/reference/apc/functions/apc-dec.xml deleted file mode 100644 index 2f564d2c5f..0000000000 --- a/reference/apc/functions/apc-dec.xml +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - apc_dec - 保存した数値を減らす - - - - &reftitle.description; - - intapc_dec - stringkey - intstep1 - boolsuccess - - - 保存した整数値を減らします。 - - - - - &reftitle.parameters; - - - key - - - 減らしたい値のキー。 - - - - - step - - - 減らしたい数。 - - - - - success - - - この参照渡しの変数に、成功したか失敗したかの結果が格納されます。 - - - - - - - - &reftitle.returnvalues; - - 成功した場合に key の現在値を返します。 - &return.falseforfailure; - - - - - &reftitle.examples; - - <function>apc_dec</function> の例 - - -]]> - - &example.outputs.similar; - - - - - - - - - &reftitle.seealso; - - apc_inc - - - - - - diff --git a/reference/apc/functions/apc-define-constants.xml b/reference/apc/functions/apc-define-constants.xml deleted file mode 100644 index ad3b03fc7e..0000000000 --- a/reference/apc/functions/apc-define-constants.xml +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - apc_define_constants - - 定数の組を定義し、それを取得あるいは一括定義する - - - - &reftitle.description; - - boolapc_define_constants - stringkey - arrayconstants - boolcase_sensitive&true; - - - - ご存知のとおり、define は非常に遅いです。 - APC を使用する主な利点はスクリプト/アプリケーションのパフォーマンスの改善なので、 - 大量の定数を定義する手順を合理化するために、この仕組みが提供されています。 - しかし、この関数は期待通りの動作をしません。 - - - - よりよい解決策として、PECL の - hidef - 拡張モジュールを試してみましょう。 - - - - - (キャッシュ全体をクリアすることなく)格納されている定数を削除するには、 - constants に空の配列を渡します。そうすれば、 - そこに格納されていた値は事実上削除されます。 - - - - - - &reftitle.parameters; - - - - key - - - key は、格納される定数群の名前を表します。 - この key は、格納されている定数を - apc_load_constants で取得するために使用されます。 - - - - - constants - - - constant_name => value 形式の連想配列。 - constant_name は、一般の - 定数 の命名規則に従う - 必要があります。 value は、スカラ値でなければ - なりません。 - - - - - case_sensitive - - - デフォルトでは、定数名の大文字・小文字は区別されます。すなわち、 - CONSTANTConstant - は別の値を表します。このパラメータを &false; にすると、 - 定数名の大文字・小文字は区別されなくなります。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - - &reftitle.examples; - - - <function>apc_define_constants</function> の例 - - 1, - 'TWO' => 2, - 'THREE' => 3, -); -apc_define_constants('numbers', $constants); -echo ONE, TWO, THREE; -?> -]]> - - &example.outputs; - - - - - - - - - - &reftitle.seealso; - - - apc_load_constants - define - constant - - あるいは PHP リファレンスの「定数」 - - - - - - - - diff --git a/reference/apc/functions/apc-delete-file.xml b/reference/apc/functions/apc-delete-file.xml deleted file mode 100644 index 6028b1b8e0..0000000000 --- a/reference/apc/functions/apc-delete-file.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - apc_delete_file - ファイルを opcode キャッシュから削除する - - - - &reftitle.description; - - mixedapc_delete_file - mixedkeys - - - 指定したファイルを opcode キャッシュから削除します。 - - - - - &reftitle.parameters; - - - keys - - - 削除したいファイル。文字列、文字列の配列、あるいは - APCIterator オブジェクトで指定します。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - keys が配列なら、 - 成功した場合は空の配列を返します。失敗した場合は失敗したファイルを含む配列を返します。 - - - - - &reftitle.examples; - - <function>apc_delete_file</function> の例 - - -]]> - - &example.outputs.similar; - - - string(14) "donotexist.php" -} -[Mon May 24 09:30:33 2010] [apc-warning] Could not stat file donotexist.php, unable to delete from cache. in /tmp/test.php on line 18. -bool(false) -]]> - - - - - - &reftitle.seealso; - - apc_clear_cache - apc_delete - apc_exists - - - - - diff --git a/reference/apc/functions/apc-delete.xml b/reference/apc/functions/apc-delete.xml deleted file mode 100644 index 551159d090..0000000000 --- a/reference/apc/functions/apc-delete.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - apc_delete - - 格納されている変数をキャッシュから取り除く - - - - &reftitle.description; - - mixedapc_delete - stringkey - - - 格納されている変数をキャッシュから取り除きます。 - - - - &reftitle.parameters; - - - - key - - - (apc_store を用いて)値を格納する際に - 使用された key 。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>apc_delete</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - apc_store - apc_fetch - - - - - - - diff --git a/reference/apc/functions/apc-exists.xml b/reference/apc/functions/apc-exists.xml deleted file mode 100644 index 87181066ec..0000000000 --- a/reference/apc/functions/apc-exists.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - apc_exists - APC キーが存在するかどうかを調べる - - - - &reftitle.description; - - mixedapc_exists - mixedkeys - - - 指定した APC キーが存在するかどうかを調べます。 - - - - - &reftitle.parameters; - - - keys - - - キーを含む文字列、あるいは文字列の配列。 - - - - - - - - &reftitle.returnvalues; - - キーが存在する場合に &true;、それ以外の場合に &false; を返します。 - keys に配列を渡したときは、 - 存在するキーをすべて含む配列を返します。 - どれも存在しない場合は空の配列を返します。 - - - - - &reftitle.examples; - - <function>apc_exists</function> の例 - - -]]> - - &example.outputs.similar; - - - bool(true) - ["bar"]=> - bool(true) -} -]]> - - - - - - &reftitle.seealso; - - apc_cache_info - apc_fetch - - - - - diff --git a/reference/apc/functions/apc-fetch.xml b/reference/apc/functions/apc-fetch.xml deleted file mode 100644 index 438655c1c6..0000000000 --- a/reference/apc/functions/apc-fetch.xml +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - apc_fetch - - 格納されている変数をキャッシュから取得する - - - - &reftitle.description; - - mixedapc_fetch - mixedkey - boolsuccess - - - 格納されている変数をキャッシュから取得します。 - - - - &reftitle.parameters; - - - - key - - - (apc_store を用いて) - 値を格納する際に使用された key。 - 配列を渡した場合は、各要素について取得した値を返します。 - - - - - success - - - 成功したばあいに &true;、失敗した際に &false; が設定されます。 - - - - - - - - &reftitle.returnvalues; - - 成功した場合に格納されていた変数 (あるいは配列)、失敗した場合に &false; を返します。 - - - - - &reftitle.examples; - - - <function>apc_fetch</function> の例 - - -]]> - - &example.outputs; - - - - - - - - - &reftitle.changelog; - - - - - &Version; - &Description; - - - - - 3.0.17 - - success パラメータが追加されました。 - - - - - - - - - &reftitle.seealso; - - - apc_store - apc_delete - APCIterator - - - - - - - diff --git a/reference/apc/functions/apc-inc.xml b/reference/apc/functions/apc-inc.xml deleted file mode 100644 index 6f6c34382e..0000000000 --- a/reference/apc/functions/apc-inc.xml +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - apc_inc - 保存した数値を増やす - - - - &reftitle.description; - - intapc_inc - stringkey - intstep1 - boolsuccess - - - 保存した整数値を増やします。 - - - - - &reftitle.parameters; - - - key - - - 増やしたい値のキー。 - - - - - step - - - 増やしたい数。 - - - - - success - - - この参照渡しの変数に、成功したか失敗したかの結果が格納されます。 - - - - - - - - &reftitle.returnvalues; - - 成功した場合に key の現在値を返します。 - &return.falseforfailure; - - - - - &reftitle.examples; - - <function>apc_inc</function> の例 - - -]]> - - &example.outputs.similar; - - - - - - - - &reftitle.seealso; - - apc_dec - - - - - - diff --git a/reference/apc/functions/apc-load-constants.xml b/reference/apc/functions/apc-load-constants.xml deleted file mode 100644 index 251ea995d9..0000000000 --- a/reference/apc/functions/apc-load-constants.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - apc_load_constants - - 定数群をキャッシュから読み込む - - - - &reftitle.description; - - boolapc_load_constants - stringkey - boolcase_sensitive&true; - - - 定数群をキャッシュから読み込みます。 - - - - &reftitle.parameters; - - - - key - - - 取得したい定数群(apc_define_constants - を使用して格納されたもの)。 - - - - - case_sensitive - - - デフォルトでは、定数名の大文字・小文字は区別されます。すなわち、 - CONSTANTConstant - は別の値を表します。このパラメータを &false; にすると、 - 定数名の大文字・小文字は区別されなくなります。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>apc_load_constants</function> の例 - - 1, - 'TWO' => 2, - 'THREE' => 3, -); -apc_define_constants('numbers', $constants); -apc_load_constants('numbers'); -echo ONE, TWO, THREE; -?> -]]> - - &example.outputs; - - - - - - - - - &reftitle.seealso; - - - apc_define_constants - define - constant - - あるいは PHP リファレンスの「定数」 - - - - - - - - diff --git a/reference/apc/functions/apc-sma-info.xml b/reference/apc/functions/apc-sma-info.xml deleted file mode 100644 index aef1d7aa3d..0000000000 --- a/reference/apc/functions/apc-sma-info.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - apc_sma_info - - APC の共有メモリ割り当てに関する情報を取得する - - - - &reftitle.description; - - arrayapc_sma_info - boollimited&false; - - - APC の共有メモリ割り当てに関する情報を取得します。 - - - - - &reftitle.parameters; - - - - limited - - - &false; (デフォルト) を設定すると、apc_sma_info - は各セグメントの詳細な情報を返します。 - - - - - - - - - &reftitle.returnvalues; - - 共有メモリ割り当てデータの配列を返します。失敗した場合は &false; を返します。 - - - - - &reftitle.examples; - - - <function>apc_sma_info</function> の例 - - -]]> - - &example.outputs.similar; - - 1 - [seg_size] => 31457280 - [avail_mem] => 31448408 - [block_lists] => Array - ( - [0] => Array - ( - [0] => Array - ( - [size] => 31448408 - [offset] => 8864 - ) - - ) - - ) - -) -]]> - - - - - - - &reftitle.seealso; - - - - APC 設定ディレクティブ - - - - - - - - diff --git a/reference/apc/functions/apc-store.xml b/reference/apc/functions/apc-store.xml deleted file mode 100644 index 137de03fbe..0000000000 --- a/reference/apc/functions/apc-store.xml +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - apc_store - - 変数をデータ領域にキャッシュする - - - - &reftitle.description; - - boolapc_store - stringkey - mixedvar - intttl0 - - - arrayapc_store - arrayvalues - mixedunusedNULL - intttl0 - - - 変数をデータ領域にキャッシュします。 - - - - PHP の他の多くの仕組みと異なり、apc_store - を用いて格納された変数はリクエストを超えて - (その値がキャッシュから取り除かれるまで)持続します。 - - - - - &reftitle.parameters; - - - - key - - - この名前を用いて変数を格納します。key は - キャッシュ内で一意です。そのため、同一の key - で新しい値を格納すると、元の値は上書きされます。 - - - - - var - - - 格納する変数。 - - - - - ttl - - - 有効期間。var は、キャッシュに - ttl 秒間だけ格納されます。 - ttl が経過すると、格納されている変数は - (次のリクエスト時に)キャッシュから削除されます。 - ttl が指定されていない(あるいは - ttl0 の場合)は、 - キャッシュから手動で削除される・あるいはキャッシュに存在できなくなる - (clear, restart など)まで値が持続します。 - - - - - values - - - 名前をキー、変数を値に指定します。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - 二番目の構文は、エラーになったキーを含む配列を返します。 - - - - - &reftitle.examples; - - - A <function>apc_store</function> の例 - - -]]> - - &example.outputs; - - - - - - - - - &reftitle.seealso; - - - apc_add - apc_fetch - apc_delete - - - - - - - diff --git a/reference/apc/ini.xml b/reference/apc/ini.xml deleted file mode 100644 index 72b8cd500b..0000000000 --- a/reference/apc/ini.xml +++ /dev/null @@ -1,960 +0,0 @@ - - - - -
- &reftitle.runtime; - &extension.runtime; - - たいていの場合はデフォルトの APC 設定でうまく動作しますが、 - きちんとチューニングをしたい場合は以下のパラメータを設定します。 - - - あなたが決めなければいけないことは、以下の 2 つです。 - まず APC にどれくらいの共有メモリを設定するかということ、そして、 - ファイルの更新チェックをリクエストのたびに APC が行うかどうかということです。 - これらに関連する ini ディレクティブが apc.shm_size - および apc.stat です。これらのディレクティブについて、 - 以下の説明を注意深くお読みください。 - - - サーバーを起動したら、この拡張モジュールに含まれているスクリプト - apc.php をドキュメントルート以下に配置し、 - ブラウザでアクセスしてください。 - キャッシュの状態についての詳細な情報がここで得られます。 - PHP で GD が使用可能になっている場合は、きれいなグラフも表示されます。 - まず最初にチェックすべきなのは、当然、 - 実際にファイルがキャッシュされているかどうかでしょう。 - 実際に動作していることを確認したら、次は左側にある - Cache full count の値に注目しましょう。 - これは、キャッシュがいっぱいになったために強制削除が行われた - (直近の apc.ttl 秒間にアクセスされなかったエントリが、 - キャッシュから削除された) 回数を表します。 - この値ができるだけ小さくなるようにキャッシュを設定しなければなりません。 - キャッシュが絶えずいっぱいになっているようだと、 - パフォーマンスに影響を及ぼします。 - この場合は、APC に割り当てるメモリの量を増やすか、 - キャッシュするスクリプトを絞り込むために - apc.filters を使用します。 - - - APC を mmap (メモリマッピング) サポート付きでコンパイルすると、 - ひとつのメモリセグメントだけを使うようになります。一方、APC を SHM (SysV 共有メモリ) - サポートでビルドした場合は複数のメモリセグメントを使います。 - MMAP には、SHM における - /proc/sys/kernel/shmmax - のような最大値の制限はありません。 - 一般的には MMAP サポートを推奨します。 - ウェブサーバーを再起動するよりも高速にメモリを再利用するし、 - 起動時のメモリ割り当て量も軽減できるからです。 - - - - APC の設定オプション - - - - &Name; - &Default; - &Changeable; - &Changelog; - - - - - apc.enabled - "1" - PHP_INI_SYSTEM - APC 2 で PHP_INI_SYSTEM。APC <= 3.0.12 で PHP_INI_ALL。 - - - apc.shm_segments - "1" - PHP_INI_SYSTEM - - - - apc.shm_size - "32M" - PHP_INI_SYSTEM - - - - apc.shm_strings_buffer - "4M" - PHP_INI_SYSTEM - APC 3.1.4 以降で利用可能。 - - - apc.optimization - "0" - PHP_INI_ALL - APC 2 では PHP_INI_SYSTEM。APC 3.0.13 で削除。 - - - apc.num_files_hint - "1000" - PHP_INI_SYSTEM - - - - apc.user_entries_hint - "4096" - PHP_INI_SYSTEM - APC 3.0.0 以降で利用可能。 - - - apc.ttl - "0" - PHP_INI_SYSTEM - APC 3.0.0 以降で利用可能。 - - - apc.user_ttl - "0" - PHP_INI_SYSTEM - APC 3.0.0 以降で利用可能。 - - - apc.gc_ttl - "3600" - PHP_INI_SYSTEM - - - - apc.cache_by_default - "1" - PHP_INI_ALL - APC <= 3.0.12 で PHP_INI_SYSTEM。APC 3.0.0 以降で利用可能。 - - - apc.filters - NULL - PHP_INI_SYSTEM - - - - apc.mmap_file_mask - NULL - PHP_INI_SYSTEM - - - - apc.slam_defense - "1" - PHP_INI_SYSTEM - APC 3.0.0 以降で利用可能。APC 3.1.4 より前のバージョンでは、デフォルト値が "0" (無効) でした。 - - - apc.file_update_protection - "2" - PHP_INI_SYSTEM - APC 3.0.6 以降で利用可能。 - - - apc.enable_cli - "0" - PHP_INI_SYSTEM - APC 3.0.7 以降で利用可能。 - - - apc.max_file_size - "1M" - PHP_INI_SYSTEM - APC 3.0.7 以降で利用可能。 - - - apc.use_request_time - "1" - PHP_INI_ALL - APC 3.1.3 以降で利用可能。 - - - apc.stat - "1" - PHP_INI_SYSTEM - APC 3.0.10 以降で利用可能。 - - - apc.write_lock - "1" - PHP_INI_SYSTEM - APC 3.0.11 以降で利用可能。 - - - apc.report_autofilter - "0" - PHP_INI_SYSTEM - APC 3.0.11 以降で利用可能。 - - - apc.serializer - "default" - PHP_INI_SYSTEM - APC 3.1.0 以降で利用可能。 - - - apc.include_once_override - "0" - PHP_INI_SYSTEM - APC 3.0.12 以降で利用可能。 - - - apc.rfc1867 - "0" - PHP_INI_SYSTEM - APC 3.0.13 以降で利用可能。 - - - apc.rfc1867_prefix - "upload_" - PHP_INI_SYSTEM - - - - apc.rfc1867_name - "APC_UPLOAD_PROGRESS" - PHP_INI_SYSTEM - - - - apc.rfc1867_freq - "0" - PHP_INI_SYSTEM - - - - apc.rfc1867_ttl - "3600" - PHP_INI_SYSTEM - APC 3.1.1 以降で利用可能。 - - - apc.localcache - "0" - PHP_INI_SYSTEM - APC 3.0.14 から 3.1.11 で利用可能。 - - - apc.localcache.size - "512" - PHP_INI_SYSTEM - APC 3.0.14 から 3.1.11 で利用可能。 - - - apc.coredump_unmap - "0" - PHP_INI_SYSTEM - APC 3.0.16 以降で利用可能。 - - - apc.stat_ctime - "0" - PHP_INI_SYSTEM - APC 3.0.13 以降で利用可能。 - - - apc.preload_path - NULL - PHP_INI_SYSTEM - APC 3.1.1 以降で利用可能。 - - - apc.file_md5 - "0" - PHP_INI_SYSTEM - APC 3.1.1 以降で利用可能。 - - - apc.canonicalize - "1" - PHP_INI_SYSTEM - APC 3.1.1 以降で利用可能。 - - - apc.lazy_functions - 0 - PHP_INI_SYSTEM - APC 3.1.3 以降で利用可能。 - - - apc.lazy_classes - 0 - PHP_INI_SYSTEM - APC 3.1.3 以降で利用可能。 - - - -
- &ini.php.constants; -
- - &ini.descriptions.title; - - - - - - apc.enabled - boolean - - - - apc.enabled を 0 にすることで APC を無効にできます。 - APC が静的にコンパイルされて PHP に組み込まれており、 - 他に無効にする手段がない場合などに有用です (DSO としてコンパイルされている場合は、 - 単に php.ini の中の extension - という行をコメントアウトするだけで無効にできます)。 - - - - - - apc.shm_segments - integer - - - - コンパイラキャッシュのために割り当てる共有メモリセグメントの数。 - APC が割り当て済みの共有メモリを使い切ってしまっているが、 - すでにシステムが許す限り apc.shm_size - を拡大しているといった場合に、この値を大きくすることを試みます。 - - - - - - apc.shm_size - string - - - - 個々の共有メモリセグメントの大きさを、 - この FAQ - で説明している記法で指定します。デフォルトで、 - 共有メモリセグメントの大きさが非常に小さく設定されているシステムもあります - (大半の BSD 系システムがこれに含まれます)。 - - - - - - apc.shm_strings_buffer - string - - - - APC が内部的に文字列用の共有バッファとして使うためのメモリのサイズ。 - 最後に M (メガバイト) あるいは G (ギガバイト) をつけなければいけません。 - このオプションを有効にすると、PHP-FPM ごとに使うメモリの量を減らせます。 - 文字列をワーカーごとに格納するのではなく、一括で格納することになるからです。 - - - - - - apc.optimization - integer - - - - 最適化レベル。ゼロは最適化を無効にし、 - 値を大きくするほど最適化のレベルが高くなります。 - わずかながら速度の向上が期待できます。この項目は実験的なものです。 - - - - - - apc.num_files_hint - integer - - - - Web サーバーで読み込まれるソースファイルの総数についての - 「ヒント」。よくわからない場合はゼロを指定するか、 - 単に無視してください。 - 何千ものソースファイルを扱っているようなサイトで有用です。 - - - - - - apc.user_entries_hint - integer - - - - apc.num_files_hint と同様に、 - 保存するユーザーキャッシュ変数の数についての「ヒント」。 - よくわからない場合は、ゼロを設定するか無視してください。 - - - - - - apc.ttl - integer - - - - キャッシュされているエントリが、 - 他のエントリに割り当てられるまでスロットに残っていることの可能な秒数。 - ゼロのままにしておくと、キャッシュの中身が古いエントリでいっぱいになってしまい、 - 新しいエントリがキャッシュできなくなります。 - キャッシュが使用可能メモリを超えてしまった場合、 - ttl が 0 ならキャッシュを完全に破棄します。 - ttl が 0 より大きい場合は、APC は期限切れのエントリの削除を試みます。 - - - - - - apc.user_ttl - integer - - - - ユーザーキャッシュエントリが、 - 他のエントリに割り当てられるまでスロットに残っていることの可能な秒数。 - ゼロのままにしておくと、キャッシュの中身が古いエントリでいっぱいになってしまい、 - 新しいエントリがキャッシュできなくなります。 - キャッシュが使用可能メモリを超えてしまった場合、 - ttl が 0 ならキャッシュを完全に破棄します。 - ttl が 0 より大きい場合は、APC は期限切れのエントリの削除を試みます。 - - - - - - apc.gc_ttl - integer - - - - キャッシュエントリがガベージコレクションのリストに残り続ける秒数。 - ソースファイルのキャッシュ中にサーバープロセスが死んだ場合の安全装置となります。 - ソースファイルが変更された場合、メモリに割り当てられている古いバージョンは、 - この TTL に達するまで再読み込みされません。 - この機能を無効にするにはゼロを設定します。 - - - - - - apc.cache_by_default - boolean - - - - デフォルトで On です。しかし、これを Off にして - + で始まる apc.filters - とともに使用することで、 - フィルタに一致したファイルのみをキャッシュすることが可能です。 - - - - - - apc.filters - string - - - - カンマで区切られた、POSIX 拡張正規表現のリスト。 - ソースファイル名がいずれかのパターンにマッチした場合、そのファイルはキャッシュされません。 - マッチングに使用されるファイル名は include/require に渡される名前であり、 - 絶対パスではないことに注意しましょう。正規表現が + - で始まっている場合、その条件にマッチするファイルはキャッシュされます。 - また - で始まっている場合は、 - 条件にマッチするファイルはキャッシュされません。 - デフォルトは - なので、これは省略可能です。 - - - - - - apc.mmap_file_mask - string - - - - --enable-mmap を用いて MMAP - サポートつきでコンパイルされている場合、ここで - mktemp 形式のファイルマスクを指定します。mmap モジュールは、 - mmap されたメモリ領域をファイルに置くか共有メモリに置くかを、 - これによって判断します。 - ファイルベースの mmap を使用するには、この値を - /tmp/apc.XXXXXX - (正確に 6 つの X)のように指定します。 - POSIX 形式の shm_open/mmap を使用するには、.shm - をマスクのどこかで指定します。例: /apc.shm.XXXXXX 。 - また、/dev/zero を指定することで、カーネルの - /dev/zero インターフェイスを使用した anonymous mmap - を使用することもできます。未定義の場合は、この方式が用いられます。 - - - - - - apc.slam_defense - integer - - - - 非常にアクセスの多いサーバーでは、 - サーバーを起動したりファイルを書き換えたりするたびに - 「多くのプロセスが」「同時に」「同じファイルを」 - キャッシュしようとすることになります。このオプションを指定すると、 - ある一定のパーセンテージでファイルをキャッシュせずに利用するようにします。 - あるいは、単一のプロセスがキャッシュ処理をスキップする確率と考えることもできます。 - たとえば、apc.slam_defense75 - に設定すると、プロセスがキャッシュされていないファイルをキャッシュする処理を - 75% の確率で抑えられます。つまり、この値を大きく設定することで、 - キャッシュ処理の混雑を防ぐことが可能です。値を 0 - に設定すると、この機能が無効になります。 - - - 非推奨です。かわりに apc.write_lock - を使用しましょう。 - - - - - - apc.file_update_protection - integer - - - - 稼動中の Web サーバー上のファイルを書き換える場合、 - アトミックな手段で行うべきです。つまり、まずいったん一時ファイルに書き込み、 - 準備ができた時点でそれをリネーム(mv) - して正しい位置に移動します。多くのテキストエディタや cptar - その他のプログラムはこの方式ではありません。 - ということは、ファイルの書き込み中にそのファイルがアクセスされる - (そしてキャッシュされる)可能性があるわけです。 - apc.file_update_protection は、 - 新しいファイルをキャッシュするまでの遅延を設定します。デフォルトは - 2 秒で、ファイルの更新時刻(mtime)がアクセス時刻と - 2 秒未満しか違わない場合はファイルをキャッシュしないという意味です。 - 更新の最中のファイルにアクセスしてしまった不幸な人には - 変なデータが見えてしまいますが、 - 少なくともその変な状態がキャッシュされてしまうことはありません。 - rsync などのアトミックな更新を保証する方式を利用することがわかっている場合は、 - 値を 0 に設定することでこの機能を無効にできます。 - 更新処理に 2 秒以上かかるようなシステムを利用している場合は、 - この値をもう少し大きくしたくなるかもしれません。 - - - - - - apc.enable_cli - integer - - - - たいていは、テストやデバッグ用に使用します。これを設定すると - CLI バージョンの PHP で APC を有効にします。通常は、すべての - CLI リクエストに対して APC キャッシュを作成/格納/削除したいとは思わないでしょう。 - しかし、CLI バージョンの APC を簡単に作成できるようにしておくことは、 - 多くのテストシナリオで有用です。 - - - - - - apc.max_file_size - integer - - - - この値よも大きなサイズのファイルは、キャッシュされません。 - デフォルトは 1M です。 - - - - - - apc.stat - integer - - - - この設定を変更する場合は十分注意してください。デフォルト設定は On で、 - これは、ファイルが変更されていないかどうかを - スクリプトの実行のたびに APC が調べ、 - もし変更されていれば、再コンパイルして新しいバージョンをキャッシュします。 - この設定を Off にすると、変更されているかどうかがチェックされません。 - つまり、変更内容を有効にするには Web サーバーを再起動する必要があるということです。 - 実運用環境ではコードを変更することはめったにないでしょうから、 - この設定を Off にしておくことでパフォーマンスを大きく向上させられます。 - - - include/require されたファイルについてもこのオプションは適用されますが、 - もし相対パス (Unix の場合は / で始まらないすべてのパス) の include - を使用している場合は、ファイルを一意に識別するために APC - がチェックする必要があります。 - 絶対パスの include を使用している場合、 - APC 絶対パスをファイルの識別子として使用し、 - チェックを飛ばすことができます。 - - - - - - - apc.write_lock - boolean - - - - 多くの処理が実行されるサーバーでは、最初にサーバーを立ち上げたときや - 多くのファイルを変更した場合などに、 - すべてのプロセスが同一のファイルをコンパイルしたりキャッシュしたりしてしまうことがあります。 - write_lock を有効にすると、ひとつのプロセスのみが - 未キャッシュのスクリプトをコンパイルするようになります。 - その間、他のプロセスはロック待ちをするのではなく - キャッシュされていない状態で実行します。 - - - - - - - apc.report_autofilter - boolean - - - - バインド時の問題によりキャッシュから自動的に除外されたスクリプトを記録します。 - - - - - - - apc.serializer - string - - - - APC でサードパーティーのシリアライザーを使うよう設定します。 - - - - - - - apc.include_once_override - boolean - - - - include_once および require_once - を最適化し、コストの高いシステムコールの使用を避けるようにします。 - - - - この機能は実験的なものです。 - このディレクティブの挙動やディレクティブ名、そして関連するドキュメントなどは、 - 今後 APC の新バージョンがリリースされるときに予告なく変更される可能性があります。 - この機能は自己責任の下で使うようにしましょう。 - - - - - - - - apc.rfc1867 - boolean - - - - RFC1867 のファイルアップロード進捗ハンドラが有効になるのは、 - PHP 5.2.0 以降で APC をコンパイルした場合のみです。 - これを有効にすると、ファイルアップロードフォームの file フィールドの前に - APC_UPLOAD_PROGRESS というフィールドがある場合に - APC が自動的にユーザーキャッシュエントリ upload_key - を作成します。ここで、key はフォームの - APC_UPLOAD_PROGRESS エントリの値となります。 - - - APC_UPLOAD_PROGRESS で指定した hidden フィールドが - file フィールドよりも前にこなければならないことに注意しましょう。 - そうしないと、アップロードの進捗処理が正しく動作しません。 - - - 現時点では、ファイルアップロードの追跡はスレッドセーフではないことに注意しましょう。 - 前のアップロード処理が終わる前に別のアップロードを開始すると、 - 前のアップロードの追跡が無効になってしまいます。 - - - rate が使えるのは、 - すべてのファイルの転送が完了してからであることに注意しましょう。 - - - - apc.rfc1867 の例 - - -]]> - - &example.outputs.similar; - - 1142543 - [current] => 1142543 - [rate] => 1828068.8 - [filename] => test - [name] => file - [temp_filename] => /tmp/php8F - [cancel_upload] => 0 - [done] => 1 -) -]]> - - - - - - - - - apc.rfc1867_prefix - string - - - - rfc1867 のアップロード進捗処理機能で作成するユーザーキャッシュエントリの - キーにつけるプレフィックスを指定します。 - - - - - - - apc.rfc1867_name - string - - - - APC のアップロード進捗処理機能を有効にするフォームの hidden - 項目名、そしてユーザーキャッシュエントリのキーのサフィックスを指定します。 - - - - - - - apc.rfc1867_freq - string - - - - アップロードの進捗を記録するユーザーキャッシュエントリの更新頻度を指定します。 - ファイルサイズに対するパーセンテージ、あるいはファイルサイズで指定します。 - サイズを指定する場合は、最後に - "k""m" あるいは "g" - を指定することでそれぞれキロバイト、メガバイト、ギガバイトを指定できます - (大文字小文字は区別しません)。 - 0 を指定すると、可能な限り進捗を更新するようにします。 - これは、アップロードの速度を低下させてしまいます。 - - - - - - - apc.rfc1867_ttl - integer - - - - rfc1867 エントリの TTL。 - - - - - - - apc.localcache - boolean - - - - これは、ロックが不要なローカルプロセスのシャドウキャッシュを有効にします。 - これにより、キャッシュが書き込まれる際のロックの競合を軽減します。 - - - - - - - apc.localcache.size - integer - - - - ローカルプロセスのシャドウキャッシュの大きさ。 - ある程度大きなな値を設定しておく必要があります。目安としては - apc.num_files_hint - の半分程度となります。 - - - - - - - apc.coredump_unmap - boolean - - - - APC で SIGSEGV のようなシグナルを捕捉し、 - シグナルの発生時にコアファイルを書き出せるようにします。 - シグナルを受け取ると、 - APC は共有メモリセグメントの割り当てを解除し、 - コアファイルにそれが書き出されないようにします。 - この設定を行うと、 - APC の共有メモリセグメントを大きめに設定しているときに - 致命的なシグナルを受け取った場合のシステムの安定性が向上します。 - - - - この機能には危険性があります。 - 致命的なシグナルのハンドラで共有メモリセグメントの割り当てを解除しようとすると、 - 発生したエラーによっては未定義の振る舞いを起こす可能性があります。 - - - - - カーネルによってはコアダンプファイルの生成時に共有メモリを無視する機能を持つものもありますが、 - そのような実装は、たとえば Apache のスコアボードのような - 重要な共有メモリセグメントも無視してしまう可能性があります。 - - - - - - - - apc.stat_ctime - integer - - - - ctime による検証を行えば、svn や rsync といったプログラムが引き起こす問題を回避することができます。 - 直近の状態から inode が変わっていないことを確実に確かめられるからです。 - APC は、通常は mtime のみしか確認しません。 - - - - - - - apc.canonicalize - bool - - - - オンにすると、no-stat モードのときに相対パスを正規化します。 - これを設定すると、ストリームラッパー経由でインクルードしたファイルは - キャッシュできなくなります。realpath - はストリームラッパーをサポートしていないからです。 - - - - - - - apc.preload_path - string - - - - オプションで、ディレクトリへのパスを指定します。 - APC の起動時に、ここにあるキャッシュデータを読み込みます。 - - - - - - - apc.use_request_time - bool - - - - SAPI リクエストの開始時刻を - TTL に使用します。 - - - - - - - apc.file_md5 - bool - - - - ファイルの md5 ハッシュを記録します。 - - - - - - - apc.lazy_functions - integer - - - - 関数の lazy loading を有効にします。 - - - - - - - apc.lazy_classes - integer - - - - クラスの lazy loading を有効にします。 - - - - - -
- - diff --git a/reference/apc/reference.xml b/reference/apc/reference.xml deleted file mode 100644 index 152acb3686..0000000000 --- a/reference/apc/reference.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - APC &Functions; - - &reference.apc.entities.functions; - - - - - diff --git a/reference/apc/setup.xml b/reference/apc/setup.xml deleted file mode 100644 index dc1692ef23..0000000000 --- a/reference/apc/setup.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- -
- &reftitle.install; - - &pecl.moved; - - - &pecl.info; - &url.pecl.package;apc. - - - &pecl.windows.download; - - - - Windows 版の APC では、temp パスが存在し、 - Web サーバーから書き込み可能になっていることが必要です。 - APC は環境変数 TMP、TEMP、USERPROFILE の内容をこの順に調べ、 - どれも設定されていない場合は WINDOWS ディレクトリを使用します。 - - - - - さらに深く踏み込んだ、実装についての高度な技術情報は、 - - developer-supplied TECHNOTES file - を参照ください。 - - -
- - &reference.apc.ini; - -
- &reftitle.resources; - &no.resource; -
- -
- - - diff --git a/reference/apcu/apcuiterator.xml b/reference/apcu/apcuiterator.xml index 0dd4364201..faa1fef65a 100644 --- a/reference/apcu/apcuiterator.xml +++ b/reference/apcu/apcuiterator.xml @@ -1,80 +1,86 @@ - - - - - - - APCUIterator クラス - APCUIterator - - - - -
- &reftitle.intro; - - APCUIterator クラスを使うと、巨大な - APCu キャッシュの反復処理を容易に行えます。 - 巨大なキャッシュを順を追って処理し、 - ロックインスタンス単位で決まった数のエントリを取得することができます。 - そのため、キャッシュ全体を抱え込んで 100 件 (デフォルト) - のエントリを取り込むのではなく、 - キャッシュのロックを解放して他の操作ができる状態にすることが可能です。 - また、正規表現によるマッチングは C 言語レベルで行われるのでより効率的です。 - -
- - -
- &reftitle.classsynopsis; - - - - APCUIterator - - - - - APCUIterator - - - - Iterator - - - - - - Methods - - - - -
- -
- - &reference.apcu.entities.apcuiterator; - -
- - + + + + + + + APCUIterator クラス + APCUIterator + + + + +
+ &reftitle.intro; + + APCUIterator クラスを使うと、巨大な + APCu キャッシュの反復処理を容易に行えます。 + 巨大なキャッシュを順を追って処理し、 + ロックインスタンス単位で決まった数のエントリを取得することができます。 + そのため、キャッシュ全体を抱え込んで 100 件 (デフォルト) + のエントリを取り込むのではなく、 + キャッシュのロックを解放して他の操作ができる状態にすることが可能です。 + また、正規表現によるマッチングは C 言語レベルで行われるのでより効率的です。 + +
+ + +
+ &reftitle.classsynopsis; + + + + APCUIterator + + + + + APCUIterator + + + + Iterator + + + + + + &Methods; + + + + + + + + + + +
+ +
+ + &reference.apcu.entities.apcuiterator; + +
+ + diff --git a/reference/apcu/apcuiterator/construct.xml b/reference/apcu/apcuiterator/construct.xml index e24d2dd8db..40d5838aab 100644 --- a/reference/apcu/apcuiterator/construct.xml +++ b/reference/apcu/apcuiterator/construct.xml @@ -1,124 +1,117 @@ - - - - - - - APCUIterator::__construct - APCUIterator イテレータオブジェクトを作成する - - - - &reftitle.description; - - public APCUIterator::__construct - mixedsearch&null; - intformatAPC_ITER_ALL - intchunk_size100 - intlistAPC_LIST_ACTIVE - - - APCUIterator オブジェクトを作成します。 - - - - - &reftitle.parameters; - - - search - - - APCu のキーの名前にマッチする PCRE 正規表現。 - 単一の正規表現の場合は文字列で、複数の正規表現の場合は配列で指定します。 - &null; を渡すと、検索をスキップします。 - - - - - format - - - 希望する書式。 - APC_ITER_* 定数の組み合わせで指定します。 - - - - - chunk_size - - - チャンクサイズ。0 より大きい値でなければなりません。 - デフォルト値は 100 です。 - - - - - list - - - 一覧にする形式。APC_LIST_ACTIVE - あるいは APC_LIST_DELETED を渡します。 - - - - - - - - &reftitle.returnvalues; - - 成功した場合に APCUIterator オブジェクト、 - 失敗した場合に &null; を返します。 - - - - - &reftitle.examples; - - - <function>APCUIterator::__construct</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - apcu_exists - apcu_cache_info - - - - - - + + + + + + + APCUIterator::__construct + APCUIterator イテレータオブジェクトを作成する + + + + &reftitle.description; + + public APCUIterator::__construct + arraystringnullsearch&null; + intformatAPC_ITER_ALL + intchunk_size100 + intlistAPC_LIST_ACTIVE + + + APCUIterator オブジェクトを作成します。 + + + + + &reftitle.parameters; + + + search + + + 単一の文字列を指定する場合、APCu のキーの名前にマッチする + PCRE 正規表現を指定します。 + 配列を指定した場合は、APCu のキーの名前を指定します。 + &null; を渡すと、検索をスキップします。 + + + + + format + + + 希望する書式。 + APC_ITER_* 定数の組み合わせで指定します。 + + + + + chunk_size + + + チャンクサイズ。0 より大きい値でなければなりません。 + デフォルト値は 100 です。 + + + + + list + + + 一覧にする形式。APC_LIST_ACTIVE + あるいは APC_LIST_DELETED を渡します。 + + + + + + + + &reftitle.examples; + + + <function>APCUIterator::__construct</function> の例 + + +]]> + + + + + + + &reftitle.seealso; + + apcu_exists + apcu_cache_info + + + + + + diff --git a/reference/apcu/apcuiterator/current.xml b/reference/apcu/apcuiterator/current.xml index 17626a1acd..99982c1c11 100644 --- a/reference/apcu/apcuiterator/current.xml +++ b/reference/apcu/apcuiterator/current.xml @@ -1,64 +1,64 @@ - - - - - - - APCUIterator::current - 現在の項目を取得する - - - - &reftitle.description; - - public mixedAPCUIterator::current - - - - APCUIterator から現在の項目を取得します。 - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - 成功した場合に現在の項目を返します。 - もう項目が存在しない場合や取得に失敗した場合は &false; を返します。 - - - - - &reftitle.seealso; - - APCUIterator::next - Iterator::current - - - - - - + + + + + + + APCUIterator::current + 現在の項目を取得する + + + + &reftitle.description; + + public mixedAPCUIterator::current + + + + APCUIterator から現在の項目を取得します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 成功した場合に現在の項目を返します。 + もう項目が存在しない場合や取得に失敗した場合は &false; を返します。 + + + + + &reftitle.seealso; + + APCUIterator::next + Iterator::current + + + + + + diff --git a/reference/apcu/apcuiterator/gettotalcount.xml b/reference/apcu/apcuiterator/gettotalcount.xml index c70ad229f7..a4ac2f1f91 100644 --- a/reference/apcu/apcuiterator/gettotalcount.xml +++ b/reference/apcu/apcuiterator/gettotalcount.xml @@ -1,67 +1,67 @@ - - - - - - - APCUIterator::getTotalCount - 総数を取得する - - - - &reftitle.description; - - public intAPCUIterator::getTotalCount - - - - 総数を取得します。 - - - &warn.undocumented.func; - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - 総数を返します。 - - - - - &reftitle.seealso; - - APCUIterator::getTotalHits - APCUIterator::getTotalSize - apcu_cache_info - - - - - - + + + + + + + APCUIterator::getTotalCount + 総数を取得する + + + + &reftitle.description; + + public intAPCUIterator::getTotalCount + + + + 総数を取得します。 + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 総数を返します。 + + + + + &reftitle.seealso; + + APCUIterator::getTotalHits + APCUIterator::getTotalSize + apcu_cache_info + + + + + + diff --git a/reference/apcu/apcuiterator/gettotalhits.xml b/reference/apcu/apcuiterator/gettotalhits.xml index 56b62f9cb1..e79c84fd67 100644 --- a/reference/apcu/apcuiterator/gettotalhits.xml +++ b/reference/apcu/apcuiterator/gettotalhits.xml @@ -1,67 +1,67 @@ - - - - - - - APCUIterator::getTotalHits - キャッシュヒットの総数を取得する - - - - &reftitle.description; - - public intAPCUIterator::getTotalHits - - - - キャッシュヒットの総数を取得します。 - - - &warn.undocumented.func; - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - 成功した場合にヒット数、失敗した場合に &false; を返します。 - - - - - &reftitle.seealso; - - APCUIterator::getTotalCount - APCUIterator::getTotalSize - apcu_cache_info - - - - - - + + + + + + + APCUIterator::getTotalHits + キャッシュヒットの総数を取得する + + + + &reftitle.description; + + public intAPCUIterator::getTotalHits + + + + キャッシュヒットの総数を取得します。 + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 成功した場合にヒット数、失敗した場合に &false; を返します。 + + + + + &reftitle.seealso; + + APCUIterator::getTotalCount + APCUIterator::getTotalSize + apcu_cache_info + + + + + + diff --git a/reference/apcu/apcuiterator/gettotalsize.xml b/reference/apcu/apcuiterator/gettotalsize.xml index 217882296e..da1b25c3d2 100644 --- a/reference/apcu/apcuiterator/gettotalsize.xml +++ b/reference/apcu/apcuiterator/gettotalsize.xml @@ -1,67 +1,67 @@ - - - - - - - APCUIterator::getTotalSize - キャッシュのサイズの合計を取得する - - - - &reftitle.description; - - public intAPCUIterator::getTotalSize - - - - キャッシュのサイズの合計を取得します。 - - - &warn.undocumented.func; - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - キャッシュのサイズの合計を返します。 - - - - - &reftitle.seealso; - - APCUIterator::getTotalCount - APCUIterator::getTotalHits - apcu_cache_info - - - - - - + + + + + + + APCUIterator::getTotalSize + キャッシュのサイズの合計を取得する + + + + &reftitle.description; + + public intAPCUIterator::getTotalSize + + + + キャッシュのサイズの合計を取得します。 + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + キャッシュのサイズの合計を返します。 + + + + + &reftitle.seealso; + + APCUIterator::getTotalCount + APCUIterator::getTotalHits + apcu_cache_info + + + + + + diff --git a/reference/apcu/apcuiterator/key.xml b/reference/apcu/apcuiterator/key.xml index fe9a304330..11ced55329 100644 --- a/reference/apcu/apcuiterator/key.xml +++ b/reference/apcu/apcuiterator/key.xml @@ -1,63 +1,63 @@ - - - - - - - APCUIterator::key - イテレータのキーを取得する - - - - &reftitle.description; - - public stringAPCUIterator::key - - - - 現在のイテレータのキーを取得します。 - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - 成功した場合にキー、失敗した場合に &false; を返します。 - - - - - &reftitle.seealso; - - APCUIterator::current - Iterator::key - - - - - - + + + + + + + APCUIterator::key + イテレータのキーを取得する + + + + &reftitle.description; + + public stringAPCUIterator::key + + + + 現在のイテレータのキーを取得します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 成功した場合にキー、失敗した場合に &false; を返します。 + + + + + &reftitle.seealso; + + APCUIterator::current + Iterator::key + + + + + + diff --git a/reference/apcu/apcuiterator/next.xml b/reference/apcu/apcuiterator/next.xml index eaccffc1cd..d533cc300c 100644 --- a/reference/apcu/apcuiterator/next.xml +++ b/reference/apcu/apcuiterator/next.xml @@ -1,64 +1,64 @@ - - - - - - - APCUIterator::next - ポインタを次の項目に移動させる - - - - &reftitle.description; - - public boolAPCUIterator::next - - - - イテレータのポインタを次の要素に移動させます。 - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.seealso; - - APCUIterator::current - APCUIterator::rewind - Iterator::next - - - - - - + + + + + + + APCUIterator::next + ポインタを次の項目に移動させる + + + + &reftitle.description; + + public boolAPCUIterator::next + + + + イテレータのポインタを次の要素に移動させます。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + &return.success; + + + + + &reftitle.seealso; + + APCUIterator::current + APCUIterator::rewind + Iterator::next + + + + + + diff --git a/reference/apcu/apcuiterator/rewind.xml b/reference/apcu/apcuiterator/rewind.xml index 49923ff617..2ff6ea9de2 100644 --- a/reference/apcu/apcuiterator/rewind.xml +++ b/reference/apcu/apcuiterator/rewind.xml @@ -1,63 +1,63 @@ - - - - - - - APCUIterator::rewind - イテレータを巻き戻す - - - - &reftitle.description; - - public voidAPCUIterator::rewind - - - - イテレータを最初の要素に巻き戻します - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - &return.void; - - - - - &reftitle.seealso; - - APCUIterator::next - Iterator::next - - - - - - + + + + + + + APCUIterator::rewind + イテレータを巻き戻す + + + + &reftitle.description; + + public voidAPCUIterator::rewind + + + + イテレータを最初の要素に巻き戻します + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.seealso; + + APCUIterator::next + Iterator::next + + + + + + diff --git a/reference/apcu/apcuiterator/valid.xml b/reference/apcu/apcuiterator/valid.xml index d92894bf3a..e2675525ea 100644 --- a/reference/apcu/apcuiterator/valid.xml +++ b/reference/apcu/apcuiterator/valid.xml @@ -1,63 +1,63 @@ - - - - - - - APCUIterator::valid - 現在位置が有効かどうかを調べる - - - - &reftitle.description; - - public boolAPCUIterator::valid - - - - イテレータの現在位置が有効かどうかを調べます。 - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - イテレータの現在位置が有効な場合に &true;、それ以外の場合に &false; を返します。 - - - - - &reftitle.seealso; - - APCUIterator::current - Iterator::valid - - - - - - + + + + + + + APCUIterator::valid + 現在位置が有効かどうかを調べる + + + + &reftitle.description; + + public boolAPCUIterator::valid + + + + イテレータの現在位置が有効かどうかを調べます。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + イテレータの現在位置が有効な場合に &true;、それ以外の場合に &false; を返します。 + + + + + &reftitle.seealso; + + APCUIterator::current + Iterator::valid + + + + + + diff --git a/reference/apcu/book.xml b/reference/apcu/book.xml index ad95e00e6e..43987f67af 100644 --- a/reference/apcu/book.xml +++ b/reference/apcu/book.xml @@ -1,25 +1,34 @@ - + + APC User Cache APCu &reftitle.intro; - APCu は APC から opcode のキャッシュ機能を除いたものです。 + APCu は、PHP で動くインメモリの key-value ストアです。 + キーは文字列型で、値は任意のPHPの変数を保存できます。 + APCu はユーザーランドの変数のキャッシュのみをサポートしています。 - 一番はじめの APCu のコードベースには 4.0.0 というバージョンが付けられました。 - これは当時の APC の master ブランチの最新版からフォークした時点のものです。 + APCu のキャッシュは、Windows ではプロセス単位で機能します。 + そのため、(スレッドベースではない) プロセスベースの SAPI を使う場合、 + 異なるプロセスをまたがってキャッシュは共有されません。 + + + APCu は APC から opcode のキャッシュ機能を除いたものです。 - APCu 5.0.0 で PHP 7 がサポートされました。 + 一番はじめの APCu のコードベースには 4.0.0 というバージョンが付けられました。 + これは当時の APC の master ブランチの最新版からフォークした時点のものです。 - APCu は、APC の代替となるように互換モードを提供しています。 + APCu 5.0.0 以降で PHP 7 がサポートされています。 + PHP 8 は APCu 5.1.19 以降でサポートされています。 diff --git a/reference/apcu/constants.xml b/reference/apcu/constants.xml index 19fdbbaa0d..f6824a0276 100644 --- a/reference/apcu/constants.xml +++ b/reference/apcu/constants.xml @@ -1,6 +1,6 @@ - + @@ -9,10 +9,10 @@ - + APC_ITER_ALL - (integer) + (int) @@ -20,10 +20,10 @@ - + APC_ITER_ATIME - (integer) + (int) @@ -31,10 +31,10 @@ - + APC_ITER_CTIME - (integer) + (int) @@ -42,10 +42,10 @@ - + APC_ITER_DEVICE - (integer) + (int) @@ -53,10 +53,10 @@ - + APC_ITER_DTIME - (integer) + (int) @@ -64,10 +64,10 @@ - + APC_ITER_FILENAME - (integer) + (int) @@ -75,10 +75,10 @@ - + APC_ITER_INODE - (integer) + (int) @@ -86,10 +86,10 @@ - + APC_ITER_KEY - (integer) + (int) @@ -97,10 +97,10 @@ - + APC_ITER_MD5 - (integer) + (int) @@ -108,10 +108,10 @@ - + APC_ITER_MEM_SIZE - (integer) + (int) @@ -119,10 +119,10 @@ - + APC_ITER_MTIME - (integer) + (int) @@ -130,10 +130,10 @@ - + APC_ITER_NONE - (integer) + (int) @@ -141,10 +141,10 @@ - + APC_ITER_NUM_HITS - (integer) + (int) @@ -152,10 +152,10 @@ - + APC_ITER_REFCOUNT - (integer) + (int) @@ -163,10 +163,10 @@ - + APC_ITER_TTL - (integer) + (int) @@ -174,10 +174,10 @@ - + APC_ITER_TYPE - (integer) + (int) @@ -185,10 +185,10 @@ - + APC_ITER_VALUE - (integer) + (int) @@ -196,10 +196,10 @@ - + APC_LIST_ACTIVE - (integer) + (int) @@ -207,10 +207,10 @@ - + APC_LIST_DELETED - (integer) + (int) diff --git a/reference/apcu/functions/apcu-add.xml b/reference/apcu/functions/apcu-add.xml index 7fe62de263..7b2cb0ddd6 100644 --- a/reference/apcu/functions/apcu-add.xml +++ b/reference/apcu/functions/apcu-add.xml @@ -1,157 +1,157 @@ - - - - - - apcu_add - - 新規の変数をデータ領域にキャッシュする - - - - &reftitle.description; - - boolapcu_add - stringkey - mixedvar - intttl0 - - - arrayapcu_add - arrayvalues - mixedunusedNULL - intttl0 - - - まだ保存されていない場合にのみ、変数をデータ領域にキャッシュします。 - - - - PHP の他の多くの仕組みと異なり、apcu_add - を用いて格納された変数はリクエストを超えて - (その値がキャッシュから取り除かれるまで)持続します。 - - - - - &reftitle.parameters; - - - - key - - - この名前を用いて変数を格納します。key は - キャッシュ内で一意です。そのため、apcu_add - を使用して同一の key - で新しい値を格納しようとしても、それは保存されません。 - かわりに &false; が返されます (これが、apcu_add - と apcu_store の唯一の相違点です)。 - - - - - var - - - 格納する変数。 - - - - - ttl - - - 有効期間。var は、キャッシュに - ttl 秒間だけ格納されます。 - ttl が経過すると、格納されている変数は - (次のリクエスト時に)キャッシュから削除されます。 - ttl が指定されていない(あるいは - ttl0 の場合)は、 - キャッシュから手動で削除される・あるいはキャッシュに存在できなくなる - (clear, restart など)まで値が持続します。 - - - - - values - - - 名前をキー、変数を値に指定します。 - - - - - - - - &reftitle.returnvalues; - - 何かがキャッシュに正しく追加されたときに TRUE、それ以外の場合に FALSE を返します。 - 二番目の構文は、エラーになったキーを含む配列を返します。 - - - - - &reftitle.examples; - - - <function>apcu_add</function> の例 - - -]]> - - &example.outputs; - - - - - - - - - &reftitle.seealso; - - - apcu_store - apcu_fetch - apcu_delete - - - - - - - + + + + + + apcu_add + + 新規の変数をデータ領域にキャッシュする + + + + &reftitle.description; + + boolapcu_add + stringkey + mixedvar + intttl0 + + + arrayapcu_add + arrayvalues + mixedunusedNULL + intttl0 + + + まだ保存されていない場合にのみ、変数をデータ領域にキャッシュします。 + + + + PHP の他の多くの仕組みと異なり、apcu_add + を用いて格納された変数はリクエストを超えて + (その値がキャッシュから取り除かれるまで)持続します。 + + + + + &reftitle.parameters; + + + + key + + + この名前を用いて変数を格納します。key は + キャッシュ内で一意です。そのため、apcu_add + を使用して同一の key + で新しい値を格納しようとしても、それは保存されません。 + かわりに &false; が返されます (これが、apcu_add + と apcu_store の唯一の相違点です)。 + + + + + var + + + 格納する変数。 + + + + + ttl + + + 有効期間。var は、キャッシュに + ttl 秒間だけ格納されます。 + ttl が経過すると、格納されている変数は + (次のリクエスト時に)キャッシュから削除されます。 + ttl が指定されていない(あるいは + ttl0 の場合)は、 + キャッシュから手動で削除される・あるいはキャッシュに存在できなくなる + (clear, restart など)まで値が持続します。 + + + + + values + + + 名前をキー、変数を値に指定します。 + + + + + + + + &reftitle.returnvalues; + + 何かがキャッシュに正しく追加されたときに TRUE、それ以外の場合に FALSE を返します。 + 二番目の構文は、エラーになったキーを含む配列を返します。 + + + + + &reftitle.examples; + + + <function>apcu_add</function> の例 + + +]]> + + &example.outputs; + + + + + + + + + &reftitle.seealso; + + + apcu_store + apcu_fetch + apcu_delete + + + + + + + diff --git a/reference/apcu/functions/apcu-cache-info.xml b/reference/apcu/functions/apcu-cache-info.xml index eb97ed772e..1e030aa3a7 100644 --- a/reference/apcu/functions/apcu-cache-info.xml +++ b/reference/apcu/functions/apcu-cache-info.xml @@ -1,165 +1,166 @@ - - - - - - apcu_cache_info - - APCu のデータから、キャッシュされた情報を取得する - - - - &reftitle.description; - - arrayapcu_cache_info - boollimited&false; - - - APC のデータから、キャッシュされた情報およびメタデータを取得します。 - - - - - &reftitle.parameters; - - - - limited - - - limited が &true; の場合は、 - 返り値にキャッシュエントリの個々の一覧が含まれません。 - これは、統計情報の収集時に呼び出しを最適化したい場合などに有用です。 - - - - - - - - - &reftitle.returnvalues; - - キャッシュされたデータ(およびメタデータ)の配列を返します。 - &return.falseforfailure; - - - - もし APC キャッシュのデータを取得できなかった場合、 - apcu_cache_info は警告を発生します。これが起こるのは、 - 一般的には APC が有効になっていない場合などです。 - - - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 3.0.11 - - limited パラメータが追加されました。 - - - - 3.0.16 - - "filehits" オプションが - cache_type パラメータに追加されました。 - - - - - - - - - - &reftitle.examples; - - - <function>apcu_cache_info</function> の例 - - -]]> - - &example.outputs.similar; - - 2000 - [ttl] => 0 - [num_hits] => 9 - [num_misses] => 3 - [start_time] => 1123958803 - [cache_list] => Array - ( - [0] => Array - ( - [filename] => /path/to/apcu_test.php - [device] => 29954 - [inode] => 1130511 - [type] => file - [num_hits] => 1 - [mtime] => 1123960686 - [creation_time] => 1123960696 - [deletion_time] => 0 - [access_time] => 1123962864 - [ref_count] => 1 - [mem_size] => 677 - ) - [1] => Array (...iterates for each cached file) -) -]]> - - - - - - - &reftitle.seealso; - - - APCu 設定ディレクティブ - APCUIterator::getTotalSize - APCUIterator::getTotalHits - APCUIterator::getTotalCount - - - - - - - + + + + + + + apcu_cache_info + + APCu のデータから、キャッシュされた情報を取得する + + + + &reftitle.description; + + arrayfalseapcu_cache_info + boollimited&false; + + + APC のデータから、キャッシュされた情報およびメタデータを取得します。 + + + + + &reftitle.parameters; + + + + limited + + + limited が &true; の場合は、 + 戻り値にキャッシュエントリの個々の一覧が含まれません。 + これは、統計情報の収集時に呼び出しを最適化したい場合などに有用です。 + + + + + + + + + &reftitle.returnvalues; + + キャッシュされたデータ(およびメタデータ)の配列を返します。 + &return.falseforfailure; + + + + もし APC キャッシュのデータを取得できなかった場合、 + apcu_cache_info は警告を発生します。これが起こるのは、 + 一般的には APC が有効になっていない場合などです。 + + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + PECL apcu 3.0.11 + + limited パラメータが追加されました。 + + + + PECL apcu 3.0.16 + + "filehits" オプションが + cache_type パラメータに追加されました。 + + + + + + + + + + &reftitle.examples; + + + <function>apcu_cache_info</function> の例 + + +]]> + + &example.outputs.similar; + + 2000 + [ttl] => 0 + [num_hits] => 9 + [num_misses] => 3 + [start_time] => 1123958803 + [cache_list] => Array + ( + [0] => Array + ( + [filename] => /path/to/apcu_test.php + [device] => 29954 + [inode] => 1130511 + [type] => file + [num_hits] => 1 + [mtime] => 1123960686 + [creation_time] => 1123960696 + [deletion_time] => 0 + [access_time] => 1123962864 + [ref_count] => 1 + [mem_size] => 677 + ) + [1] => Array (...iterates for each cached file) +) +]]> + + + + + + + &reftitle.seealso; + + + APCu 設定ディレクティブ + APCUIterator::getTotalSize + APCUIterator::getTotalHits + APCUIterator::getTotalCount + + + + + + + diff --git a/reference/apcu/functions/apcu-cas.xml b/reference/apcu/functions/apcu-cas.xml index 40f070ab91..f477d35ae2 100644 --- a/reference/apcu/functions/apcu-cas.xml +++ b/reference/apcu/functions/apcu-cas.xml @@ -1,130 +1,130 @@ - - - - - - apcu_cas - 古い値を新しい値に更新する - - - - &reftitle.description; - - boolapcu_cas - stringkey - intold - intnew - - - apcu_cas は、既に保存されている整数値が old - パラメータにマッチする値のときに、それを new - パラメータの値に更新します。 - - - - - &reftitle.parameters; - - - key - - - 更新する値のキー。 - - - - - old - - - 古い値 (現在保存されている値)。 - - - - - new - - - 新しく更新したい値。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - <function>apcu_cas</function> の例 - - -]]> - - &example.outputs.similar; - - - - - - - - &reftitle.seealso; - - apcu_dec - apcu_store - - - - - - + + + + + + apcu_cas + 古い値を新しい値に更新する + + + + &reftitle.description; + + boolapcu_cas + stringkey + intold + intnew + + + apcu_cas は、既に保存されている整数値が old + パラメータにマッチする値のときに、それを new + パラメータの値に更新します。 + + + + + &reftitle.parameters; + + + key + + + 更新する値のキー。 + + + + + old + + + 古い値 (現在保存されている値)。 + + + + + new + + + 新しく更新したい値。 + + + + + + + + + &reftitle.returnvalues; + + &return.success; + + + + + &reftitle.examples; + + <function>apcu_cas</function> の例 + + +]]> + + &example.outputs.similar; + + + + + + + + &reftitle.seealso; + + apcu_dec + apcu_store + + + + + + diff --git a/reference/apcu/functions/apcu-clear-cache.xml b/reference/apcu/functions/apcu-clear-cache.xml index 072d18d82c..3e4eac40e0 100644 --- a/reference/apcu/functions/apcu-clear-cache.xml +++ b/reference/apcu/functions/apcu-clear-cache.xml @@ -1,64 +1,64 @@ - - - - - - apcu_clear_cache - - APCu キャッシュをクリアする - - - - &reftitle.description; - - boolapcu_clear_cache - - - - キャッシュをクリアします。 - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - 常に &true; を返します。 - - - - - &reftitle.seealso; - - - apcu_cache_info - - - - - - - + + + + + + apcu_clear_cache + + APCu キャッシュをクリアする + + + + &reftitle.description; + + boolapcu_clear_cache + + + + キャッシュをクリアします。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 常に &true; を返します。 + + + + + &reftitle.seealso; + + + apcu_cache_info + + + + + + + diff --git a/reference/apcu/functions/apcu-dec.xml b/reference/apcu/functions/apcu-dec.xml index 82433ca42f..11f91e2ad9 100644 --- a/reference/apcu/functions/apcu-dec.xml +++ b/reference/apcu/functions/apcu-dec.xml @@ -1,170 +1,148 @@ - - - - - - - apcu_dec - 保存した数値を減らす - - - - &reftitle.description; - - intapcu_dec - stringkey - intstep1 - boolsuccess - intttl0 - - - 保存した整数値を減らします。 - - - - - &reftitle.parameters; - - - key - - - 減らしたい値のキー。 - - - - - step - - - 減らしたい数。 - - - - - success - - - この参照渡しの変数に、成功したか失敗したかの結果が格納されます。 - - - - - ttl - - - (既存の値を減らすのではなく) 新しい値を挿入する操作に使うTTL - - - - - - - - &reftitle.returnvalues; - - 成功した場合に key の現在値を返します。 - &return.falseforfailure; - - - - - &reftitle.changelog; - - - - - &Version; - &Description; - - - - - 5.1.12 - - 引数 ttl が追加されました。 - - - - - - - - - &reftitle.examples; - - <function>apcu_dec</function> の例 - - -]]> - - &example.outputs.similar; - - - - - - - - - &reftitle.seealso; - - apcu_inc - - - - - - + + + + + + + apcu_dec + 保存した数値を減らす + + + + &reftitle.description; + + intfalseapcu_dec + stringkey + intstep1 + boolsuccess + intttl0 + + + 保存した整数値を減らします。 + + + + + &reftitle.parameters; + + + key + + + 減らしたい値のキー。 + + + + + step + + + 減らしたい数。 + + + + + success + + + この参照渡しの変数に、成功したか失敗したかの結果が格納されます。 + + + + + ttl + + + (既存の値を減らすのではなく) 新しい値を挿入する操作に使うTTL + + + + + + + + &reftitle.returnvalues; + + 成功した場合に key の現在値を返します。 + &return.falseforfailure; + + + + + &reftitle.examples; + + <function>apcu_dec</function> の例 + + +]]> + + &example.outputs.similar; + + + + + + + + + &reftitle.seealso; + + apcu_inc + + + + + + diff --git a/reference/apcu/functions/apcu-delete.xml b/reference/apcu/functions/apcu-delete.xml index 94cf9121ec..8d269d3a3e 100644 --- a/reference/apcu/functions/apcu-delete.xml +++ b/reference/apcu/functions/apcu-delete.xml @@ -1,106 +1,106 @@ - - - - - - - apcu_delete - - 格納されている変数をキャッシュから取り除く - - - - &reftitle.description; - - mixedapcu_delete - mixedkey - - - 格納されている変数をキャッシュから取り除きます。 - - - - &reftitle.parameters; - - - - key - - - 単一のキーの文字列、複数のキーの文字列の配列、 - または APCUIterator オブジェクトとして - 値を格納するために使用されるキー。 - - - - - - - - &reftitle.returnvalues; - - key が &array; の場合、 - インデックスが振られた &array; のキーが返されます。 - そうでない場合、成功したら &true; 失敗したら &false; が返されます。 - - - - - &reftitle.examples; - - - <function>apcu_delete</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - apcu_store - apcu_fetch - apcu_clear_cache - APCUIterator - - - - - - - + + + + + + + apcu_delete + + 格納されている変数をキャッシュから取り除く + + + + &reftitle.description; + + mixedapcu_delete + mixedkey + + + 格納されている変数をキャッシュから取り除きます。 + + + + &reftitle.parameters; + + + + key + + + 単一のキーの文字列、複数のキーの文字列の配列、 + または APCUIterator オブジェクトとして + 値を格納するために使用されるキー。 + + + + + + + + &reftitle.returnvalues; + + key が &array; の場合、 + インデックスが振られた &array; のキーが返されます。 + そうでない場合、成功したら &true; 失敗したら &false; が返されます。 + + + + + &reftitle.examples; + + + <function>apcu_delete</function> の例 + + +]]> + + + + + + + &reftitle.seealso; + + + apcu_store + apcu_fetch + apcu_clear_cache + APCUIterator + + + + + + + diff --git a/reference/apcu/functions/apcu-entry.xml b/reference/apcu/functions/apcu-entry.xml index 73885d1622..b599ac886c 100644 --- a/reference/apcu/functions/apcu-entry.xml +++ b/reference/apcu/functions/apcu-entry.xml @@ -1,6 +1,6 @@ - + apcu_entry @@ -13,14 +13,14 @@ mixedapcu_entry stringkey - callablegenerator + callablecallback intttl0 キャッシュに key が存在するかをアトミックに検索します。 - 存在しなければ generator が呼び出され、 + 存在しなければ callback が呼び出され、 key が唯一の引数として渡されます。 - generator ではオプションで指定する ttl の間だけ値をキャッシュし、 + callback ではオプションで指定する ttl の間だけ値をキャッシュし、 キャッシュした値が返されます。 @@ -28,7 +28,7 @@ apcu_entry 関数に制御が移ると、 キャッシュのロックを排他的に取得します。 このロックは apcu_entry の実行が終わったときに開放されます: - この結果、generator はクリティカルセクションに入るため、 + この結果、callback はクリティカルセクションに入るため、 ふたつのプロセスが同時に同じコードパスを実行することができなくなります。 さらに、他のAPCuのあらゆる関数も同時に並列に実行できなくなります。 なぜなら、同じロックを共有しているからです。 @@ -36,7 +36,7 @@ - generator から安全に呼び出せるAPCuの関数は apcu_entry だけです。 + callback から安全に呼び出せるAPCuの関数は apcu_entry だけです。 @@ -53,7 +53,7 @@ - generator + callback key を唯一の引数として取り、 @@ -65,9 +65,9 @@ ttl - 有効期間。var は、キャッシュに + 有効期間。callback の戻り値は、キャッシュに ttl 秒間だけ格納されます。 - ttl が経過すると、格納されている変数は + ttl が経過すると、格納されているエントリは (次のリクエスト時に)キャッシュから削除されます。 ttl が指定されていない(あるいは ttl0 の場合)は、 diff --git a/reference/apcu/functions/apcu-exists.xml b/reference/apcu/functions/apcu-exists.xml index 20be06d16e..053429b1f1 100644 --- a/reference/apcu/functions/apcu-exists.xml +++ b/reference/apcu/functions/apcu-exists.xml @@ -1,124 +1,124 @@ - - - - - - apcu_exists - エントリが存在するかどうかを調べる - - - - &reftitle.description; - - mixedapcu_exists - mixedkeys - - - 指定した APCu エントリが存在するかどうかを調べます。 - - - - - &reftitle.parameters; - - - keys - - - キーを含む文字列、あるいは文字列の配列。 - - - - - - - - &reftitle.returnvalues; - - キーが存在する場合に &true;、それ以外の場合に &false; を返します。 - keys に配列を渡したときは、 - 存在するキーをすべて含む配列を返します。 - どれも存在しない場合は空の配列を返します。 - - - - - &reftitle.examples; - - <function>apcu_exists</function> の例 - - -]]> - - &example.outputs.similar; - - - bool(true) - ["bar"]=> - bool(true) -} -]]> - - - - - - &reftitle.seealso; - - apcu_cache_info - apcu_fetch - - - - - + + + + + + apcu_exists + エントリが存在するかどうかを調べる + + + + &reftitle.description; + + boolarrayapcu_exists + stringarraykeys + + + 指定した APCu エントリが存在するかどうかを調べます。 + + + + + &reftitle.parameters; + + + keys + + + キーを含む文字列、あるいは文字列の配列。 + + + + + + + + &reftitle.returnvalues; + + キーが存在する場合に &true;、それ以外の場合に &false; を返します。 + keys に配列を渡したときは、 + 存在するキーをすべて含む配列を返します。 + どれも存在しない場合は空の配列を返します。 + + + + + &reftitle.examples; + + <function>apcu_exists</function> の例 + + +]]> + + &example.outputs.similar; + + + bool(true) + ["bar"]=> + bool(true) +} +]]> + + + + + + &reftitle.seealso; + + apcu_cache_info + apcu_fetch + + + + + diff --git a/reference/apcu/functions/apcu-fetch.xml b/reference/apcu/functions/apcu-fetch.xml index 658e194c33..d60ae607f8 100644 --- a/reference/apcu/functions/apcu-fetch.xml +++ b/reference/apcu/functions/apcu-fetch.xml @@ -1,133 +1,133 @@ - - - - - - - apcu_fetch - - 格納されている変数をキャッシュから取得する - - - - &reftitle.description; - - mixedapcu_fetch - mixedkey - boolsuccess - - - エントリをキャッシュから取得します。 - - - - &reftitle.parameters; - - - - key - - - (apcu_store を用いて) - 値を格納する際に使用された key。 - 配列を渡した場合は、各要素について取得した値を返します。 - - - - - success - - - 成功したばあいに &true;、失敗した際に &false; が設定されます。 - - - - - - - - &reftitle.returnvalues; - - 成功した場合に格納されていた変数 (あるいは配列)、失敗した場合に &false; を返します。 - - - - - &reftitle.examples; - - - <function>apcu_fetch</function> の例 - - -]]> - - &example.outputs; - - - - - - - - - &reftitle.changelog; - - - - - &Version; - &Description; - - - - - 3.0.17 - - success パラメータが追加されました。 - - - - - - - - - &reftitle.seealso; - - - apcu_store - apcu_delete - APCUIterator - - - - - - - + + + + + + + apcu_fetch + + 格納されている変数をキャッシュから取得する + + + + &reftitle.description; + + mixedapcu_fetch + mixedkey + boolsuccess + + + エントリをキャッシュから取得します。 + + + + &reftitle.parameters; + + + + key + + + (apcu_store を用いて) + 値を格納する際に使用された key。 + 配列を渡した場合は、各要素について取得した値を返します。 + + + + + success + + + 成功した場合に &true;、失敗した際に &false; が設定されます。 + + + + + + + + &reftitle.returnvalues; + + 成功した場合に格納されていた変数 (あるいは配列)、失敗した場合に &false; を返します。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + PECL apcu 3.0.17 + + success パラメータが追加されました。 + + + + + + + + + &reftitle.examples; + + + <function>apcu_fetch</function> の例 + + +]]> + + &example.outputs; + + + + + + + + + &reftitle.seealso; + + + apcu_store + apcu_delete + APCUIterator + + + + + + + diff --git a/reference/apcu/functions/apcu-inc.xml b/reference/apcu/functions/apcu-inc.xml index ee52f41c01..a319c249bf 100644 --- a/reference/apcu/functions/apcu-inc.xml +++ b/reference/apcu/functions/apcu-inc.xml @@ -1,169 +1,147 @@ - - - - - - - apcu_inc - 保存した数値を増やす - - - - &reftitle.description; - - intapcu_inc - stringkey - intstep1 - boolsuccess - intttl0 - - - 保存した整数値を増やします。 - - - - - &reftitle.parameters; - - - key - - - 増やしたい値のキー。 - - - - - step - - - 増やしたい数。 - - - - - success - - - この参照渡しの変数に、成功したか失敗したかの結果が格納されます。 - - - - - ttl - - - (既存の値を減らすのではなく) 新しい値を挿入する操作に使うTTL - - - - - - - - &reftitle.returnvalues; - - 成功した場合に key の現在値を返します。 - &return.falseforfailure; - - - - - &reftitle.changelog; - - - - - &Version; - &Description; - - - - - 5.1.12 - - 引数 ttl が追加されました。 - - - - - - - - - &reftitle.examples; - - <function>apcu_inc</function> の例 - - -]]> - - &example.outputs.similar; - - - - - - - - &reftitle.seealso; - - apcu_dec - - - - - - + + + + + + + apcu_inc + 保存した数値を増やす + + + + &reftitle.description; + + intfalseapcu_inc + stringkey + intstep1 + boolsuccess + intttl0 + + + 保存した整数値を増やします。 + + + + + &reftitle.parameters; + + + key + + + 増やしたい値のキー。 + + + + + step + + + 増やしたい数。 + + + + + success + + + この参照渡しの変数に、成功したか失敗したかの結果が格納されます。 + + + + + ttl + + + (既存の値を増やすのではなく) 新しい値を挿入する操作に使うTTL + + + + + + + + &reftitle.returnvalues; + + 成功した場合に key の現在値を返します。 + &return.falseforfailure; + + + + + &reftitle.examples; + + <function>apcu_inc</function> の例 + + +]]> + + &example.outputs.similar; + + + + + + + + &reftitle.seealso; + + apcu_dec + + + + + + diff --git a/reference/apcu/functions/apcu-key-info.xml b/reference/apcu/functions/apcu-key-info.xml new file mode 100644 index 0000000000..fe48ade2a5 --- /dev/null +++ b/reference/apcu/functions/apcu-key-info.xml @@ -0,0 +1,117 @@ + + + + + + apcu_key_info + + キャッシュのキーに関する詳細な情報を取得する + + + + + &reftitle.description; + + arraynullapcu_key_info + stringkey + + + キャッシュのキーに関する詳細な情報を取得します。 + + + + + &reftitle.parameters; + + + + key + + + キャッシュのキー + + + + + + + + + &reftitle.returnvalues; + + キャッシュのキーに関する、詳細な情報を含む配列を返します。 + キーが存在しない場合、&null; を返します。 + + + + + &reftitle.examples; + + + A <function>apcu_key_info</function> の例 + + +]]> + + &example.outputs; + + + int(0) + ["access_time"]=> + int(1606701783) + ["mtime"]=> + int(1606701783) + ["creation_time"]=> + int(1606701783) + ["deletion_time"]=> + int(0) + ["ttl"]=> + int(0) + ["refs"]=> + int(0) +} +]]> + + + + + + + &reftitle.seealso; + + + apcu_store + apcu_fetch + apcu_delete + + + + + + + diff --git a/reference/apcu/functions/apcu-sma-info.xml b/reference/apcu/functions/apcu-sma-info.xml index 9b2da0458c..953701890e 100644 --- a/reference/apcu/functions/apcu-sma-info.xml +++ b/reference/apcu/functions/apcu-sma-info.xml @@ -1,119 +1,119 @@ - - - - - - apcu_sma_info - - APCu の共有メモリ割り当てに関する情報を取得する - - - - &reftitle.description; - - arrayapcu_sma_info - boollimited&false; - - - APCu の共有メモリ割り当てに関する情報を取得します。 - - - - - &reftitle.parameters; - - - - limited - - - &false; (デフォルト) を設定すると、apcu_sma_info - は各セグメントの詳細な情報を返します。 - - - - - - - - - &reftitle.returnvalues; - - 共有メモリ割り当てデータの配列を返します。失敗した場合は &false; を返します。 - - - - - &reftitle.examples; - - - <function>apcu_sma_info</function> の例 - - -]]> - - &example.outputs.similar; - - 1 - [seg_size] => 31457280 - [avail_mem] => 31448408 - [block_lists] => Array - ( - [0] => Array - ( - [0] => Array - ( - [size] => 31448408 - [offset] => 8864 - ) - - ) - - ) - -) -]]> - - - - - - - &reftitle.seealso; - - - - APCu 設定ディレクティブ - - - - - - - - + + + + + + apcu_sma_info + + APCu の共有メモリ割り当てに関する情報を取得する + + + + &reftitle.description; + + arrayfalseapcu_sma_info + boollimited&false; + + + APCu の共有メモリ割り当てに関する情報を取得します。 + + + + + &reftitle.parameters; + + + + limited + + + &false; (デフォルト) を設定すると、apcu_sma_info + は各セグメントの詳細な情報を返します。 + + + + + + + + + &reftitle.returnvalues; + + 共有メモリ割り当てデータの配列を返します。失敗した場合は &false; を返します。 + + + + + &reftitle.examples; + + + <function>apcu_sma_info</function> の例 + + +]]> + + &example.outputs.similar; + + 1 + [seg_size] => 31457280 + [avail_mem] => 31448408 + [block_lists] => Array + ( + [0] => Array + ( + [0] => Array + ( + [size] => 31448408 + [offset] => 8864 + ) + + ) + + ) + +) +]]> + + + + + + + &reftitle.seealso; + + + + APCu 設定ディレクティブ + + + + + + + + diff --git a/reference/apcu/functions/apcu-store.xml b/reference/apcu/functions/apcu-store.xml index 58f98e5273..faa5998621 100644 --- a/reference/apcu/functions/apcu-store.xml +++ b/reference/apcu/functions/apcu-store.xml @@ -1,148 +1,148 @@ - - - - - - apcu_store - - 変数をデータ領域にキャッシュする - - - - &reftitle.description; - - boolapcu_store - stringkey - mixedvar - intttl0 - - - arrayapcu_store - arrayvalues - mixedunusedNULL - intttl0 - - - 変数をデータ領域にキャッシュします。 - - - - PHP の他の多くの仕組みと異なり、apcu_store - を用いて格納された変数はリクエストを超えて - (その値がキャッシュから取り除かれるまで)持続します。 - - - - - &reftitle.parameters; - - - - key - - - この名前を用いて変数を格納します。key は - キャッシュ内で一意です。そのため、同一の key - で新しい値を格納すると、元の値は上書きされます。 - - - - - var - - - 格納する変数。 - - - - - ttl - - - 有効期間。var は、キャッシュに - ttl 秒間だけ格納されます。 - ttl が経過すると、格納されている変数は - (次のリクエスト時に)キャッシュから削除されます。 - ttl が指定されていない(あるいは - ttl0 の場合)は、 - キャッシュから手動で削除される・あるいはキャッシュに存在できなくなる - (clear, restart など)まで値が持続します。 - - - - - values - - - 名前をキー、変数を値に指定します。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - 二番目の構文は、エラーになったキーを含む配列を返します。 - - - - - &reftitle.examples; - - - <function>apcu_store</function> の例 - - -]]> - - &example.outputs; - - - - - - - - - &reftitle.seealso; - - - apcu_add - apcu_fetch - apcu_delete - - - - - - - + + + + + + apcu_store + + 変数をデータ領域にキャッシュする + + + + &reftitle.description; + + boolapcu_store + stringkey + mixedvar + intttl0 + + + arrayapcu_store + arrayvalues + mixedunusedNULL + intttl0 + + + 変数をデータ領域にキャッシュします。 + + + + PHP の他の多くの仕組みと異なり、apcu_store + を用いて格納された変数はリクエストを超えて + (その値がキャッシュから取り除かれるまで)持続します。 + + + + + &reftitle.parameters; + + + + key + + + この名前を用いて変数を格納します。key は + キャッシュ内で一意です。そのため、同一の key + で新しい値を格納すると、元の値は上書きされます。 + + + + + var + + + 格納する変数。 + + + + + ttl + + + 有効期間。var は、キャッシュに + ttl 秒間だけ格納されます。 + ttl が経過すると、格納されている変数は + (次のリクエスト時に)キャッシュから削除されます。 + ttl が指定されていない(あるいは + ttl0 の場合)は、 + キャッシュから手動で削除される・あるいはキャッシュに存在できなくなる + (clear, restart など)まで値が持続します。 + + + + + values + + + 名前をキー、変数を値に指定します。 + + + + + + + + &reftitle.returnvalues; + + &return.success; + 二番目の構文は、エラーになったキーを含む配列を返します。 + + + + + &reftitle.examples; + + + <function>apcu_store</function> の例 + + +]]> + + &example.outputs; + + + + + + + + + &reftitle.seealso; + + + apcu_add + apcu_fetch + apcu_delete + + + + + + + diff --git a/reference/apcu/ini.xml b/reference/apcu/ini.xml index 5c80b9c472..9179f0d039 100644 --- a/reference/apcu/ini.xml +++ b/reference/apcu/ini.xml @@ -1,6 +1,6 @@ - +
&reftitle.runtime; @@ -16,18 +16,30 @@ 以下のこれに関するセクションを注意深く読んで下さい。 - サーバがいったん起動したら、 - 拡張機能にバンドルされている apc.php + サーバーがいったん起動したら、 + 拡張モジュールにバンドルされている apc.php スクリプトをドキュメントルートのどこかにコピーし、ブラウザから見てみましょう。 - APCu の内部動作を詳細に分析した情報が見られるからです。 - GD が有効になっている場合、面白いグラフも見られるでしょう。 - APCu が動作している場合、(左側の) Cache full count - の数が、キャッシュの容量が一杯になり、apc.ttl - 秒間アクセスされていないエントリを強制的に掃除しなければならなかった回数を示しています。 - この数字は上手に設定されているキャッシュであれば最小にすべきです。 - キャッシュが頻繁に一杯になり、強制的に開放される場合、 - スクリプトのパフォーマンスに悪影響が出てしまいます。 - この数値を最小にする一番簡単なな方法は、APCu により多くのメモリを割り当てることです。 + apcu の内部動作を詳細に分析した情報が見られるからです。 + gd が有効になっている場合、面白いグラフも見られるでしょう。 + + + apcu が動作している場合、(左側の) Cache full count + の数が、キャッシュの容量が一杯になり、 + メモリを開放するためにエントリを強制的に掃除しなければならなかった回数を示しています。 + 強制的に掃除している間、apc.ttl が指定されている場合、 + APCu はまず期限切れのエントリを削除しようとします。 + つまり、TTL が期限切れになったか、 + TTL が設定されずに apc.ttl 秒間アクセスがないエントリです。 + apc.ttl が指定されていないか、 + 期限切れのエントリを削除しても十分な容量を確保できない場合、 + APCu はキャッシュ全体を削除してしまいます。 + + + 強制的に掃除しなければならなかった回数は、 + 上手に設定されているキャッシュであれば最小にすべきです。 + キャッシュが頻繁に一杯になり、強制的に開放される場合、 + スクリプトのパフォーマンスに悪影響が出てしまいます。 + この数値を最小にする一番簡単な方法は、APCu により多くのメモリを割り当てることです。 APCu が mmap (メモリマッピング) のサポートを有効にしてコンパイルされている場合、 @@ -35,7 +47,7 @@ 一方で、SHM (SysV共有メモリ) を有効にしてビルドした場合は、複数のメモリセグメントを使います。 SHM は /proc/sys/kernel/shmmax で最大値を持っていますが、MMAP にはそれがありません。 一般的には、MMAP のサポートを有効にすることをおすすめします。 - なぜなら、MMAPはWebサーバが再起動したときのメモリの再要求の速度が速く、 + なぜなら、MMAPはWebサーバーが再起動したときのメモリの再要求の速度が速く、 全体として起動時のメモリ割り当ての負荷が減るからです。 @@ -53,80 +65,80 @@ apc.enabled - "1" - PHP_INI_SYSTEM + 1 + INI_SYSTEM apc.shm_segments - "1" - PHP_INI_SYSTEM + 1 + INI_SYSTEM apc.shm_size "32M" - PHP_INI_SYSTEM + INI_SYSTEM apc.entries_hint - "4096" - PHP_INI_SYSTEM - + 512 * apc.shm_size + INI_SYSTEM + APcu 5.1.25 より前のバージョンでは、この値のデフォルト値は 4096 でした。 apc.ttl - "0" - PHP_INI_SYSTEM + 0 + INI_SYSTEM apc.gc_ttl - "3600" - PHP_INI_SYSTEM + 3600 + INI_SYSTEM apc.mmap_file_mask NULL - PHP_INI_SYSTEM + INI_SYSTEM apc.slam_defense - "1" - PHP_INI_SYSTEM + 0 + INI_SYSTEM apc.enable_cli - "0" - PHP_INI_SYSTEM + 0 + INI_SYSTEM apc.use_request_time - "1" - PHP_INI_ALL - + 0 + INI_ALL + APCu 5.1.19 より前のバージョンでは、デフォルト値は 1 でした。 apc.serializer - "default" - PHP_INI_SYSTEM - + "php" + INI_SYSTEM + APCu 5.1.15 より前のバージョンでは、デフォルト値は "default" でした。 apc.coredump_unmap - "0" - PHP_INI_SYSTEM + 0 + INI_SYSTEM apc.preload_path NULL - PHP_INI_SYSTEM + INI_SYSTEM @@ -142,7 +154,7 @@ apc.enabled - boolean + bool @@ -157,7 +169,7 @@ apc.shm_segments - integer + int @@ -185,7 +197,7 @@ apc.entries_hint - integer + int @@ -197,31 +209,31 @@ apc.ttl - integer + int - あるキャッシュエントリのスロットを別のエントリが必要としている場合に、 - キャッシュエントリがアイドル状態でいて良い秒数。 - この値をゼロに設定すると、新しいエントリがキャッシュされない間は - APCのキャッシュは潜在的に古いもので埋められる可能性があります。 - キャッシュのメモリが不足した場合、ttl が0の場合、キャッシュは完全に削除されます。 - 0より大きな場合、APC は期限切れのエントリから削除しようとします。 + ここで指定された秒数アクセスされていない場合、 + TTL を明示的に指定しないキャッシュエントリが期限切れとみなされます。 + こうすることで、キャッシュを挿入している間や、すべてのキャッシュを削除する前に、 + そうした期限切れのエントリを都合よく削除できます。 + こうした削除は場当たり的に行われるため、 + apc.ttl 秒より古いデータであっても + まだ読み取れてしまうことがあり得るので注意してください。 + この設定は、TTLが明示的に指定されたキャッシュエントリに対しては意味がありません。 apc.gc_ttl - integer + int - キャッシュエントリがガベージコレクションのリストに残っても良い秒数。 - この値はキャッシュされたソースファイルを実行中にWebサーバが死んだ場合のフェイルセーフを提供します。 - つまり、このソースファイルが変更された場合、 - 古いバージョンに割り当てられたメモリはTTLに達するまで絶対に要求されないからです。 - この機能を無効にするにはゼロを設定して下さい。 + 削除されたり、無効になったキャッシュエントリがガベージコレクションのリストに残っても良い秒数。 + エントリは、リファレンスカウントがゼロになった時、またはこの設定の秒数を越えた場合に、削除候補になります。 + 0 を設定すると、時間ベースの削除機能は無効になり、リファレンスカウントがゼロになったときにのみ削除されます。 @@ -250,28 +262,26 @@ apc.slam_defense - integer + bool - とても負荷が高いサーバでは、いつサーバを起動したり、 + とても負荷が高いサーバーでは、いつサーバーを起動したり、 変更したりしても、同じファイルを同時にキャッシュしようとする 多くのプロセスの競合が発生します。 - このオプションは、キャッシュされていないファイルをキャッシュ - しようとする動作をスキップするプロセスの割合を設定します。 - たとえば、apc.slam_defense の値を - 75 に設定すると、 - キャッシュされていないファイルをキャッシュしないプロセスは75%いることになります。 - よって、この設定値を大きくすればするほど、 - キャッシュのスラム化を防げることになります。 - この機能を無効にするには 0 を設定します。 + apc.slam_defense の値を 1 + に設定すると、確率的な仕組みを使うことで、 + 複数のプロセスが同時に同じファイルをキャッシュするのを防ぐのを助けます。 + 同じキーが短期間に異なるプロセスからキャッシュされようとすると、 + 現在のプロセスがキャッシュをスラム化させるのを防ぐため、 + キャッシュをスキップします。 apc.enable_cli - integer + int @@ -297,7 +307,7 @@ apc.coredump_unmap - boolean + bool diff --git a/reference/apcu/setup.xml b/reference/apcu/setup.xml index 09ccde2978..0115ab6013 100644 --- a/reference/apcu/setup.xml +++ b/reference/apcu/setup.xml @@ -1,38 +1,40 @@ - + &reftitle.setup; -
- &reftitle.required; - &no.requirement; -
-
&reftitle.install; - APC の機能と後方互換を取ることが必須な場合、APCu は --enable-apcu-bc を付けてコンパイルしなければなりません。 + &pecl.info; + &url.pecl.package;apcu. + + + PHP 7 では、APC との後方互換性を保った別モジュール + (apcu-bc) を提供しています。 + + + 後方互換モードの場合、APCu は適切な APC 関数を + 後方互換を保ったプロトタイプと一緒に登録します。 + + + APC 関数が cache_type を受け入れる場合、 + 後方互換モードが有効なバージョンではそれを単に無視します。 + そして、APCu 版のプロトタイプからは省略されます。 + + - PHP 7 では、APC と後方互換を取るために別のモジュール - (apc.so) を提供しています。 + PHP 8 では、apcu-bc はもはやサポートされていません。 - - 後方互換モードでは、APCu はAPCの関数を後方互換が取れたプロトタイプで登録します。 - - - cache_type を引数として取るAPC関数は、 - 後方互換モードが有効なバージョンでは単に無視され、 - APCu のバージョンではプロトタイプで省略されます。 - Windows では、既に存在しており、 - かつ Webサーバから書き込み可能な temp path が必要です。 + かつ Webサーバーから書き込み可能な temp path が必要です。 APCu は TMP, TEMP, USERPROFILE 環境変数をこの順でチェックし、 これらに値がセットされていない場合は WINDOWS ディレクトリを最後に調べます。 @@ -42,7 +44,7 @@ さらに細かい、技術的に高度な実装の詳細については、 開発者が提供している TECHNOTES ファイル - を参照して下さい。 + を参照ください。 @@ -52,11 +54,6 @@ &reference.apcu.ini; -
- &reftitle.resources; - &no.resource; -
- - - - - Advanced PHP debugger - APD - - - &reftitle.intro; - - APD は進化した PHP デバッガです。PHP コードのプロファイリングやデバッグの機能を提供すること、 - また完全なスタックトレースを出力する機能を提供することを目的として作成されています。 - APD は対話形式のデバッグもサポートしていますが、 - デフォルトではデータをトレースファイルに書き出すようになっています。 - また、さまざまなレベルの情報 (関数のコール・渡された引数・時間などを含む) - をイベント発生時に記録することができ、 - それを個々のスクリプト単位で有効にしたり無効にしたりできます。 - - - APD は Zend 拡張モジュールで、PHP 内部関数のコール方法に手を加えます。 - そのため、他の Zend 拡張モジュール (たとえば Zend Optimizer など) - との相性に注意が必要です。 - - - - - - &reference.apd.setup; - &reference.apd.constants; - &reference.apd.examples; - &reference.apd.reference; - - - - - diff --git a/reference/apd/constants.xml b/reference/apd/constants.xml deleted file mode 100644 index 6ec898e87d..0000000000 --- a/reference/apd/constants.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - - &reftitle.constants; - &extension.constants; - - APD の定数 - - - - 定数 - - 説明 - - - - - - FUNCTION_TRACE - (integer) - - 1 - - - - - ARGS_TRACE - (integer) - - 2 - - - - - ASSIGNMENT_TRACE - (integer) - - 4 - - - - - STATEMENT_TRACE - (integer) - - 8 - - - - - MEMORY_TRACE - (integer) - - 16 - - - - - TIMING_TRACE - (integer) - - 32 - - - - - SUMMARY_TRACE - (integer) - - 64 - - - - - ERROR_TRACE - (integer) - - 128 - - - - - PROF_TRACE - (integer) - - 256 - - - - - APD_VERSION - (string) - - 例: 1.0.2-dev - - - - -
-
- - diff --git a/reference/apd/examples.xml b/reference/apd/examples.xml deleted file mode 100644 index cbd040cc73..0000000000 --- a/reference/apd/examples.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - &reftitle.examples; -
- スクリプト中で PHP-APD を使用する方法 - - - - トレースを開始するには、PHP スクリプトの最初の行で apd_set_pprof_trace() - 関数をコールします。 - - - - -]]> - - - - この行はスクリプト内のどの場所にでも挿入可能ですが、 - もしスクリプトの最初からトレースを始めなければ、 - あなたをパフォーマンスのボトルネックに導いてくれるかもしれないデータを捨てることになってしまいます。 - - - - - さあ、スクリプトを実行しましょう。ダンプ結果は - apd.dumpdir/pprof_pid.ext に出力されます。 - - - CGI 版の PHP を使用している場合は、apd が正しく動作するように - '-e' フラグつきで実行し、拡張情報を有効にしてください。たとえば - php -e -f script.php のように実行します。 - - - - - - - プロファイルデータを整形して表示するには、お好みの並べ替えオプション・ - 表示オプションを指定して pprofp コマンドを実行してください。 - 整形された出力は以下のようになります。 - - - - - - この例で使われている -R オプションは、 - その関数を実行するのにかかった時間の順でプロファイルテーブルを並べ替えます。 - "cumm call" 列には個々の関数が何回コールされたか、 - そして "s/call" 列には 1 回のコールあたりの平均所要時間が表示されます。 - - - - - KCacheGrind にインポートできる形式のファイルを作成するには、 - pprof2calltree コマンドを実行してください。 - - - -
-
- - - diff --git a/reference/apd/functions/apd-breakpoint.xml b/reference/apd/functions/apd-breakpoint.xml deleted file mode 100644 index dda278ea16..0000000000 --- a/reference/apd/functions/apd-breakpoint.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - apd_breakpoint - インタプリタの処理を停止し、ソケットからの CR を待つ - - - &reftitle.description; - - boolapd_breakpoint - intdebug_level - - - スクリプトの実行を停止し、接続しているソケットからの応答を待ち受ける - ために使用します。プログラムのステップ実行を行うには、Enter キーを押す - (空行を送る) あるいは実行したい PHP コマンドを入力します。 - - - - - &reftitle.parameters; - - - &apd.debug-level.description; - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - tcplisten を使用した典型的なセッション - -\n -statement: /home/alan/Projects/project2/test.php:8 ->\n -statement: /home/alan/Projects/project2/test.php:8 ->\n -statement: /home/alan/Projects/project2/test.php:10 ->apd_echo($i); -EXEC: apd_echo($i); -0 ->apd_echo(serialize(apd_get_active_symbols())); -EXEC: apd_echo(serialize(apd_get_active_symbols())); -a:47:{i:0;s:4:"PWD";i:1;s:10:"COLORFGBG";i:2;s:11:"XAUTHORITY";i:3;s:14:" -COLORTERM_BCE";i:4;s:9:"WINDOWID";i:5;s:14:"ETERM_VERSION";i:6;s:16:"SE -SSION_MANAGER";i:7;s:4:"PS1";i:8;s:11:"GDMSESSION";i:9;s:5:"USER";i:10;s:5:" -MAIL";i:11;s:7:"OLDPWD";i:12;s:5:"LANG";i:13;s:10:"COLORTERM";i:14;s:8:"DISP -LAY";i:15;s:8:"LOGNAME";i:16;s:6:" ->apd_echo(system('ls /home/mydir')); -........ ->apd_continue(0); -]]> - - - - - - - - diff --git a/reference/apd/functions/apd-callstack.xml b/reference/apd/functions/apd-callstack.xml deleted file mode 100644 index b03882f616..0000000000 --- a/reference/apd/functions/apd-callstack.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - apd_callstack - 現在のコールスタックを配列で返す - - - &reftitle.description; - - arrayapd_callstack - - - - 現在のコールスタックを配列形式で返します。 - - - - - &reftitle.returnvalues; - - 現在のコールスタックを含む配列を返します。 - - - - - &reftitle.examples; - - - <function>apd_callstack</function> の例 - - -]]> - - - - - - - diff --git a/reference/apd/functions/apd-clunk.xml b/reference/apd/functions/apd-clunk.xml deleted file mode 100644 index 08351f75dc..0000000000 --- a/reference/apd/functions/apd-clunk.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - apd_clunk - 警告とコールスタックをスローする - - - &reftitle.description; - - voidapd_clunk - stringwarning - stringdelimiter"<BR />" - - - perl の Carp::cluck と同じように動作します。警告とコールバックをスローします。 - デフォルトの行区切り文字は "<BR />\n" です。 - - - - - &reftitle.parameters; - - - - warning - - - スローする警告。 - - - - - delimiter - - - 区切り文字。デフォルトは <BR />。 - - - - - - - - - &reftitle.returnvalues; - - &return.void; - - - - - &reftitle.examples; - - - <function>apd_clunk</function> の例 - -"); -?> -]]> - - - - - - - &reftitle.seealso; - - - apd_croak - - - - - - diff --git a/reference/apd/functions/apd-continue.xml b/reference/apd/functions/apd-continue.xml deleted file mode 100644 index 968c4e9d4a..0000000000 --- a/reference/apd/functions/apd-continue.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - apd_continue - インタプリタを再開する - - - &reftitle.description; - - boolapd_continue - intdebug_level - - - インタプリタを再開するために、一般的にはソケット経由で送信します。 - - - - - &reftitle.parameters; - - - &apd.debug-level.description; - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>apd_continue</function> の例 - - -]]> - - - - - - - diff --git a/reference/apd/functions/apd-croak.xml b/reference/apd/functions/apd-croak.xml deleted file mode 100644 index 816fc1ef01..0000000000 --- a/reference/apd/functions/apd-croak.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - apd_croak - エラーとコールスタックをスローし、終了する - - - &reftitle.description; - - voidapd_croak - stringwarning - stringdelimiter"<BR />" - - - perl の Carp::croak と同じように動作します。エラーとコールバックをスローし、 - 終了します。 - - - - - &reftitle.parameters; - - - - warning - - - スローする警告。 - - - - - delimiter - - - 区切り文字。デフォルトは <BR />。 - - - - - - - - - &reftitle.returnvalues; - - &return.void; - - - - - &reftitle.examples; - - - <function>apd_croak</function> の例 - -"); -?> -]]> - - - - - - - &reftitle.seealso; - - - apd_clunk - - - - - - diff --git a/reference/apd/functions/apd-dump-function-table.xml b/reference/apd/functions/apd-dump-function-table.xml deleted file mode 100644 index 29deb7586b..0000000000 --- a/reference/apd/functions/apd-dump-function-table.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - apd_dump_function_table - 現在の関数テーブルを出力する - - - &reftitle.description; - - voidapd_dump_function_table - - - - 現在の関数テーブルを出力します。 - - - - - &reftitle.returnvalues; - - &return.void; - - - - - &reftitle.examples; - - - <function>apd_dump_function_table</function> の例 - - -]]> - - - - - - - diff --git a/reference/apd/functions/apd-dump-persistent-resources.xml b/reference/apd/functions/apd-dump-persistent-resources.xml deleted file mode 100644 index bfdad095c4..0000000000 --- a/reference/apd/functions/apd-dump-persistent-resources.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - apd_dump_persistent_resources - すべての持続的なリソースを配列で返す - - - &reftitle.description; - - arrayapd_dump_persistent_resources - - - - すべての持続的なリソースを配列で返します。 - - - - - &reftitle.returnvalues; - - 現在の持続的なリソースを含む配列を返します。 - - - - - &reftitle.examples; - - - <function>apd_dump_persistent_resources</function> の例 - - -]]> - - - - - - &reftitle.seealso; - - - apd_dump_regular_resources - - - - - - - diff --git a/reference/apd/functions/apd-dump-regular-resources.xml b/reference/apd/functions/apd-dump-regular-resources.xml deleted file mode 100644 index bc503eb83c..0000000000 --- a/reference/apd/functions/apd-dump-regular-resources.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - apd_dump_regular_resources - 現在のすべての一般リソースを配列で返す - - - &reftitle.description; - - arrayapd_dump_regular_resources - - - - 現在のすべての一般リソースを配列で返します。 - - - - - &reftitle.returnvalues; - - 現在の一般リソースを含む配列を返します。 - - - - - &reftitle.examples; - - - <function>apd_dump_regular_resources</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - apd_dump_persistent_resources - - - - - - diff --git a/reference/apd/functions/apd-echo.xml b/reference/apd/functions/apd-echo.xml deleted file mode 100644 index f662bf4259..0000000000 --- a/reference/apd/functions/apd-echo.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - apd_echo - デバッグ用ソケットに表示する - - - &reftitle.description; - - boolapd_echo - stringoutput - - - 実行中のスクリプトに関する情報を、 - 一般的にはソケット経由でリクエストします。 - - - - - &reftitle.parameters; - - - - output - - - デバッグされた変数。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>apd_echo</function> の例 - - -]]> - - - - - - - diff --git a/reference/apd/functions/apd-get-active-symbols.xml b/reference/apd/functions/apd-get-active-symbols.xml deleted file mode 100644 index 46c7c545ad..0000000000 --- a/reference/apd/functions/apd-get-active-symbols.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - apd_get_active_symbols - ローカルスコープ内の現在の変数名を配列で取得する - - - &reftitle.description; - - arrayapd_get_active_symbols - - - - アクティブなスコープ内で定義されているすべての変数名を返します - (変数の値ではありません)。 - - - - - &reftitle.returnvalues; - - すべての変数を含む多次元配列を返します。 - - - - - &reftitle.examples; - - - <function>apd_get_active_symbols</function> の例 - - -]]> - - - - - - - diff --git a/reference/apd/functions/apd-set-pprof-trace.xml b/reference/apd/functions/apd-set-pprof-trace.xml deleted file mode 100644 index 833f54f08e..0000000000 --- a/reference/apd/functions/apd-set-pprof-trace.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - apd_set_pprof_trace - セッションのデバッグを開始する - - - &reftitle.description; - - stringapd_set_pprof_trace - stringdump_directoryini_get("apd.dumpdir") - stringfragment"pprof" - - - ダンプディレクトリの - pprof_{process_id} へのデバッグを開始します。 - - - - - &reftitle.parameters; - - - - dump_directory - - - プロファイルのダンプファイルを書き込むディレクトリ。 - 指定しない場合は、&php.ini; の設定 - を使用します。 - - - - - fragment - - - - - - - - - - - &reftitle.returnvalues; - - 対象となるファイルへのパスを返します。 - - - - - &reftitle.examples; - - - <function>apd_set_pprof_trace</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - apd_set_session_trace - - - - - - - diff --git a/reference/apd/functions/apd-set-session-trace-socket.xml b/reference/apd/functions/apd-set-session-trace-socket.xml deleted file mode 100644 index 2fba5ca558..0000000000 --- a/reference/apd/functions/apd-set-session-trace-socket.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - apd_set_session_trace_socket - リモートセッションのデバッグを開始する - - - &reftitle.description; - - boolapd_set_session_trace_socket - stringtcp_server - intsocket_type - intport - intdebug_level - - - 指定した tcp_server (tcplisten など) に接続し、 - デバッグデータをソケットに送信します。 - - - - - &reftitle.parameters; - - - - tcp_server - - - TCP サーバーの IP あるいは Unix ドメインソケット (ファイルなど)。 - - - - - socket_type - - - ファイルベースのソケットなら AF_UNIX、 - 標準の tcp/ip なら APD_AF_INET。 - - - - - port - - - 任意のポートを使用できますが、できるだけ大きめの数を使用するほうがいいでしょう。 - 小さい数は他のシステムサービスが使っている可能性があります。 - - - - &apd.debug-level.description; - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>apd_set_session_trace_socket</function> の例 - - -]]> - - - - - - - - diff --git a/reference/apd/functions/apd-set-session-trace.xml b/reference/apd/functions/apd-set-session-trace.xml deleted file mode 100644 index 0f988b896b..0000000000 --- a/reference/apd/functions/apd-set-session-trace.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - apd_set_session_trace - セッションのデバッグを開始する - - - &reftitle.description; - - voidapd_set_session_trace - intdebug_level - stringdump_directoryini_get("apd.dumpdir") - - - ダンプディレクトリの - apd_dump_{process_id} へのデバッグを開始します。 - - - - - &reftitle.parameters; - - - &apd.debug-level.description; - - dump_directory - - - プロファイルのダンプファイルを書き込むディレクトリ。 - 指定しない場合は、&php.ini; の設定 - apd.dumpdir を使用します。 - - - - - - - - - &reftitle.returnvalues; - - &return.void; - - - - - &reftitle.examples; - - - <function>apd_set_session_trace</function> の例 - - -]]> - - - - - - - - diff --git a/reference/apd/functions/apd-set-session.xml b/reference/apd/functions/apd-set-session.xml deleted file mode 100644 index 32539c2299..0000000000 --- a/reference/apd/functions/apd-set-session.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - apd_set_session - 現在のデバッグレベルを変更あるいは設定する - - - &reftitle.description; - - voidapd_set_session - intdebug_level - - - アプリケーション内で、場所によってデバッグのレベルを増減する際に使用可能です。 - - - - - &reftitle.parameters; - - - &apd.debug-level.description; - - - - - - &reftitle.returnvalues; - - &return.void; - - - - - &reftitle.examples; - - - <function>apd_set_session</function> の例 - - -]]> - - - - - - - diff --git a/reference/apd/functions/override-function.xml b/reference/apd/functions/override-function.xml deleted file mode 100644 index fe3ed9966e..0000000000 --- a/reference/apd/functions/override-function.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - override_function - 組み込みの関数を上書きする - - - &reftitle.description; - - booloverride_function - stringfunction_name - stringfunction_args - stringfunction_code - - - シンボルテーブルを書き換えることで、組み込みの関数を上書きします - - - - - - &reftitle.parameters; - - - - function_name - - - 上書きする関数。 - - - - - function_args - - - 関数への引数をカンマ区切りの文字列で指定します。 - - - 通常は、このパラメータだけでなく - function_code パラメータも (シングルクォート区切りの文字列で) - 指定することでしょう。シングルクォートで囲んだ文字列を使用する理由は、 - 変数名がパースされないようにするためです。 - ダブルクォートを使用するなら、変数名をエスケープして - \$your_var のようにしなければなりません。 - - - - - function_code - - - 関数の新しいコード。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>override_function</function> の例 - - -]]> - - - - - - - diff --git a/reference/apd/functions/rename-function.xml b/reference/apd/functions/rename-function.xml deleted file mode 100644 index 7d3ce6c821..0000000000 --- a/reference/apd/functions/rename-function.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - rename_function - グローバルの関数テーブルで関数名を変更する - - - &reftitle.description; - - boolrename_function - stringoriginal_name - stringnew_name - - - グローバルの関数テーブルで関数名を変更します。 - 一時的に組み込み関数を上書きする際に有用です。 - - - - - &reftitle.parameters; - - - - original_name - - - もとの関数名。 - - - - - new_name - - - 関数 original_name の新しい名前。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>rename_function</function> の例 - - -]]> - - - - - - - diff --git a/reference/apd/ini.xml b/reference/apd/ini.xml deleted file mode 100644 index 65a176c099..0000000000 --- a/reference/apd/ini.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - -
- &reftitle.runtime; - &extension.runtime; - - - APD の設定オプション - - - - &Name; - &Default; - &Changeable; - &Changelog; - - - - - apd.dumpdir - NULL - PHP_INI_ALL - - - - apd.statement_tracing - "0" - PHP_INI_ALL - apd 0.9 以降で利用可能です。 - - - -
- &ini.php.constants; -
- - &ini.descriptions.title; - - - - - - apd.dumpdir - string - - - - APD がプロファイルのダンプファイルを書き出すディレクトリを設定します。 - 絶対パス・相対パスのどちらも指定可能です。 - - - apd_set_pprof_trace へ引数を渡すことで、 - 指定した以外の場所に書き出すことも可能です。 - - - - - - apd.statement_tracing - boolean - - - - 行単位のトレースをするかしないかを設定します。これを on (1) - にすると、アプリケーションのパフォーマンスに衝撃的な影響を与えます。 - - - - - - - -
- - diff --git a/reference/apd/reference.xml b/reference/apd/reference.xml deleted file mode 100644 index 023e55a8f6..0000000000 --- a/reference/apd/reference.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - APD &Functions; - -
- 連絡先の情報 - - コメント・バグフィックス・機能拡張・あるいは開発を手伝いたいなどの場合は、 - メールを &email.apd; - に送ってください。大歓迎します。 - -
-
- - &reference.apd.entities.functions; - -
- - - diff --git a/reference/apd/setup.xml b/reference/apd/setup.xml deleted file mode 100755 index 684d655333..0000000000 --- a/reference/apd/setup.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- -
- &reftitle.install; - - &pecl.info; - &url.pecl.package;apd - - - &pecl.windows.download; - - - INI ファイルに以下の行を追加します。 - - - - - - - - PHP のビルド状況によって、 - zend_extension ディレクティブは以下のうちのいずれかひとつとなります。 - - - - - - -
- -
- Win32 でのビルド - - Windows で APD をビルドするには、http://php.net/ で述べられているような - PHP コンパイル環境が必要です。 -- 基本的には、Microsoft Visual C++・ - win32build.zip・bison/flex・そしてそれらをうまく動かすためのちょっとしたコツが必要になります。 - また adp.dsp の改行コードは必ず DOS 形式にしてください。 - Unix 形式の改行コードだと、Microsoft Visual C++ - に文句を言われます。 - -
- - &reference.apd.ini; - -
- &reftitle.resources; - &no.resource; -
- -
- - - diff --git a/reference/array/book.xml b/reference/array/book.xml index 75d77ceb47..69e73c6c05 100755 --- a/reference/array/book.xml +++ b/reference/array/book.xml @@ -1,9 +1,9 @@ - + - + 配列 @@ -27,7 +27,6 @@
- &reference.array.setup; &reference.array.constants; &reference.array.sorting; &reference.array.reference; diff --git a/reference/array/constants.xml b/reference/array/constants.xml index fb202074c7..d10ef44e25 100644 --- a/reference/array/constants.xml +++ b/reference/array/constants.xml @@ -1,6 +1,6 @@ - + &reftitle.constants; @@ -10,7 +10,7 @@ CASE_LOWER - (integer) + (int) @@ -18,20 +18,21 @@ array_change_key_caseで使用され、 配列のキーを小文字に変換するために使用されます。小文字は、 array_change_key_caseのデフォルトのケースで - もあります。 + もあります。PHP 8.2.0 以降では、ASCII 文字のみが変換されます。 CASE_UPPER - (integer) + (int) CASE_UPPERは、 array_change_key_caseで使用され、配列のキー を大文字に変換するために使用されます。 + PHP 8.2.0 以降では、ASCII 文字のみが変換されます。 @@ -44,7 +45,7 @@ SORT_ASC - (integer) + (int) @@ -57,7 +58,7 @@ SORT_DESC - (integer) + (int) (integer) @@ -76,7 +77,7 @@ SORT_REGULAR - (integer) + (int) @@ -88,7 +89,7 @@ SORT_NUMERIC - (integer) + (int) @@ -100,7 +101,7 @@ SORT_STRING - (integer) + (int) @@ -112,40 +113,39 @@ SORT_LOCALE_STRING - (integer) + (int) SORT_LOCALE_STRINGは現在のロケールに基づいた - 文字列として比較を行うために使用されます。 PHP 5.0.2で追加 - されました。 + 文字列として比較を行うために使用されます。 - SORT_NATURAL - (integer) + SORT_NATURAL + (int) SORT_NATURAL は、要素の比較を文字列として行い、 natsort と同様の「自然順」で比較します。 - PHP 5.4.0 で追加されました。 - SORT_FLAG_CASE - (integer) + SORT_FLAG_CASE + (int) - SORT_FLAG_CASE は - SORT_STRING や - SORT_NATURAL と (ビット OR で) 組み合わせて使い、 - 文字列のソートで大文字小文字を区別しないようにします。PHP 5.4.0 で追加されました。 + SORT_FLAG_CASE は + SORT_STRING や + SORT_NATURAL と (ビット OR で) 組み合わせて使い、 + 文字列のソートで大文字小文字を区別しないようにします。 + PHP 8.2.0 以降では、ASCII のケースフォールディングのみが行われます。 @@ -156,29 +156,27 @@ - ARRAY_FILTER_USE_KEY - (integer) + ARRAY_FILTER_USE_KEY + (int) ARRAY_FILTER_USE_KEYarray_filter で使うもので、 各キーをコールバック関数の最初の引数として渡すよう指示します。 - PHP 5.6.0 で追加されました。 - ARRAY_FILTER_USE_BOTH - (integer) + ARRAY_FILTER_USE_BOTH + (int) ARRAY_FILTER_USE_BOTHarray_filter で使うもので、 値とキーの両方をコールバック関数の引数として渡すよう指示します。 - PHP 5.6.0 で追加されました。 @@ -189,7 +187,7 @@ COUNT_NORMAL - (integer) + (int) @@ -200,7 +198,7 @@ COUNT_RECURSIVE - (integer) + (int) @@ -211,7 +209,7 @@ EXTR_OVERWRITE - (integer) + (int) @@ -222,7 +220,7 @@ EXTR_SKIP - (integer) + (int) @@ -233,7 +231,7 @@ EXTR_PREFIX_SAME - (integer) + (int) @@ -244,7 +242,7 @@ EXTR_PREFIX_ALL - (integer) + (int) @@ -255,7 +253,7 @@ EXTR_PREFIX_INVALID - (integer) + (int) @@ -266,7 +264,7 @@ EXTR_PREFIX_IF_EXISTS - (integer) + (int) @@ -277,7 +275,7 @@ EXTR_IF_EXISTS - (integer) + (int) @@ -288,7 +286,7 @@ EXTR_REFS - (integer) + (int) @@ -298,7 +296,6 @@ - + + + + + array_all + &array; のすべての要素がコールバック関数を満たすかどうかを調べる + + + + &reftitle.description; + + boolarray_all + arrayarray + callablecallback + + + array_all は、指定された callback が + すべての要素に対して &true; を返す場合 &true; を返します。 + そうでない場合 &false; を返します。 + + + + + &reftitle.parameters; + + + array + + + 検索する &array;。 + + + + + callback + + + 各要素を調べるコールバック関数。シグネチャは次の通りです: + + boolcallback + mixedvalue + mixedkey + + この関数が &false; を返すと、 + array_all から &false; が返され、 + 以降の要素に対してはコールバックは呼び出されません。 + + + + + + + + &reftitle.returnvalues; + + callback がすべての要素に対して &true; を返す場合、 + この関数は &true; を返します。そうでない場合 &false; を返します。 + + + + + &reftitle.examples; + + <function>array_all</function> の例 + + 'dog', + 'b' => 'cat', + 'c' => 'cow', + 'd' => 'duck', + 'e' => 'goose', + 'f' => 'elephant' +]; + +// すべての動物名が12文字未満かどうかをチェックします。 +var_dump(array_all($array, function (string $value) { + return strlen($value) < 12; +})); + +// すべての動物名が5文字より長いかどうかをチェックします。 +var_dump(array_all($array, function (string $value) { + return strlen($value) > 5; +})); + +// すべての配列キーが文字列かどうかをチェックします。 +var_dump(array_all($array, function (string $value, $key) { + return is_string($key); +})); +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + array_any + array_filter + array_find + array_find_key + + + + diff --git a/reference/array/functions/array-any.xml b/reference/array/functions/array-any.xml new file mode 100644 index 0000000000..449df10a0b --- /dev/null +++ b/reference/array/functions/array-any.xml @@ -0,0 +1,137 @@ + + + + + + + array_any + &array; のいずれかの要素がコールバック関数を満たすかどうかを調べる + + + + &reftitle.description; + + boolarray_any + arrayarray + callablecallback + + + array_any は、指定されたcallback が + いずれかの要素に対して &true; を返す場合 &true; を返します。 + そうでない場合 &false; を返します。 + + + + + &reftitle.parameters; + + + array + + + 検索する &array;。 + + + + + callback + + + 各要素を調べるコールバック関数。シグネチャは次の通りです: + + boolcallback + mixedvalue + mixedkey + + この関数が &true; を返すと、 + array_any から &true; が返され、 + 以降の要素に対してはコールバックは呼び出されません。 + + + + + + + + &reftitle.returnvalues; + + この関数は、callback が &true; を返す要素が + 少なくとも1つある場合、&true; を返します。 + そうでない場合 &false; を返します。 + + + + + &reftitle.examples; + + <function>array_any</function> の例 + + 'dog', + 'b' => 'cat', + 'c' => 'cow', + 'd' => 'duck', + 'e' => 'goose', + 'f' => 'elephant' +]; + +// いずれかの動物名が5文字より長いかどうかをチェックします。 +var_dump(array_any($array, function (string $value) { + return strlen($value) > 5; +})); + +// いずれかの動物名が3文字より短いかどうかをチェックします。 +var_dump(array_any($array, function (string $value) { + return strlen($value) < 3; +})); + +// 配列キーに文字列でないものがあるかどうかをチェックします。 +var_dump(array_any($array, function (string $value, $key) { + return !is_string($key); +})); +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + array_all + array_filter + array_find + array_find_key + + + + diff --git a/reference/array/functions/array-change-key-case.xml b/reference/array/functions/array-change-key-case.xml index 7050747a0f..e6bb433b19 100644 --- a/reference/array/functions/array-change-key-case.xml +++ b/reference/array/functions/array-change-key-case.xml @@ -1,7 +1,7 @@ - - + + array_change_key_case @@ -13,7 +13,7 @@ arrayarray_change_key_case arrayarray - intcaseCASE_LOWER + intcaseCASE_LOWER array のすべてのキーを小文字あるいは大文字にした配列を返します。 @@ -53,15 +53,6 @@ &reftitle.returnvalues; すべてのキーを小文字あるいは大文字にした配列を返します。 - array が配列でない場合は &false; を返します。 - - - - - &reftitle.errors; - - array - が配列でない場合は E_WARNING が発生します。 @@ -103,7 +94,6 @@ Array - - + @@ -13,12 +13,12 @@ arrayarray_chunk arrayarray - intsize + intlength boolpreserve_keys&false; - 配列を、要素数が size の配列に分割します。 - 最後の部分の要素数は size より小さくなることもあります。 + 配列を、要素数が length の配列に分割します。 + 最後の部分の要素数は length より小さくなることもあります。 @@ -37,7 +37,7 @@ - size + length 各部分のサイズ。 @@ -63,18 +63,45 @@ &reftitle.returnvalues; 数値添字の多次元配列を返します。添え字はゼロから始まり、 - 各次元の要素数が size となります。 + 各次元の要素数が length となります。 &reftitle.errors; - size が 1 より小さい場合は - E_WARNING が発生し、&null; を返します。 + length1 より小さい場合、 + ValueError がスローされます。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + length1 + より小さい場合、ValueError + がスローされるようになりました。 + これより前のバージョンでは、 + E_WARNING が発生し、 + &null; を返していました。 + + + + + + + &reftitle.examples; @@ -148,7 +175,6 @@ Array - - + @@ -11,13 +11,13 @@ &reftitle.description; arrayarray_column - arrayinput - mixedcolumn_key - mixedindex_key&null; + arrayarray + intstringnullcolumn_key + intstringnullindex_key&null; array_column は、 - 配列 input の中から + 配列 array の中から column_key で指定した単一のカラムの値を返します。 オプションで index_key も指定できます。 これを指定すると、 @@ -30,7 +30,7 @@ - input + array 値を取り出したい多次元配列 (あるいはオブジェクトの配列)。 @@ -61,7 +61,8 @@ カラム番号を表す整数値、あるいはキーの名前を表す文字列になります。 この値は、いつものように配列のキーとして キャストされます。 - (しかし、文字列への変換をサポートしているオブジェクトも許可されます) + (PHP 8.0.0 より前のバージョンでは、 + 文字列への変換をサポートしているオブジェクトも許可されていました) @@ -87,9 +88,11 @@ - 7.0.0 + 8.0.0 - input にオブジェクトの配列を渡せるようになりました。 + index_key で指定されたカラムにオブジェクトが含まれていても、 + 文字列にキャストされなくなりました。 + 代わりに、TypeError が発生するようになっています。 @@ -106,31 +109,32 @@ 2135, 'first_name' => 'John', 'last_name' => 'Doe', - ), - array( + ], + [ 'id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith', - ), - array( + ], + [ 'id' => 5342, 'first_name' => 'Jane', 'last_name' => 'Jones', - ), - array( + ], + [ 'id' => 5623, 'first_name' => 'Peter', 'last_name' => 'Doe', - ) -); + ] +]; $first_names = array_column($records, 'first_name'); print_r($first_names); + ?> ]]> @@ -157,8 +161,32 @@ Array 2135, + 'first_name' => 'John', + 'last_name' => 'Doe', + ], + [ + 'id' => 3245, + 'first_name' => 'Sally', + 'last_name' => 'Smith', + ], + [ + 'id' => 5342, + 'first_name' => 'Jane', + 'last_name' => 'Jones', + ], + [ + 'id' => 5623, + 'first_name' => 'Peter', + 'last_name' => 'Doe', + ] +]; + $last_names = array_column($records, 'last_name', 'id'); print_r($last_names); + ?> ]]> @@ -222,7 +250,7 @@ Array オブジェクトの private プロパティ "name" から、マジックメソッド - <function>__get</function> を使って名前を取得する例 + <function>__isset</function> と <function>__get</function> を使って名前を取得する例 - - &reftitle.seealso; - - - - PHP 5.5 - より前のバージョンにおける、ユーザー側での実装の推奨例 - - - - - - - - + + array_combine @@ -20,7 +20,7 @@ keys 配列の値をキーとして、また values 配列の値を対応する値として生成した - 配列 を作成します。 + array を作成します。 @@ -55,45 +55,45 @@ &reftitle.returnvalues; 作成した配列を返します。 - 互いの配列の要素の数が合致しない場合に - &false; を返します。 &reftitle.errors; - keys および + PHP 8.0.0 以降では、keys および values の要素数が一致しなかった場合は - E_WARNING が発生します。 + ValueError がスローされます。 + それより前のバージョンでは、 + E_WARNING が発生していました。 &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.4.0 - - これまでのバージョンでは、空の配列に対しては E_WARNING - を発生させて &false; を返していました。 - - - - - - + + + + + &Version; + &Description; + + + + + 8.0.0 + + それぞれの配列の要素数が一致しなかった場合、 + array_combine は + ValueError をスローするようになりました。 + これより前のバージョンでは、&false; を返していました。 + + + + + - + &reftitle.examples; @@ -115,8 +115,8 @@ print_r($c); avocado - [red] => apple + [green] => avocado + [red] => apple [yellow] => banana ) ]]> @@ -132,6 +132,7 @@ Array array_merge array_walk array_values + array_map diff --git a/reference/array/functions/array-count-values.xml b/reference/array/functions/array-count-values.xml index 0f8832c629..2c997df59c 100644 --- a/reference/array/functions/array-count-values.xml +++ b/reference/array/functions/array-count-values.xml @@ -1,11 +1,11 @@ - + array_count_values - 配列の値の数を数える + 配列内に存在する、異なる値の出現回数を数える @@ -16,7 +16,8 @@ array_count_values は、 - 配列 array の値をキーとし、 + 配列 array の値 + (数値または文字列でなければいけません) をキーとし、 array におけるその値の出現回数を値とした配列を返します。 @@ -49,7 +50,7 @@ &reftitle.errors; - string あるいは integer + string あるいは int 以外の型の要素が登場するたびに E_WARNING が発生します。 diff --git a/reference/array/functions/array-diff-assoc.xml b/reference/array/functions/array-diff-assoc.xml index 1d07a80902..8082eedf27 100644 --- a/reference/array/functions/array-diff-assoc.xml +++ b/reference/array/functions/array-diff-assoc.xml @@ -1,6 +1,6 @@ - + @@ -12,12 +12,11 @@ &reftitle.description; arrayarray_diff_assoc - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays - array1array2 と比較し、 + arrayarrays と比較し、 その差を返します。array_diff とは異なり、 配列のキーも用いて比較を行います。 @@ -29,7 +28,7 @@ - array1 + array 比較元の配列。 @@ -38,7 +37,7 @@ - array2 + arrays 比較する対象となる配列。 @@ -46,15 +45,6 @@ - - ... - - - さらに比較する対象となる配列。 - - - - @@ -62,11 +52,30 @@ &reftitle.returnvalues; - array1 の要素のうち、 + array の要素のうち、 その他の配列のいずれにも含まれないものだけを残した配列を返します。 + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &array.changelog.require-only-one; + + + + + + - + array_diff_key @@ -11,13 +11,12 @@ &reftitle.description; arrayarray_diff_key - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays - array1 のキーを - array2 のキーと比較し、その差を返します。 + array のキーを + arrays のキーと比較し、その差を返します。 この関数は array_diff に似ていますが、 値ではなくキーを用いて比較するという点が異なります。 @@ -29,7 +28,7 @@ - array1 + array 比較元の配列。 @@ -38,7 +37,7 @@ - array2 + arrays 比較する対象となる配列。 @@ -46,15 +45,6 @@ - - ... - - - さらに比較する対象となる配列。 - - - - @@ -62,11 +52,30 @@ &reftitle.returnvalues; - array1 の要素のうち、 + array の要素のうち、 その他の配列のいずれにも含まれないキーのものだけを残した配列を返します。 + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &array.changelog.require-only-one; + + + + + + - + array_diff_uassoc @@ -14,14 +14,13 @@ &reftitle.description; arrayarray_diff_uassoc - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays callablekey_compare_func - array1 のキーを - array2 のキーと比較し、その差を返します。 + array のキーを + arrays のキーと比較し、その差を返します。 この関数は array_diff に似ていますが、 配列のキーを用いて比較するという点が異なります。 @@ -37,7 +36,7 @@ - array1 + array 比較元の配列。 @@ -46,7 +45,7 @@ - array2 + arrays 比較する対象となる配列。 @@ -54,22 +53,10 @@ - - ... - - - さらに比較する対象となる配列。 - - - - key_compare_func - - &return.callbacksort; - - &callback.cmp; + &sort.callback.description; @@ -80,7 +67,7 @@ &reftitle.returnvalues; - array1 の要素のうち、 + array の要素のうち、 その他の配列のいずれにも含まれないものだけを残した配列を返します。 @@ -98,11 +85,15 @@ <function>array_diff_uassoc</function> の例 - "a" => "green" の組み合わせが両方の配列に存在し、 + この例では、"a" => "green" + の組み合わせが両方の配列に存在し、 関数の出力には存在しないことが確認できます。 これとは異なり、0 => "red" は出力されています。 - なぜなら 2 つめの引数の "red" は、キーが - 1 だからです。 + これは、最初の配列の "red" のキーには自動的に + 0 が割り当てられる一方で、 + 二番目の配列では 0 + には既に yellow というキーがあるため、 + "red" には 1 が割り当てられるためです。 この関数は n 次元配列の一つの次元しかチェックしません。 - もちろん、array_diff_uassoc($array1[0], $array2[0], "key_compare_func"); - のようにすることでより深い次元でのチェックもできます。 + array_diff_uassoc($array1[0], $array2[0], "key_compare_func"); + のようにすることで、より深い次元でのチェックもできます。 diff --git a/reference/array/functions/array-diff-ukey.xml b/reference/array/functions/array-diff-ukey.xml index e4cee81960..e813670fa0 100644 --- a/reference/array/functions/array-diff-ukey.xml +++ b/reference/array/functions/array-diff-ukey.xml @@ -1,6 +1,6 @@ - + array_diff_ukey @@ -13,14 +13,13 @@ &reftitle.description; arrayarray_diff_ukey - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays callablekey_compare_func - array1 のキーを - array2 のキーと比較し、その差を返します。 + array のキーを + arrays のキーと比較し、その差を返します。 この関数は array_diff に似ていますが、 値ではなくキーを用いて比較するという点が異なります。 @@ -36,7 +35,7 @@ - array1 + array 比較元の配列。 @@ -45,7 +44,7 @@ - array2 + arrays 比較する対象となる配列。 @@ -53,22 +52,10 @@ - - ... - - - さらに比較する対象となる配列。 - - - - key_compare_func - - &return.callbacksort; - - &callback.cmp; + &sort.callback.description; @@ -79,7 +66,7 @@ &reftitle.returnvalues; - array1 の要素のうち、 + array の要素のうち、 その他の配列のいずれにも含まれないものだけを残した配列を返します。 diff --git a/reference/array/functions/array-diff.xml b/reference/array/functions/array-diff.xml index e1e02feea8..662827fd91 100644 --- a/reference/array/functions/array-diff.xml +++ b/reference/array/functions/array-diff.xml @@ -1,6 +1,6 @@ - + @@ -12,13 +12,12 @@ &reftitle.description; arrayarray_diff - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays - array1 を他の配列と比較し、 - array1 の要素の中で他の配列には存在しないものだけを返します。 + array を他の配列と比較し、 + array の要素の中で他の配列には存在しないものだけを返します。 @@ -27,7 +26,7 @@ - array1 + array 比較元の配列。 @@ -35,21 +34,13 @@ - array2 + arrays 比較対象の配列。 - - ... - - - さらに比較したい配列。 - - - @@ -57,9 +48,28 @@ &reftitle.returnvalues; - array1 + array のエントリのうち、他のどの配列にも含まれない要素のみを含む配列を返します。 - array1 の配列のキーは維持されます。 + array の配列のキーは維持されます。 + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &array.changelog.require-only-one; + + + @@ -94,14 +104,15 @@ Array + + (string) $elem1 === (string) $elem2 の場合のみ、 + つまり、文字列表現 が同等な場合のみ、 + 2つの要素は等しいとみなされます。 + + 型が一致しない場合の <function>array_diff</function> の例 - - (string) $elem1 === (string) $elem2 の場合のみ、 - つまり、文字列表現 が同等な場合のみ、 - 2つの要素は等しいとみなされます。 - ]]> - - 別の比較関数を使いたい場合は、array_udiff を参照して下さい。 - + + 別の比較関数を使いたい場合は、array_udiff を参照ください。 + diff --git a/reference/array/functions/array-fill.xml b/reference/array/functions/array-fill.xml index 7eeb6105f0..b3808082b2 100644 --- a/reference/array/functions/array-fill.xml +++ b/reference/array/functions/array-fill.xml @@ -1,6 +1,6 @@ - + array_fill @@ -12,12 +12,12 @@ arrayarray_fill intstart_index - intnum + intcount mixedvalue パラメータ value を値とする - num 個のエントリからなる配列を埋めます。 + count 個のエントリからなる配列を埋めます。 この際、キーは、start_index パラメータから開始します。 @@ -35,21 +35,26 @@ 返される配列の最初のインデックス。 - start_index が負の場合は、 + PHP 8.0.0 より前のバージョンでは、 + start_index が負の場合、 返される配列の最初のインデックスが start_index - となり、それ以降のインデックスはゼロから始まります + となり、それ以降のインデックスはゼロから始まっていました。 + PHP 8.0.0 以降のバージョンでは、 + start_index が負の場合でも、 + インデックスの値が通常通りインクリメントされるようになっています。 (例を参照ください)。 - num + count 挿入する要素数。 ゼロ以上の数でなければなりません。 + かつ、2147483647 以下である必要があります。 @@ -77,34 +82,34 @@ &reftitle.errors; - num がゼロより小さい場合に - E_WARNING が発生します。 + count が範囲外の値の場合に、 + ValueError がスローされます。 &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.6.0 - - num にゼロを指定できるようになりました。これより前のバージョンでは、 - num には正の数しか指定できませんでした。 - - - - - - + + + + + &Version; + &Description; + + + + + 8.0.0 + + count が範囲外の値の場合に、 + ValueError がスローされるようになりました。 + これより前のバージョンでは、 + E_WARNING が発生し、&false; を返していました。 + + + + + @@ -116,9 +121,7 @@ ]]> @@ -134,6 +137,36 @@ Array [9] => banana [10] => banana ) +]]> + + + + + + 最初のインデックスが負の場合の、<function>array_fill</function> の例 + + +]]> + + &example.outputs.8; + + pear + [-1] => pear + [0] => pear + [1] => pear +) +]]> + + &example.outputs.7; + + pear @@ -145,6 +178,10 @@ Array + + PHP 8.0.0 より前のバージョンでは、 + -1 が存在していないことに注意しましょう。 + @@ -155,7 +192,7 @@ Array のセクションを参照ください。 - + &reftitle.seealso; @@ -168,7 +205,6 @@ Array - - + @@ -9,14 +9,14 @@ コールバック関数を使用して、配列の要素をフィルタリングする - + &reftitle.description; arrayarray_filter arrayarray - callablecallback - intflag0 + callablenullcallback&null; + intmode0 callback @@ -28,7 +28,7 @@ 配列のキーは保存されます。 array にインデックスが振られていた場合、結果が異なる場合があります。 - 結果の &array; のインデックスは、 array_values 関数を使って振り直されます。 + 結果の &array; のインデックスは、 array_values 関数を使って振り直すことができます。 @@ -55,13 +55,13 @@ コールバック関数が与えられなかった場合、 array のエントリの中で空のものはすべて削除されます。 - この場合の「空」の定義については、empty 関数を参照して下さい。 + この場合の「空」の定義については、empty 関数を参照ください。 - flag + mode 引数として、何を callback に送るのかを決めるフラグ。 @@ -103,13 +103,12 @@ - 5.6.0 + 8.0.0 - オプションのパラメータ flag と、定数 - ARRAY_FILTER_USE_KEY および - ARRAY_FILTER_USE_BOTH が追加されました。 + callback は、nullable になりました。 + &array.changelog.by-ref; @@ -208,7 +207,7 @@ Array <function>array_filter</function> で - <parameter>flag</parameter> を使う例 + mode を使う例 配列の内容がコールバック関数内で変更された場合 - (たとえば要素が追加されたり削除されたりなど) + (たとえば要素が追加されたりunsetされたりなど) のこの関数の挙動は未定義です。 - + &reftitle.seealso; + array_intersect + array_find + array_any array_map array_reduce - array_walk - + + + + + array_find_key + コールバック関数を満たす最初の要素のキーを返す + + + + &reftitle.description; + + mixedarray_find_key + arrayarray + callablecallback + + + array_find_key は、指定された + callback が &true; を返す &array; の最初の要素のキーを返します。 + 見つからない場合 &null; を返します。 + + + + + &reftitle.parameters; + + + array + + + 検索する &array;。 + + + + + callback + + + 各要素を調べるコールバック関数。シグネチャは次の通りです: + + boolcallback + mixedvalue + mixedkey + + この関数が &true; を返すと、 + その要素のキーが array_find_key から返され、 + 以降の要素に対してはコールバックは呼び出されません。 + + + + + + + + &reftitle.returnvalues; + + callback が &true; を返す最初の要素のキーを返します。 + 一致する要素が見つからない場合、 + &null; を返します。 + + + + + &reftitle.examples; + + <function>array_find_key</function> の例 + + 'dog', + 'b' => 'cat', + 'c' => 'cow', + 'd' => 'duck', + 'e' => 'goose', + 'f' => 'elephant' +]; + +// 名前が4文字より長い最初の動物を探します。 +var_dump(array_find_key($array, function (string $value) { + return strlen($value) > 4; +})); + +// 名前がfで始まる最初の動物を探します。 +var_dump(array_find_key($array, function (string $value) { + return str_starts_with($value, 'f'); +})); + +// 配列キーが動物の最初の文字と一致する最初の動物を探します。 +var_dump(array_find_key($array, function (string $value, $key) { + return $value[0] === $key; +})); + +// 配列キーが正規表現にマッチする最初の動物を探します。 +var_dump(array_find_key($array, function ($value, $key) { + return preg_match('/^([a-f])$/', $key); +})); +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + array_find + array_all + array_any + array_filter + array_reduce + + + + diff --git a/reference/array/functions/array-find.xml b/reference/array/functions/array-find.xml new file mode 100644 index 0000000000..edf9d50fe6 --- /dev/null +++ b/reference/array/functions/array-find.xml @@ -0,0 +1,144 @@ + + + + + + + array_find + コールバック関数を満たす最初の要素を返す + + + + &reftitle.description; + + mixedarray_find + arrayarray + callablecallback + + + array_find は、指定された + callback が &true; を返す &array; の最初の要素を返します。 + 見つからない場合 &null; を返します。 + + + + + &reftitle.parameters; + + + array + + + 検索する &array;。 + + + + + callback + + + 各要素を調べるコールバック関数。シグネチャは次の通りです: + + boolcallback + mixedvalue + mixedkey + + この関数が &true; を返すと、 + その要素が array_find から返され、 + 以降の要素に対してはコールバックは呼び出されません。 + + + + + + + + &reftitle.returnvalues; + + callback が &true; を返す最初の要素を返します。 + 一致する要素が見つからない場合、 + &null; を返します。 + + + + + &reftitle.examples; + + <function>array_find</function> の例 + + 'dog', + 'b' => 'cat', + 'c' => 'cow', + 'd' => 'duck', + 'e' => 'goose', + 'f' => 'elephant' +]; + +// 名前が4文字より長い最初の動物を探します。 +var_dump(array_find($array, function (string $value) { + return strlen($value) > 4; +})); + +// 名前がfで始まる最初の動物を探します。 +var_dump(array_find($array, function (string $value) { + return str_starts_with($value, 'f'); +})); + +// キーが動物の名前の最初の文字と一致する最初の動物を探します。 +var_dump(array_find($array, function (string $value, $key) { + return $value[0] === $key; +})); + +// キーが正規表現にマッチする最初の動物を探します。 +var_dump(array_find($array, function ($value, $key) { + return preg_match('/^([a-f])$/', $key); +})); +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + array_find_key + array_all + array_any + array_filter + array_reduce + + + + diff --git a/reference/array/functions/array-first.xml b/reference/array/functions/array-first.xml new file mode 100644 index 0000000000..7574c002bc --- /dev/null +++ b/reference/array/functions/array-first.xml @@ -0,0 +1,96 @@ + + + + + + array_first + 配列の最初の値を得る + + + + &reftitle.description; + + mixedarray_first + arrayarray + + + 与えられた array の最初の値を返します。 + + + + + &reftitle.parameters; + + + array + + + 入力となる配列 + + + + + + + + &reftitle.returnvalues; + + 配列が空でなければ、 + array の最初の値を返します。 + そうでなければ、&null; を返します。 + + + + + &reftitle.examples; + + 基本的な <function>array_first</function> 関数の使い方 + + 'a', 0 => 'b', 3 => 'c', 2 => 'd']; + +$firstValue = array_first($array); + +var_dump($firstValue); +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + array_key_first + array_last + + + + + diff --git a/reference/array/functions/array-flip.xml b/reference/array/functions/array-flip.xml index 901747a141..5c2999f8f2 100644 --- a/reference/array/functions/array-flip.xml +++ b/reference/array/functions/array-flip.xml @@ -1,6 +1,6 @@ - + @@ -20,7 +20,7 @@ array の値は有効なキーを必要とすることに注意してください。 - すなわち、キーは、integer または + すなわち、キーは、int または string である必要があります。ある値が間違った型である場合、 警告が出力され、問題のこのキー/値の組は結果には含まれません。 @@ -49,7 +49,7 @@ &reftitle.returnvalues; - 成功した場合に反転した配列、失敗した場合に &null; を返します。 + 反転した配列を返します。 diff --git a/reference/array/functions/array-intersect-assoc.xml b/reference/array/functions/array-intersect-assoc.xml index 7b888377bf..6058008d3a 100644 --- a/reference/array/functions/array-intersect-assoc.xml +++ b/reference/array/functions/array-intersect-assoc.xml @@ -1,6 +1,6 @@ - + @@ -12,13 +12,12 @@ &reftitle.description; arrayarray_intersect_assoc - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays array_intersect_assoc は、全ての引数に現れる - array1 の全ての値を含む配列を返します。 + array の全ての値を含む配列を返します。 array_intersect と異なり、 キーも比較に使用されることに注意してください。 @@ -29,7 +28,7 @@ - array1 + array 値を調べるもととなる配列。 @@ -37,21 +36,13 @@ - array2 + arrays 値を比較する対象となる配列。 - - ... - - - さらにそれ以外の配列。 - - - @@ -59,7 +50,26 @@ &reftitle.returnvalues; - array1 の値のうち、すべての引数に存在するものを含む連想配列を返します。 + array の値のうち、すべての引数に存在するものを含む連想配列を返します。 + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &array.changelog.require-only-one; + + + diff --git a/reference/array/functions/array-intersect-key.xml b/reference/array/functions/array-intersect-key.xml index 54761ea5ef..e4c140a232 100644 --- a/reference/array/functions/array-intersect-key.xml +++ b/reference/array/functions/array-intersect-key.xml @@ -1,6 +1,6 @@ - + array_intersect_key @@ -11,13 +11,12 @@ &reftitle.description; arrayarray_intersect_key - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays array_intersect_key は、 - array1 のエントリのうち、 + array のエントリのうち、 その他のすべての引数の中に共通して存在するキーと一致するキーの値からなる配列を返します。 @@ -27,7 +26,7 @@ - array1 + array 値を調べるもととなる配列。 @@ -35,18 +34,10 @@ - array2 + arrays - 値を比較する対象となる配列。 - - - - - ... - - - さらにそれ以外の配列。 + キーを比較する対象となる配列。 @@ -57,11 +48,30 @@ &reftitle.returnvalues; - array1 のエントリのうち、 + array のエントリのうち、 すべての引数に存在するキーのものを含む連想配列を返します。 + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &array.changelog.require-only-one; + + + + + + &reftitle.examples; @@ -96,7 +106,7 @@ array(2) { わかります。また、ふたつの配列の間で 'blue''green' に対応する値が違うことにも注意しましょう。 それでも一致していると判定されるのは、ただキーだけがチェックされているからです。 - 返される値は array1 のものです。 + 返される値は array のものです。 二つの要素は、 diff --git a/reference/array/functions/array-intersect-uassoc.xml b/reference/array/functions/array-intersect-uassoc.xml index 9d43203fbd..7d6f21cbd7 100644 --- a/reference/array/functions/array-intersect-uassoc.xml +++ b/reference/array/functions/array-intersect-uassoc.xml @@ -1,6 +1,6 @@ - + array_intersect_uassoc @@ -12,14 +12,13 @@ &reftitle.description; arrayarray_intersect_uassoc - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays callablekey_compare_func array_intersect_uassoc は、全ての引数に現れる - array1 の全ての値を含む配列を返します。 + array の全ての値を含む配列を返します。 array_intersect と異なり、 キーが比較に使用されることに注意してください。 @@ -30,7 +29,7 @@ - array1 + array 比較元となる最初の配列。 @@ -38,28 +37,17 @@ - array2 + arrays - キーを比較する対象となる最初の配列。 - - - - - ... - - - キーを比較する対象となる配列の、可変リスト。 + キーを比較する対象となる配列。 key_compare_func - - &return.callbacksort; - - &callback.cmp; + &sort.callback.description; @@ -69,7 +57,7 @@ &reftitle.returnvalues; - array1 の値のうち、 + array の値のうち、 すべての引数に存在するもののみを返します。 diff --git a/reference/array/functions/array-intersect-ukey.xml b/reference/array/functions/array-intersect-ukey.xml index 3f2124ea8d..62a7a68551 100644 --- a/reference/array/functions/array-intersect-ukey.xml +++ b/reference/array/functions/array-intersect-ukey.xml @@ -1,6 +1,6 @@ - + array_intersect_ukey @@ -11,14 +11,13 @@ &reftitle.description; arrayarray_intersect_ukey - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays callablekey_compare_func array_intersect_ukey は、他の全ての引数に存在する - array1 の値を全て有する配列を返します。 + array の値を全て有する配列を返します。 @@ -27,7 +26,7 @@ - array1 + array 比較元となる最初の配列。 @@ -35,28 +34,17 @@ - array2 + arrays - キーを比較する対象となる最初の配列。 - - - - - ... - - - キーを比較する対象となる配列の、可変リスト。 + キーを比較する対象となる配列。 key_compare_func - - &return.callbacksort; - - &callback.cmp; + &sort.callback.description; @@ -66,7 +54,7 @@ &reftitle.returnvalues; - array1 の値のうち、 + array の値のうち、 すべての引数に存在するキーのものを含む連想配列を返します。 @@ -115,7 +103,7 @@ array(2) { また、ふたつの配列の間で 'blue''green' に対応する値が違うことにも注意しましょう。 それでも一致していると判定されるのは、ただキーだけがチェックされているからです。 - 返される値は array1 のものです。 + 返される値は array のものです。 diff --git a/reference/array/functions/array-intersect.xml b/reference/array/functions/array-intersect.xml index c659d37b6d..b10b986a20 100644 --- a/reference/array/functions/array-intersect.xml +++ b/reference/array/functions/array-intersect.xml @@ -1,7 +1,7 @@ - - + + array_intersect @@ -12,13 +12,12 @@ &reftitle.description; arrayarray_intersect - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays array_intersect は、他の全ての引数に存在する - array1 の値を全て有する配列を返します。 + array の値を全て有する配列を返します。 キーと値の関係は維持されることに注意してください。 @@ -28,7 +27,7 @@ - array1 + array 値を調べるもととなる配列。 @@ -36,21 +35,13 @@ - array2 + arrays 値を比較する対象となる配列。 - - ... - - - さらにそれ以外の配列。 - - - @@ -58,10 +49,29 @@ &reftitle.returnvalues; - array1 の値のうち、 + array の値のうち、 すべての引数に存在する値のものを含む連想配列を返します。 - + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &array.changelog.require-only-one; + + + + + &reftitle.examples; diff --git a/reference/array/functions/array-is-list.xml b/reference/array/functions/array-is-list.xml new file mode 100644 index 0000000000..0488f886ca --- /dev/null +++ b/reference/array/functions/array-is-list.xml @@ -0,0 +1,117 @@ + + + + + + array_is_list + 指定された配列がリストかどうかをチェックする + + + + &reftitle.description; + + boolarray_is_list + arrayarray + + + 指定された array がリストかどうかを判定します。 + 配列のキーが連続した数値 (0 から + count($array)-1) である場合、 + リストと判定されます。 + + + + + &reftitle.parameters; + + + + array + + + 評価する配列。 + + + + + + + + + &reftitle.returnvalues; + + 配列がリストと判定された場合は &true; を返します。 + そうでない場合は &false; を返します。 + + + + + &reftitle.examples; + + + <function>array_is_list</function> example + + 'apple', 'orange'])); // true + +// 配列が 0 から始まっていない場合 +var_dump(array_is_list([1 => 'apple', 'orange'])); // false + +// キーの順序が正しくない場合 +var_dump(array_is_list([1 => 'apple', 0 => 'orange'])); // false + +// キーが数値でない場合 +var_dump(array_is_list([0 => 'apple', 'foo' => 'bar'])); // false + +// Non-consecutive keys +// 数値のキーが連続していない場合 +var_dump(array_is_list([0 => 'apple', 2 => 'bar'])); // false +?> +]]> + + + + + + + &reftitle.notes; + + + この関数は、空の配列に対しても &true; を返します。 + + + + + + &reftitle.seealso; + + + array_values + + + + + + diff --git a/reference/array/functions/array-key-exists.xml b/reference/array/functions/array-key-exists.xml index 6dfecc0330..29509f0deb 100644 --- a/reference/array/functions/array-key-exists.xml +++ b/reference/array/functions/array-key-exists.xml @@ -1,7 +1,7 @@ - - + + array_key_exists @@ -12,7 +12,7 @@ &reftitle.description; boolarray_key_exists - mixedkey + stringintfloatboolresourcenullkey arrayarray @@ -59,6 +59,47 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + key パラメータは + bool, float, int, + null, resource, and + string を引数として受け入れるようになりました。 + + + + 8.0.0 + + arrayobject を渡すことは、 + サポートされなくなりました。 + + + + 7.4.0 + + arrayobject を渡すことは、 + 推奨されなくなりました。 + property_exists を代わりに使ってください。 + + + + + + + + &reftitle.examples; @@ -67,13 +108,17 @@ 1, 'second' => 4); -if (array_key_exists('first', $search_array)) { - echo "この配列には 'first' という要素が存在します"; -} +$searchArray = ['first' => 1, 'second' => 4]; +var_dump(array_key_exists('first', $searchArray)); ?> ]]> + &example.outputs; + + + @@ -86,36 +131,23 @@ if (array_key_exists('first', $search_array)) { null, 'second' => 4); - -// false を返します -isset($search_array['first']); +$searchArray = ['first' => null, 'second' => 4]; -// true を返します -array_key_exists('first', $search_array); +var_dump(isset($searchArray['first'])); +var_dump(array_key_exists('first', $searchArray)); ?> ]]> + &example.outputs; + + + - - &reftitle.notes; - - - 過去との互換性を保つため、key - が仮に array で指定したオブジェクトのプロパティであっても - array_key_exists は &true; を返します。 - しかし、この挙動に頼ってはいけません。 - array にはオブジェクトではなく配列を渡すようにしましょう。 - - - オブジェクトのプロパティが存在するかどうかを調べるには、 - property_exists を使いましょう。 - - - - &reftitle.seealso; @@ -128,7 +160,6 @@ array_key_exists('first', $search_array); - - + @@ -11,7 +11,7 @@ &reftitle.description; - mixedarray_key_first + intstringnullarray_key_first arrayarray @@ -102,13 +102,13 @@ if (!function_exists('array_key_first')) { &reftitle.seealso; + array_first array_key_last reset - - + @@ -11,7 +11,7 @@ &reftitle.description; - mixedarray_key_last + intstringnullarray_key_last arrayarray @@ -46,13 +46,13 @@ &reftitle.seealso; + array_last array_key_first end - - + @@ -17,7 +17,7 @@ arrayarray_keys arrayarray - mixedsearch_value + mixedfilter_value boolstrict&false; @@ -25,7 +25,7 @@ から全てのキー (数値および文字列) を返します。 - search_value が指定された場合、 + filter_value が指定された場合、 指定した値に関するキーのみが返されます。指定されない場合は、 array から全てのキーが返されます。 @@ -44,10 +44,10 @@ - search_value + filter_value - 指定した場合は、これらの値を含むキーのみを返します。 + 指定した場合は、この値を含むキーのみを返します。 diff --git a/reference/array/functions/array-last.xml b/reference/array/functions/array-last.xml new file mode 100644 index 0000000000..c3e8627339 --- /dev/null +++ b/reference/array/functions/array-last.xml @@ -0,0 +1,96 @@ + + + + + + array_last + 配列の最後の値を得る + + + + &reftitle.description; + + mixedarray_last + arrayarray + + + 与えられた array の最後の値を返します。 + + + + + &reftitle.parameters; + + + array + + + 入力となる配列 + + + + + + + + &reftitle.returnvalues; + + 配列が空でなければ、 + array の最後の値を返します。 + そうでなければ、&null; を返します。 + + + + + &reftitle.examples; + + 基本的な <function>array_last</function> 関数の使い方 + + 'a', 0 => 'b', 3 => 'c', 2 => 'd']; + +$lastValue = array_last($array); + +var_dump($lastValue); +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + array_key_last + array_first + + + + + diff --git a/reference/array/functions/array-map.xml b/reference/array/functions/array-map.xml index dd58644b88..7107953d53 100644 --- a/reference/array/functions/array-map.xml +++ b/reference/array/functions/array-map.xml @@ -1,6 +1,6 @@ - + @@ -12,17 +12,19 @@ &reftitle.description; arrayarray_map - callablecallback - arrayarray1 - array... + callablenullcallback + arrayarray + arrayarrays - array_map は、array1 - (および、 それ以上の配列が与えられた場合は ...) + array_map は、array + (および、 それ以上の配列が与えられた場合は arrays) の各要素に callback を適用した後、 適用後の要素を含む &array; を返します。 callback 関数が受け付けるパラメータの数は、 array_map に渡される配列の数に一致している必要があります。 + それより配列の数が多かった場合、溢れた分は無視されます。 + 少なかった場合、ArgumentCountError がスローされます。 @@ -37,15 +39,17 @@ 配列の各要素に適用する callable - 複数の配列に zip 操作を行うために、 - callback に &null; を渡すことができます。 - array1 のみが与えられた場合、 + 複数の配列に zip 操作を行い、 + 返される配列の要素を、 + 入力された配列の内部ポインタの位置が同じ要素を保持した配列にすることができます。 + こうするためには、callback に &null; を渡します(以下の例を参照ください)。 + array のみが与えられた場合、 array_map は、入力された配列を返します。 - array1 + array コールバック関数を適用する配列。 @@ -53,7 +57,7 @@ - ... + arrays callback に渡す引数を指定する配列の可変リスト。 @@ -67,18 +71,35 @@ &reftitle.returnvalues; - array1 - (および、 それ以上の配列が与えられた場合は ...) + array + (および、 それ以上の配列が与えられた場合は arrays) の各要素に callback 関数を適用した後、 適用後の要素を含む &array; を返します。 引数で渡した配列のキーがそのまま維持されるのは、渡した配列がひとつだけである場合のみです。 - 複数の配列を渡した場合は、返り値の配列のキーは整数値が振り直されます。 + 複数の配列を渡した場合は、戻り値の配列のキーは整数値が振り直されます。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &array.changelog.by-ref; + + + + + &reftitle.examples; @@ -117,18 +138,24 @@ Array - <function>array_map</function> でラムダ関数を使用する例 (PHP 5.3.0 以降) + <function>array_map</function> でラムダ関数を使用する例 $value * 2, range(1, 5))); + ?> ]]> + &example.outputs; $m]; } @@ -294,7 +321,7 @@ Array &null; を <parameter>callback</parameter> に渡し、 - <parameter>array1</parameter> だけを渡す例 + <parameter>array</parameter> だけを渡す例 + + + + <function>array_map</function> と連想配列 + + array_map は、配列のキーを入力として直接サポートしていませんが、 + array_keys を使うと、配列のキーを入力とした動きをシミュレートできます。 + + + 'First release', + 'v2' => 'Second release', + 'v3' => 'Third release', +]; + +// Note: 7.4.0 より前のバージョンでは、無名関数を使うにはもっと長い書き方を使う必要があります +$callback = fn(string $k, string $v): string => "$k was the $v"; + +$result = array_map($callback, array_keys($arr), array_values($arr)); + +var_dump($result); +?> +]]> + + &example.outputs; + + + string(24) "v1 was the First release" + [1]=> + string(25) "v2 was the Second release" + [2]=> + string(24) "v3 was the Third release" +} + ]]> @@ -384,12 +450,10 @@ array(1) { array_filter array_reduce array_walk - &seealso.callback; - - + @@ -12,7 +12,7 @@ &reftitle.description; arrayarray_merge_recursive - array... + arrayarrays array_merge_recursive は、 @@ -36,7 +36,7 @@ - ... + arrays 再帰的にマージしていく配列の可変リスト。 diff --git a/reference/array/functions/array-merge.xml b/reference/array/functions/array-merge.xml index 1518a66a5b..e35d49f9a7 100644 --- a/reference/array/functions/array-merge.xml +++ b/reference/array/functions/array-merge.xml @@ -1,6 +1,6 @@ - + @@ -11,7 +11,7 @@ &reftitle.description; arrayarray_merge - array... + arrayarrays 前の配列の後ろに配列を追加することにより、 @@ -32,7 +32,7 @@ - ... + arrays マージしていく任意の数の配列のリスト。 @@ -116,6 +116,7 @@ Array $array1 = array(); $array2 = array(1 => "data"); $result = array_merge($array1, $array2); +print_r($result); ?> ]]> @@ -177,19 +178,19 @@ array(5) { 'bar'); -$result = array_merge((array)$beginning, (array)$end); +$result = array_merge((array) $beginning, (array) $end); print_r($result); ?> ]]> &example.outputs; - foo - [1] => bar - ) + foo + [1] => bar +) ]]> diff --git a/reference/array/functions/array-multisort.xml b/reference/array/functions/array-multisort.xml index 694cef7471..2b43df6a0f 100644 --- a/reference/array/functions/array-multisort.xml +++ b/reference/array/functions/array-multisort.xml @@ -1,7 +1,7 @@ - - + + array_multisort @@ -14,7 +14,7 @@ arrayarray1 mixedarray1_sort_orderSORT_ASC mixedarray1_sort_flagsSORT_REGULAR - mixed... + mixedrest array_multisort は、複数の配列を一度に、 @@ -25,6 +25,7 @@ 数値添字は再度振り直されます。 ¬e.sort-unstable; + ¬e.reset-index; @@ -101,7 +102,7 @@ - ... + rest 追加の配列。オプションで並び順やフラグが続きます。 @@ -121,38 +122,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.4.0 - - arg で指定できるソートフラグに - SORT_NATURALSORT_FLAG_CASE が追加されました。 - - - - 5.3.0 - - arg で指定できるソートフラグに - SORT_LOCALE_STRING が追加されました。 - - - - - - - - &reftitle.examples; @@ -265,18 +234,6 @@ volume | edition これは、例えば mysql_fetch_assoc の結果をループさせたりすれば得られます。 - - 67, 'edition' => 2); -$data[] = array('volume' => 86, 'edition' => 1); -$data[] = array('volume' => 85, 'edition' => 6); -$data[] = array('volume' => 98, 'edition' => 2); -$data[] = array('volume' => 86, 'edition' => 6); -$data[] = array('volume' => 67, 'edition' => 7); -?> -]]> - この例では、データを volume の降順、 edition の昇順に並べ替えます。 @@ -289,19 +246,34 @@ $data[] = array('volume' => 67, 'edition' => 7); 67, 'edition' => 2); +$data[] = array('volume' => 86, 'edition' => 1); +$data[] = array('volume' => 85, 'edition' => 6); +$data[] = array('volume' => 98, 'edition' => 2); +$data[] = array('volume' => 86, 'edition' => 6); +$data[] = array('volume' => 67, 'edition' => 7); + +// カラムのリストを取得 foreach ($data as $key => $row) { $volume[$key] = $row['volume']; $edition[$key] = $row['edition']; } -// PHP 5.5.0 以降では、上記のコードの代わりに array_column() を使用できます +// 上記のコードの代わりに array_column() を使用できます $volume = array_column($data, 'volume'); $edition = array_column($data, 'edition'); -// データを volume の降順、edition の昇順にソートする。 -// $data を最後のパラメータとして渡し、同じキーでソートする。 +// データを volume の降順でソートし、edition の昇順でソート +// $data を最後のパラメータとして追加 array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); + +// $data をループし、ソート済みの値をカラムごとに出力 +echo 'volume | edition', PHP_EOL; +echo '-------+--------', PHP_EOL; +for ($i = 0; $i < count($data); $i++) { + printf("%6d | %7d\n", $volume[$i], $edition[$i]); +} ?> ]]> diff --git a/reference/array/functions/array-pad.xml b/reference/array/functions/array-pad.xml index e620a1e2e5..690bb4bac9 100644 --- a/reference/array/functions/array-pad.xml +++ b/reference/array/functions/array-pad.xml @@ -1,6 +1,6 @@ - + @@ -13,18 +13,17 @@ arrayarray_pad arrayarray - intsize + intlength mixedvalue - array_pad は、size + array_pad は、length で指定した長さになるように値 value で埋めて array のコピーを返します。 - size が正の場合、配列の右側が埋められます。 + length が正の場合、配列の右側が埋められます。 負の場合、配列の左側が埋められます。 - size の絶対値が + length の絶対値が array の長さ以下の場合、埋める処理は行われません。 - 一度に追加できる要素の最大数は 1048576 です。 @@ -41,7 +40,7 @@ - size + length 新しい配列のサイズ。 @@ -53,7 +52,7 @@ array が - size より小さいときに、 + length より小さいときに、 埋めるために使用する値。 @@ -65,16 +64,42 @@ &reftitle.returnvalues; - size + length で指定した長さになるように値 value で埋めて array のコピーを返します。 - size が正の場合、配列の右側が埋められます。 + length が正の場合、配列の右側が埋められます。 負の場合、配列の左側が埋められます。 - size の絶対値が + length の絶対値が array の長さ以下の場合、埋める処理は行われません。 + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.3.0 + + PHP 8.3 より前のバージョンでは、 + 一度に 1048576 個の要素しか追加できませんでした。 + このバージョンからは、制限は配列の最大サイズのみになりました。 + + + + + + + + &reftitle.examples; @@ -87,12 +112,15 @@ $input = array(12, 10, 9); $result = array_pad($input, 5, 0); // 結果は、array(12, 10, 9, 0, 0) です。 +echo join(', ', $result), PHP_EOL; $result = array_pad($input, -7, -1); // 結果は、array(-1, -1, -1, -1, 12, 10, 9) です。 +echo join(', ', $result), PHP_EOL; $result = array_pad($input, 2, "noop"); // 埋める処理は行われません。 +echo join(', ', $result), PHP_EOL; ?> ]]> @@ -109,7 +137,6 @@ $result = array_pad($input, 2, "noop"); - - + @@ -43,19 +43,11 @@ 配列 array の最後の要素の値を取り出して返します。 - array が空 (または、配列でない) の場合、 + array が空の場合、 &null; が返されます。 - - &reftitle.errors; - - 配列以外を指定して呼び出した場合、この関数は - E_WARNING レベルのエラーとなります。 - - - &reftitle.examples; diff --git a/reference/array/functions/array-product.xml b/reference/array/functions/array-product.xml index 2dfacf922f..da0bf429b1 100644 --- a/reference/array/functions/array-product.xml +++ b/reference/array/functions/array-product.xml @@ -1,6 +1,7 @@ - + + @@ -10,7 +11,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink"> &reftitle.description; - numberarray_product + intfloatarray_product arrayarray @@ -38,7 +39,8 @@ xmlns:xlink="http://www.w3.org/1999/xlink"> 積を、integer あるいは float で返します。 - + + &reftitle.changelog; @@ -51,16 +53,25 @@ xmlns:xlink="http://www.w3.org/1999/xlink"> - 5.3.6 + 8.3.0 - 空の配列の積が 1 を返すようになりました。これまでのバージョンでは、空の配列に対しては 0 を返していました。 + array + の値が整数や浮動小数点数に変換できない場合、 + E_WARNING が発生するようになりました。 + これより前のバージョンでは、 + 配列とオブジェクトが渡されても無視され、 + それ以外の値は整数に変換されていました。 + さらに、数値へのキャストが定義されているオブジェクト + (例: GMP) は無視されるのではなく、 + 数値にキャストされるようになりました。 - + + &reftitle.examples; diff --git a/reference/array/functions/array-push.xml b/reference/array/functions/array-push.xml index e5ece2046b..9cd38d4ff2 100644 --- a/reference/array/functions/array-push.xml +++ b/reference/array/functions/array-push.xml @@ -1,6 +1,6 @@ - + @@ -12,7 +12,7 @@ intarray_push arrayarray - mixed... + mixedvalues array_pushは、array @@ -41,8 +41,8 @@ $array[] = $var; 最初の引数が配列でない場合、array_push - は警告を発生させます。これは新規配列を生成する場合における - $var[] の動作と異なります。 + は警告を発生させます。これは、PHP 7.1.0 より前のバージョンの、 + 新規配列を生成する場合における $var[] の動作と異なっていました。 @@ -59,7 +59,7 @@ $array[] = $var; - ... + values array の最後に追加する値。 diff --git a/reference/array/functions/array-rand.xml b/reference/array/functions/array-rand.xml index e1c6ab452c..37731a7692 100644 --- a/reference/array/functions/array-rand.xml +++ b/reference/array/functions/array-rand.xml @@ -1,6 +1,6 @@ - + @@ -10,15 +10,15 @@ &reftitle.description; - mixedarray_rand + intstringarrayarray_rand arrayarray intnum1 一つ以上のランダムなエントリを配列から取り出し、 取り出したエントリのキーを返します。 - この関数が使う疑似乱数生成器は、暗号学的な使い方には適していません。 + &caution.cryptographically-insecure; &reftitle.parameters; @@ -29,6 +29,7 @@ 入力の配列。 + 空配列にはできません。 @@ -37,6 +38,7 @@ 取得するエントリの数を指定します。 + 1以上 array の要素数以下である必要があります。 @@ -50,10 +52,18 @@ array_rand はランダムなエントリのキーを返します。 その他の場合は、ランダムなエントリのキーの配列を返します。 これにより、ランダムな値だけではなくランダムなキーも配列から取得できるようになります。 - 配列の中にある要素数より多くの要素を取り出そうとすると - E_WARNING レベルのエラーが発生し、NULL を返します。 + 複数のキーが返される場合、配列に格納された順番と同じ順で返されます。 + + + &reftitle.errors; + + array が空か num が範囲外の値の場合に、 + ValueError がスローされます。 + + + &reftitle.changelog; @@ -66,6 +76,24 @@ + + 8.0.0 + + num が範囲外の値の場合に、 + ValueError がスローされるようになりました。 + これより前のバージョンでは、 + E_WARNING が発生し、&null; を返していました。 + + + + 8.0.0 + + array が空の場合に、 + ValueError がスローされるようになりました。 + これより前のバージョンでは、 + E_WARNING が発生し、&null; を返していました。 + + 7.1.0 @@ -76,12 +104,6 @@ 変更されました - - 5.2.10 - - 結果の配列のキーがシャッフルされなくなりました。 - - @@ -114,12 +136,12 @@ echo $input[$rand_keys[1]] . "\n"; &reftitle.seealso; - shuffle + Random\Randomizer::pickArrayKeys + Random\Randomizer::shuffleArray - - - + + array_reduce - コールバック関数を用いて配列を普通の値に変更することにより、配列を再帰的に減らす + コールバック関数を繰り返し配列に適用し、配列をひとつの値にまとめる &reftitle.description; @@ -18,7 +18,7 @@ array_reduce は、配列 array の各要素に callback 関数を繰り返し適用し、 - 配列を一つの値に減らします。 + 配列をひとつの値にまとめます。 @@ -85,30 +85,24 @@ array_reduce は &null; を返します。 + &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - initialmixed を指定できるようになりました。 - これまでは integer のみでした。 - - - - - - + + + + + &Version; + &Description; + + + + &array.changelog.by-ref; + + + + &reftitle.examples; diff --git a/reference/array/functions/array-replace-recursive.xml b/reference/array/functions/array-replace-recursive.xml index b123113260..e67e7dc3f3 100644 --- a/reference/array/functions/array-replace-recursive.xml +++ b/reference/array/functions/array-replace-recursive.xml @@ -1,6 +1,6 @@ - + @@ -12,12 +12,12 @@ &reftitle.description; arrayarray_replace_recursive - arrayarray1 - array... + arrayarray + arrayreplacements array_replace_recursive は、 - 最初の配列の値をそれ以降の配列の同じ要素の値で置き換えます。 + array の値をそれ以降の配列の同じ要素の値で置き換えます。 最初の配列のキーと同じキーが 2 番目の配列にあれば、 2 番目の配列の値が最初の配列の値を上書きします。 2 番目の配列に存在するキーが最初の配列に存在しなければ、 @@ -43,7 +43,7 @@ - array1 + array 要素を置き換えたい配列。 @@ -51,10 +51,10 @@ - ... + replacements - オプション。置き換えたい要素を含む配列。 + 置き換えたい要素を含む配列。 @@ -64,7 +64,7 @@ &reftitle.returnvalues; - 配列を返します。エラーが発生した場合は &null; を返します。 + 配列を返します。 @@ -75,7 +75,7 @@ array( "orange") , 'berries' => array("blackberry", "raspberry"), ); +$base = array('citrus' => array("orange"), 'berries' => array("blackberry", "raspberry")); $replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry')); $basket = array_replace_recursive($base, $replacements); @@ -168,7 +168,6 @@ Array - - + array_replace @@ -10,23 +10,18 @@ &reftitle.description; arrayarray_replace - arrayarray1 - array... + arrayarray + arrayreplacements - array_replace は、 - 最初の配列の値をそれ以降の配列の同じ要素の値で置き換えます。 - 最初の配列のキーと同じキーが 2 番目の配列にあれば、 - 2 番目の配列の値が最初の配列の値を上書きします。 - 2 番目の配列に存在するキーが最初の配列に存在しなければ、 - そのキーが新たに最初の配列内に作られます。 - 最初の配列にしか存在しないキーについては何も変わりません。 - 置き換え用の配列が複数渡された場合は渡した順に処理を行い、 - 後から渡した配列の値のほうが優先されます。 + array_replace は、新しい配列を生成し、 + 指定された配列のそれぞれのキーを新しい配列の要素として割り当てます。 + 同じキーが複数の配列に存在した場合、 + 一番最後に指定された配列のものが使われます。 - array_replace は再起的な処理を行いません。 - 2 番目の配列の値がどんな型であっても、最初の配列の値を置き換えます。 + array_replace は再帰的に要素を処理しませんが、 + 置き換えを行うときに、それぞれのキーの値全体を置き換えます。 @@ -34,7 +29,7 @@ - array1 + array 要素を置き換えたい配列。 @@ -42,7 +37,7 @@ - ... + replacements 置き換えたい要素を含む配列。 @@ -56,7 +51,7 @@ &reftitle.returnvalues; - 配列を返します。エラーが発生した場合は &null; を返します。 + 配列を返します。 @@ -72,21 +67,59 @@ $replacements = array(0 => "pineapple", 4 => "cherry"); $replacements2 = array(0 => "grape"); $basket = array_replace($base, $replacements, $replacements2); -print_r($basket); +var_dump($basket); ?> ]]> &example.outputs; grape - [1] => banana - [2] => apple - [3] => raspberry - [4] => cherry -) +array(5) { + [0]=> + string(5) "grape" + [1]=> + string(6) "banana" + [2]=> + string(5) "apple" + [3]=> + string(9) "raspberry" + [4]=> + string(6) "cherry" +} +]]> + + + + + ネストした配列を、どのように処理するかを示す例 + + [ 'orange', 'lemon' ], 'pome' => [ 'apple' ] ]; +$replacements = [ 'citrus' => [ 'grapefruit' ] ]; +$replacements2 = [ 'citrus' => [ 'kumquat', 'citron' ], 'pome' => [ 'loquat' ] ]; +$basket = array_replace($base, $replacements, $replacements2); +var_dump($basket); +?> +]]> + + &example.outputs; + + + array(2) { + [0]=> + string(7) "kumquat" + [1]=> + string(6) "citron" + } + ["pome"]=> + array(1) { + [0]=> + string(6) "loquat" + } +} ]]> @@ -102,7 +135,6 @@ Array - - - + + array_search @@ -10,7 +10,7 @@ &reftitle.description; - mixedarray_search + intstringfalsearray_search mixedneedle arrayhaystack boolstrict&false; @@ -69,33 +69,10 @@ もし haystack に 1 つ以上の needle に見つかった場合、 - 最初にマッチしたキーが返されます。全てのマッチした値に対するキーを返すためには、代わりに array_keys にパラメータ search_value を付けて使用してください。 + 最初にマッチしたキーが返されます。全てのマッチした値に対するキーを返すためには、代わりに array_keys にパラメータ filter_value を付けて使用してください。 &return.falseproblem; - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - 他のすべての内部関数と同様、無効なパラメータが渡されたときに array_search は &null; を返すようになりました。 - - - - - - - &reftitle.examples; @@ -107,7 +84,10 @@ $array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red'); $key = array_search('green', $array); // $key = 2; +print_r($key); + $key = array_search('red', $array); // $key = 1; +print_r($key); ?> ]]> @@ -126,7 +106,6 @@ $key = array_search('red', $array); // $key = 1; - - + @@ -13,7 +13,7 @@ arrayarray_slice arrayarray intoffset - intlength&null; + intnulllength&null; boolpreserve_keys&false; @@ -63,7 +63,7 @@ length - が指定され、負の場合、配列の末尾から連続する複数の要素が返されます。 + が指定され、負の場合、配列の末尾からその数だけ要素を取り除いた配列が返されます。 省略された場合、offset @@ -93,37 +93,6 @@ 切り取った部分を返します。オフセットが配列のサイズより大きい場合は、空の配列を返します。 - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.2.4 - - length のデフォルト値が &null; に変わりました。 - &null; を指定すると、array の長さを使うようになります。 - これより前のバージョンでは、 &null; を指定した場合は長さゼロと見なされていました (つまり、何も返しませんでした)。 - - - - 5.0.2 - - オプションのパラメータ preserve_keys が追加されました。 - - - - - - &reftitle.examples; @@ -228,7 +197,6 @@ Array - - + @@ -11,20 +11,20 @@ &reftitle.description; arrayarray_splice - arrayinput + arrayarray intoffset - intlengthcount($input) - mixedreplacementarray() + intnulllength&null; + mixedreplacement[] - 配列 input + 配列 array から offset および length で指定された要素を削除し、配列 replacement でそれを置換します。 - input の配列の数値添字は保存されないことに注意しましょう。 + array の配列の数値添字は保存されないことに注意しましょう。 @@ -42,7 +42,7 @@ - input + array 入力の配列。 @@ -54,12 +54,12 @@ offset が正の場合、削除される部分は - 配列 input の最初から指定オフセットの + 配列 array の最初から指定オフセットの ぶんだけ進んだ位置からとなります。 offset が負の場合、削除される部分は、 - input の末尾から数えた位置からとなります。 + array の末尾から数えた位置からとなります。 @@ -122,6 +122,29 @@ 抽出された要素を含む配列を返します。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + length は、nullable になりました。 + + + + + + + &reftitle.examples; @@ -191,7 +214,7 @@ array(5) { 以下の文は、すべて2つとも同じ意味です: - + - - + array_sum @@ -9,7 +9,7 @@ &reftitle.description; - numberarray_sum + intfloatarray_sum arrayarray @@ -40,6 +40,39 @@ array が空の場合は 0 を返します。 + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.3.0 + + array + の値が整数や浮動小数点数に変換できない場合、 + E_WARNING が発生するようになりました。 + これより前のバージョンでは、 + 配列とオブジェクトが渡されても無視され、 + それ以外の値は整数に変換されていました。 + さらに、数値へのキャストが定義されているオブジェクト + (例: GMP) は無視されるのではなく、 + 数値にキャストされるようになりました。 + + + + + + + + &reftitle.examples; diff --git a/reference/array/functions/array-udiff-assoc.xml b/reference/array/functions/array-udiff-assoc.xml index 31d9cfaac8..096d254877 100644 --- a/reference/array/functions/array-udiff-assoc.xml +++ b/reference/array/functions/array-udiff-assoc.xml @@ -1,6 +1,6 @@ - + array_udiff_assoc @@ -11,9 +11,8 @@ &reftitle.description; arrayarray_udiff_assoc - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays callablevalue_compare_func @@ -33,7 +32,7 @@ - array1 + array 最初の配列。 @@ -41,20 +40,18 @@ - array2 + arrays - 2 番目の配列。 + 比較対象の配列。 value_compare_func - - &return.callbacksort; - - &callback.cmp; + &sort.callback.description; + &sort.callback.description.presort; @@ -64,7 +61,7 @@ &reftitle.returnvalues; array_udiff_assoc は、 - array1 から他の引数の配列の中に現れない全ての値を含む + array から他の引数の配列の中に現れない全ての値を含む array を返します。 array_diffarray_udiff と異なり、キーが比較に使用されることに注意してください。 @@ -83,7 +80,7 @@ priv_member = $val; } diff --git a/reference/array/functions/array-udiff-uassoc.xml b/reference/array/functions/array-udiff-uassoc.xml index 1b8724f511..35423b233f 100644 --- a/reference/array/functions/array-udiff-uassoc.xml +++ b/reference/array/functions/array-udiff-uassoc.xml @@ -1,6 +1,6 @@ - + array_udiff_uassoc @@ -11,9 +11,8 @@ &reftitle.description; arrayarray_udiff_uassoc - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays callablevalue_compare_func callablekey_compare_func @@ -31,7 +30,7 @@ - array1 + array 最初の配列。 @@ -39,20 +38,18 @@ - array2 + arrays - 2 番目の配列。 + 比較対象の配列。 value_compare_func - - &return.callbacksort; - - &callback.cmp; + &sort.callback.description; + &sort.callback.description.presort; @@ -72,7 +69,7 @@ &reftitle.returnvalues; - array1 から他の引数の配列の中に現れない全ての + array から他の引数の配列の中に現れない全ての 値を含むarray を返します。 @@ -86,7 +83,7 @@ priv_member = $val; } @@ -118,17 +115,17 @@ Array ( [0.1] => cr Object ( - [priv_member:private] => 9 + [priv_member:cr:private] => 9 ) [0.5] => cr Object ( - [priv_member:private] => 12 + [priv_member:cr:private] => 12 ) [0] => cr Object ( - [priv_member:private] => 23 + [priv_member:cr:private] => 23 ) ) ]]> diff --git a/reference/array/functions/array-udiff.xml b/reference/array/functions/array-udiff.xml index 991f4cf9dd..c0d5272ca4 100644 --- a/reference/array/functions/array-udiff.xml +++ b/reference/array/functions/array-udiff.xml @@ -1,6 +1,6 @@ - + array_udiff @@ -10,15 +10,14 @@ &reftitle.description; arrayarray_udiff - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays callablevalue_compare_func データの比較にコールバック関数を用い、配列の差を計算します。 - この関数は array_diff と異なり、 - データの比較に内部関数を利用します。 + この関数は、データの比較に内部関数を利用する + array_diff とは異なります。 @@ -26,7 +25,7 @@ - array1 + array 最初の配列。 @@ -34,23 +33,18 @@ - array2 + arrays - 2 番目の配列。 + 比較対象の配列。 value_compare_func - - 比較用のコールバック関数。 - - - &return.callbacksort; - - &callback.cmp; + &sort.callback.description; + &sort.callback.description.presort; @@ -60,7 +54,7 @@ &reftitle.returnvalues; 他の引数のいずれにも存在しない - array1 の値の全てを有する配列を返します。 + array の値の全てを有する配列を返します。 @@ -72,12 +66,12 @@ - + array_uintersect_assoc @@ -11,9 +11,8 @@ &reftitle.description; arrayarray_uintersect_assoc - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays callablevalue_compare_func @@ -30,7 +29,7 @@ - array1 + array 最初の配列。 @@ -38,20 +37,18 @@ - array2 + arrays - 2 番目の配列。 + 比較対象の配列。 value_compare_func - - &return.callbacksort; - - &callback.cmp; + &sort.callback.description; + &sort.callback.description.presort; @@ -61,7 +58,7 @@ &reftitle.returnvalues; 全ての引数に現れる - array1 の全ての値を含む配列を返します。 + array の全ての値を含む配列を返します。 diff --git a/reference/array/functions/array-uintersect-uassoc.xml b/reference/array/functions/array-uintersect-uassoc.xml index 294a5a02ae..d84f643010 100644 --- a/reference/array/functions/array-uintersect-uassoc.xml +++ b/reference/array/functions/array-uintersect-uassoc.xml @@ -1,6 +1,6 @@ - + array_uintersect_uassoc @@ -12,8 +12,7 @@ arrayarray_uintersect_uassoc arrayarray1 - arrayarray2 - array... + arrayarrays callablevalue_compare_func callablekey_compare_func @@ -35,20 +34,18 @@ - array2 + arrays - 2 番目の配列。 + 残りの配列。 value_compare_func - - &return.callbacksort; - - &callback.cmp; + &sort.callback.description; + &sort.callback.description.presort; diff --git a/reference/array/functions/array-uintersect.xml b/reference/array/functions/array-uintersect.xml index 67ad91abaa..ca9d6de930 100644 --- a/reference/array/functions/array-uintersect.xml +++ b/reference/array/functions/array-uintersect.xml @@ -1,6 +1,6 @@ - + array_uintersect @@ -10,9 +10,8 @@ &reftitle.description; arrayarray_uintersect - arrayarray1 - arrayarray2 - array... + arrayarray + arrayarrays callablevalue_compare_func @@ -24,7 +23,7 @@ - array1 + array 最初の配列。 @@ -32,20 +31,18 @@ - array2 + arrays - 2 番目の配列。 + 比較対象の配列。 value_compare_func - - &return.callbacksort; - - &callback.cmp; + &sort.callback.description; + &sort.callback.description.presort; @@ -55,7 +52,7 @@ &reftitle.returnvalues; 他の全ての引数に存在する - array1 の値を全て有する配列を返します。 + array の値を全て有する配列を返します。 diff --git a/reference/array/functions/array-unique.xml b/reference/array/functions/array-unique.xml index d85383d1f0..6fca44fcae 100644 --- a/reference/array/functions/array-unique.xml +++ b/reference/array/functions/array-unique.xml @@ -1,6 +1,6 @@ - + @@ -14,14 +14,14 @@ arrayarray_unique arrayarray - intsort_flagsSORT_STRING + intflagsSORT_STRING array を入力とし、値に重複のない新規配列を返します。 キーは保持されることに注意してください。 - 指定された sort_flags において、 + 指定された flags において、 複数の要素が等しかった場合、はじめの要素のキーと値が保持されます。 @@ -46,14 +46,14 @@ - sort_flags + flags - オプションの 2 番目のパラメータ sort_flags - にこれらの値を使用して、ソートの挙動を変更します。 + オプションの 2 番目のパラメータ flags + にこれらの値を使用して、比較の挙動を変更します。 - ソート形式のフラグは次のとおりです。 + 比較形式のフラグは次のとおりです。 SORT_REGULAR - 通常の比較 @@ -100,28 +100,13 @@ 7.2.0 - sort_flagsSORT_STRING の場合、 + flagsSORT_STRING の場合、 新しい配列が生成され、ユニークな要素が追加されるようになりました。 これによって、異なった数値のインデックスが振られる可能性があります。 これより前のバージョンでは、 array がコピーされ、 (配列を後にパックせずに) ユニークでない値が削除されていました。 - - 5.2.10 - - sort_flags のデフォルト値を - SORT_STRING に戻しました。 - - - - 5.2.9 - - オプションの sort_flags が追加され、 - デフォルトは SORT_REGULAR となりました。5.2.9 より前のバージョンでは、 - この関数は内部的に SORT_STRING によるソートを行っていました。 - - @@ -136,9 +121,11 @@ "green", "red", "b" => "green", "blue", "red"); + +$input = ["a" => "green", "red", "b" => "green", "blue", "red"]; $result = array_unique($input); print_r($result); + ?> ]]> @@ -161,9 +148,11 @@ Array ]]> @@ -179,15 +168,6 @@ array(2) { - - - &reftitle.seealso; - - - array_count_values - - - &reftitle.notes; @@ -199,8 +179,16 @@ array(2) { - + + &reftitle.seealso; + + + array_count_values + + + + - + array_unshift @@ -11,7 +11,7 @@ intarray_unshift arrayarray - mixed... + mixedvalues array_unshift は、array @@ -20,6 +20,7 @@ 配列の数値添字はすべて新たにゼロから振りなおされます。 リテラルのキーについては変更されません。 + ¬e.reset-index; &reftitle.parameters; @@ -34,7 +35,7 @@ - ... + values 加える値。 @@ -84,22 +85,123 @@ +]]> + + &example.outputs; + + + string(5) "apple" + [1] => + string(9) "raspberry" + [2] => + string(6) "orange" + [3] => + string(6) "banana" +} +]]> + + + + + + 連想配列と一緒に使う例 + + 連想配列を別の連想配列の前に加える場合、 + 追加される配列は、もともとある配列の整数のインデックスに追加されます。 + + + [ + 'McIntosh' => 'red', + 'Granny Smith' => 'green', + ], + 'oranges' => [ + 'Navel' => 'orange', + 'Valencia' => 'orange', + ], +]; + +$vegetables = [ + 'lettuce' => [ + 'Iceberg' => 'green', + 'Butterhead' => 'green', + ], + 'carrots' => [ + 'Deep Purple Hybrid' => 'purple', + 'Imperator' => 'orange', + ], + 'cucumber' => [ + 'Kirby' => 'green', + 'Gherkin' => 'green', + ], +]; + +array_unshift($foods, $vegetables); + +var_dump($foods); + ?> ]]> &example.outputs; apple - [1] => raspberry - [2] => orange - [3] => banana -) +array(3) { + [0]=> + array(3) { + ["lettuce"]=> + array(2) { + ["Iceberg"]=> + string(5) "green" + ["Butterhead"]=> + string(5) "green" + } + ["carrots"]=> + array(2) { + ["Deep Purple Hybrid"]=> + string(6) "purple" + ["Imperator"]=> + string(6) "orange" + } + ["cucumber"]=> + array(2) { + ["Kirby"]=> + string(5) "green" + ["Gherkin"]=> + string(5) "green" + } + } + ["apples"]=> + array(2) { + ["McIntosh"]=> + string(3) "red" + ["Granny Smith"]=> + string(5) "green" + } + ["oranges"]=> + array(2) { + ["Navel"]=> + string(6) "orange" + ["Valencia"]=> + string(6) "orange" + } +} ]]> @@ -109,6 +211,7 @@ Array &reftitle.seealso; + array_merge array_shift array_push array_pop diff --git a/reference/array/functions/array-walk-recursive.xml b/reference/array/functions/array-walk-recursive.xml index 5f54348089..47f1dbcff7 100755 --- a/reference/array/functions/array-walk-recursive.xml +++ b/reference/array/functions/array-walk-recursive.xml @@ -1,6 +1,7 @@ - + + array_walk_recursive @@ -9,10 +10,10 @@ &reftitle.description; - boolarray_walk_recursive - arrayarray + truearray_walk_recursive + arrayobjectarray callablecallback - mixeduserdata&null; + mixedarg&null; array 配列の各要素にユーザー定義関数 @@ -45,7 +46,7 @@ callback により配列の値そのものを変更する必要がある場合、 callback の最初の引数は - 参照 + リファレンス として渡す必要があります。この場合、配列の要素に加えた変更は、 配列自体に対して行われます。 @@ -53,10 +54,10 @@ - userdata + arg - オプションの userdata パラメータが指定された場合、 + オプションの arg パラメータが指定された場合、 コールバック関数 callback への三番目の引数として渡されます。 @@ -69,9 +70,29 @@ &reftitle.returnvalues; - &return.success; + &return.true.always; + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &return.type.true; + + + + + + &reftitle.examples; @@ -112,7 +133,6 @@ sour holds lemon array_walk - &seealso.callback; diff --git a/reference/array/functions/array-walk.xml b/reference/array/functions/array-walk.xml index 56481ac353..90880e6253 100644 --- a/reference/array/functions/array-walk.xml +++ b/reference/array/functions/array-walk.xml @@ -1,7 +1,7 @@ - - + + array_walk @@ -10,10 +10,10 @@ &reftitle.description; - boolarray_walk - arrayarray + truearray_walk + arrayobjectarray callablecallback - mixeduserdata&null; + mixedarg&null; array 配列の各要素にユーザー定義関数 @@ -50,7 +50,7 @@ callback により配列の値そのものを変更する必要がある場合、 callback の最初の引数は - 参照 + リファレンス として渡す必要があります。この場合、配列の要素に加えた変更は、 配列自体に対して行われます。 @@ -58,7 +58,7 @@ 内部関数の多く (たとえば strtolower) は、 - 期待しているよりも多い引数を受け取ると警告が発生します。 + 期待しているよりも多い引数を受け取ると例外がスローされます。 そのため、callback に直接指定することはできません。 @@ -73,10 +73,10 @@ - userdata + arg - オプションの userdata パラメータが指定された場合、 + オプションの arg パラメータが指定された場合、 コールバック関数 callback への三番目の引数として渡されます。 @@ -88,21 +88,49 @@ &reftitle.returnvalues; - &true; を返します。 + &return.true.always; + &reftitle.errors; - PHP 7.1.0 以降では、callback 関数が 2 つより多いパラメータ - (配列メンバーの値およびキー)を必要とする場合、 + PHP 7.1.0 以降では、callback 関数が + 2個より多いパラメータ(配列メンバーの値およびキー)を必要とする場合、 + または、(arg も渡されている場合) 3個より多いパラメータを必要とする場合、 ArgumentCountError がスローされます。 - 前は、callback 関数が 2 つより多いパラメータを必要とする場合、 - array_walkcallback + 7.1.0 より前のバージョンでは、callback 関数が 2 つより多いパラメータを必要とする場合、 + array_walkcallback をコールする度にエラーレベル E_WARNING が - 発生していました。 + 発生させていました。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &return.type.true; + + 8.0.0 + + callback が、 + 2番目と3番目の引数にリファレンス渡しされる引数を期待している場合、 + この関数は E_WARNING を発生させるようになりました。 + + + + + + + &reftitle.examples; @@ -120,7 +148,7 @@ function test_alter(&$item1, $key, $prefix) function test_print($item2, $key) { - echo "$key. $item2
\n"; + echo "$key. $item2\n"; } echo "Before ...:\n"; @@ -146,6 +174,31 @@ d. fruit: lemon a. fruit: orange b. fruit: banana c. fruit: apple +]]> + + +
+ + + 無名関数を使った、<function>array_walk</function> の例 + + {$value}\n"; +}); + +?> +]]> + + &example.outputs; + + a +1 => b +2 => c ]]> @@ -161,7 +214,6 @@ c. fruit: apple each call_user_func_array array_map - &seealso.callback; &foreach; diff --git a/reference/array/functions/array.xml b/reference/array/functions/array.xml index d07cb2da61..dfe3af163b 100644 --- a/reference/array/functions/array.xml +++ b/reference/array/functions/array.xml @@ -1,6 +1,6 @@ - + @@ -11,11 +11,11 @@ &reftitle.description; arrayarray - mixed... + mixedvalues 配列を作成します。 - 配列に関するより詳しい情報は配列型 + 角括弧を使った記法([]) も含めた、配列に関するより詳しい情報は配列型 のセクションをご覧ください。
@@ -24,7 +24,7 @@ - ... + values カンマで区切った構文 "index => values" で、インデックスと値を定義します。 @@ -58,7 +58,7 @@ 以下の例では、二次元配列の生成方法、連想配列のキーの指定方法、 および通常の配列において添字番号をスキップし、 - それに続く要素にアクセスする方法についてご紹介しています。 + それに続く要素にアクセスする方法について紹介しています。 <function>array</function> の例 @@ -69,6 +69,7 @@ $fruits = array ( "numbers" => array(1, 2, 3, 4, 5, 6), "holes" => array("first", 5 => "second", "third") ); +print_r($fruits); ?> ]]> @@ -80,7 +81,7 @@ $fruits = array ( 1, 4 => 1, 19, 3 => 13); +$array = array(1, 1, 1, 1, 1, 8 => 1, 4 => 1, 19, 3 => 13); print_r($array); ?> ]]> @@ -115,8 +116,8 @@ Array 'January', 'February', 'March'); -print_r($firstquarter); +$firstQuarter = array(1 => 'January', 'February', 'March'); +print_r($firstQuarter); ?> ]]> @@ -141,10 +142,8 @@ Array 'baz'); echo "Hello {$foo['bar']}!"; // Hello baz! - ?> ]]> @@ -157,7 +156,7 @@ echo "Hello {$foo['bar']}!"; // Hello baz! arrayは、実際にはリテラル配列を表現するための - 言語構成要素であり、通常の関数ではありません。 + 言語構造であり、通常の関数ではありません。 diff --git a/reference/array/functions/arsort.xml b/reference/array/functions/arsort.xml index 33d841894b..a4e39a62a0 100644 --- a/reference/array/functions/arsort.xml +++ b/reference/array/functions/arsort.xml @@ -1,26 +1,27 @@ - + arsort - 連想キーと要素との関係を維持しつつ配列を逆順にソートする + 連想キーと要素との関係を維持しつつ配列を降順にソートする &reftitle.description; - boolarsort + truearsort arrayarray - intsort_flagsSORT_REGULAR + intflagsSORT_REGULAR - この関数は、連想配列において各配列のキーと要素との関係を維持しつつソートを行います。 + 各配列のキーと要素との関係を維持しつつ、array を降順にソートします。 この関数は、主に実際の要素の並び方が重要である連想配列をソートするために使われます。 ¬e.sort-unstable; + ¬e.reset-index; &reftitle.parameters; @@ -34,25 +35,37 @@ - - sort_flags - - - オプションのパラメータ sort_flags - によりソートの動作を修正可能です。詳細については、 - sort を参照ください。 - - - + &sort.flags.parameter;
+ &reftitle.returnvalues; - &return.success; + &return.true.always; + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &return.type.true; + + + + + + &reftitle.examples; @@ -79,23 +92,23 @@ c = apple ]]> - fruits はアルファベットの逆順にソートされ、 + fruits はアルファベットの降順にソートされ、 各要素とキーとの関係は維持されます。 + &reftitle.seealso; - - - asort - &seealso.array.sorting; - - + + sort + asort + &seealso.array.sorting; + -
+
- + asort - 連想キーと要素との関係を維持しつつ配列をソートする + 連想キーと要素との関係を維持しつつ配列を昇順にソートする &reftitle.description; - boolasort + trueasort arrayarray - intsort_flagsSORT_REGULAR + intflagsSORT_REGULAR - この関数は、 - 連想配列において各配列のキーと要素との関係を維持しつつ配列をソートします。 + 配列のキーと要素との関係を維持しつつ、 + array を昇順にソートします。 + + この関数は、 主に実際の要素の並び方が重要である連想配列をソートするために使われます。 ¬e.sort-unstable; + ¬e.reset-index; + &reftitle.parameters; @@ -33,25 +37,37 @@ - - sort_flags - - - オプションのパラメータ sort_flags - によりソートの動作を修正可能です。 - 詳細については、sort を参照ください。 - - - + &sort.flags.parameter; + &reftitle.returnvalues; - &return.success; + &return.true.always; + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &return.type.true; + + + + + + &reftitle.examples; @@ -84,17 +100,17 @@ a = orange + &reftitle.seealso; - - - arsort - &seealso.array.sorting; - - + + sort + arsort + &seealso.array.sorting; + - +
- + @@ -11,15 +11,15 @@ &reftitle.description; arraycompact - mixedvarname1 - mixed... + arraystringvar_name + arraystringvar_names 変数名とその値から配列を作成します。 各引数について、compact - は現在のシンボルテーブルにおいてその名前を有する変数を探し、 + は現在の シンボルテーブル においてその名前を有する変数を探し、 変数名がキー、変数の値がそのキーに関する値となるように追加します。 端的に言うと、extract の逆の動作をします。 @@ -34,7 +34,8 @@ - varname1 + var_name + var_names compact がとるパラメータの数は可変です。 @@ -59,7 +60,7 @@ &reftitle.errors; compact は、与えられた文字列が示す変数が未定義の場合、 - E_NOTICE レベルのエラーを発行します。 + E_WARNING レベルのエラーを発行します。 @@ -78,7 +79,7 @@ 7.3.0 compact は、与えられた文字列が示す変数が未定義の場合、 - E_NOTICE レベルのエラーを発行するようになりました。 + E_NOTICE レベルのエラーを発行するようになりました。 以前のバージョンでは、設定されていない全ての文字列は、単にスキップされます。 @@ -95,6 +96,7 @@ ]]> @@ -141,7 +144,6 @@ Array - - + + count - 変数に含まれるすべての要素、 - あるいはオブジェクトに含まれる何かの数を数える + 配列または Countable オブジェクトに含まれるすべての要素の数を数える + &reftitle.description; intcount - mixedarray_or_countable - intmodeCOUNT_NORMAL + Countablearrayvalue + intmodeCOUNT_NORMAL - 変数に含まれるすべての要素、 - あるいはオブジェクトに含まれる何かの数を数えます。 - - - オブジェクトに対して、もし SPL - がインストールされている場合、インターフェイス - Countable を実装することで count - にフックすることができます。このインターフェイスには 1 つのメソッド - Countable::count があり、count - 関数に対する値を返します。 - - - 配列の実装やPHPでの使用法に関する詳細な説明については、マニュアルの - 配列のセクションを参照ください。 + 配列の場合は、配列の全ての要素を数えます。 + Countable + インターフェイスを実装したオブジェクトの場合は、 + Countable::count + の戻り値を返します。 + &reftitle.parameters; - array_or_countable + value - 配列あるいは Countable オブジェクト。 + 配列あるいは Countable + オブジェクト。 @@ -65,20 +59,54 @@ + &reftitle.returnvalues; - array_or_countable に含まれる要素の数を返します。 - もしパラメータが配列でもなく Countable インターフェイスを - 実装したオブジェクトでもない場合、1 が返されます。 - ひとつ例外があり、array_or_countable が &null; の場合、 - 0 が返されます。 + value の要素の数を返します。 + PHP 8.0.0 より前のバージョンでは、 + パラメータが配列でもなく + Countable インターフェイスを + 実装したオブジェクトでもない場合、1 が返されていました。 + ただし、value が &null; の場合、 + 0 が返されていました。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + value パラメータに不正な型を渡した場合に、 + TypeError をスローするようになりました。 + + + + 7.2.0 + + value パラメータに不正な型を渡した場合に、 + 警告を発生させるようになりました。 + + + + + + + &reftitle.examples; - + <function>count</function> の例 +]]> + + &example.outputs; + + + + + + + + Countable|array でない値を渡した場合の <function>count</function> の例 (悪い例です - 真似しないでね!) + + - + 再帰的な <function>count</function> の例 array('orange', 'banana', 'apple'), 'veggie' => array('carrot', 'collard', 'pea')); -// 再帰的なカウント -echo count($food, COUNT_RECURSIVE); // output 8 +// recursive count +var_dump(count($food, COUNT_RECURSIVE)); -// 通常のカウント -echo count($food); // output 2 +// normal count +var_dump(count($food)); ?> ]]> + &example.outputs; + + + - + + + <interfacename>Countable</interfacename> オブジェクト + + - &reftitle.changelog; - - - - - &Version; - &Description; - - - - - 7.2.0 - - count 関数は、 - array_or_countable パラメータに、 - 不正な Countable 型を渡した場合に - 警告を発生させるようになりました。 - - - - - + public function count(): int + { + return count(get_class_methods($this)); + } +} + +$obj = new CountOfMethods(); +var_dump(count($obj)); +?> +]]> + + &example.outputs; + + + + + @@ -170,9 +228,11 @@ echo count($food); // output 2 empty strlen is_countable + Arrays + - + @@ -11,7 +11,7 @@ &reftitle.description; mixedcurrent - arrayarray + arrayobjectarray 各配列は、"カレント"の要素へのポインタを有しています。 @@ -48,28 +48,19 @@ &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.0.0 - - array は常に値で渡されるようになりました。 - このバージョンより前は、可能な場合は参照で、それ以外の場合は値で - 渡されていました。 - - - - - - + + + + + &Version; + &Description; + + + + &standard.changelog.calling-on-objects; + + + @@ -81,12 +72,12 @@ current を呼び出した時の結果は、 - boolean &false; 要素を指していた場合と区別できません。 - &false; 要素を含む配列を順に処理するには、foreach - 関数を参照ください。 + bool &false; 要素を指していた場合と区別できません。 + &false; 要素を含む配列を順に処理するには、制御構文 &foreach; + を参照ください。 それでも current を使い、 @@ -129,11 +120,11 @@ var_dump(current($arr)); // array(0) { } prev reset next + &foreach; - - - + + each @@ -9,14 +9,14 @@ - &warn.deprecated.function-7-2-0; + &warn.deprecated.function-7-2-0.removed-8-0-0; &reftitle.description; arrayeach - arrayarray + arrayobjectarray 配列から現在のキーと値のペアを返して、カーソルを進めます。 @@ -64,7 +64,7 @@ <function>each</function> の例 - + - + "Bob", "Seppo" => "Sepi"); @@ -122,7 +122,7 @@ Array 例えばこのようになります。 <function>each</function> によって配列を走査する - + 'apple', 'b' => 'banana', 'c' => 'cranberry'); diff --git a/reference/array/functions/end.xml b/reference/array/functions/end.xml index d0fec0da74..95b32f1824 100644 --- a/reference/array/functions/end.xml +++ b/reference/array/functions/end.xml @@ -1,6 +1,6 @@ - + @@ -11,7 +11,7 @@ &reftitle.description; mixedend - arrayarray + arrayobjectarray endarray @@ -42,6 +42,24 @@ 最後の要素の値、あるいは空の配列の場合は &false; を返します。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &standard.changelog.calling-on-objects; + + + + + &reftitle.examples; @@ -74,7 +92,6 @@ echo end($fruits); // クランベリー - - + @@ -12,11 +12,11 @@ intextract arrayarray - intflagsEXTR_OVERWRITE - stringprefix&null; + intflagsEXTR_OVERWRITE + stringprefix"" - 配列からシンボルテーブルに変数をインポートします。 + 配列から シンボルテーブル に変数をインポートします。 各キーについて変数名として有効であるかどうか、 @@ -105,7 +105,7 @@ 現在のシンボルテーブルに既に存在する場合にのみ上書きします。 - 例えば $_REQUEST 以外にあなたが定義した変数のみを展開し + 例えば $_REQUEST からあなたが定義した変数のみを展開し 有効な変数としたいような場合に有用です。 @@ -171,21 +171,16 @@ <function>extract</function> の例 - - extract の使用例としては、シンボルテーブルに - wddx_deserialize から返された連想配列を - インポートすることが考えられます。 - "blue", - "size" => "medium", - "shape" => "sphere"); +$var_array = array( + "color" => "blue", + "size" => "medium", + "shape" => "sphere" +); + extract($var_array, EXTR_PREFIX_SAME, "wddx"); echo "$color, $size, $shape, $wddx_size\n"; @@ -220,100 +215,14 @@ blue, large, sphere, medium extract をユーザー入力 ($_GET$_FILES など) のような信頼できないデータについて使用しないでください。 - もし行う場合、例えば - register_globals - を信頼しているような古いコードを一時的に実行したい場合、 - EXTR_SKIP のような - flags + もし行う場合、 + EXTR_SKIP のような flags の値が上書きされていないことを確認してください。そして &php.ini; の variables_order で定義されたものと同じ順で展開すべきであることに留意してください。 - - - register_globals が on の状態で - $_FILES に対して - extract を実行して - EXTR_SKIP を指定すると、 - その結果に驚くことでしょう。 - - - - これは決しておすすめする方法ではなく、 - 単にドキュメントとしての完全性を求めてここに書いているだけです。 - register_globals - を使ったり、$_FILES のような信頼できないデータに対して - extract を使ったりすることは非推奨となっています。 - 先に説明したようにセキュリティ上のリスクがあるからです。 - もしこの問題に遭遇したならば、 - まずいコーディング作法を少なくともふたつ使っているということになります。 - - - - -]]> - - - おそらくこんな結果になることを期待しているでしょう。 - - - - string(10) "somefile.txt" - ["type"]=> - string(24) "application/octet-stream" - ["tmp_name"]=> - string(14) "/tmp/phpgCCPX8" - ["error"]=> - int(0) - ["size"]=> - int(4208) -} -string(14) "/tmp/phpgCCPX8" -]]> - - - しかし、実際にはこのようになります。 - - - - - - これは、register_globals - が on の場合は extract - がコールされた時点で既にグローバルスコープに - $testfile が存在するからです。 - そして EXTR_SKIP が指定されているので、 - $testfile が - $_FILES 配列の内容で上書きされることはありません。 - $testfile はそのまま文字列として残るわけです。 - - 文字列は配列構文を使ってもアクセスでき、 - 非数値の文字列 tmp_name は - 0 と解釈されるので、PHP は - $testfile['tmp_name'] を - $testfile[0] とみなします。 - - &reftitle.seealso; @@ -325,7 +234,6 @@ string(1) "/" - - + in_array @@ -55,6 +55,19 @@ の中の needle型も確認します。 + + + PHP 8.0.0 より前のバージョンでは、 + strict フラグが指定されていない場合に、 + 配列の値が 0 + の場合でも文字列にマッチしてしまっていました。逆も同じです。 + これにより、望ましくない結果が生じる可能性があります。 + 似たようなエッジケースは他の型でも存在します。 + 値の型が完全にわからない場合には、 + 予期せぬ振る舞いを避けるために常に + strict フラグを使うようにして下さい。 + + @@ -147,13 +160,14 @@ if (in_array('o', $a)) { &example.outputs; + &reftitle.seealso; diff --git a/reference/array/functions/key.xml b/reference/array/functions/key.xml index a85daa4b94..cb5b21c14c 100644 --- a/reference/array/functions/key.xml +++ b/reference/array/functions/key.xml @@ -1,6 +1,6 @@ - + @@ -10,8 +10,8 @@ &reftitle.description; - mixedkey - arrayarray + intstringnullkey + arrayobjectarray key は、 @@ -44,28 +44,19 @@ &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.0.0 - - array は常に値で渡されるようになりました。 - このバージョンより前は、可能な場合は参照で、それ以外の場合は値で - 渡されていました。 - - - - - - + + + + + &Version; + &Description; + + + + &standard.changelog.calling-on-objects; + + + @@ -87,7 +78,7 @@ $array = array( // 全ての連想配列のキーを表示します while ($fruit_name = current($array)) { if ($fruit_name == 'リンゴ') { - echo key($array).'
'; + echo key($array), "\n"; } next($array); } @@ -97,9 +88,9 @@ while ($fruit_name = current($array)) { &example.outputs; -fruit4
-fruit5
+fruit1 +fruit4 +fruit5 ]]>
@@ -111,12 +102,12 @@ fruit5
current next + array_key_first foreach
- - + krsort - 配列をキーで逆順にソートする + 配列をキーで降順にソートする &reftitle.description; - boolkrsort + truekrsort arrayarray - intsort_flagsSORT_REGULAR + intflagsSORT_REGULAR - 配列をキーにより逆順にソートします。キーとデータとの関係は維持されます。 - この関数は主に連想配列の場合に有用です。 + array をキーで降順にソートします。 + ¬e.sort-unstable; + ¬e.reset-index; + &reftitle.parameters; @@ -31,25 +33,44 @@ - - sort_flags - - - オプションのパラメータ sort_flags - によりソートの動作を修正可能です。詳細については、 - sort を参照ください。 - - - + &sort.flags.parameter;
+ &reftitle.returnvalues; - &return.success; + &return.true.always; + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &return.type.true; + + 8.2.0 + + SORT_REGULAR を使って数値形式の文字列の比較を行う際に、 + PHP 8 で標準になっているルールを使うようになりました。 + + + + + + &reftitle.examples; @@ -78,18 +99,17 @@ a = orange + &reftitle.seealso; - - - arsort - ksort - &seealso.array.sorting; - - + + sort + ksort + &seealso.array.sorting; + -
+
- + ksort - 配列をキーでソートする + 配列をキーで昇順にソートする &reftitle.description; - boolksort + trueksort arrayarray - intsort_flagsSORT_REGULAR + intflagsSORT_REGULAR - キーとデータの関係を維持しつつ、配列をキーでソートします。 - この関数は、主として連想配列において有用です。 + array をキーで昇順にソートします。 + ¬e.sort-unstable; + ¬e.reset-index; + &reftitle.parameters; @@ -31,25 +33,44 @@ - - sort_flags - - - オプションのパラメータ sort_flags - によりソートの動作を修正可能です。詳細については、 - sort を参照ください。 - - - + &sort.flags.parameter; + &reftitle.returnvalues; - &return.success; + &return.true.always; + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &return.type.true; + + 8.2.0 + + SORT_REGULAR を使って数値形式の文字列の比較を行う際に、 + PHP 8 で標準になっているルールを使うようになりました。 + + + + + + &reftitle.examples; @@ -73,22 +94,59 @@ a = orange b = banana c = apple d = lemon +]]> + + + + + + + 数値がキーの場合の <function>ksort</function> の振る舞い + + 'First', 2 => 'Last', 1 => 'Middle']; +var_dump($a); +ksort($a); +var_dump($a); +?> +]]> + + &example.outputs; + + + string(5) "First" + [2]=> + string(4) "Last" + [1]=> + string(6) "Middle" +} +array(3) { + [0]=> + string(5) "First" + [1]=> + string(6) "Middle" + [2]=> + string(4) "Last" +} ]]> + &reftitle.seealso; - - - asort - &seealso.array.sorting; - - + + sort + krsort + &seealso.array.sorting; + - +
- + @@ -12,14 +12,16 @@ &reftitle.description; arraylist - mixedvar1 - mixed... + mixedvar + mixedvars array と同様に、 この関数は実際には関数ではなく言語構造です。 list は、 - 単一の操作で一連の変数に値を代入するために使われます。 + この関数は、配列や ArrayAccess + を実装したオブジェクトを扱うことができます。 + list には、空の式を指定できません。 @@ -27,30 +29,35 @@ また、添字は 0 から始まることを想定していました。 - - - PHP 5 では、listは、最も右のパラメータから値を代入します。 - PHP 7 では、listは、最も左のパラメータから値を代入します。 - + + PHP 7.1.0 より後のバージョンでは、list + には明示的にキーを含めることができます。 + これによって、数値でないキーや、連続していないキーの配列を分解できるようになっています。 + 配列の分解に関する詳細な情報は、 + 配列の分解 を参照ください。 + + - プレーンな変数を使用している場合には、このことを気にする必要はありません。 - しかし、添字配列を使用している場合には、配列の添字の順番が - list - に書いたものと同じく左から右となることを通常は期待しますが、 - PHP 5 ではそうはなりません。この配列の添字は逆の順番となります。 + 定義されていない配列のキーにアクセスしようとすることは、 + その他の未定義の変数にアクセスすることと同じです: + つまり、E_WARNING + (PHP 8.0.0 より前は、E_NOTICE) + レベルのエラーが発生し、結果は &null; になります。 - 一般論として、特定の操作順に依存することは避けたほうがいいでしょう。 - 将来的に、その順番が変更される可能性があるからです。 + スカラー値を分解しようとすると、 + 全ての変数に &null; が代入されます。 + ArrayAccess を実装していないオブジェクトを分解しようとすると、 + 致命的なエラーが発生します。 - + &reftitle.parameters; - var1 + var 変数。 @@ -58,6 +65,16 @@ + + + vars + + + 残りの変数。 + + + + @@ -91,24 +108,6 @@ これによって、キーが数値でなかったり、連続していなかったりした場合に配列の構造を変えることができるようになります。 - - 7.0.0 - - 代入操作が行われる順番が変わりました - - - - 7.0.0 - - list の式をまったくの空にすることはできなくなりました - - - - 7.0.0 - - 文字列は扱えなくなりました - - @@ -148,26 +147,14 @@ var_dump($bar); // NULL <function>list</function> の使用法の例 - + - - 社員氏名 - 給与 - - query("SELECT id, name, salary FROM employees"); -while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) { - echo " \n" . - " $name\n" . - " $salary\n" . - " \n"; +result = $pdo->query("SELECT id, name FROM employees"); +while (list($id, $name) = $result->fetch(PDO::FETCH_NUM)) { + echo "id: $id, name: $name\n"; } - ?> - - ]]> @@ -186,6 +173,7 @@ var_dump($a, $b, $c); ?> ]]> + &example.outputs; - - 配列の添字を使用した <function>list</function> の例 - - -]]> - - - 次のような出力になります(list の文法に書かれた - 順番と、要素の順番の違いに注意): - - &example.outputs.7; - - - string(6) "coffee" - [1]=> - string(5) "brown" - [2]=> - string(8) "caffeine" -} -]]> - - &example.outputs.5; - - - string(8) "caffeine" - [1]=> - string(5) "brown" - [0]=> - string(6) "coffee" -} -]]> - - + list が配列の要素をどの順に処理するかは、配列の添字とは無関係です。 <function>list</function> と添字の定義順 - - list が配列の要素をどの順に処理するかは、配列の添字とは無関係です。 - - + @@ -10,7 +10,7 @@ &reftitle.description; - boolnatcasesort + truenatcasesort arrayarray @@ -23,6 +23,7 @@ これは、"自然順(natural ordering)"と呼ばれているものです。 ¬e.sort-unstable; + ¬e.reset-index; &reftitle.parameters; @@ -42,9 +43,29 @@ &reftitle.returnvalues; - &return.success; + &return.true.always; + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &return.type.true; + + + + + + &reftitle.examples; @@ -92,9 +113,7 @@ Array ]]> - より詳細な情報については、Martin PoolのNatural Order String Comparison - ページを参照ください。 + より詳細な情報については、Martin Poolの Natural Order String Comparison ページを参照ください。 @@ -111,7 +130,6 @@ Array - - - + + natsort @@ -10,7 +10,7 @@ &reftitle.description; - boolnatsort + truenatsort arrayarray @@ -21,6 +21,7 @@ 通常のコンピュータ文字列ソートアルゴリズムの違いを示す例を以下に示します。 ¬e.sort-unstable; + ¬e.reset-index; &reftitle.parameters; @@ -40,31 +41,27 @@ &reftitle.returnvalues; - &return.success; + &return.true.always; &reftitle.changelog; - - - - - &Version; - &Description; - - - - - 5.2.10 - - ゼロ埋めされた数値形式の文字列 ('00005' など) - では、基本的にゼロを無視するようになりました。 - - - - - + + + + + + &Version; + &Description; + + + + &return.type.true; + + + + @@ -110,9 +107,7 @@ Array ]]> - より詳細な情報については、Martin PoolのNatural Order String Comparison - ページを参照ください。 + より詳細な情報については、Martin Poolの Natural Order String Comparison ページを参照ください。 @@ -195,7 +190,6 @@ Array - - + @@ -11,7 +11,7 @@ &reftitle.description; mixednext - arrayarray + arrayobjectarray next は、ひとつの違いを除いて @@ -46,6 +46,23 @@ &return.falseproblem; + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &standard.changelog.calling-on-objects; + + + + + &reftitle.examples; @@ -55,11 +72,11 @@ ]]> @@ -72,8 +89,8 @@ $mode = end($transport); // $mode = 'plane'; 配列の最後の要素に対してこの関数を実行した結果は、 - 次の要素が boolean &false; だった場合と区別できません。 - &false; 要素を含む配列を順に処理するには、foreach + 次の要素が bool &false; だった場合と区別できません。 + &false; 要素を含む配列を順に処理するには、foreach 関数を参照ください。 @@ -97,7 +114,6 @@ $mode = end($transport); // $mode = 'plane'; - - + prev @@ -10,7 +10,7 @@ &reftitle.description; mixedprev - arrayarray + arrayobjectarray 内部の配列ポインタをひとつ前に戻します。 @@ -44,6 +44,24 @@ &return.falseproblem; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &standard.changelog.calling-on-objects; + + + + + &reftitle.examples; @@ -53,11 +71,11 @@ ]]> @@ -69,7 +87,7 @@ $mode = end($transport); // $mode = 'plane'; 配列の先頭でこの関数を実行した結果は、 - 先頭が boolean の &false; だった場合と区別できません。 + 先頭が bool の &false; だった場合と区別できません。 区別するには、prev 要素の key 要素が &null; でないかを確認するようにしてください。 @@ -88,7 +106,6 @@ $mode = end($transport); // $mode = 'plane'; - - + range - ある範囲の整数を有する配列を作成する + ある範囲の要素を含む配列を作成する &reftitle.description; arrayrange - mixedstart - mixedend - numberstep1 + stringintfloatstart + stringintfloatend + intfloatstep1 - ある範囲の整数を有する配列を作成します。 + ある範囲の要素を含む配列を作成します。 + + + startend + が両方文字列で、かつ step が整数の場合、 + 生成される配列はバイト列のシーケンスになります。 + そうでない場合、生成される配列は数値のシーケンスになります。 + + + startend + よりも小さい場合、シーケンスは増加します。 + そうでない場合、シーケンスは減少します。 + &reftitle.parameters; @@ -35,7 +47,7 @@ end - 値が end に達するまでシーケンスが続きます。 + シーケンスの最後としてあり得る値。 @@ -43,22 +55,178 @@ step - step が指定されている場合、それは - 要素毎の増加数となります。step - は正の数でなければなりません。デフォルトは 1 です。 + step は、生成されるシーケンスの個別の値が + どれくらい離れているかを指定します。 + + + シーケンスが減少する場合、step + は負の値を指定しても構いません。 + + + step が 端数のない float + の場合、整数として解釈されます。 + &reftitle.returnvalues; - start から - end までの整数の配列を返します。 + 要素のシーケンスを配列として返します。 + 最初の要素は start になり、 + end になるまで続きます。 + シーケンスのそれぞれの値は、step だけ離れています。 + + + 返される配列の最後の要素は、 + end または シーケンスの直前の要素になります。 + どちらになるかは、step の値によります。 + + + startend + が両方文字列で、かつ step が整数の場合、 + 生成される配列は、バイト列のシーケンスになります。 + 一般的にはラテン文字の ASCII 文字からなるシーケンスです。 + + + start, end, step のうち少なくともひとつが float の場合、 + 生成される配列は float のシーケンスになります。 + + その他の場合、生成される配列は整数のシーケンスになります。 + + + + + &reftitle.errors; + + + + step0 の場合、ValueError がスローされます。 + + + + + start, end, step が有限の値(is_finite) でない場合、 + ValueError がスローされます。 + + + + + step が負の値なのに、生成される範囲が増えている(つまり、 $start <= $end) 場合、 + ValueError がスローされます。 + + + + + start または end が空文字列 '' の場合、E_WARNING が発生し、空文字列は 0 として解釈されます。 + + + + + start または end が + 数値形式の文字列 + でない、長さが1バイトより大きい値の場合、E_WARNING が発生します。 + + + + + start または end が + 暗黙のうちに整数にキャストされた文字列の場合、 + E_WARNING が発生します。なぜなら、他の境界の入力値は数値だからです。 + + + + + stepfloat の場合、 + かつ startend が + 数値形式の文字列 + でない場合、E_WARNING が発生します。 + + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + startend + が両方文字列の場合、range は常にバイト列を要素とした配列を生成するようになりました。 + これより前のバージョンでは、境界の値のうちのひとつが数値形式の文字列の場合に、もう一方の境界の値を整数にキャストしていました。 + + + + 8.3.0 + + start または end が + 暗黙のうちに整数にキャストされた文字列の場合、 + E_WARNING が発生するようになりました。 + なぜなら、他の境界の入力値が数値だからです。 + + + + 8.3.0 + + start または end + が数値形式の文字列でなく、かつ長さが1バイトより大きい値の場合、 + E_WARNING が発生するようになりました。 + + + + 8.3.0 + + start または end が空文字列の場合、E_WARNING が発生するようになりました。 + + + + 8.3.0 + + step が 端数のない float + の場合、整数として解釈されるようになりました。 + + + + 8.3.0 + + step が負の値なのに、生成される範囲が増えている場合、 + ValueError がスローされるようになりました。 + + + + 8.3.0 + + step が有限の値でない場合、 + ValueError がスローされるようになりました。 + + + + 8.3.0 + + start または end + が配列、objectresource の場合、 + TypeError がスローされるようになりました。 + これより前のバージョンでは、これらの値は暗黙のうちに整数にキャストされていました。 + + + + + + + &reftitle.examples; @@ -67,41 +235,32 @@ ]]> + &example.outputs; + + + - - &reftitle.notes; - - - 文字列シーケンスは、長さが 1 のものだけに限られます。 - 2 文字以上を指定した場合は、最初の 1 文字だけを使います。 - - - + &reftitle.seealso; @@ -112,8 +271,8 @@ foreach (range('c', 'a') as $letter) { - + - + @@ -11,7 +11,7 @@ &reftitle.description; mixedreset - arrayarray + arrayobjectarray reset は、array @@ -41,6 +41,24 @@ &return.falseproblem; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &standard.changelog.calling-on-objects; + + + + + &reftitle.examples; @@ -76,7 +94,7 @@ echo current($array) . "
\n"; // "step one" 空の配列に対してこの関数を実行した場合の戻り値は、 - 配列の先頭要素に boolean &false; がある配列に対して + 配列の先頭要素に bool &false; がある配列に対して 実行した場合の戻り値と区別できません。 配列の先頭に &false; が含まれている可能性がある値を適切にチェックするには、 まず最初に 配列の count をチェックするか、 @@ -100,7 +118,6 @@ echo current($array) . "
\n"; // "step one"
- - + rsort - 配列を逆順にソートする + 配列を降順にソートする &reftitle.description; - boolrsort + truersort arrayarray - intsort_flagsSORT_REGULAR + intflagsSORT_REGULAR - この関数は、配列を逆順に(高位から低位に)ソートします。 + array を、値で降順にソートします。 ¬e.sort-unstable; + ¬e.no-key-association; + ¬e.reset-index; + &reftitle.parameters; @@ -31,25 +34,37 @@ - - sort_flags - - - オプションのパラメータ sort_flags - によりソートの動作を修正可能です。詳細については、 - sort を参照ください。 - - - + &sort.flags.parameter; + &reftitle.returnvalues; - &return.success; + &return.true.always; + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + &return.type.true; + + + + + + &reftitle.examples; @@ -76,27 +91,23 @@ foreach ($fruits as $key => $val) { ]]> - fruits はアルファベットの逆順にソートされました。 + fruits はアルファベットの降順にソートされました。 - - &reftitle.notes; - ¬e.no-key-association; - + &reftitle.seealso; - - - arsort - krsort - &seealso.array.sorting; - - + + sort + arsort + krsort + &seealso.array.sorting; + - + - + @@ -10,13 +10,13 @@ &reftitle.description; - boolshuffle + trueshuffle arrayarray この関数は、配列をシャッフル (要素の順番をランダムに) します。 - この関数が使う疑似乱数生成器は、暗号学的な使い方には適していません。 + &caution.cryptographically-insecure; &reftitle.parameters; @@ -36,7 +36,7 @@ &reftitle.returnvalues; - &return.success; + &return.true.always; @@ -87,18 +87,20 @@ foreach ($numbers as $number) { &reftitle.notes; ¬e.no-key-association; + ¬e.reset-index; &reftitle.seealso; - array_rand + Random\Randomizer::shuffleArray + Random\Randomizer::shuffleBytes + Random\Randomizer::pickArrayKeys &seealso.array.sorting; - - + sort - 配列をソートする + 配列を昇順にソートする &reftitle.description; - boolsort + truesort arrayarray - intsort_flagsSORT_REGULAR + intflagsSORT_REGULAR - この関数は配列をソートします。この関数が正常に終了すると、 - 各要素が小さい順に並び変わった状態になります。 + array を値で昇順にソートします。 ¬e.sort-unstable; + ¬e.no-key-association; + ¬e.reset-index; + &reftitle.parameters; @@ -33,90 +35,37 @@ - - sort_flags - - - オプションの 2 番目のパラメータ sort_flags - は、以下の値によりソートの動作を修正するために使用することが可能です。 - - - ソート型のフラグ: - - - SORT_REGULAR - 通常通りに項目を比較; - 比較の詳細は 比較演算子 - で説明されています。 - - - SORT_NUMERIC - 数値的に項目を比較 - - - SORT_STRING - 文字列として項目を比較 - - - - SORT_LOCALE_STRING - は、現在のロケールに基づいて比較します。 - 比較に使うロケールは、setlocale で変更できます。 - - - - - SORT_NATURAL - 要素の比較を文字列として行い、 - natsort と同様の「自然順」で比較します。 - - - - - SORT_FLAG_CASE - - SORT_STRING や - SORT_NATURAL と (ビット OR で) 組み合わせて使い、 - 文字列のソートで大文字小文字を区別しないようにします。 - - - - - - + &sort.flags.parameter; + &reftitle.returnvalues; - &return.success; + &return.true.always; + &reftitle.changelog; - - - - - &Version; - &Description; - - - - - 5.4.0 - - sort_flags に - SORT_NATURAL と - SORT_FLAG_CASE が使えるようになりました。 - - - - 5.0.2 - - SORT_LOCALE_STRING が追加されました。 - - - - - + + + + + + &Version; + &Description; + + + + &return.type.true; + + + + + &reftitle.examples; @@ -182,9 +131,9 @@ fruits[3] = orange20 fruits が natcasesort と同じようにソートされました。 + &reftitle.notes; - ¬e.no-key-association; PHP の大半のソート関数と同様、sort は @@ -196,25 +145,23 @@ fruits[3] = orange20 - sort_flags が + flagsSORT_REGULARの場合に 複数の型が混在する配列をソートする場合には、注意してください。 sort が期待しない結果を出力することがあります。 + &reftitle.seealso; - - - asort - rsort - &seealso.array.sorting; - - + + rsort + &seealso.array.sorting; + - + - + @@ -11,18 +11,20 @@ &reftitle.description; - booluasort + trueuasort arrayarray - callablevalue_compare_func + callablecallback - この関数は、インデックスとそれに対応する要素を関連づけた配列をソートします。 + インデックスとそれに対応する要素を関連づけて + array をソートします。 ソートには、ユーザー定義の比較関数を使います。 主に実際の配列の順序に意味がある連想配列をソートするためにこの関数は使用されます。 ¬e.sort-unstable; + ¬e.reset-index; @@ -38,13 +40,9 @@ - value_compare_func + callback - - ユーザー定義の比較関数の例については、 - usort および uksort - を参照ください。 - + &sort.callback.description; @@ -54,10 +52,28 @@ &reftitle.returnvalues; - &return.success; + &return.true.always; + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &return.type.true; + &array.changelog.by-ref; + + + + + &reftitle.examples; @@ -117,15 +133,14 @@ Array &reftitle.seealso; - - - usort - &seealso.array.sorting; - - + + usort + uksort + &seealso.array.sorting; + - + - + @@ -10,18 +10,18 @@ &reftitle.description; - booluksort + trueuksort arrayarray - callablekey_compare_func + callablecallback - uksort は、 - ユーザー定義の比較関数を用いて配列のキーをソートします。 - ソートしたい配列を複雑な基準でソートする必要がある場合には、 - この関数を使う必要があります。 + 順序を決めるユーザー定義の比較関数を用いて、 + array のキーをソートします。 ¬e.sort-unstable; + ¬e.reset-index; + &reftitle.parameters; @@ -35,23 +35,40 @@ - key_compare_func + callback - - &return.callbacksort; - - &callback.cmp; + &sort.callback.description; + &reftitle.returnvalues; - &return.success; + &return.true.always; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &return.type.true; + &array.changelog.by-ref; + + + + + &reftitle.examples; @@ -89,17 +106,17 @@ John: 1 + &reftitle.seealso; - - - usort - &seealso.array.sorting; - - + + usort + uasort + &seealso.array.sorting; + - + - + @@ -10,18 +10,18 @@ &reftitle.description; - boolusort + trueusort arrayarray - callablevalue_compare_func + callablecallback - この関数は、ユーザー定義の比較関数により配列をその値でソートします。 - ソートしたい配列を複雑な基準でソートする必要がある場合、 - この関数を使用するべきです。 + 順序を決めるユーザー定義の比較関数により、 + array をその値でソートします。 ¬e.sort-unstable; ¬e.no-key-association; + &reftitle.parameters; @@ -35,31 +35,40 @@ - value_compare_func + callback - - &return.callbacksort; - - &callback.cmp; - - - float のような非整数を比較関数が返すと、 - その返り値を内部的に integer にキャストして使います。 - つまり、0.99 や 0.1 といった値は整数値 0 にキャストされ、 - 値が等しいとみなされます。 - - + &sort.callback.description; + &reftitle.returnvalues; - &return.success; + &return.true.always; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &return.type.true; + &array.changelog.by-ref; + + + + + &reftitle.examples; @@ -96,6 +105,28 @@ foreach ($a as $key => $value) { 4: 6 ]]> + + 内部的な比較をさらにシンプルにするために、 + 宇宙船演算子を使うこともできます。 + + + $b; +} + +$a = array(3, 2, 5, 6, 1); + +usort($a, "cmp"); + +foreach ($a as $key => $value) { + echo "$key: $value\n"; +} +?> +]]> + @@ -121,16 +152,12 @@ $fruits[2]["fruit"] = "grapes"; usort($fruits, "cmp"); -while (list($key, $value) = each($fruits)) { +foreach ($fruits as $key => $value) { echo "\$fruits[$key]: " . $value["fruit"] . "\n"; } ?> ]]> - - 多次元配列をソートする際には、$a$b - は配列の最初のインデックスへの参照を保持しています。 - &example.outputs; + + 多次元配列をソートする際には、$a$b + は配列の最初のインデックスへの参照を保持しています。 + @@ -150,22 +181,17 @@ $fruits[2]: lemons name = $name; } - /* これは、比較用の静的関数です */ + /* これは、比較用のstaticメソッドです */ static function cmp_obj($a, $b) { - $al = strtolower($a->name); - $bl = strtolower($b->name); - if ($al == $bl) { - return 0; - } - return ($al > $bl) ? +1 : -1; + return strtolower($a->name) <=> strtolower($b->name); } } @@ -173,7 +199,7 @@ $a[] = new TestObj("c"); $a[] = new TestObj("b"); $a[] = new TestObj("d"); -usort($a, array("TestObj", "cmp_obj")); +usort($a, [TestObj::class, "cmp_obj"]); foreach ($a as $item) { echo $item->name . "\n"; @@ -222,22 +248,61 @@ foreach ($array as $item) { y, a x, b z, c +]]> + + + + + <function>usort</function> と宇宙船演算子 + + + 宇宙船演算子は、 + 複数の軸をまたがった複合的な値を明快に比較する用途に使えます。 + 以下の例は、$people + を last name で比較し、 + それが一致するものについては first name で比較します。 + + + 'Adam', 'last' => 'West']; +$people[1] = ['first' => 'Alec', 'last' => 'Baldwin']; +$people[2] = ['first' => 'Adam', 'last' => 'Baldwin']; + +function sorter(array $a, array $b) { + return [$a['last'], $a['first']] <=> [$b['last'], $b['first']]; +} + +usort($people, 'sorter'); + +foreach ($people as $person) { + print $person['last'] . ', ' . $person['first'] . PHP_EOL; +} +?> +]]> + + &example.outputs; + + + &reftitle.seealso; - - - uasort - &seealso.array.sorting; - - + + uasort + uksort + &seealso.array.sorting; + - + - + 配列 &Functions; @@ -8,9 +8,9 @@ &reftitle.seealso; is_array, explode, - implode, split, + implode, preg_split, および join - も参照してください。 + も参照ください。 diff --git a/reference/array/setup.xml b/reference/array/setup.xml deleted file mode 100755 index c7ffb4c2b6..0000000000 --- a/reference/array/setup.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- -
- &reftitle.install; - &no.install; -
- -
- &reftitle.runtime; - &no.config; -
- -
- &reftitle.resources; - &no.resource; -
- -
- - - diff --git a/reference/array/sorting.xml b/reference/array/sorting.xml index 6440ac6c86..d03ae9cb41 100644 --- a/reference/array/sorting.xml +++ b/reference/array/sorting.xml @@ -1,6 +1,6 @@ - + 配列のソート @@ -23,15 +23,17 @@ ソート順による違いがあります。アルファベット順、 - 昇順、降順、数値順、自然順、ランダム、ユーザー定義の順などです。 + 昇順、降順、自然順、ランダム、ユーザー定義の順などです。 注意: ソート関数は、すべて配列自身を直接変更します。 ソートした配列を新しく作って返すわけではありません。 - これらのソート関数でふたつのメンバーが等しいと判断されたときの並び順は未定義です - (ソート結果は場合によって変わる可能性があります)。 + これらのソート関数でふたつのメンバーが等しいと判断された場合、 + それらの順番は保持されます。 + PHP 8.0.0 より前のバージョンでは、 + それらの並び順は未定義でした(並び順が場合によって変わる可能性がありました)。 @@ -52,7 +54,7 @@ array_multisort - 連想配列の場合は維持し、数値添字配列の場合は維持しない + 文字列がキーの場合は維持し、数値添字配列の場合は維持しない 最初の配列、あるいはソートオプション array_walk @@ -82,7 +84,7 @@ キー 維持する 昇順 - asort + krsort natcasesort diff --git a/reference/bbcode/book.xml b/reference/bbcode/book.xml deleted file mode 100644 index 36782e7598..0000000000 --- a/reference/bbcode/book.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - Bulletin Board Code - BBCode - - - &reftitle.intro; - - この拡張モジュールは、BBCode のテキストをパースして - HTML やその他のマークアップ言語への変換を支援するためのものです。 - 正規表現を用いた一般的な手法に比べてはるかに高速にパースすることができます。 - さらに、開始/終了タグの並べ替えをしたり - 閉じ忘れているタグに自動的に終了タグを追加したりして、 - 正しい形式の HTML を生成するようにします。 - - - 0.10.1 以降では、シングルクォートやダブルクォート - あるいは HTML エスケープしたダブルクォートによる - 引数のクォートをサポートしています。 - - - - &reference.bbcode.setup; - &reference.bbcode.constants; - &reference.bbcode.reference; - - - - - diff --git a/reference/bbcode/configure.xml b/reference/bbcode/configure.xml deleted file mode 100755 index 0dd2d9d0fc..0000000000 --- a/reference/bbcode/configure.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - -
- &reftitle.install; - - &pecl.info; - &url.pecl.package;bbcode - - - 別の方法としては、PHP で書かれた PEAR パッケージ - HTML_BBCodeParser - を使用することもできます。 - -
- - - diff --git a/reference/bbcode/constants.xml b/reference/bbcode/constants.xml deleted file mode 100755 index c182611861..0000000000 --- a/reference/bbcode/constants.xml +++ /dev/null @@ -1,341 +0,0 @@ - - - - - &reftitle.constants; - &extension.constants; - - - - BBCODE_TYPE_NOARG - (integer) - - - - この BBCode タグは、引数を受け取りません。 - - - - - - BBCODE_TYPE_SINGLE - (integer) - - - - この BBCode タグには、対応する終了タグはありません。 - - - - - - BBCODE_TYPE_ARG - (integer) - - - - この BBCode タグは、引数をひとつ必要とします。 - - - - - - BBCODE_TYPE_OPTARG - (integer) - - - - この BBCode タグは、オプションで引数をひとつ受け取ることができます。 - - - - - - BBCODE_TYPE_ROOT - (integer) - - - - この BBCode タグは、特別なルートタグ (ネストレベル 0) です。 - - - - - - BBCODE_FLAGS_ARG_PARSING - (integer) - - - - この BBCode タグの引数をパースする必要があります - (引数自体も BBCode 拡張モジュールでパースします)。 - 0.10.2 以降では、引数のパーサとして別のパーサを使用することができます。 - - - - - - BBCODE_FLAGS_CDATA_NOT_ALLOWED - (integer) - - - - この BBCode タグにはコンテンツを含めることができません - (自動的に空となります)。 - - - - - - BBCODE_FLAGS_SMILEYS_ON - (integer) - 0.10.2 以降 - - - - この BBCode タグは、顔文字を受け付けます。 - - - - - - BBCODE_FLAGS_SMILEYS_OFF - (integer) - 0.10.2 以降 - - - - この BBCode タグは、顔文字を受け付けません。 - - - - - - BBCODE_FLAGS_ONE_OPEN_PER_LEVEL - (integer) - 0.10.2 以降 - - - - この BBCode タグは、同じ型のタグが同一ネストレベルに登場したときに自動的に閉じます。 - - - - - - BBCODE_FLAGS_REMOVE_IF_EMPTY - (integer) - 0.10.2 以降 - - - - この BBCode タグは、中身が空の場合に自動的に削除します。 - 軽量な HTML を生成することができます。 - - - - - - BBCODE_FLAGS_DENY_REOPEN_CHILD - (integer) - 0.10.3 以降 - - - - この BBCode タグは、閉じられていない子要素がが自動的に閉じられたときに、 - 再開させません。 - - - - - - BBCODE_ARG_DOUBLE_QUOTE - (integer) - 0.10.2 以降 - - - - これはパーサのオプションで、ダブルクォート - (") でクォートしたタグを受け付けます。 - - - - - - BBCODE_ARG_SINGLE_QUOTE - (integer) - 0.10.2 以降 - - - - これはパーサのオプションで、シングルクォート - (') でクォートしたタグを受け付けます。 - - - - - - BBCODE_ARG_HTML_QUOTE - (integer) - 0.10.2 以降 - - - - これはパーサのオプションで、HTML 版のダブルクォート - (&quot;) でクォートしたタグを受け付けます。 - - - - - - BBCODE_ARG_QUOTE_ESCAPING - (integer) - 1.0.2 以降 - - - - これはパーサのオプションで、クォート文字をエスケープします。 - これにより、文字列内でクォート文字を使用できるようになります。 - エスケープ文字は \ で、これがエスケープ対象の文字の前に追加されます。 - エスケープ対象でない文字の前にこれが見つかった場合は、削除されます。 - デフォルトではエスケープを行いません。 - - - - - - BBCODE_AUTO_CORRECT - (integer) - 0.10.2 以降 - - - - これはパーサのオプションで、エラー時の対応方法を変更します。 - タグをオープンした順に、自動的にタグを閉じます。 - また、開始タグしか存在しない場合にも、 - 終了タグがあるかのように扱います。 - - - - - - BBCODE_CORRECT_REOPEN_TAGS - (integer) - 0.10.2 以降 - - - - これはパーサのオプションで、エラー時の対応方法を変更します。 - 終了タグの並び順が間違っている場合に、 - 自動的にタグを再開します。 - - - - - - BBCODE_DISABLE_TREE_BUILD - (integer) - 0.10.2 以降 - - - - これはパーサのオプションで、BBCode のパースを無効にします。 - これは、単に "顔文字" の変換機能だけを使いたい場合に便利です。 - be used. - - - - - - BBCODE_DEFAULT_SMILEYS_ON - (integer) - 0.10.2 以降 - - - - これはパーサのオプションで、 - そのタグレベルで何もフラグが設定されていない場合に - 顔文字を ON にします。 - - - - - - BBCODE_DEFAULT_SMILEYS_OFF - (integer) - 0.10.2 以降 - - - - これはパーサのオプションで、 - そのタグレベルで何もフラグが設定されていない場合に - 顔文字を OFF にします。 - - - - - - BBCODE_FORCE_SMILEYS_OFF - (integer) - 0.10.2 以降 - - - - これはパーサのオプションで、 - 顔文字のパースを完全に無効にします。 - - - - - - BBCODE_SMILEYS_CASE_INSENSITIVE - (integer) - 0.10.3 以降 - - - - 単純なバイナリサーチではなく、 - 大文字小文字を区別せずに顔文字を検出します。 - - - - - - BBCODE_SET_FLAGS_SET - (integer) - 0.10.2 以降 - - - - これは、完全なフラグをパーサに設定できるようにします。 - - - - - - BBCODE_SET_FLAGS_ADD - (integer) - 0.10.2 以降 - - - - これは、パーサのフラグを ON に切り替えられるようにします。 - - - - - - BBCODE_SET_FLAGS_REMOVE - (integer) - 0.10.2 以降 - - - - これは、パーサのフラグを OFF に切り替えられるようにします。 - - - - - - - diff --git a/reference/bbcode/functions/bbcode-add-element.xml b/reference/bbcode/functions/bbcode-add-element.xml deleted file mode 100755 index ba24816b8d..0000000000 --- a/reference/bbcode/functions/bbcode-add-element.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - bbcode_add_element - bbcode 要素を追加する - - - &reftitle.description; - - boolbbcode_add_element - resourcebbcode_container - stringtag_name - arraytag_rules - - - - 既存の BBCode_Container tag_set に、tag_rules を使用してタグを追加します。 - - - - - &reftitle.parameters; - - - - bbcode_container - - - bbcode_create が返す BBCode_Container。 - - - - - tag_name - - - BBCode_Container tag_set に追加する新しいタグ。 - - - - - tag_rules - - - パース規則を指定する連想配列。使用できるキーは - bbcode_create を参照ください。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - - - diff --git a/reference/bbcode/functions/bbcode-add-smiley.xml b/reference/bbcode/functions/bbcode-add-smiley.xml deleted file mode 100644 index e429fbb3c7..0000000000 --- a/reference/bbcode/functions/bbcode-add-smiley.xml +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - bbcode_add_smiley - 顔文字をパーサに追加する - - - &reftitle.description; - - boolbbcode_add_smiley - resourcebbcode_container - stringsmiley - stringreplace_by - - - - 顔文字をパーサに追加します。 - - - - - &reftitle.parameters; - - - - bbcode_container - - - bbcode_create が返す BBCode_Container リソース。 - - - - - smiley - - - 見つかった場合に置換の対象となる文字列。 - - - - - replace_by - - - 顔文字が見つかった場合にそれを置換する文字列。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>bbcode_add_smiley</function> の使用例 - - array('type'=>BBCODE_TYPE_ROOT, - 'childs'=>'!i'), - 'b'=> array('type'=>BBCODE_TYPE_NOARG, - 'open_tag'=>'', - 'close_tag'=>''), - 'u'=> array('type'=>BBCODE_TYPE_NOARG, - 'open_tag'=>'', - 'close_tag'=>'', - 'flags'=>BBCODE_FLAGS_SMILEYS_OFF), - 'i'=> array('type'=>BBCODE_TYPE_NOARG, - 'open_tag'=>'', - 'close_tag'=>'', - 'childs'=>'b'), -); -/* - * パースするテキスト - */ -$text=<<"); -bbcode_add_smiley($BBHandler, ":(", "\":(\""); -bbcode_add_smiley($BBHandler, ":D", "\":D\""); -bbcode_add_smiley($BBHandler, ":p", "\":p\""); -bbcode_add_smiley($BBHandler, ":|", "\":|\""); -bbcode_add_smiley($BBHandler, ":6:", "\":6:\""); -/* - * テキストをパースします - */ -echo bbcode_parse($BBHandler,$text); -?> -]]> - - &example.outputs; - - No parse Test
:) - Parsed, with smiley :( - Parsed, with no smiley :D -]]> - - - - - - - - - diff --git a/reference/bbcode/functions/bbcode-create.xml b/reference/bbcode/functions/bbcode-create.xml deleted file mode 100755 index 0d0980928d..0000000000 --- a/reference/bbcode/functions/bbcode-create.xml +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - bbcode_create - BBCode リソースを作成する - - - &reftitle.description; - - resourcebbcode_create - arraybbcode_initial_tagsNULL - - - - この関数は、新しい BBCode リソースを返します。 - これを用いて BBCode 文字列をパースします。 - - - - - &reftitle.parameters; - - - - bbcode_initial_tags - - - タグ名をキー、BBCode を正しくパースするために必要なパラメータをその値とする連想配列。 - 以下の キー/値 のペアが使用可能です。 - - - - flags (任意) - - BBCODE_FLAGS_* 定数を組み合わせたフラグ。 - - - - - type (必須) - - タグの種類を表す整数値。BBCODE_TYPE_* 定数を使用します。 - - - - - open_tag (必須) - - 開始タグ用の HTML 置換文字列。 - - - - - close_tag (必須) - - 終了タグ用の HTML 置換文字列。 - - - - - default_arg (任意) - - tag_type が OPTARG で、 - 引数が指定されていない場合に使用するデフォルトの引数。 - - - - - content_handling (任意) - - コンテンツの変更時に使用するコールバックの名前を指定します。 - オブジェクト指向の記法は 0.10.1 以降でしかサポートしていません。 - コールバック関数のプロトタイプは - string name(string $content, string $argument) - となります。 - - - - - param_handling (任意) - - 引数の変更時に使用するコールバックの名前を指定します。 - オブジェクト指向の記法は 0.10.1 以降でしかサポートしていません。 - コールバック関数のプロトタイプは - string name(string $content, string $argument) - となります。 - - - - - childs (任意) - - このタグの子として使用できるタグのリスト。 - カンマ区切りの文字列で指定します。 - 先頭が ! の場合は、指定したタグ以外のすべての子を許可します。 - - - - - parent (任意) - - このタグの親として使用できるタグのリスト。 - カンマ区切りの文字列で指定します。 - - - - - - - - - - - &reftitle.returnvalues; - - BBCode_Container を返します。 - - - - &reftitle.examples; - - - <function>bbcode_create</function> の例 - - array('type'=>BBCODE_TYPE_ROOT, 'childs'=>'!i'), - 'i'=> array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'', - 'close_tag'=>'', 'childs'=>'b'), - 'url'=> array('type'=>BBCODE_TYPE_OPTARG, - 'open_tag'=>'', 'close_tag'=>'', - 'default_arg'=>'{CONTENT}', - 'childs'=>'b,i'), - 'img'=> array('type'=>BBCODE_TYPE_NOARG, - 'open_tag'=>'', - 'childs'=>''), - 'b'=> array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'', - 'close_tag'=>''), -); -$text=<< -]]> - - &example.outputs; - -太字のテキスト
-[i]斜体のテキスト[/i] -http://www.php.net/ -PECL のサイト - - -[img]http://static.php.net/www.php.net/images/php.gif[/img] - -]]> - - - - - - - - diff --git a/reference/bbcode/functions/bbcode-destroy.xml b/reference/bbcode/functions/bbcode-destroy.xml deleted file mode 100755 index 0febad4dcd..0000000000 --- a/reference/bbcode/functions/bbcode-destroy.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - bbcode_destroy - BBCode_container リソースを閉じる - - - &reftitle.description; - - boolbbcode_destroy - resourcebbcode_container - - - - この関数は、bbcode_create がオープンしたリソースを閉じます。 - - - - - &reftitle.parameters; - - - - bbcode_container - - - bbcode_create が返す BBCode_Container。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - - diff --git a/reference/bbcode/functions/bbcode-parse.xml b/reference/bbcode/functions/bbcode-parse.xml deleted file mode 100755 index 949f5db39b..0000000000 --- a/reference/bbcode/functions/bbcode-parse.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - bbcode_parse - 文字列を、指定した規則のもとでパースする - - - &reftitle.description; - - stringbbcode_parse - resourcebbcode_container - stringto_parse - - - - この関数は、bbcode_create - で作成した bbcode_container の規則にもとづいて文字列 - to_parse をパースします。 - - - - - &reftitle.parameters; - - - - bbcode_container - - - bbcode_create が返す BBCode_Container。 - - - - - to_parse - - - パースしたい文字列。 - - - - - - - - &reftitle.returnvalues; - - パースした文字列を返します。&return.falseforfailure;. - - - - - - diff --git a/reference/bbcode/functions/bbcode-set-arg-parser.xml b/reference/bbcode/functions/bbcode-set-arg-parser.xml deleted file mode 100644 index b23d89b978..0000000000 --- a/reference/bbcode/functions/bbcode-set-arg-parser.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - bbcode_set_arg_parser - 別のパーサをアタッチして、引数のパース用に別のルールセットを設定する - - - &reftitle.description; - - boolbbcode_set_arg_parser - resourcebbcode_container - resourcebbcode_arg_parser - - - - 別のパーサを bbcode_container にアタッチします。 - このパーサは、引数をパースする必要が生じた際にのみ用いられます。 - この関数を使用しない場合、 - デフォルトの引数パーサとして用いられるのはそのパーサ自身です。 - - - - - &reftitle.parameters; - - - - bbcode_container - - - bbcode_create が返す BBCode_Container リソース。 - - - - - bbcode_arg_parser - - - bbcode_create が返す BBCode_Container リソース。 - これは引数のパースにのみ使用します。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - - &reftitle.examples; - - - <function>bbcode_set_arg_parser</function> の使用例 - - array('type'=>BBCODE_TYPE_ARG, - 'open_tag'=>'

Source: {PARAM}

', - 'close_tag'=>'
', - 'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY|BBCODE_FLAGS_ARG_PARSING), - 'b'=> array('type'=>BBCODE_TYPE_NOARG, - 'open_tag'=>'', 'close_tag'=>'', - 'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY), - 'u'=> array('type'=>BBCODE_TYPE_NOARG, - 'open_tag'=>'', 'close_tag'=>'', - 'flags'=>BBCODE_FLAGS_SMILEYS_OFF | BBCODE_FLAGS_REMOVE_IF_EMPTY | BBCODE_FLAGS_SMILEYS_OFF), - 'i'=> array('type'=>BBCODE_TYPE_NOARG, - 'open_tag'=>'', 'close_tag'=>'', - 'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY), -); -/* - * 引数パーサ用の bbcode ルールセットを生成します - */ -$arrayBBCode_arg=array( - 'b'=> array('type'=>BBCODE_TYPE_NOARG, - 'open_tag'=>'', 'close_tag'=>'', - 'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY), - 'u'=> array('type'=>BBCODE_TYPE_NOARG, - 'open_tag'=>'', 'close_tag'=>'', - 'flags'=>BBCODE_FLAGS_SMILEYS_OFF | BBCODE_FLAGS_REMOVE_IF_EMPTY | BBCODE_FLAGS_SMILEYS_OFF), - 'i'=> array('type'=>BBCODE_TYPE_NOARG, - 'open_tag'=>'', 'close_tag'=>'', - 'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY), -); -/* - * パースするテキスト - */ -$text=<<"); -/* - * メインパーサでテキストをパースします - */ -echo bbcode_parse($BBHandler,$text); -?> -]]> -
- &example.outputs; - -

Source: Test

-Foo :) - -Bar example :) :) -]]> -
-
-
-
- -
- - - diff --git a/reference/bbcode/functions/bbcode-set-flags.xml b/reference/bbcode/functions/bbcode-set-flags.xml deleted file mode 100644 index 60606339e9..0000000000 --- a/reference/bbcode/functions/bbcode-set-flags.xml +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - bbcode_set_flags - パーサのオプションを設定あるいは変更する - - - &reftitle.description; - - boolbbcode_set_flags - resourcebbcode_container - intflags - intmodeBBCODE_SET_FLAGS_SET - - - - パーサのオプションを設定あるいは変更します。 - - - - - &reftitle.parameters; - - - - bbcode_container - - - bbcode_create が返す BBCode_Container リソース。 - - - - - flags - - - bbcode_container オプションに適用するフラグのセット。 - - - - - mode - - - BBCODE_SET_FLAGS_* 定数のいずれか。 - 指定したフラグを設定する、あるいは解除する、あるいは置き換えるのいずれかを指定します。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - - &reftitle.examples; - - - <function>bbcode_set_flags</function> の使用例 - - array('type'=>BBCODE_TYPE_NOARG, - 'open_tag'=>'', 'close_tag'=>''), - 'u'=> array('type'=>BBCODE_TYPE_NOARG, - 'open_tag'=>'', 'close_tag'=>''), - 'i'=> array('type'=>BBCODE_TYPE_NOARG, - 'open_tag'=>'', 'close_tag'=>''), -); -/* - * 入れ子構造が間違っている BBCode - */ -$text="[i] Parser [b] Auto Correction [/i] at work [/b]\n"; -$BBHandler=bbcode_create($arrayBBCode); -echo bbcode_parse($BBHandler,$text); -// 閉じた要素を自動的に再開させます -bbcode_set_flags($BBHandler,BBCODE_CORRECT_REOPEN_TAGS, - BBCODE_SET_FLAGS_SET); -echo bbcode_parse($BBHandler,$text); - -/* - * 入れ子構造が間違っており、閉じタグが足りない BBCode - */ -$text="[i] Parser [b] Auto Correction [/i] at work\n"; -echo bbcode_parse($BBHandler,$text); -// 閉じていないタグを自動的に終了させます -bbcode_set_flags($BBHandler, - BBCODE_CORRECT_REOPEN_TAGS|BBCODE_AUTO_CORRECT, - BBCODE_SET_FLAGS_SET); -echo bbcode_parse($BBHandler,$text); -?> -]]> - - &example.outputs; - - Parser Auto Correction at work - Parser Auto Correction at work - Parser [b] Auto Correction at work - Parser Auto Correction at work - -]]> - - - - - - - - - diff --git a/reference/bbcode/reference.xml b/reference/bbcode/reference.xml deleted file mode 100755 index 28fc1bc0f9..0000000000 --- a/reference/bbcode/reference.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - BBCode &Functions; - - &reference.bbcode.entities.functions; - - - - - diff --git a/reference/bbcode/setup.xml b/reference/bbcode/setup.xml deleted file mode 100644 index 1efc727f56..0000000000 --- a/reference/bbcode/setup.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- - &reference.bbcode.configure; - -
- &reftitle.runtime; - &no.config; -
- -
- &reftitle.resources; - - BBCode 拡張モジュールで使用するリソースは、 - BBCode_Container です。これは - bbcode_create が返すものです。 - -
- -
- - - diff --git a/reference/bc/bcmath.number.xml b/reference/bc/bcmath.number.xml new file mode 100644 index 0000000000..3d11c61dcc --- /dev/null +++ b/reference/bc/bcmath.number.xml @@ -0,0 +1,122 @@ + + + + + + + BcMath\Number クラス + BcMath\Number + + +
+ &reftitle.intro; + + 任意精度数値のクラスです。 + このオブジェクトは、オーバーロードされた + 算術演算子, + 比較演算子 + をサポートしています。 + + + + + このクラスは、&php.ini;で設定された + bcmath.scale + INI ディレクティブの影響を受けません。 + + + + + + オーバーロードされた演算子の動作は、対応するメソッドで + scale パラメータに &null; を指定した場合と同じです。 + + +
+ +
+ &reftitle.classsynopsis; + + + + final + readonly + BcMath\Number + + + + implements + Stringable + + + &Properties; + + public + string + value + + + public + int + scale + + + &Methods; + + + + + + + +
+ +
+ &reftitle.properties; + + + value + + + 任意精度数値の文字表現。 + + + + + scale + + + オブジェクトに設定されているスケールの値。 + 計算メソッドで明示的に scale パラメータが設定されていない場合、 + この値は自動的に計算されて設定されます。 + + + + +
+ +
+ + &reference.bc.bcmath.entities.number; + +
+ diff --git a/reference/bc/bcmath/number/add.xml b/reference/bc/bcmath/number/add.xml new file mode 100644 index 0000000000..e2546177c1 --- /dev/null +++ b/reference/bc/bcmath/number/add.xml @@ -0,0 +1,195 @@ + + + + + + + BcMath\Number::add + 任意精度の数値を加算する + + + + &reftitle.description; + + public BcMath\NumberBcMath\Number::add + BcMath\Numberstringintnum + intnullscale&null; + + + $thisnum を加算します。 + + + + + &reftitle.parameters; + + + num + + + 加数を表す値。 + + + + + scale + + + 計算結果オブジェクトの BcMath\Number::scale を明示的に指定します。 + &null; の場合、計算結果の BcMath\Number::scale は自動的に設定されます。 + + + + + + + + &reftitle.returnvalues; + + 加算結果を新しい BcMath\Number オブジェクトとして返します。 + + + 加算結果オブジェクトの BcMath\Number::scale が自動的に設定される場合、加算に使用する2つの数値のうち、 + 大きい方の BcMath\Number::scale が使用されます。 + + + つまり、2つの値の BcMath\Number::scale がそれぞれ 25 の場合、 + 加算結果オブジェクトの BcMath\Number::scale5 になります。 + + + + + &reftitle.errors; + + このメソッドは、以下の場合に ValueError をスローします: + + num が、BCMath で有効でない数値形式の文字列である場合 + scale が範囲外の値である場合 + + + + + + &reftitle.examples; + + <methodname>BcMath\Number::add</methodname> で <parameter>scale</parameter> を指定しない例 + +add(new BcMath\Number('2.34567')); +$ret2 = $number->add('-3.456'); +$ret3 = $number->add(7); + +var_dump($number, $ret1, $ret2, $ret3); +?> +]]> + + &example.outputs; + + + string(5) "1.234" + ["scale"]=> + int(3) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(7) "3.57967" + ["scale"]=> + int(5) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(6) "-2.222" + ["scale"]=> + int(3) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(5) "8.234" + ["scale"]=> + int(3) +} +]]> + + + + + <methodname>BcMath\Number::add</methodname> で <parameter>scale</parameter> を指定する例 + +add(new BcMath\Number('2.34567'), 1); +$ret2 = $number->add('-3.456', 10); +$ret3 = $number->add(7, 0); + +var_dump($number, $ret1, $ret2, $ret3); +?> +]]> + + &example.outputs; + + + string(5) "1.234" + ["scale"]=> + int(3) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(3) "3.5" + ["scale"]=> + int(1) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(13) "-2.2220000000" + ["scale"]=> + int(10) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(1) "8" + ["scale"]=> + int(0) +} +]]> + + + + + + &reftitle.seealso; + + bcadd + BcMath\Number::sub + + + + + diff --git a/reference/bc/bcmath/number/ceil.xml b/reference/bc/bcmath/number/ceil.xml new file mode 100644 index 0000000000..bf9c2820b7 --- /dev/null +++ b/reference/bc/bcmath/number/ceil.xml @@ -0,0 +1,105 @@ + + + + + + + BcMath\Number::ceil + 任意精度数値を切り上げる + + + + &reftitle.description; + + public BcMath\NumberBcMath\Number::ceil + + + + 必要に応じて $this を切り上げ、 $this の次に大きい整数値を返します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 結果を新しい BcMath\Number オブジェクトとして返します。 + 結果の BcMath\Number::scale は常に 0 になります。 + + + + + &reftitle.examples; + + <methodname>BcMath\Number::ceil</methodname> の例 + +ceil(); +$num2 = new BcMath\Number('9.999')->ceil(); +$num3 = new BcMath\Number('-3.14')->ceil(); + +var_dump($num1, $num2, $num3); +?> +]]> + + &example.outputs; + + + string(1) "5" + ["scale"]=> + int(0) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(2) "10" + ["scale"]=> + int(0) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(2) "-3" + ["scale"]=> + int(0) +} +]]> + + + + + + &reftitle.seealso; + + bcceil + BcMath\Number::floor + BcMath\Number::round + + + + + diff --git a/reference/bc/bcmath/number/compare.xml b/reference/bc/bcmath/number/compare.xml new file mode 100644 index 0000000000..409fbf5eca --- /dev/null +++ b/reference/bc/bcmath/number/compare.xml @@ -0,0 +1,142 @@ + + + + + + + BcMath\Number::compare + 任意精度数値を比較する + + + + &reftitle.description; + + public intBcMath\Number::compare + BcMath\Numberstringintnum + intnullscale&null; + + + 任意精度数値を比較します。 + このメソッドは、 宇宙船演算子 と同じように動作します。 + + + + + &reftitle.parameters; + + + num + + + 比較する値。 + + + + + scale + + + 比較に使用する scale を指定します。 + &null; の場合、比較にはすべての桁が使用されます。 + + + + + + + + &reftitle.returnvalues; + + 2つの値が等しい場合は 0$thisnum + より大きい場合は 1、小さければ -1 を返します。 + + + + + + + + &reftitle.examples; + + <methodname>BcMath\Number::compare</methodname> で <parameter>scale</parameter> を指定しない例 + +compare(new BcMath\Number('1.234')), + $number->compare('1.23400'), + $number->compare('1.23401'), + $number->compare(1), +); +?> +]]> + + &example.outputs; + + + + + + + <methodname>BcMath\Number::compare</methodname> で <parameter>scale</parameter> を指定する例 + +compare(new BcMath\Number('1.299'), 1), + $number->compare('1.24', 2), + $number->compare('1.22', 2), + $number->compare(1, 0), +); +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + bccomp + + + + + diff --git a/reference/bc/bcmath/number/construct.xml b/reference/bc/bcmath/number/construct.xml new file mode 100644 index 0000000000..8460631130 --- /dev/null +++ b/reference/bc/bcmath/number/construct.xml @@ -0,0 +1,117 @@ + + + + + + + BcMath\Number::__construct + BcMath\Number オブジェクトを作成する + + + + &reftitle.description; + + public BcMath\Number::__construct + stringintnum + + + int もしくは string の値から BcMath\Number オブジェクトを作成します。 + + + + + &reftitle.parameters; + + + num + + + int もしくは string の値。 + numint の場合、BcMath\Number::scale + は常に 0 に設定されます。 + numstring の場合、有効な BCMath 数値形式の文字列である必要があり、 + BcMath\Number::scale は自動的に文字列を解析して設定されます。 + + + + + + + + &reftitle.errors; + + このメソッドは、 numstring であり、BCMath で有効でない + 数値形式の文字列である場合、ValueError をスローします。 + + + + + &reftitle.examples; + + <methodname>BcMath\Number::__construct</methodname> の例 + + +]]> + + &example.outputs; + + + string(3) "100" + ["scale"]=> + int(0) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(4) "-200" + ["scale"]=> + int(0) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(6) "300.00" + ["scale"]=> + int(2) +} +]]> + + + + + + &reftitle.seealso; + + BcMath\Number::__serialize + BcMath\Number::__unserialize + + + + + diff --git a/reference/bc/bcmath/number/div.xml b/reference/bc/bcmath/number/div.xml new file mode 100644 index 0000000000..ffb8c279e7 --- /dev/null +++ b/reference/bc/bcmath/number/div.xml @@ -0,0 +1,246 @@ + + + + + + + BcMath\Number::div + 任意精度数値の除算を行う + + + + &reftitle.description; + + public BcMath\NumberBcMath\Number::div + BcMath\Numberstringintnum + intnullscale&null; + + + $thisnum で割ります。 + + + + + &reftitle.parameters; + + + num + + + 除数を表す値。 + + + + + + + + + &reftitle.returnvalues; + + 除算結果を新しい BcMath\Number オブジェクトとして返します。 + + + 除算結果オブジェクトの BcMath\Number::scale が自動的に設定される場合、被除数の + BcMath\Number::scale が使用されます。ただし、割り切れない除算の場合は、 + 除算結果オブジェクトの BcMath\Number::scale が拡張されます。 + 拡張は必要に応じてのみ行われ、最大で +10 まで拡張されます。 + + + つまり、被除数の BcMath\Number::scale5 の場合、 + 除算結果オブジェクトの BcMath\Number::scale5 から + 15 の間になります。 + + + 割り切れない除算の場合でも、除算結果オブジェクトの BcMath\Number::scale は常に +10 + まで拡張されるわけではありません。 + 末尾が 0 である場合は拡張の必要がないと見なされるため、 BcMath\Number::scale + はその分だけ少なくなります。 + また、最終的な BcMath\Number::scale は、拡張前の BcMath\Number::scale + よりも小さくなることはありません。 + コード例 も参照してください。 + + + + + &reftitle.errors; + + このメソッドは、以下の場合に ValueError をスローします: + + num が、BCMath で有効でない数値形式の文字列である場合 + scale が範囲外の値である場合 + 結果オブジェクトの BcMath\Number::scale が範囲外の値である場合 + + + + このメソッドは、 num0 である場合、 + DivisionByZeroError 例外をスローします。 + + + + + &reftitle.examples; + + <methodname>BcMath\Number::div</methodname> で <parameter>scale</parameter> を指定しない例 + +div(new BcMath\Number('2.000')); +$ret2 = $number->div('-3'); +$ret3 = $number->div(32); + +var_dump($number, $ret1, $ret2, $ret3); +?> +]]> + + &example.outputs; + + + string(5) "0.002" + ["scale"]=> + int(3) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(5) "0.001" + ["scale"]=> + int(3) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(16) "-0.0006666666666" + ["scale"]=> + int(13) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(9) "0.0000625" + ["scale"]=> + int(7) +} +]]> + + + + + <methodname>BcMath\Number::div</methodname> で <parameter>scale</parameter> を指定する例 + +div(new BcMath\Number('2.000'), 15); +$ret2 = $number->div('-3', 5); +$ret3 = $number->div(32, 2); + +var_dump($number, $ret1, $ret2, $ret3); +?> +]]> + + &example.outputs; + + + string(5) "0.002" + ["scale"]=> + int(3) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(17) "0.001000000000000" + ["scale"]=> + int(15) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(8) "-0.00066" + ["scale"]=> + int(5) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(4) "0.00" + ["scale"]=> + int(2) +} +]]> + + + + + <methodname>BcMath\Number::div</methodname> の結果の <property>BcMath\Number::scale</property> が拡張される例 + +div('10001'), + new BcMath\Number('0.001')->div('10001', 13), + new BcMath\Number('0.001')->div('100000000000001'), +); +?> +]]> + + &example.outputs; + + + string(13) "0.00000009999" + ["scale"]=> + int(11) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(15) "0.0000000999900" + ["scale"]=> + int(13) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(5) "0.000" + ["scale"]=> + int(3) +} +]]> + + + + + + &reftitle.seealso; + + bcdiv + BcMath\Number::divmod + BcMath\Number::mod + BcMath\Number::sqrt + BcMath\Number::pow + BcMath\Number::mul + + + + + diff --git a/reference/bc/bcmath/number/divmod.xml b/reference/bc/bcmath/number/divmod.xml new file mode 100644 index 0000000000..20c1e9b37a --- /dev/null +++ b/reference/bc/bcmath/number/divmod.xml @@ -0,0 +1,221 @@ + + + + + + + BcMath\Number::divmod + 任意精度数値の商と剰余を取得する + + + + &reftitle.description; + + public arrayBcMath\Number::divmod + BcMath\Numberstringintnum + intnullscale&null; + + + $thisnum で割った商と剰余を取得します。 + + + + + + + + &reftitle.returnvalues; + + 1つ目の要素に商として新しい BcMath\Number オブジェクトが、 + 2つ目の要素に剰余として新しい BcMath\Number オブジェクトが格納された配列を返します。 + + + 商は常に整数値となるため、商オブジェクトの BcMath\Number::scalescale + の指定に関わらず、常に 0 になります。 + + + scale を明示的に指定した場合、剰余オブジェクトの BcMath\Number::scale は指定された値になります。 + 剰余オブジェクトの BcMath\Number::scale が自動的に設定される場合、計算に使用された2つの数値のうち、大きい方の + BcMath\Number::scale が使用されます。 + + + つまり、2つの値の BcMath\Number::scale がそれぞれ 25 の場合、 + 剰余オブジェクトの BcMath\Number::scale5 になります。 + + + + + &reftitle.errors; + + + + + + + + &reftitle.examples; + + <methodname>BcMath\Number::divmod</methodname> で <parameter>scale</parameter> を指定しない例 + +divmod(new BcMath\Number('2.22')); +var_dump($quot, $rem); + +echo PHP_EOL . '8.3 / 8.3' . PHP_EOL; +[$quot, $rem] = new BcMath\Number('8.3')->divmod('8.3'); +var_dump($quot, $rem); + +echo PHP_EOL . '10 / -3' . PHP_EOL; +[$quot, $rem] = new BcMath\Number('10')->divmod(-3); +var_dump($quot, $rem); +?> +]]> + + &example.outputs; + + + string(1) "3" + ["scale"]=> + int(0) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(4) "1.34" + ["scale"]=> + int(2) +} + +8.3 / 8.3 +object(BcMath\Number)#2 (2) { + ["value"]=> + string(1) "1" + ["scale"]=> + int(0) +} +object(BcMath\Number)#5 (2) { + ["value"]=> + string(3) "0.0" + ["scale"]=> + int(1) +} + +10 / -3 +object(BcMath\Number)#3 (2) { + ["value"]=> + string(2) "-3" + ["scale"]=> + int(0) +} +object(BcMath\Number)#1 (2) { + ["value"]=> + string(1) "1" + ["scale"]=> + int(0) +} +]]> + + + + + <methodname>BcMath\Number::divmod</methodname> で <parameter>scale</parameter> を指定する例 + +divmod(new BcMath\Number('2.22'), 1); +var_dump($quot, $rem); + +echo PHP_EOL . '8.3 / 8.3' . PHP_EOL; +[$quot, $rem] = new BcMath\Number('8.3')->divmod('8.3', 4); +var_dump($quot, $rem); + +echo PHP_EOL . '10 / -3' . PHP_EOL; +[$quot, $rem] = new BcMath\Number('10')->divmod(-3, 5); +var_dump($quot, $rem); +?> +]]> + + &example.outputs; + + + string(1) "3" + ["scale"]=> + int(0) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(3) "1.3" + ["scale"]=> + int(1) +} + +8.3 / 8.3 +object(BcMath\Number)#2 (2) { + ["value"]=> + string(1) "1" + ["scale"]=> + int(0) +} +object(BcMath\Number)#5 (2) { + ["value"]=> + string(6) "0.0000" + ["scale"]=> + int(4) +} + +10 / -3 +object(BcMath\Number)#3 (2) { + ["value"]=> + string(2) "-3" + ["scale"]=> + int(0) +} +object(BcMath\Number)#1 (2) { + ["value"]=> + string(7) "1.00000" + ["scale"]=> + int(5) +} +]]> + + + + + + &reftitle.seealso; + + bcdivmod + BcMath\Number::div + BcMath\Number::mod + + + + + diff --git a/reference/bc/bcmath/number/floor.xml b/reference/bc/bcmath/number/floor.xml new file mode 100644 index 0000000000..416e0f4824 --- /dev/null +++ b/reference/bc/bcmath/number/floor.xml @@ -0,0 +1,100 @@ + + + + + + + BcMath\Number::floor + 任意精度数値を切り下げる + + + + &reftitle.description; + + public BcMath\NumberBcMath\Number::floor + + + + 必要に応じて $this を切り下げ、 $this の次に小さい整数値を返します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + + + + &reftitle.examples; + + <methodname>BcMath\Number::floor</methodname> の例 + +floor(); +$num2 = new BcMath\Number('9.999')->floor(); +$num3 = new BcMath\Number('-3.14')->floor(); + +var_dump($num1, $num2, $num3); +?> +]]> + + &example.outputs; + + + string(1) "4" + ["scale"]=> + int(0) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(1) "9" + ["scale"]=> + int(0) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(2) "-4" + ["scale"]=> + int(0) +} +]]> + + + + + + &reftitle.seealso; + + bcfloor + BcMath\Number::ceil + BcMath\Number::round + + + + + diff --git a/reference/bc/bcmath/number/mod.xml b/reference/bc/bcmath/number/mod.xml new file mode 100644 index 0000000000..c1efe07cf8 --- /dev/null +++ b/reference/bc/bcmath/number/mod.xml @@ -0,0 +1,174 @@ + + + + + + + BcMath\Number::mod + 任意精度数値の剰余を取得する + + + + &reftitle.description; + + public BcMath\NumberBcMath\Number::mod + BcMath\Numberstringintnum + intnullscale&null; + + + $thisnum で割った剰余を取得します。 + num0 でない限り、 結果は $this + と同じ符号になります。 + + + + + + + + &reftitle.returnvalues; + + 剰余オブジェクトを新しい BcMath\Number オブジェクトとして返します。 + + + 剰余オブジェクトの BcMath\Number::scale が自動的に設定される場合、剰余計算に使用する2つの数値のうち、 + 大きい方の BcMath\Number::scale が使用されます。 + + + + + + + &reftitle.errors; + + + + + + + + &reftitle.examples; + + <methodname>BcMath\Number::mod</methodname> で <parameter>scale</parameter> を指定しない例 + +mod(new BcMath\Number('2.22')); +$ret2 = $number->mod('8.3'); +$ret3 = $number->mod(-5); + +var_dump($number, $ret1, $ret2, $ret3); +?> +]]> + + &example.outputs; + + + string(3) "8.3" + ["scale"]=> + int(1) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(4) "1.64" + ["scale"]=> + int(2) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(3) "0.0" + ["scale"]=> + int(1) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(3) "3.3" + ["scale"]=> + int(1) +} +]]> + + + + + <methodname>BcMath\Number::mod</methodname> で <parameter>scale</parameter> を指定する例 + +mod(new BcMath\Number('2.22'), 1); +$ret2 = $number->mod('8.3', 3); +$ret3 = $number->mod(-5, 0); + +var_dump($number, $ret1, $ret2, $ret3); +?> +]]> + + &example.outputs; + + + string(3) "8.3" + ["scale"]=> + int(1) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(3) "1.6" + ["scale"]=> + int(1) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(5) "0.000" + ["scale"]=> + int(3) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(1) "3" + ["scale"]=> + int(0) +} +]]> + + + + + + &reftitle.seealso; + + bcmod + BcMath\Number::div + BcMath\Number::divmod + BcMath\Number::powmod + + + + + diff --git a/reference/bc/bcmath/number/mul.xml b/reference/bc/bcmath/number/mul.xml new file mode 100644 index 0000000000..3faa8e0a03 --- /dev/null +++ b/reference/bc/bcmath/number/mul.xml @@ -0,0 +1,184 @@ + + + + + + + BcMath\Number::mul + 任意精度数値の乗算を行う + + + + &reftitle.description; + + public BcMath\NumberBcMath\Number::mul + BcMath\Numberstringintnum + intnullscale&null; + + + $thisnum を掛けます。 + + + + + &reftitle.parameters; + + + num + + + 乗数を表す値。 + + + + + + + + + &reftitle.returnvalues; + + 乗算結果を新しい BcMath\Number オブジェクトとして返します。 + + + 乗算結果オブジェクトの BcMath\Number::scale が自動的に設定される場合、乗算に使用する2つの数値の + BcMath\Number::scale の合計値が使用されます。 + + + つまり、2つの値の BcMath\Number::scale がそれぞれ 25 の場合、 + 乗算結果オブジェクトの BcMath\Number::scale7 になります。 + + + + + &reftitle.errors; + + + + + + &reftitle.examples; + + <methodname>BcMath\Number::mul</methodname> で <parameter>scale</parameter> を指定しない例 + +mul(new BcMath\Number('2.3456')); +$ret2 = $number->mul('-3.4'); +$ret3 = $number->mul(7); + +var_dump($number, $ret1, $ret2, $ret3); +?> +]]> + + &example.outputs; + + + string(5) "1.234" + ["scale"]=> + int(3) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(9) "2.8944704" + ["scale"]=> + int(7) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(7) "-4.1956" + ["scale"]=> + int(4) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(5) "8.638" + ["scale"]=> + int(3) +} +]]> + + + + + <methodname>BcMath\Number::mul</methodname> で <parameter>scale</parameter> を指定する例 + +mul(new BcMath\Number('2.3456'), 1); +$ret2 = $number->mul('-3.4', 10); +$ret3 = $number->mul(7, 0); + +var_dump($number, $ret1, $ret2, $ret3); +?> +]]> + + &example.outputs; + + + string(5) "1.234" + ["scale"]=> + int(3) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(3) "2.8" + ["scale"]=> + int(1) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(13) "-4.1956000000" + ["scale"]=> + int(10) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(1) "8" + ["scale"]=> + int(0) +} +]]> + + + + + + &reftitle.seealso; + + bcmul + BcMath\Number::div + BcMath\Number::pow + BcMath\Number::powmod + + + + + diff --git a/reference/bc/bcmath/number/pow.xml b/reference/bc/bcmath/number/pow.xml new file mode 100644 index 0000000000..dbb6a72388 --- /dev/null +++ b/reference/bc/bcmath/number/pow.xml @@ -0,0 +1,225 @@ + + + + + + + BcMath\Number::pow + 任意精度数値をべき乗する + + + + &reftitle.description; + + public BcMath\NumberBcMath\Number::pow + BcMath\Numberstringintexponent + intnullscale&null; + + + $this の + exponent 乗を求めます。 + + + + + &reftitle.parameters; + + + exponent + + + 指数を表す値。整数値でなければなりません。 + exponent の有効な範囲はプラットフォームに依存しますが、少なくとも + -2147483648 から 2147483647 までの範囲を持ちます。 + + + + + + + + + &reftitle.returnvalues; + + べき乗の結果を新しい BcMath\Number オブジェクトとして返します。 + + + べき乗結果オブジェクトの BcMath\Number::scale が自動的に設定される場合、 + exponent の値に応じて、結果の BcMath\Number::scale が以下のようになります: + + + + + exponent + べき乗結果オブジェクトの BcMath\Number::scale + + + + + 正の値 + (基数の BcMath\Number::scale) * (exponent の値) + + + 0 + 0 + + + 負の値 + (基数の BcMath\Number::scale) と (基数の BcMath\Number::scale + + 10) の間 + + + + + + + 負の exponent を指定し割り切れない除算が発生した場合、べき乗結果オブジェクトの + BcMath\Number::scale が拡張されます。拡張は必要な場合にのみ行われ、最大で +10 まで拡張されます。 + この動作は BcMath\Number::div と同じですので、詳しくはそちらを参照して下さい。 + + + + + &reftitle.errors; + + このメソッドは、以下の場合に ValueError をスローします: + + exponent が、BCMath で有効でない数値形式の文字列である場合 + exponent が整数値でない場合 + exponent もしくは scale が範囲外の値である場合 + 結果オブジェクトの BcMath\Number::scale が範囲外の値である場合 + + + + このメソッドは、$this の値が 0 かつ exponent が負の値である場合、 + DivisionByZeroError 例外をスローします。 + + + + + &reftitle.examples; + + <methodname>BcMath\Number::pow</methodname> で <parameter>scale</parameter> を指定しない例 + +pow(new BcMath\Number('5')); +$ret2 = $number->pow('-1'); +$ret3 = $number->pow(0); + +var_dump($number, $ret1, $ret2, $ret3); +?> +]]> + + &example.outputs; + + + string(3) "3.0" + ["scale"]=> + int(1) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(9) "243.00000" + ["scale"]=> + int(5) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(13) "0.33333333333" + ["scale"]=> + int(11) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(1) "1" + ["scale"]=> + int(0) +} +]]> + + + + + <methodname>BcMath\Number::pow</methodname> で <parameter>scale</parameter> を指定する例 + +pow(new BcMath\Number('5'), 0); +$ret2 = $number->pow('-1', 2); +$ret3 = $number->pow(0, 10); + +var_dump($number, $ret1, $ret2, $ret3); +?> +]]> + + &example.outputs; + + + string(3) "3.0" + ["scale"]=> + int(1) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(3) "243" + ["scale"]=> + int(0) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(4) "0.33" + ["scale"]=> + int(2) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(12) "1.0000000000" + ["scale"]=> + int(10) +} +]]> + + + + + + &reftitle.seealso; + + bcpow + BcMath\Number::powmod + BcMath\Number::mul + BcMath\Number::sqrt + BcMath\Number::div + + + + + diff --git a/reference/bc/bcmath/number/powmod.xml b/reference/bc/bcmath/number/powmod.xml new file mode 100644 index 0000000000..05344160fd --- /dev/null +++ b/reference/bc/bcmath/number/powmod.xml @@ -0,0 +1,200 @@ + + + + + + + BcMath\Number::powmod + 任意精度数値のべき乗の、指定した数値による剰余 + + + + &reftitle.description; + + public BcMath\NumberBcMath\Number::powmod + BcMath\Numberstringintexponent + BcMath\Numberstringintmodulus + intnullscale&null; + + + modulus で割った余りを求めることを考慮して、 + $this の + exponent 乗を高速に計算します。 + + + + + &reftitle.parameters; + + + exponent + + + 基数を表す整数の値。 + (つまり、scale は 0 でなければいけません) + + + + + modulus + + + 指数を表す、負でない、整数の値。 + (つまり、scale は 0 でなければいけません) + + + + + + + + + &reftitle.returnvalues; + + 計算結果を新しい BcMath\Number オブジェクトとして返します。 + + + 計算結果オブジェクトの BcMath\Number::scale が自動的に設定される場合、常に 0 になります。 + + + + + &reftitle.errors; + + このメソッドは、以下の場合に ValueError をスローします: + + exponent もしくは modulus が、BCMath で有効でない数値形式の文字列である場合 + $thisexponentmodulus のうち、どれか一つでも整数値でない場合 + exponent が負の値である場合 + scale が範囲外の値である場合 + + + + このメソッドは、 modulus0 である場合、 + DivisionByZeroError 例外をスローします。 + + + + + &reftitle.examples; + + <methodname>BcMath\Number::powmod</methodname> で <parameter>scale</parameter> を指定しない例 + +powmod(new BcMath\Number('3'), 5), + new BcMath\Number('-8')->powmod(new BcMath\Number('3'), 5), + new BcMath\Number('8')->powmod('2', -3), + new BcMath\Number('-8')->powmod(5, 7), +); +?> +]]> + + &example.outputs; + + + string(1) "2" + ["scale"]=> + int(0) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(2) "-2" + ["scale"]=> + int(0) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(1) "1" + ["scale"]=> + int(0) +} +object(BcMath\Number)#5 (2) { + ["value"]=> + string(2) "-1" + ["scale"]=> + int(0) +} +]]> + + + + + <methodname>BcMath\Number::powmod</methodname> で <parameter>scale</parameter> を指定する例 + +powmod(new BcMath\Number('3'), 5, 1), + new BcMath\Number('-8')->powmod(new BcMath\Number('3'), 5, 2), + new BcMath\Number('8')->powmod('2', -3, 3), + new BcMath\Number('-8')->powmod(5, 7, 4), +); +?> +]]> + + &example.outputs; + + + string(3) "2.0" + ["scale"]=> + int(1) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(5) "-2.00" + ["scale"]=> + int(2) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(5) "1.000" + ["scale"]=> + int(3) +} +object(BcMath\Number)#5 (2) { + ["value"]=> + string(7) "-1.0000" + ["scale"]=> + int(4) +} +]]> + + + + + + &reftitle.seealso; + + bcpowmod + BcMath\Number::pow + BcMath\Number::mod + + + + + diff --git a/reference/bc/bcmath/number/round.xml b/reference/bc/bcmath/number/round.xml new file mode 100644 index 0000000000..94434cadbc --- /dev/null +++ b/reference/bc/bcmath/number/round.xml @@ -0,0 +1,568 @@ + + + + + + + BcMath\Number::round + 任意精度数値を丸める + + + + &reftitle.description; + + public BcMath\NumberBcMath\Number::round + intprecision0 + RoundingModemodeRoundingMode::HalfAwayFromZero + + + $this を、指定した precision(小数点以下の桁数)に丸めた値を返します。 + precision を負またはゼロ(デフォルト) とすることも可能です。 + + + + + &reftitle.parameters; + + + + + mode + + + 指定する丸めモード。詳しくは RoundingMode を参照してください。 + + + + + + + + &reftitle.returnvalues; + + 結果を新しい BcMath\Number オブジェクトとして返します。 + + + + + &reftitle.errors; + + このメソッドは、無効な mode が指定された場合に ValueError をスローします。 + + + + + &reftitle.examples; + + <methodname>BcMath\Number::round</methodname> の例 + +round(), + new BcMath\Number('3.5')->round(), + new BcMath\Number('3.6')->round(), + new BcMath\Number('3.6')->round(0), + new BcMath\Number('5.045')->round(2), + new BcMath\Number('5.055')->round(2), + new BcMath\Number('345')->round(-2), + new BcMath\Number('345')->round(-3), + new BcMath\Number('678')->round(-2), + new BcMath\Number('678')->round(-3), +); +?> +]]> + + &example.outputs; + + + string(1) "3" + ["scale"]=> + int(0) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(1) "4" + ["scale"]=> + int(0) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(1) "4" + ["scale"]=> + int(0) +} +object(BcMath\Number)#5 (2) { + ["value"]=> + string(1) "4" + ["scale"]=> + int(0) +} +object(BcMath\Number)#6 (2) { + ["value"]=> + string(4) "5.05" + ["scale"]=> + int(2) +} +object(BcMath\Number)#7 (2) { + ["value"]=> + string(4) "5.06" + ["scale"]=> + int(2) +} +object(BcMath\Number)#8 (2) { + ["value"]=> + string(3) "300" + ["scale"]=> + int(0) +} +object(BcMath\Number)#9 (2) { + ["value"]=> + string(1) "0" + ["scale"]=> + int(0) +} +object(BcMath\Number)#10 (2) { + ["value"]=> + string(3) "700" + ["scale"]=> + int(0) +} +object(BcMath\Number)#11 (2) { + ["value"]=> + string(4) "1000" + ["scale"]=> + int(0) +} +]]> + + + + + <methodname>BcMath\Number::round</methodname> で異なる <parameter>precision</parameter> を指定した例 + + +round(3), + $number->round(2), + $number->round(1), + $number->round(0), + $number->round(-1), + $number->round(-2), + $number->round(-3), +); +?> +]]> + + &example.outputs; + + + string(7) "123.450" + ["scale"]=> + int(3) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(6) "123.45" + ["scale"]=> + int(2) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(5) "123.5" + ["scale"]=> + int(1) +} +object(BcMath\Number)#5 (2) { + ["value"]=> + string(3) "123" + ["scale"]=> + int(0) +} +object(BcMath\Number)#6 (2) { + ["value"]=> + string(3) "120" + ["scale"]=> + int(0) +} +object(BcMath\Number)#7 (2) { + ["value"]=> + string(3) "100" + ["scale"]=> + int(0) +} +object(BcMath\Number)#8 (2) { + ["value"]=> + string(1) "0" + ["scale"]=> + int(0) +} +]]> + + + + + <methodname>BcMath\Number::round</methodname> で異なる <parameter>mode</parameter> を指定した例 + + +round(0, RoundingMode::HalfAwayFromZero), + $number->round(0, RoundingMode::HalfTowardsZero), + $number->round(0, RoundingMode::HalfEven), + $number->round(0, RoundingMode::HalfOdd), + $number->round(0, RoundingMode::TowardsZero), + $number->round(0, RoundingMode::AwayFromZero), + $number->round(0, RoundingMode::NegativeInfinity), + $number->round(0, RoundingMode::PositiveInfinity), +); + +echo PHP_EOL; +echo 'Rounding modes with 8.5' . PHP_EOL; +$number = new BcMath\Number('8.5'); +var_dump( + $number->round(0, RoundingMode::HalfAwayFromZero), + $number->round(0, RoundingMode::HalfTowardsZero), + $number->round(0, RoundingMode::HalfEven), + $number->round(0, RoundingMode::HalfOdd), + $number->round(0, RoundingMode::TowardsZero), + $number->round(0, RoundingMode::AwayFromZero), + $number->round(0, RoundingMode::NegativeInfinity), + $number->round(0, RoundingMode::PositiveInfinity), +); +?> +]]> + + &example.outputs; + + + string(2) "10" + ["scale"]=> + int(0) +} +object(BcMath\Number)#5 (2) { + ["value"]=> + string(1) "9" + ["scale"]=> + int(0) +} +object(BcMath\Number)#7 (2) { + ["value"]=> + string(2) "10" + ["scale"]=> + int(0) +} +object(BcMath\Number)#9 (2) { + ["value"]=> + string(1) "9" + ["scale"]=> + int(0) +} +object(BcMath\Number)#11 (2) { + ["value"]=> + string(1) "9" + ["scale"]=> + int(0) +} +object(BcMath\Number)#13 (2) { + ["value"]=> + string(2) "10" + ["scale"]=> + int(0) +} +object(BcMath\Number)#15 (2) { + ["value"]=> + string(1) "9" + ["scale"]=> + int(0) +} +object(BcMath\Number)#17 (2) { + ["value"]=> + string(2) "10" + ["scale"]=> + int(0) +} + +Rounding modes with 8.5 +object(BcMath\Number)#1 (2) { + ["value"]=> + string(1) "9" + ["scale"]=> + int(0) +} +object(BcMath\Number)#15 (2) { + ["value"]=> + string(1) "8" + ["scale"]=> + int(0) +} +object(BcMath\Number)#13 (2) { + ["value"]=> + string(1) "8" + ["scale"]=> + int(0) +} +object(BcMath\Number)#11 (2) { + ["value"]=> + string(1) "9" + ["scale"]=> + int(0) +} +object(BcMath\Number)#9 (2) { + ["value"]=> + string(1) "8" + ["scale"]=> + int(0) +} +object(BcMath\Number)#7 (2) { + ["value"]=> + string(1) "9" + ["scale"]=> + int(0) +} +object(BcMath\Number)#5 (2) { + ["value"]=> + string(1) "8" + ["scale"]=> + int(0) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(1) "9" + ["scale"]=> + int(0) +} +]]> + + + + + <methodname>BcMath\Number::round</methodname> で <parameter>precision</parameter> を指定し、 + 異なる <parameter>mode</parameter> を指定した例 + + +round(1, RoundingMode::HalfAwayFromZero), + $negative->round(1, RoundingMode::HalfAwayFromZero), +); + +echo PHP_EOL; +echo 'Using RoundingMode::HalfTowardsZero with 1 decimal digit precision' . PHP_EOL; +var_dump( + $positive->round(1, RoundingMode::HalfTowardsZero), + $negative->round(1, RoundingMode::HalfTowardsZero), +); + +echo PHP_EOL; +echo 'Using RoundingMode::HalfEven with 1 decimal digit precision' . PHP_EOL; +var_dump( + $positive->round(1, RoundingMode::HalfEven), + $negative->round(1, RoundingMode::HalfEven), +); + +echo PHP_EOL; +echo 'Using RoundingMode::HalfOdd with 1 decimal digit precision' . PHP_EOL; +var_dump( + $positive->round(1, RoundingMode::HalfOdd), + $negative->round(1, RoundingMode::HalfOdd), +); + +echo PHP_EOL; +echo 'Using RoundingMode::TowardsZero with 1 decimal digit precision' . PHP_EOL; +var_dump( + $positive->round(1, RoundingMode::TowardsZero), + $negative->round(1, RoundingMode::TowardsZero), +); + +echo PHP_EOL; +echo 'Using RoundingMode::AwayFromZero with 1 decimal digit precision' . PHP_EOL; +var_dump( + $positive->round(1, RoundingMode::AwayFromZero), + $negative->round(1, RoundingMode::AwayFromZero), +); + +echo PHP_EOL; +echo 'Using RoundingMode::NegativeInfinity with 1 decimal digit precision' . PHP_EOL; +var_dump( + $positive->round(1, RoundingMode::NegativeInfinity), + $negative->round(1, RoundingMode::NegativeInfinity), +); + +echo PHP_EOL; +echo 'Using RoundingMode::PositiveInfinity with 1 decimal digit precision' . PHP_EOL; +var_dump( + $positive->round(1, RoundingMode::PositiveInfinity), + $negative->round(1, RoundingMode::PositiveInfinity), +); +?> +]]> + + &example.outputs; + + + string(3) "1.6" + ["scale"]=> + int(1) +} +object(BcMath\Number)#5 (2) { + ["value"]=> + string(4) "-1.6" + ["scale"]=> + int(1) +} + +Using RoundingMode::HalfTowardsZero with 1 decimal digit precision +object(BcMath\Number)#4 (2) { + ["value"]=> + string(3) "1.5" + ["scale"]=> + int(1) +} +object(BcMath\Number)#6 (2) { + ["value"]=> + string(4) "-1.5" + ["scale"]=> + int(1) +} + +Using RoundingMode::HalfEven with 1 decimal digit precision +object(BcMath\Number)#4 (2) { + ["value"]=> + string(3) "1.6" + ["scale"]=> + int(1) +} +object(BcMath\Number)#7 (2) { + ["value"]=> + string(4) "-1.6" + ["scale"]=> + int(1) +} + +Using RoundingMode::HalfOdd with 1 decimal digit precision +object(BcMath\Number)#4 (2) { + ["value"]=> + string(3) "1.5" + ["scale"]=> + int(1) +} +object(BcMath\Number)#8 (2) { + ["value"]=> + string(4) "-1.5" + ["scale"]=> + int(1) +} + +Using RoundingMode::TowardsZero with 1 decimal digit precision +object(BcMath\Number)#4 (2) { + ["value"]=> + string(3) "1.5" + ["scale"]=> + int(1) +} +object(BcMath\Number)#9 (2) { + ["value"]=> + string(4) "-1.5" + ["scale"]=> + int(1) +} + +Using RoundingMode::AwayFromZero with 1 decimal digit precision +object(BcMath\Number)#4 (2) { + ["value"]=> + string(3) "1.6" + ["scale"]=> + int(1) +} +object(BcMath\Number)#10 (2) { + ["value"]=> + string(4) "-1.6" + ["scale"]=> + int(1) +} + +Using RoundingMode::NegativeInfinity with 1 decimal digit precision +object(BcMath\Number)#4 (2) { + ["value"]=> + string(3) "1.5" + ["scale"]=> + int(1) +} +object(BcMath\Number)#11 (2) { + ["value"]=> + string(4) "-1.6" + ["scale"]=> + int(1) +} + +Using RoundingMode::PositiveInfinity with 1 decimal digit precision +object(BcMath\Number)#4 (2) { + ["value"]=> + string(3) "1.6" + ["scale"]=> + int(1) +} +object(BcMath\Number)#12 (2) { + ["value"]=> + string(4) "-1.5" + ["scale"]=> + int(1) +} +]]> + + + + + + &reftitle.seealso; + + bcround + BcMath\Number::ceil + BcMath\Number::floor + + + + + diff --git a/reference/bc/bcmath/number/serialize.xml b/reference/bc/bcmath/number/serialize.xml new file mode 100644 index 0000000000..2718261758 --- /dev/null +++ b/reference/bc/bcmath/number/serialize.xml @@ -0,0 +1,55 @@ + + + + + + + BcMath\Number::__serialize + BcMath\Number オブジェクトをシリアライズする + + + + &reftitle.description; + + public arrayBcMath\Number::__serialize + + + + $this をシリアライズします。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.seealso; + + BcMath\Number::__construct + BcMath\Number::__unserialize + + + + + diff --git a/reference/bc/bcmath/number/sqrt.xml b/reference/bc/bcmath/number/sqrt.xml new file mode 100644 index 0000000000..c93f6995a2 --- /dev/null +++ b/reference/bc/bcmath/number/sqrt.xml @@ -0,0 +1,137 @@ + + + + + + + BcMath\Number::sqrt + 任意精度数値の平方根を取得する + + + + &reftitle.description; + + public BcMath\NumberBcMath\Number::sqrt + intnullscale&null; + + + $this の平方根を返します。 + + + + + &reftitle.parameters; + + + + + + + &reftitle.returnvalues; + + 平方根を新しい BcMath\Number オブジェクトとして返します。 + + + 計算結果オブジェクトの BcMath\Number::scale が自動的に設定される場合、$this の + BcMath\Number::scale が使用されます。ただし、割り切れない除算が発生した場合は、 + 計算結果オブジェクトの BcMath\Number::scale が拡張されます。 + 拡張は必要に応じてのみ行われ、最大で +10 まで拡張されます。 + この動作は BcMath\Number::div と同じですので、詳しくはそちらを参照して下さい。 + + + つまり、$thisBcMath\Number::scale5 の場合、 + 計算結果オブジェクトの BcMath\Number::scale5 から + 15 の間になります。 + + + + + &reftitle.errors; + + このメソッドは、以下の場合に ValueError をスローします: + + $this が負の値である場合 + scale が範囲外の値である場合 + 結果オブジェクトの BcMath\Number::scale が範囲外の値である場合 + + + + + + &reftitle.examples; + + <methodname>BcMath\Number::sqrt</methodname> の例 + +sqrt(), + new BcMath\Number('2')->sqrt(3), + new BcMath\Number('4')->sqrt(), + new BcMath\Number('4')->sqrt(3), +); +?> +]]> + + &example.outputs; + + + string(12) "1.4142135623" + ["scale"]=> + int(10) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(5) "1.414" + ["scale"]=> + int(3) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(1) "2" + ["scale"]=> + int(0) +} +object(BcMath\Number)#5 (2) { + ["value"]=> + string(5) "2.000" + ["scale"]=> + int(3) +} +]]> + + + + + + &reftitle.seealso; + + bcsqrt + BcMath\Number::div + BcMath\Number::pow + + + + + diff --git a/reference/bc/bcmath/number/sub.xml b/reference/bc/bcmath/number/sub.xml new file mode 100644 index 0000000000..e577386706 --- /dev/null +++ b/reference/bc/bcmath/number/sub.xml @@ -0,0 +1,177 @@ + + + + + + + BcMath\Number::sub + 任意精度数値の減算を行う + + + + &reftitle.description; + + public BcMath\NumberBcMath\Number::sub + BcMath\Numberstringintnum + intnullscale&null; + + + $thisnum を減算します。 + + + + + &reftitle.parameters; + + + num + + + 減数を表す値。 + + + + + + + + + &reftitle.returnvalues; + + 減算結果を新しい BcMath\Number オブジェクトとして返します。 + + + 減算結果オブジェクトの BcMath\Number::scale が自動的に設定される場合、減算に使用する2つの数値のうち、 + 大きい方の BcMath\Number::scale が使用されます。 + + + + + + + + + + &reftitle.examples; + + <methodname>BcMath\Number::sub</methodname> で <parameter>scale</parameter> を指定しない例 + +sub(new BcMath\Number('2.34567')); +$ret2 = $number->sub('-3.456'); +$ret3 = $number->sub(7); + +var_dump($number, $ret1, $ret2, $ret3); +?> +]]> + + &example.outputs; + + + string(5) "1.234" + ["scale"]=> + int(3) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(8) "-1.11167" + ["scale"]=> + int(5) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(5) "4.690" + ["scale"]=> + int(3) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(6) "-5.766" + ["scale"]=> + int(3) +} +]]> + + + + + <methodname>BcMath\Number::sub</methodname> で <parameter>scale</parameter> を指定する例 + +sub(new BcMath\Number('2.34567'), 1); +$ret2 = $number->sub('-3.456', 10); +$ret3 = $number->sub(7, 0); + +var_dump($number, $ret1, $ret2, $ret3); +?> +]]> + + &example.outputs; + + + string(5) "1.234" + ["scale"]=> + int(3) +} +object(BcMath\Number)#3 (2) { + ["value"]=> + string(4) "-1.1" + ["scale"]=> + int(1) +} +object(BcMath\Number)#2 (2) { + ["value"]=> + string(12) "4.6900000000" + ["scale"]=> + int(10) +} +object(BcMath\Number)#4 (2) { + ["value"]=> + string(2) "-5" + ["scale"]=> + int(0) +} +]]> + + + + + + &reftitle.seealso; + + bcsub + BcMath\Number::add + + + + + diff --git a/reference/bc/bcmath/number/tostring.xml b/reference/bc/bcmath/number/tostring.xml new file mode 100644 index 0000000000..5a3aeb7d1b --- /dev/null +++ b/reference/bc/bcmath/number/tostring.xml @@ -0,0 +1,53 @@ + + + + + + + BcMath\Number::__toString + BcMath\Number オブジェクトを文字列に変換する + + + + &reftitle.description; + + public stringBcMath\Number::__toString + + + + BcMath\Numberstring に変換します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + BcMath\Number::valuestring として返します。 + + + + diff --git a/reference/bc/bcmath/number/unserialize.xml b/reference/bc/bcmath/number/unserialize.xml new file mode 100644 index 0000000000..42954cdbdc --- /dev/null +++ b/reference/bc/bcmath/number/unserialize.xml @@ -0,0 +1,71 @@ + + + + + + + BcMath\Number::__unserialize + data 引数を BcMath\Number オブジェクトとして復元する + + + + &reftitle.description; + + public voidBcMath\Number::__unserialize + arraydata + + + data 引数を BcMath\Number オブジェクトとして復元します。 + + + + + &reftitle.parameters; + + + data + + + 連想配列としてシリアライズされたデータ。 + + + + + + + + &reftitle.errors; + + このメソッドは、不正なシリアライズデータが渡された場合、ValueError をスローします。 + + + + + &reftitle.seealso; + + BcMath\Number::__construct + BcMath\Number::serialize + + + + + diff --git a/reference/bc/book.xml b/reference/bc/book.xml index 2a0c79371d..c819a9aca4 100644 --- a/reference/bc/book.xml +++ b/reference/bc/book.xml @@ -1,6 +1,6 @@ - + @@ -14,19 +14,24 @@ 任意の精度の演算をサポートするために、PHP は 2147483647 (または 0x7FFFFFFF) までの - 任意のサイズおよび精度の小数をサポートする BCMath を提供します。 + 任意のサイズおよび精度の小数桁をサポートする BCMath を提供します。 十分なメモリがあれば、文字列表現もサポートします。 + + 有効(別名 well-formed) な BCMath数 は、以下の正規表現にマッチする文字列です。 + /^[+-]?[0-9]*(\.[0-9]*)?$/. + string であることが期待されている float 型の値を BCMath 関数に渡してしまうと、 PHP が float 型の値を string 型に変換するやり方の影響で、 あなたが望む結果にならない可能性があります。 - すなわち、 string が、ネイピア数を使った表記 + なぜなら、 string が、ネイピア数を使った表記 (これは BCMath では未サポートです) である可能性があったり、 + PHP 8.0.0 以前では 小数点の記号がロケール依存(BCMath は常に小数点(.)を期待しています) - であったりする場合です。 + であったりするためです。 @@ -47,10 +52,10 @@ echo bcsub($num1, $num2, 1); // => '0.0' - + &reference.bc.setup; - &reference.bc.constants; &reference.bc.reference; + &reference.bc.bcmath.number; diff --git a/reference/bc/constants.xml b/reference/bc/constants.xml deleted file mode 100644 index 469fccd473..0000000000 --- a/reference/bc/constants.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - &reftitle.constants; - &no.constants; - - - - diff --git a/reference/bc/functions/bcadd.xml b/reference/bc/functions/bcadd.xml index 663990d307..cfb9dfa81f 100644 --- a/reference/bc/functions/bcadd.xml +++ b/reference/bc/functions/bcadd.xml @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ &reftitle.description; stringbcadd - stringleft_operand - stringright_operand - intscale0 + stringnum1 + stringnum2 + intnullscale&null; - left_operand を - right_operand に加算します。 + num1 を + num2 に加算します。 @@ -27,7 +27,7 @@ - left_operand + num1 左オペランドを表す文字列。 @@ -35,14 +35,24 @@ - right_operand + num2 右オペランドを表す文字列。 - &bc.scale.description; + + scale + + + 結果の小数点以下の桁数を指定します。&null; の場合は、 bcscale 関数でグローバルに + 設定した桁数をデフォルトとして使用します。 + それも設定されていない場合は bcmath.scale + INI ディレクティブの値を使用します。 + + + @@ -54,6 +64,40 @@ + + + &reftitle.errors; + + この関数は、以下の場合に ValueError をスローします: + + num1 もしくは num1 が、BCMath で有効でない数値形式の文字列である場合 + scale が範囲外の値である場合 + + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + scale は nullable になりました。 + + + + + + + &reftitle.examples; @@ -79,11 +123,11 @@ echo bcadd($a, $b, 4); // 6.2340 bcsub + BcMath\Number::add - + + + + + bcceil + 任意精度数値を切り上げる + + + + &reftitle.description; + + stringbcceil + stringnum + + + 必要に応じて num を切り上げ、 num の次に大きい整数値を返します。 + + + + + &reftitle.parameters; + + + num + + + 切り上げる値を表す文字列。 + + + + + + + + &reftitle.returnvalues; + + num に最も近い整数に切り上げられた数値を表す数値形式の文字列を返します。 + + + + + &reftitle.errors; + + この関数は、num が BCMath で有効でない数値形式の文字列である場合、ValueError をスローします。 + + + + + &reftitle.examples; + + <function>bcceil</function> の例 + + +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + bcfloor + bcround + BcMath\Number::ceil + + + + diff --git a/reference/bc/functions/bccomp.xml b/reference/bc/functions/bccomp.xml index b4cc49745a..c93016b4df 100644 --- a/reference/bc/functions/bccomp.xml +++ b/reference/bc/functions/bccomp.xml @@ -1,8 +1,8 @@ - + - + bccomp 2 つの任意精度数値を比較する @@ -12,59 +12,54 @@ &reftitle.description; intbccomp - stringleft_operand - stringright_operand - intscale0 + stringnum1 + stringnum2 + intnullscale&null; - left_operand と - right_operand を比較し、 - 結果を整数値で返します。 + num1 と + num2 を比較し、 + 比較結果を整数値で返します。 - &reftitle.parameters; - - - - left_operand - - - 左オペランドを表す文字列。 - - - - - right_operand - - - 右オペランドを表す文字列。 - - - - - scale - - - オプションの scale パラメータで、 - 小数点以下の桁数を指定します。ここまでを使用して比較を行います。 - - - - - + &reftitle.returnvalues; - ふたつのオペランドが等しければ 0、 - left_operandright_operand - より大きければ返り値は 1、小さければ -1 を返します。 + ふたつのオペランドが等しければ 0、 + num1num2 + より大きければ戻り値は 1、小さければ -1 を返します。 + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + scale は、nullable になりました。 + + + + + + + &reftitle.examples; @@ -82,8 +77,14 @@ echo bccomp('1.00001', '1', 5); // 1 - + + &reftitle.seealso; + + BcMath\Number::compare + + + - + - + bcdiv 2つの任意精度数値で除算を行う @@ -12,13 +12,13 @@ &reftitle.description; stringbcdiv - stringdividend - stringdivisor - intscale0 + stringnum1 + stringnum2 + intnullscale&null; - dividend を - divisor で除算します。 + num1 を + num2 で除算します。 @@ -27,7 +27,7 @@ - dividend + num1 被除数を表す文字列。 @@ -35,14 +35,14 @@ - divisor + num2 割る数を表す文字列。 - &bc.scale.description; + @@ -51,11 +51,42 @@ &reftitle.returnvalues; 除算結果を文字列で返します。 - divisor が 0 + num20 の場合は &null; を返します。 + + + + + この関数は、 num20 である場合、 + DivisionByZeroError 例外をスローします。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + scale は、nullable になりました。 + + + + + + + &reftitle.examples; @@ -77,11 +108,11 @@ echo bcdiv('105', '6.55957', 3); // 16.007 bcmul + BcMath\Number::div - + + + + + + bcdivmod + 任意精度数値の商と剰余を取得する + + + + &reftitle.description; + + arraybcdivmod + stringnum1 + stringnum2 + intnullscale&null; + + + num1num2 で割った商と剰余を取得します。 + + + + + + + + + &reftitle.returnvalues; + + 1つ目の要素に商の値を表す string が、2つ目の要素に剰余の値を表す string が格納された配列を返します。 + + + + + + + &reftitle.examples; + + <function>bcdivmod</function> の例 + + +]]> + + + + <function>bcdivmod</function> に小数の値を指定する + + +]]> + + + + + + &reftitle.seealso; + + bcdiv + bcmod + BcMath\Number::divmod + + + + diff --git a/reference/bc/functions/bcfloor.xml b/reference/bc/functions/bcfloor.xml new file mode 100644 index 0000000000..a715184b32 --- /dev/null +++ b/reference/bc/functions/bcfloor.xml @@ -0,0 +1,87 @@ + + + + + + + bcfloor + 任意精度数値を切り下げる + + + + &reftitle.description; + + stringbcfloor + stringnum + + + 必要に応じて num を切り下げ、 num の次に小さい整数値を返します。 + + + + + + + + + &reftitle.returnvalues; + + num に最も近い整数に切り下げられた数値を表す数値形式の文字列を返します。 + + + + + + + &reftitle.examples; + + <function>bcfloor</function> の例 + + +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + bcceil + bcround + BcMath\Number::floor + + + + diff --git a/reference/bc/functions/bcmod.xml b/reference/bc/functions/bcmod.xml index acd81dfde7..da59ddd1bb 100644 --- a/reference/bc/functions/bcmod.xml +++ b/reference/bc/functions/bcmod.xml @@ -1,8 +1,8 @@ - + - + bcmod 2 つの任意精度数値の剰余を取得する @@ -12,50 +12,31 @@ &reftitle.description; stringbcmod - stringdividend - stringdivisor - intscale0 + stringnum1 + stringnum2 + intnullscale&null; - dividend の、 - divisor を法とする剰余を取得します。 - divisor が 0でなければ、 - 結果は dividend と同じ符号を持ちます。 + num1 の、 + num2 を法とする剰余を取得します。 + 結果は num1 と同じ符号を持ちます。 - &reftitle.parameters; - - - - dividend - - - 被除数を表す文字列。 - - - - - divisor - - - 割る数を表す文字列。 - - - - - + &reftitle.returnvalues; 剰余を文字列で返します。 - divisor が 0 の場合は &null; を返します。 + num2 が 0 の場合は &null; を返します。 + + &reftitle.changelog; @@ -67,10 +48,23 @@ + + 8.0.0 + + scale は nullable になりました。 + + + + 8.0.0 + + 0 除算を行うと、DivisionByZeroError + 例外がスローされるようになりました。以前は &null; が返されていました。 + + 7.2.0 - dividenddivisor は + num1num2 は 整数に切り詰められることがなくなりました。 よって、bcmod の振る舞いは % 演算子ではなく、 @@ -105,8 +99,7 @@ echo bcmod('-5', '-3'); // -2 - - <function>bcmod</function> with decimals + <function>bcmod</function> に小数の値を指定する bcdiv + BcMath\Number::mod - - + - + bcmul 2つの任意精度数値の乗算を行う @@ -12,39 +12,18 @@ &reftitle.description; stringbcmul - stringleft_operand - stringright_operand - intscale0 + stringnum1 + stringnum2 + intnullscale&null; - - left_operand に - right_operand を掛けます。 - + + num1 に + num2 を掛けます。 + - &reftitle.parameters; - - - - left_operand - - - 左オペランドを表す文字列。 - - - - - right_operand - - - 右オペランドを表す文字列。 - - - - &bc.scale.description; - - + @@ -54,6 +33,8 @@ + + &reftitle.changelog; @@ -65,6 +46,12 @@ + + 8.0.0 + + scale は、nullable になりました。 + + 7.3.0 @@ -121,11 +108,11 @@ echo bcmul('5', '2', 2); // prints "10", not "10.00" bcdiv + BcMath\Number::mul - - + - + bcpow 任意精度数値をべき乗する @@ -12,12 +12,12 @@ &reftitle.description; stringbcpow - stringbase + stringnum stringexponent - intscale0 + intnullscale&null; - base の + numexponent 乗を求めます。 @@ -27,7 +27,7 @@ - base + num 基数を表す文字列。 @@ -46,7 +46,7 @@ - &bc.scale.description; + @@ -58,6 +58,22 @@ + + &reftitle.errors; + + この関数は、以下の場合に ValueError をスローします: + + num もしくは exponent が、BCMath で有効でない数値形式の文字列である場合 + exponent が整数値でない場合 + exponent もしくは scale が範囲外の値である場合 + + + + この関数は、num の値が 0 かつ exponent が負の値である場合、 + DivisionByZeroError 例外をスローします。 + + + &reftitle.changelog; @@ -69,6 +85,21 @@ + + 8.4.0 + + 0 の負のべき乗を行った場合、0 を返す代わりに + DivisionByZeroError がスローされるようになりました。 + + + + 8.0.0 + + exponent が小数部を持つ場合、ValueError + がスローされるようになりました。 + 以前は、小数部を切り捨てて整数として計算を行っていました。 + + 7.3.0 @@ -126,11 +157,11 @@ echo bcpow('5', '2', 2); // 結果は "25.00" ではなく "25" となりま bcpowmod bcsqrt + BcMath\Number::pow - - + - + bcpowmod 任意精度数値のべき乗の、指定した数値による剰余 @@ -12,14 +12,14 @@ &reftitle.description; stringbcpowmod - stringbase + stringnum stringexponent stringmodulus - intscale0 + intnullscale&null; modulus で割った余りを求めることを考慮して、 - base の + numexponent 乗を高速に計算します。 @@ -29,7 +29,7 @@ - base + num 基数を表す整数の文字列。 @@ -55,7 +55,7 @@ - &bc.scale.description; + @@ -63,22 +63,62 @@ &reftitle.returnvalues; - 結果を文字列で返します。modulus - が 0 の場合、 - または exponent が負の場合、&false; を返します。 + 結果を文字列で返します。 - - &reftitle.notes; - - - このメソッドでは剰余計算を行っているので、 - 正の整数以外を指定すると予期せぬ結果となります。 - - + + &reftitle.errors; + + この関数は、以下の場合に ValueError をスローします: + + numexponentmodulus のいずれかが、BCMath で有効でない数値形式の文字列である場合 + numexponentmodulus のいずれかが整数値でない場合 + exponent が負の値である場合 + scale が範囲外の値である場合 + + + + この関数は、modulus の値が 0 である場合、 + DivisionByZeroError 例外をスローします。 + - + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + scale は、nullable になりました。 + + + + 8.0.0 + + exponent が負の値の場合、&false; を返す代わりに ValueError をスローするようになりました。 + + + + 8.0.0 + + 0 除算を行うと、DivisionByZeroError + 例外がスローされるようになりました。以前は &false; が返されていました。 + + + + + + + &reftitle.examples; @@ -102,17 +142,27 @@ $b = bcmod(bcpow($x, $y), $mod); + + &reftitle.notes; + + + このメソッドでは剰余計算を行っているので、 + 正の整数以外を指定すると予期せぬ結果となります。 + + + + &reftitle.seealso; bcpow bcmod + BcMath\Number::powmod - + + + + + bcround + 任意精度数値を丸める + + + + &reftitle.description; + + stringbcround + stringnum + intprecision0 + RoundingModemodeRoundingMode::HalfAwayFromZero + + + num を、指定した precision(小数点以下の桁数)に丸めた値を返します。 + precision を負またはゼロ(デフォルト) とすることも可能です。 + + + + + &reftitle.parameters; + + + + + + + + + &reftitle.returnvalues; + + num を指定された精度へ丸めた数値を表す文字列を返します。 + + + + + &reftitle.errors; + + この関数は、以下の場合に ValueError をスローします: + + num が、BCMath で有効でない数値形式の文字列である場合 + 無効な mode を指定した場合 + + + + + + &reftitle.examples; + + <function>bcround</function> の例 + + +]]> + + &example.outputs; + + + + + + + <function>bcround</function> で異なる <parameter>precision</parameter> を指定した例 + + + +]]> + + &example.outputs; + + + + + + + <function>bcround</function> で異なる <parameter>mode</parameter> を指定した例 + + + +]]> + + &example.outputs; + + + + + + + <function>bcround</function> で <parameter>precision</parameter> を指定し、 + 異なる <parameter>mode</parameter> を指定した例 + + + +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + bcceil + bcfloor + BcMath\Number::round + + + + diff --git a/reference/bc/functions/bcscale.xml b/reference/bc/functions/bcscale.xml index 4ec6869856..fa4dda6c2a 100644 --- a/reference/bc/functions/bcscale.xml +++ b/reference/bc/functions/bcscale.xml @@ -1,6 +1,6 @@ - + @@ -20,7 +20,7 @@ intbcscale - + nullscale&null; 現在のスケールを取得します。 @@ -51,6 +51,14 @@ + + &reftitle.errors; + + This function throws a ValueError if scale + is outside the valid range. + + + &reftitle.changelog; @@ -62,6 +70,12 @@ + + 8.0.0 + + scale は、nullable になりました。 + + 7.3.0 @@ -100,7 +114,6 @@ echo bcdiv('105', '6.55957', 3); // 16.007 - - + - + bcsqrt 任意精度数値の平方根を取得する @@ -12,12 +12,12 @@ &reftitle.description; stringbcsqrt - stringoperand - intscale0 + stringnum + intnullscale&null; - - operand の平方根を返します。 - + + num の平方根を返します。 + @@ -25,14 +25,14 @@ - operand + num - オペランドを表す文字列。 + オペランドを表す、BCMath で有効な数値形式の文字列。 - &bc.scale.description; + @@ -40,11 +40,61 @@ &reftitle.returnvalues; - 平方根を文字列で返します。 - operand が負の場合は &null; を返します。 + 平方根を、BCMath で有効な数値形式の文字列で返します。 + + &reftitle.errors; + + この関数は、以下の場合に ValueError をスローします: + + num が、BCMath で有効でない数値形式の文字列である場合 + num0 より小さい場合 + scale が範囲外の値である場合 + + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + num が BCMath で有効でない数値形式の文字列だったり、 + 0 より小さい場合、 + ValueError がスローされるようになりました。 + これより前のバージョンでは、E_WARNING が発生していました。 + + + + 8.0.0 + + scale は + 02147483647 の間にあることが必須になりました。 + これより前のバージョンでは、負の値は黙って 0 として扱われていました。 + + + + 8.0.0 + + scale は、nullable になりました。 + + + + + + + &reftitle.examples; @@ -66,11 +116,11 @@ echo bcsqrt('2', 3); // 1.414 bcpow + BcMath\Number::sqrt - - + - + bcsub 任意精度数値の減算を行う @@ -23,28 +23,7 @@ - &reftitle.parameters; - - - - left_operand - - - 左オペランドを表す文字列。 - - - - - right_operand - - - 右オペランドを表す文字列。 - - - - &bc.scale.description; - - + @@ -54,6 +33,29 @@ + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + scale は nullable になりました。 + + + + + + + &reftitle.examples; @@ -79,11 +81,11 @@ echo bcsub($a, $b, 4); // -3.7660 bcadd + BcMath\Number::sub - - +
&reftitle.runtime; @@ -17,11 +17,11 @@ &Changelog; - + bcmath.scale "0" - PHP_INI_ALL + INI_ALL @@ -37,13 +37,16 @@ bcmath.scale - integer + int 全ての bcmath 関数に関する 10 進桁数。 - bcscale も参照してください。 + bcscale も参照ください。 + + BcMath\Number クラスは、この設定の影響を受けません。 + diff --git a/reference/bc/setup.xml b/reference/bc/setup.xml index 2d76e9ed44..fa57d30463 100644 --- a/reference/bc/setup.xml +++ b/reference/bc/setup.xml @@ -1,18 +1,11 @@ - + &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- - &reference.bc.configure; @@ -21,13 +14,6 @@ &reference.bc.ini; - -
- &reftitle.resources; - &no.resource; -
- -
- - - - - PHP バイトコードコンパイラ - bcompiler - - - &reftitle.intro; - &warn.experimental; - - Bcompiler は、以下のような目的で作成されました。 - - - プロプライエタリな PHP アプリケーションのスクリプト全体をエンコードするため - - - プロプライエタリな PHP アプリケーションの一部のクラスや関数をエンコードするため - - - クライアントのデスクトップで動作する php-gtk アプリケーションを、 - php.exe を用いずに実行させるため - - PHP から C へのコンバータの実現可能性を調べるため - - 最初の目的は - bcompiler_write_header、 - bcompiler_write_file および - bcompiler_write_footer - を使用することで実現できます。バイトコードのファイルが、 - 圧縮されていないかあるいはプレーンな形式で書き出されます。 - 出来上がったバイトコードは、単純に include や require を用いることで使用可能です。 - - - 2 番目の目的を実現するには - bcompiler_write_header、 - bcompiler_write_class、 - bcompiler_write_footer、 - bcompiler_read - および bcompiler_load 関数を使用します。 - バイトコードのファイルが、圧縮されていないか - あるいはプレーンな形式で書き出されます。 - bcompiler_load は、bzip で圧縮された - バイトコードファイルを読み込みます。これは元のファイルに比べて - 1/3 程度の大きさになります。 - - - EXE 形式のファイルを作成するには、修正された sapi ファイルか - 共有ライブラリとしてコンパイルされた PHP とともに bcompiler - を使用する必要があります。この場合、bcompiler は - 圧縮されたバイトコードを exe ファイルの後ろから読み込みます。 - - - 圧縮しないバイトコードのみで使用した場合、bcompiler によって - 処理速度を約 30% 向上させることが可能です。しかし、圧縮しない - バイトコードは元のソースコードに比べて 5 倍程度の大きさに - なることに気をつけてください。バイトコードを圧縮することで - 容量を節約することが可能ですが、圧縮ファイルを展開するのには - ソースコードをパースするよりはるかに長い時間がかかります。 - bcompiler はバイトコードに対する最適化を一切行いません。 - これは将来のバージョンで対応する予定です…。 - - - コードの保護という点に関しては、もとのソースコードやコメントを - 復元することは不可能であると考えて間違いありません。bcompiler - のバイトコードをもとにしてコードを復元し、クラスに手を加える - といったことは無意味です。しかし、bcompiler で作成した - バイトコードファイルからデータを取り出すことは可能です。 - 個人的なパスワードなどの情報をバイトコードの中に含めないでください。 - - - - &reference.bcompiler.setup; - &reference.bcompiler.constants; - &reference.bcompiler.reference; - - - - - diff --git a/reference/bcompiler/configure.xml b/reference/bcompiler/configure.xml deleted file mode 100644 index 3f2d8101c4..0000000000 --- a/reference/bcompiler/configure.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - -
- &reftitle.install; - - &pecl.moved; - - - &pecl.info; - &url.pecl.package;bcompiler. - - - &pecl.windows.download; - -
- - diff --git a/reference/bcompiler/constants.xml b/reference/bcompiler/constants.xml deleted file mode 100644 index 87966097b7..0000000000 --- a/reference/bcompiler/constants.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - &reftitle.constants; - &no.constants; - - - - diff --git a/reference/bcompiler/functions/bcompiler-load-exe.xml b/reference/bcompiler/functions/bcompiler-load-exe.xml deleted file mode 100755 index c1b171a07b..0000000000 --- a/reference/bcompiler/functions/bcompiler-load-exe.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - bcompiler_load_exe - bcompiler の exe ファイルを読み込み、クラスを生成する - - - - &reftitle.description; - - boolbcompiler_load_exe - stringfilename - - - bcompiler の exe ファイルからデータを読み込み、バイトコードからクラスを生成します。 - - - - - &reftitle.parameters; - - - - filename - - - exe ファイルのパスを表す文字列。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>bcompiler_load_exe</function> の例 - - -]]> - - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - bcompiler_load - - - - - - - diff --git a/reference/bcompiler/functions/bcompiler-load.xml b/reference/bcompiler/functions/bcompiler-load.xml deleted file mode 100644 index 53208d2c99..0000000000 --- a/reference/bcompiler/functions/bcompiler-load.xml +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - bcompiler_load - bz 圧縮されたファイルを読み込み、クラスを生成する - - - - &reftitle.description; - - boolbcompiler_load - stringfilename - - - bzip 圧縮されたファイルを読み込み、バイトコードからクラスを生成します。 - - - - - &reftitle.parameters; - - - - filename - - - bzcompress されたファイルのパスを表す文字列。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>bcompiler_load</function> の例 - - -]]> - - - - - - - &reftitle.notes; - &warn.experimental.func; - - - バイトコードをパースするには、include 文や require 文を - 使用してください。この関数を使用するよりも、そのほうが - より移植性が高く便利です。 - - - この関数は、バイトコードファイルに含まれるスクリプト本体のコードを - 実行するわけではないことに注意しましょう。 - - - - - - &reftitle.seealso; - - - bcompiler_load_exe - - - - - - - diff --git a/reference/bcompiler/functions/bcompiler-parse-class.xml b/reference/bcompiler/functions/bcompiler-parse-class.xml deleted file mode 100644 index 6b52cb077e..0000000000 --- a/reference/bcompiler/functions/bcompiler-parse-class.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - bcompiler_parse_class - クラスのバイトコードを読み込み、ユーザー関数をコールする - - - - &reftitle.description; - - boolbcompiler_parse_class - stringclass - stringcallback - - - クラスのバイトコードを読み込み、ユーザー関数をコールします。 - - - - - &reftitle.parameters; - - - - class - - - クラス名を表す文字列。 - - - - - callback - - - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>bcompiler_parse_class</function> の例 - - -]]> - - - - - - - &reftitle.notes; - &warn.experimental.func; - - - bcompiler 0.5 以降ではこの関数は削除されており、 - もはや使用することはできません。 - - - - - - - diff --git a/reference/bcompiler/functions/bcompiler-read.xml b/reference/bcompiler/functions/bcompiler-read.xml deleted file mode 100644 index 3ce8472b81..0000000000 --- a/reference/bcompiler/functions/bcompiler-read.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - bcompiler_read - ファイルハンドルを読み込み、クラスを生成する - - - - &reftitle.description; - - boolbcompiler_read - resourcefilehandle - - - 開いているファイルハンドルからデータを読み込み、バイトコードからクラスを生成します。 - - - - - &reftitle.parameters; - - - - filehandle - - - fopen が返すファイルハンドル。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>bcompiler_read</function> の例 - - -]]> - - - - - - - &reftitle.notes; - &warn.experimental.func; - - - バイトコードをパースするには、include 文や require 文を - 使用してください。この関数を使用するよりも、そのほうが - より移植性が高く便利です。 - - - この関数は、バイトコードファイルに含まれるスクリプト本体のコードを - 実行するわけではないことに注意しましょう。 - - - - - - - diff --git a/reference/bcompiler/functions/bcompiler-write-class.xml b/reference/bcompiler/functions/bcompiler-write-class.xml deleted file mode 100644 index e4f533ce5d..0000000000 --- a/reference/bcompiler/functions/bcompiler-write-class.xml +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - bcompiler_write_class - 定義したクラスをバイトコードとして書き込む - - - - &reftitle.description; - - boolbcompiler_write_class - resourcefilehandle - stringclassName - stringextends - - - この関数は、PHP から既存のクラスをバイトコードとして読み込み、 - 開かれているファイルハンドルに書き込みます。 - - - - - &reftitle.parameters; - - - - filehandle - - - fopen が返すファイルハンドル。 - - - - - className - - - クラス名を表す文字列。 - - - - - extends - - - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>bcompiler_write_class</function> example - - -]]> - - - - - - - &reftitle.notes; - &warn.experimental.func; - - - この関数は依存性のチェックを行わないので、 - 読み込んだ際に undefined class - とならないように、書き込む順序に注意が必要です。 - - - - - - &reftitle.seealso; - - - bcompiler_write_header - bcompiler_write_footer - - - - - - - diff --git a/reference/bcompiler/functions/bcompiler-write-constant.xml b/reference/bcompiler/functions/bcompiler-write-constant.xml deleted file mode 100644 index 12187ad5ff..0000000000 --- a/reference/bcompiler/functions/bcompiler-write-constant.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - bcompiler_write_constant - 定義した定数をバイトコードとして書き込む - - - - &reftitle.description; - - boolbcompiler_write_constant - resourcefilehandle - stringconstantName - - - この関数は、PHP から既存の定数をバイトコードとして読み込み、 - 開かれているファイルハンドルに書き込みます。 - - - - - &reftitle.parameters; - - - - filehandle - - - fopen が返すファイルハンドル。 - - - - - constantName - - - 定義済みの定数名を表す文字列。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>bcompiler_write_constant</function> の例 - - -]]> - - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - bcompiler_write_header - bcompiler_write_footer - - - - - - - diff --git a/reference/bcompiler/functions/bcompiler-write-exe-footer.xml b/reference/bcompiler/functions/bcompiler-write-exe-footer.xml deleted file mode 100644 index e1b005dc63..0000000000 --- a/reference/bcompiler/functions/bcompiler-write-exe-footer.xml +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - bcompiler_write_exe_footer - 開始位置および exe 形式ファイルのフッタを書き込む - - - - &reftitle.description; - - boolbcompiler_write_exe_footer - resourcefilehandle - intstartpos - - - EXE (あるいは実行可能) ファイルは、三つの部分からできています。 - - - PHP インタプリタ・bcompiler 拡張モジュール・保存されたバイトコードを読み込み、 - 指定した関数 (たとえば main) やクラスメソッド - (たとえば main::main) をコールするためのスタブ - (実行可能なコード。たとえばコンパイル済の C プログラムなど) - - バイトコード (この場合は圧縮していないもののみが対象となります) - bcompiler の EXE フッタ - - - - bcompiler の CVS 上で examples/embed ディレクトリにある、 - php_embed ベースのスタブ phpe.c をコンパイルすることで - 適切なスタブが取得できます。 - - - - - &reftitle.parameters; - - - - filehandle - - - fopen が返すファイルハンドル。 - - - - - startpos - - - ファイル内でのバイトコードの開始位置。 - ftell($fh) を使用して取得することが可能です。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>bcompiler_write_exe_footer</function> の例 - - -]]> - - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - bcompiler_write_header - bcompiler_write_class - bcompiler_write_footer - - - - - - - diff --git a/reference/bcompiler/functions/bcompiler-write-file.xml b/reference/bcompiler/functions/bcompiler-write-file.xml deleted file mode 100755 index 851367dd97..0000000000 --- a/reference/bcompiler/functions/bcompiler-write-file.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - bcompiler_write_file - php ソースファイルをバイトコードとして書き込む - - - - &reftitle.description; - - boolbcompiler_write_file - resourcefilehandle - stringfilename - - - この関数は、指定したソースファイルをバイトコードにコンパイルし、 - 開かれているファイルハンドルに書き込みます。 - - - - - &reftitle.parameters; - - - - filehandle - - - fopen が返すファイルハンドル。 - - - - - filename - - - ソースファイルのパスを表す文字列。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>bcompiler_write_file</function> の例 - - -]]> - - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - bcompiler_write_header - bcompiler_write_footer - - - - - - - diff --git a/reference/bcompiler/functions/bcompiler-write-footer.xml b/reference/bcompiler/functions/bcompiler-write-footer.xml deleted file mode 100644 index 4852dec1b2..0000000000 --- a/reference/bcompiler/functions/bcompiler-write-footer.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - bcompiler_write_footer - コンパイルされたデータの終了を示す文字 \x00 を書き込む - - - - &reftitle.description; - - boolbcompiler_write_footer - resourcefilehandle - - - コンパイルされたデータの終了を示す文字 \x00 を書き込みます。 - - - - - &reftitle.parameters; - - - - filehandle - - - fopen が返すファイルハンドル。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>bcompiler_write_footer</function> の例 - - -]]> - - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - bcompiler_write_header - - - - - - - diff --git a/reference/bcompiler/functions/bcompiler-write-function.xml b/reference/bcompiler/functions/bcompiler-write-function.xml deleted file mode 100644 index e2bcb75fa9..0000000000 --- a/reference/bcompiler/functions/bcompiler-write-function.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - bcompiler_write_function - 定義した関数をバイトコードとして書き込む - - - - &reftitle.description; - - boolbcompiler_write_function - resourcefilehandle - stringfunctionName - - - この関数は、PHP から既存の関数をバイトコードとして読み込み、 - 開かれているファイルハンドルに書き込みます。書き込む順序を気にする - 必要はありません (例えば、関数 b が関数 a を使用している場合に - 下の例のようにコンパイルしたとしても正常に動作します)。 - - - - - &reftitle.parameters; - - - - filehandle - - - fopen が返すファイルハンドル。 - - - - - functionName - - - 関数名を表す文字列。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>bcompiler_write_function</function> の例 - - -]]> - - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - bcompiler_write_header - bcompiler_write_footer - - - - - - - diff --git a/reference/bcompiler/functions/bcompiler-write-functions-from-file.xml b/reference/bcompiler/functions/bcompiler-write-functions-from-file.xml deleted file mode 100644 index ac88462799..0000000000 --- a/reference/bcompiler/functions/bcompiler-write-functions-from-file.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - bcompiler_write_functions_from_file - ファイル内で定義されているすべての関数をバイトコードとして書き込む - - - - &reftitle.description; - - boolbcompiler_write_functions_from_file - resourcefilehandle - stringfileName - - - 指定したファイル内で定義されているすべての関数を検索し、 - 対応するバイトコードを、 - 開かれているファイルハンドルに書き込みます。 - - - - - &reftitle.parameters; - - - - filehandle - - - fopen が返すファイルハンドル。 - - - - - fileName - - - コンパイルしたいファイル。 - コンパイルしたいファイルを include/require することを忘れないでください。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>bcompiler_write_functions_from_file</function> の例 - - -]]> - - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - bcompiler_write_header - bcompiler_write_footer - - - - - - - diff --git a/reference/bcompiler/functions/bcompiler-write-header.xml b/reference/bcompiler/functions/bcompiler-write-header.xml deleted file mode 100644 index af5e8a9e9d..0000000000 --- a/reference/bcompiler/functions/bcompiler-write-header.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - bcompiler_write_header - bcompiler のヘッダを書き込む - - - - &reftitle.description; - - boolbcompiler_write_header - resourcefilehandle - stringwrite_ver - - - bcompiler ファイルのヘッダを書き込みます。 - - - - - &reftitle.parameters; - - - - filehandle - - - fopen が返すファイルハンドル。 - - - - - write_ver - - - 以前に使われていたフォーマットでバイトコードを書き込む際に使用します。 - これにより、古いバージョンの - bcompiler でバイトコードを使用することが可能となります。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>bcompiler_write_header</function> の例 - - -]]> - - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - bcompiler_write_footer - - - - - - - diff --git a/reference/bcompiler/functions/bcompiler-write-included-filename.xml b/reference/bcompiler/functions/bcompiler-write-included-filename.xml deleted file mode 100644 index 73c66481bf..0000000000 --- a/reference/bcompiler/functions/bcompiler-write-included-filename.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - bcompiler_write_included_filename - インクルードされたファイルをバイトコードとして書き込む - - - - &reftitle.description; - - boolbcompiler_write_included_filename - resourcefilehandle - stringfilename - - &warn.undocumented.func; - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/bcompiler/reference.xml b/reference/bcompiler/reference.xml deleted file mode 100644 index 73435b2bfc..0000000000 --- a/reference/bcompiler/reference.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - bcompiler &Functions; - -
- 連絡先 - - コメント・バグ修正・機能拡張の提案や、 - 開発を手伝ってくださるという方は、alan_k@php.net - までメールをください。お待ちしています。 - -
-
- - &reference.bcompiler.entities.functions; - -
- - - diff --git a/reference/bcompiler/setup.xml b/reference/bcompiler/setup.xml deleted file mode 100644 index fc1ba0d522..0000000000 --- a/reference/bcompiler/setup.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- - &reference.bcompiler.configure; - -
- &reftitle.runtime; - &no.config; -
- -
- &reftitle.resources; - &no.resource; -
- -
- - - diff --git a/reference/blenc/constants.xml b/reference/blenc/constants.xml deleted file mode 100644 index 9cbbda6275..0000000000 --- a/reference/blenc/constants.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - &reftitle.constants; - &extension.constants; - - - - - BLENC_EXT_VERSION - (string) - - - - - - - - - - - diff --git a/reference/bzip2/book.xml b/reference/bzip2/book.xml index 1c921de376..da5f057a74 100644 --- a/reference/bzip2/book.xml +++ b/reference/bzip2/book.xml @@ -1,6 +1,6 @@ - + @@ -16,9 +16,8 @@ - + &reference.bzip2.setup; - &reference.bzip2.constants; &reference.bzip2.examples; &reference.bzip2.reference; diff --git a/reference/bzip2/constants.xml b/reference/bzip2/constants.xml deleted file mode 100644 index 5e7a5ef52c..0000000000 --- a/reference/bzip2/constants.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - &reftitle.constants; - &no.constants; - - - - diff --git a/reference/bzip2/functions/bzcompress.xml b/reference/bzip2/functions/bzcompress.xml index 7ed57ab76f..7771ce84d1 100644 --- a/reference/bzip2/functions/bzcompress.xml +++ b/reference/bzip2/functions/bzcompress.xml @@ -1,7 +1,7 @@ - - + + bzcompress @@ -10,10 +10,10 @@ &reftitle.description; - mixedbzcompress - stringsource - intblocksize4 - intworkfactor0 + stringintbzcompress + stringdata + intblock_size4 + intwork_factor0 bzcompress は、与えられた文字列を圧縮し、 @@ -25,7 +25,7 @@ - source + data 圧縮する文字列 @@ -33,7 +33,7 @@ - blocksize + block_size 圧縮時のブロック長を指定します。 @@ -43,14 +43,14 @@ - workfactor + work_factor 繰り返しが多い、最悪の入力データの場合の圧縮処理の動作を制御します。 この値は、0 から 250 までとなり、0 は特別な場合です。 - workfactor によらず、 + work_factor によらず、 生成される出力は同じになります。 @@ -88,7 +88,6 @@ echo $bzstr; - - - + + bzdecompress @@ -10,9 +10,9 @@ &reftitle.description; - mixedbzdecompress - stringsource - intsmall0 + stringintfalsebzdecompress + stringdata + booluse_less_memory&false; bzdecompress は、bzip2 @@ -24,7 +24,7 @@ - source + data 解凍する文字列 @@ -32,7 +32,7 @@ - small + use_less_memory &true; の場合、よりメモリの消 @@ -51,9 +51,36 @@ &reftitle.returnvalues; - 解凍された文字列列、もしくはエラー時はエラー数 + 解凍された文字列、もしくは or &false;。 + エラー時はエラー数を返します。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + use_less_memory の型は + int から bool に変更されました。 + これより前のバージョンでは、 + デフォルト値は 0 でした。 + + + + + + + &reftitle.examples; @@ -88,7 +115,6 @@ echo "\n
\n";
- - - + + bzflush - 全てのバッファリングされたデータを強制的に書き込む + 何もしない @@ -17,7 +17,8 @@ バッファリングされた全ての bzip2 データをファイルポインタ - bz に書き込みます。 + bz に書き込むことが想定された関数です。 + しかし、libbz2 では null な関数として実装されており、何もしません。 diff --git a/reference/bzip2/functions/bzopen.xml b/reference/bzip2/functions/bzopen.xml index b1e48885c5..1dd13c5237 100644 --- a/reference/bzip2/functions/bzopen.xml +++ b/reference/bzip2/functions/bzopen.xml @@ -1,7 +1,7 @@ - - + + bzopen @@ -10,13 +10,13 @@ &reftitle.description; - resourcebzopen - mixedfile + resourcefalsebzopen + stringresourcefile stringmode bzopen は、 - bzip2 (.bz2) ファイルを読み書き用にオープンします。 + bzip2 (.bz2) ファイルを読み書き用にオープンします。 @@ -35,7 +35,7 @@ mode - 'r' (読み込み) と 'w' (書き込み) だけをサポートしています。 + 'r' (読み込み) と 'w' (書き込み) だけをサポートしています。 それ以外を指定すると bzopen は &false; を返します。 @@ -80,7 +80,6 @@ bzclose($bz); - - + @@ -10,7 +10,7 @@ &reftitle.description; - stringbzread + stringfalsebzread resourcebz intlength1024 @@ -94,7 +94,6 @@ echo $decompressed_file; - - - + + bzwrite @@ -10,10 +10,10 @@ &reftitle.description; - intbzwrite + intfalsebzwrite resourcebz stringdata - intlength + intnulllength&null; bzwrite は、文字列を与えられた bzip2 @@ -61,6 +61,29 @@ 書き込んだバイト数、もしくはエラー時に &false; を返します。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + length は、nullable になりました。 + + + + + + + &reftitle.examples; @@ -89,7 +112,6 @@ bzclose($bz); - - + @@ -12,8 +12,8 @@ このモジュールは、Julian Seward により作成された bzip2ライブラリの関数を使用しています。 - このモジュールは、bzip2/libbzip2 - のバージョン >= 1.0.x を必要とします。 + このモジュールには、bzip2/libbzip2 + のバージョン >= 1.0.x が必要です。
@@ -22,13 +22,6 @@ &reference.bzip2.configure; - -
- &reftitle.runtime; - &no.config; -
- -
&reftitle.resources; diff --git a/reference/cairo/book.xml b/reference/cairo/book.xml deleted file mode 100644 index b4d04235c1..0000000000 --- a/reference/cairo/book.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - Cairo - Cairo - - - &reftitle.intro; - - Cairo はネイティブ PHP の拡張モジュールで、Cairo - Graphics Library を使って画像に手を加えます。 - - - Cairo Graphics Library は、C で書かれた 2D ライブラリです。 - 複数の出力デバイスに対応しています。 - 現在対応している出力ターゲットには、X Window System や - Quartz、Win32、画像バッファ、PostScript、PDF、そして SVG ファイルがあります。 - 実験的なバックエンドとして、OpenGL (glitz を利用) や XCB、BeOS、 - OS/2、そして DirectFB があります。このライブラリは、 - 二種類のテキスト操作やレイアウトにも対応しています。 - "toy" API はデモレベルの品質の対応です。 - glyphs API はフル機能を搭載していmすが、pango などのヘルパーライブラリと組み合わせるのが最適です。 - フォントバックエンドは、FreeType や Quartz、Win32、そしてユーザーフォントに対応しています。 - - - コンピューターグラフィックスには、ベクターとラスターの二種類の形式があります。 - ラスターグラフィックスとは、画像をピクセルの配列として表す形式です。 - 一方ベクターグラフィックスは、点や線、曲線、多角形といった幾何プリミティブを使って画像を表します。 - これらのプリミティブを作るには、方程式を使います。 - Cairo Graphics Libraryはベクター型のグラフィックスを扱います。 - サイズは小さくなり、拡大・縮小や移動そして回転も自由自在で、 - 画像の品質には何も影響を及ぼしません。 - - - Cairo Graphics Library でできる操作には、 - 三次ベジエ曲線の描画や塗りつぶし、半透明画像の変換や合成、 - そしてアンチエイリアスしたテキストのレンダリングなどがあります。 - すべての描画操作は何らかのアフィン変換 (拡大縮小や回転など) - で表せます。これは、PostScript や PDF の描画処理とよく似ています。 - - - Cairo 拡張モジュールの狙いは、公式にサポートされているすべての - フォントバックエンドとサーフェイスバックエンドに対応することと、 - cairo の全機能を PHP から使えるようにすることです。 - - - - - - &reference.cairo.setup; - &reference.cairo.constants; - &reference.cairo.examples; - &reference.cairo.reference; - - &reference.cairo.cairo; - &reference.cairo.cairocontext; - &reference.cairo.cairoexception; - &reference.cairo.cairostatus; - - &reference.cairo.cairosurface; - &reference.cairo.cairosvgsurface; - &reference.cairo.cairoimagesurface; - &reference.cairo.cairopdfsurface; - &reference.cairo.cairopssurface; - &reference.cairo.cairosurfacetype; - - - &reference.cairo.cairofontface; - &reference.cairo.cairofontoptions; - &reference.cairo.cairofontslant; - &reference.cairo.cairofonttype; - &reference.cairo.cairofontweight; - &reference.cairo.cairoscaledfont; - &reference.cairo.cairotoyfontface; - - &reference.cairo.cairopatterntype; - &reference.cairo.cairopattern; - &reference.cairo.cairogradientpattern; - &reference.cairo.cairosolidpattern; - &reference.cairo.cairosurfacepattern; - &reference.cairo.cairolineargradient; - &reference.cairo.cairoradialgradient; - - &reference.cairo.cairoantialias; - &reference.cairo.cairocontent; - &reference.cairo.cairoextend; - &reference.cairo.cairoformat; - &reference.cairo.cairofillrule; - &reference.cairo.cairofilter; - &reference.cairo.cairohintmetrics; - &reference.cairo.cairohintstyle; - &reference.cairo.cairolinecap; - &reference.cairo.cairolinejoin; - &reference.cairo.cairomatrix; - &reference.cairo.cairooperator; - &reference.cairo.cairopath; - &reference.cairo.cairopslevel; - &reference.cairo.cairosubpixelorder; - &reference.cairo.cairosvgversion; - - - - diff --git a/reference/cairo/cairo.xml b/reference/cairo/cairo.xml deleted file mode 100644 index 36cca0b0ba..0000000000 --- a/reference/cairo/cairo.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - Cairo クラス - Cairo - - - - -
- &reftitle.intro; - - 静的なヘルパーメソッドを含むシンプルなクラスです。 - -
- - -
- &reftitle.classsynopsis; - - - - Cairo - - - - - Cairo - - - - - &Methods; - - - - -
- -
- - &reference.cairo.entities.cairo; - -
- - diff --git a/reference/cairo/cairoantialias.xml b/reference/cairo/cairoantialias.xml deleted file mode 100644 index c9f9e9e3d3..0000000000 --- a/reference/cairo/cairoantialias.xml +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - CairoAntialias クラス - CairoAntialias - - - - -
- &reftitle.intro; - - 列挙型のクラスで、テキストやシェイプをレンダリングするときの - アンチエイリアス方式を指定します。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoAntialias - - - - - CairoAntialias - - - - &Constants; - - const - integer - CairoAntialias::MODE_DEFAULT - 0 - - - const - integer - CairoAntialias::MODE_NONE - 1 - - - const - integer - CairoAntialias::MODE_GRAY - 2 - - - const - integer - CairoAntialias::MODE_SUBPIXEL - 3 - - - - - -
- - -
- &reftitle.constants; - - - - CairoAntialias::MODE_DEFAULT - - サブシステムやターゲットデバイス用のデフォルトのアンチエイリアスを使います。 - - - - - CairoAntialias::MODE_NONE - - 二層のαマスクを使います。 - - - - - CairoAntialias::MODE_GRAY - - 単色アンチエイリアス処理を行います (たとえば、白背景上の黒文字の場合にグレーの影を使います)。 - - - - - CairoAntialias::MODE_SUBPIXEL - - LCD パネルなどのデバイスで、サブピクセル要素の並び順を利用したアンチエイリアス処理を行います。 - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairocontent.xml b/reference/cairo/cairocontent.xml deleted file mode 100644 index b63780c814..0000000000 --- a/reference/cairo/cairocontent.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - CairoContent クラス - CairoContent - - - - -
- &reftitle.intro; - - CairoContent を使って、 - サーフェイスに含む内容を表します。 - 色情報とアルファ情報 (透明か不透明か) のどちらを含むのか、あるいは両方含むのかを表します。 - - - 注意: ここでの大きな値の狙いは、 - CairoContent の値を - CairoContent の値と区別できるようにしておくことです。 - ユーザーがふたつの型を混同したら、実装がエラーを検出できるようにするためです。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoContent - - - - - CairoContent - - - - &Constants; - - const - integer - CairoContent::COLOR - 4096 - - - const - integer - CairoContent::ALPHA - 8192 - - - const - integer - CairoContent::COLOR_ALPHA - 12288 - - - - - -
- - -
- &reftitle.constants; - - - - CairoContent::COLOR - - 色情報だけを含みます。 - - - - - CairoContent::ALPHA - - アルファ情報だけを含みます。 - - - - - CairoContent::COLOR_ALPHA - - 色とアルファの両方の情報を含みます。 - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairocontext.xml b/reference/cairo/cairocontext.xml deleted file mode 100644 index c3189c1868..0000000000 --- a/reference/cairo/cairocontext.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - CairoContext クラス - CairoContext - - - - -
- &reftitle.intro; - - コンテキストは、cairo での描画に使うメインオブジェクトです。 - cairo で描画を行うには、 - CairoContext を作ってから対象の CairoSurface - を設定し、CairoContext の描画オプションを設定します。 - CairoContext::moveTo や - CairoContext::lineTo などの関数でシェイプを作成し、 - CairoContext::strokeCairoContext::fill - でシェイプを描画します。 - - コンテキストをスタックにプッシュするには CairoContext::save - を使います。これで、現状を失わずに安全に変更できるようになります。 - 保存した状態を復元するには - CairoContext::restore を使います。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoContext - - - - - CairoContext - - - - - &Methods; - - - - -
- -
- - &reference.cairo.entities.cairocontext; - -
- - diff --git a/reference/cairo/cairoextend.xml b/reference/cairo/cairoextend.xml deleted file mode 100644 index b85c0c39c8..0000000000 --- a/reference/cairo/cairoextend.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - CairoExtend クラス - CairoExtend - - - - -
- &reftitle.intro; - - - -
- - -
- &reftitle.classsynopsis; - - - - CairoExtend - - - - - CairoExtend - - - - &Constants; - - const - integer - CairoExtend::NONE - 0 - - - const - integer - CairoExtend::REPEAT - 1 - - - const - integer - CairoExtend::REFLECT - 2 - - - const - integer - CairoExtend::PAD - 3 - - - - - -
- - -
- &reftitle.constants; - - - - CairoExtend::NONE - - Description here... - - - - - CairoExtend::REPEAT - - Description here... - - - - - CairoExtend::REFLECT - - Description here... - - - - - CairoExtend::PAD - - Description here... - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairofillrule.xml b/reference/cairo/cairofillrule.xml deleted file mode 100644 index e50b1d7a22..0000000000 --- a/reference/cairo/cairofillrule.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - CairoFillRule クラス - CairoFillRule - - - - -
- &reftitle.intro; - - CairoFillRule を使って、どのパスを塗りつぶすかを選択します。 - 指定した塗りつぶしルールについて、ある点が塗りつぶし対象であるかどうかを判断する際には、 - その点から引いた半直線がパスと交わるかどうかを調べます。 - セグメントの端点を通過したりトリッキーな交差 (パスの接線になるなど) - だったりしない限り、半直線はどの向きに引いてもかまいません - (実際の塗りつぶしの実装がこうなっているわけではないことに注意しましょう。 - 単に、適用される規則を説明しただけです)。 - - - デフォルトの塗りつぶしルールは CairoFillRule::WINDING です。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoFillRule - - - - - CairoFillRule - - - - &Constants; - - const - integer - CairoFillRule::WINDING - 0 - - - const - integer - CairoFillRule::EVEN_ODD - 1 - - - - - -
- - -
- &reftitle.constants; - - - - CairoFillRule::WINDING - - - パスが半直線を左から右に横切るときに、カウントを +1 します。 - 逆に右から左に横切るときに、カウントを -1 します - (左右の判断基準は、半直線の始点から見た方向です)。 - 最終的なカウントがゼロでない場合に、その点を塗りつぶします。 - - - - - - CairoFillRule::EVEN_ODD - - - 交差する点の総数を数えます。交差の向きは考慮しません。 - 交差点の総数が奇数の場合に、その点を塗りつぶします。 - - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairofilter.xml b/reference/cairo/cairofilter.xml deleted file mode 100644 index ee41d9ce82..0000000000 --- a/reference/cairo/cairofilter.xml +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - CairoFilter クラス - CairoFilter - - - - -
- &reftitle.intro; - - CairoFilter を使って、 - ピクセル値をパターンから読み込むときにフィルタリングを適用するかどうかを判断します。 - 特定のパターンに対して適用したいフィルタを指定するには - CairoPattern::setSource あるいは cairo_pattern_set_source - を参照ください。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoFilter - - - - - CairoFilter - - - - &Constants; - - const - integer - CairoFilter::FAST - 0 - - - const - integer - CairoFilter::GOOD - 1 - - - const - integer - CairoFilter::BEST - 2 - - - const - integer - CairoFilter::NEAREST - 3 - - - const - integer - CairoFilter::BILINEAR - 4 - - - const - integer - CairoFilter::GAUSSIAN - 5 - - - - - -
- - -
- &reftitle.constants; - - - - CairoFilter::FAST - - パフォーマンスが高いフィルタで、品質は CairoFilter::NEAREST と同等です。 - - - - - CairoFilter::GOOD - - 妥当なパフォーマンスのフィルタで、品質は CairoFilter::BILINEAR と同等です。 - - - - - CairoFilter::BEST - - 高品質を得られますが、パフォーマンスはよくありません。対話的な用途には不向きです。 - - - - - CairoFilter::NEAREST - - nearest-neighbor 法でフィルタリングします。 - - - - - CairoFilter::BILINEAR - - 二次元のリニア補完をします。 - - - - - CairoFilter::GAUSSIAN - - このフィルタ値は現在未実装です。現時点では使ってはいけません。 - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairofontface.xml b/reference/cairo/cairofontface.xml deleted file mode 100644 index 1b796f1978..0000000000 --- a/reference/cairo/cairofontface.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - CairoFontFace クラス - CairoFontFace - - - - -
- &reftitle.intro; - - 抽象クラス CairoFontFace は、 - 特定のウェイトや傾きなどの特性を持つ特定のフォントを表します。 - しかし変換やサイズは含みません。 - - - 注意: このクラスのインスタンスを直接作成することはできません。 - CairoContext::getFontFace あるいは - cairo_scaled_font_get_font_face で作ります。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoFontFace - - - - - CairoFontFace - - - - - &Methods; - - - - -
- -
- - &reference.cairo.entities.cairofontface; - -
- - diff --git a/reference/cairo/cairofontoptions.xml b/reference/cairo/cairofontoptions.xml deleted file mode 100644 index e3b743922f..0000000000 --- a/reference/cairo/cairofontoptions.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - CairoFontOptions クラス - CairoFontOptions - - - - -
- &reftitle.intro; - - 不透明な構造体で、フォントのレンダリングに使うすべてのオプションを保持します。 - - - cairo_font_options_t の個々の機能を設定したりアクセスしたりするときには、それぞれ - cairo_font_options_set_機能名 や cairo_font_options_get_機能名 - という名前の関数を使います。たとえば - cairo_font_options_set_antialias() や cairo_font_options_get_antialias() などです。 - - - 将来 CairoFontOptions に新たな機能が追加される可能性もあります。 - そのため、 - CairoFontOptions オブジェクトのコピーや同一性チェック、 - マージ、そしてハッシュ値の算出にはそれぞれ - CairoFontOptions::copyCairoFontOptions::equal、 - CairoFontOptions::mergeCairoFontOptions::hash - (手続き型の場合は cairo_font_options_copy()、cairo_font_options_equal()、 - cairo_font_options_merge()、cairo_font_options_hash() - を使う必要があります。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoFontOptions - - - - - CairoFontOptions - - - - - &Methods; - - - - -
- -
- - &reference.cairo.entities.cairofontoptions; - -
- - diff --git a/reference/cairo/cairofontslant.xml b/reference/cairo/cairofontslant.xml deleted file mode 100644 index 7113a8ed2b..0000000000 --- a/reference/cairo/cairofontslant.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - CairoFontSlant クラス - CairoFontSlant - - - - -
- &reftitle.intro; - - フォントの傾きに基づいたフォントフェイスを指定します。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoFontSlant - - - - - CairoFontSlant - - - - &Constants; - - const - integer - CairoFontSlant::NORMAL - 0 - - - const - integer - CairoFontSlant::ITALIC - 1 - - - const - integer - CairoFontSlant::OBLIQUE - 2 - - - - - -
- - -
- &reftitle.constants; - - - - CairoFontSlant::NORMAL - - 立体 - - - - - CairoFontSlant::ITALIC - - イタリック体 - - - - - CairoFontSlant::OBLIQUE - - 斜体 - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairofonttype.xml b/reference/cairo/cairofonttype.xml deleted file mode 100644 index 15a1b3369d..0000000000 --- a/reference/cairo/cairofonttype.xml +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - CairoFontType クラス - CairoFontType - - - - -
- &reftitle.intro; - - CairoFontType クラスは abstract final クラスで、 - 指定した CairoFontFaceCairoScaledFont - のタイプを表す定数を含みます。フォントタイプは、cairo の中では「フォントバックエンド」 - とも呼ばれています。 - - - CairoFontFace のタイプは、どのように作ったかによって決まります。たとえば - CairoToyFontFace::__construct などです。 - CairoFontFace タイプは - CairoFontFace::getType あるいは cairo_font_face_get_type - で問い合わせることができます。 - - - 各種の CairoFontFace 関数を、あらゆるタイプのフォントフェイスと組み合わせて使えます。 - - - CairoScaledFont のタイプは - CairoScaledFont::__construct あるいは - cairo_scaled_font_create に渡した - CairoFontFace のタイプで決まります。 - Scaled フォントタイプは CairoScaledFont::getType あるいは - cairo_scaled_font_get_type で問い合わせることができます。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoFontType - - - - - CairoFontType - - - - &Constants; - - const - integer - CairoFontType::TOY - 0 - - - const - integer - CairoFontType::FT - 1 - - - const - integer - CairoFontType::WIN32 - 2 - - - const - integer - CairoFontType::QUARTZ - 3 - - - - - -
- - -
- &reftitle.constants; - - - - CairoFontType::TOY - - CairoToyFont api で作ったフォント。 - - - - - CairoFontType::FT - - CairoFreeType タイプのフォント。 - - - - - CairoFontType::WIN32 - - Win32 タイプのフォント。 - - - - - CairoFontType::QUARTZ - - Quartz タイプのフォント。 - - - - - CairoFontType::USER - - cairo のユーザーフォント api で作ったフォント。 - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairofontweight.xml b/reference/cairo/cairofontweight.xml deleted file mode 100644 index 23bf366d70..0000000000 --- a/reference/cairo/cairofontweight.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - CairoFontWeight クラス - CairoFontWeight - - - - -
- &reftitle.intro; - - フォントのウェイトに基づいたフォントフェイスを指定します。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoFontWeight - - - - - CairoFontWeight - - - - &Constants; - - const - integer - CairoFontWeight::NORMAL - 0 - - - const - integer - CairoFontWeight::BOLD - 1 - - - - - -
- - -
- &reftitle.constants; - - - - CairoFontWeight::NORMAL - - ノーマル。 - - - - - CairoFontWeight::BOLD - - ボールド。 - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairoformat.xml b/reference/cairo/cairoformat.xml deleted file mode 100644 index bff53b221e..0000000000 --- a/reference/cairo/cairoformat.xml +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - CairoFormat クラス - CairoFormat - - - - -
- &reftitle.intro; - - CairoFormat は、画像データのメモリ城のフォーマットを識別するために使います。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoFormat - - - - - CairoFormat - - - - &Constants; - - const - integer - CairoFormat::ARGB32 - 0 - - - const - integer - CairoFormat::RGB24 - 1 - - - const - integer - CairoFormat::A8 - 2 - - - const - integer - CairoFormat::A1 - 3 - - - &Methods; - - - - -
- - -
- &reftitle.constants; - - - - CairoFormat::ARGB32 - - - 各ピクセルを 32 ビットで表します。上位 8 ビットがアルファ値で、 - その後に赤・緑・青が続きます。32 ビットのデータがネイティブエンディアンで格納されます。 - 事前に重ねたアルファ値を使います (つまり、透明度 50% の赤は 0x80800000 - であり、0x80ff0000 にはならないということです)。 - - - - - - CairoFormat::RGB24 - - - 各ピクセルを 32 ビットで表します。上位 8 ビットは使わず、 - 残りの 24 ビットに赤・緑・青の順で格納します。 - - - - - - CairoFormat::A8 - - 各ピクセルを 8 ビットで表し、アルファ値を保持します。 - - - - - CairoFormat::A1 - - - 各ピクセルを 1 ビットで表し、アルファ値を保持します。 - 複数のピクセルをパックして 32 ビットにまとめます。 - ビットの並び順は、そのプラットフォームが使うエンディアンと一致します。 - ビッグエンディアンのマシンでは最初のピクセルが最上位ビットとなり、 - リトルエンディアンのマシンでは最初のピクセルが最下位ビットとなります。 - - - - - -
- - - -
- - &reference.cairo.entities.cairoformat; - -
- - diff --git a/reference/cairo/cairogradientpattern.xml b/reference/cairo/cairogradientpattern.xml deleted file mode 100644 index 4a343d330a..0000000000 --- a/reference/cairo/cairogradientpattern.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - CairoGradientPattern クラス - CairoGradientPattern - - - - -
- &reftitle.intro; - - CairoGradientPattern は抽象基底クラスで、他のパターンクラス群の親となります。 - 直接インスタンスを作ることはできません。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoGradientPattern - - - - - CairoGradientPattern - - - - extends - CairoPattern - - - - - &Methods; - - - &InheritedMethods; - - - - - -
- -
- - &reference.cairo.entities.cairogradientpattern; - -
- - diff --git a/reference/cairo/cairohintmetrics.xml b/reference/cairo/cairohintmetrics.xml deleted file mode 100644 index 48b6a12132..0000000000 --- a/reference/cairo/cairohintmetrics.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - CairoHintMetrics クラス - CairoHintMetrics - - - - -
- &reftitle.intro; - - フォントメトリックのヒントを出すかどうかを指定します。 - フォントメトリックのヒントとは、量子化してデバイス空間での整数値にすることです。 - こうすると文字間隔や行間隔の一貫性が向上しますが、 - テキストの拡大率を変えるとレイアウトも変わってしまうことになります。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoHintMetrics - - - - - CairoHintMetrics - - - - &Constants; - - const - integer - CairoHintMetrics::METRICS_DEFAULT - 0 - - - const - integer - CairoHintMetrics::METRICS_OFF - 1 - - - const - integer - CairoHintMetrics::METRICS_ON - 2 - - - - - -
- - -
- &reftitle.constants; - - - - CairoHintMetrics::METRICS_DEFAULT - - メトリックのヒントを、フォントバックエンドとターゲットデバイスのデフォルトに合わせます。 - - - - - CairoHintMetrics::METRICS_OFF - - フォントメトリックのヒントを出しません。 - - - - - CairoHintMetrics::METRICS_ON - - フォントメトリックのヒントを出します。 - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairohintstyle.xml b/reference/cairo/cairohintstyle.xml deleted file mode 100644 index 17684e7f43..0000000000 --- a/reference/cairo/cairohintstyle.xml +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - CairoHintStyle クラス - CairoHintStyle - - - - -
- &reftitle.intro; - - フォントアウトラインのヒントの形式を指定します。 - ヒントを出すとは、アウトラインをピクセルのグリッドにあわせて表示結果を改善することです。 - アウトラインのヒントを出すということはアウトラインに手を加えることになるので、 - 本来のアウトラインのシェイプからは変わってしまいます。 - フォントバックエンドによっては、これらのすべてのヒントには対応していないものもあります。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoHintStyle - - - - - CairoHintStyle - - - - &Constants; - - const - integer - CairoHintStyle::STYLE_DEFAULT - 0 - - - const - integer - CairoHintStyle::STYLE_NONE - 1 - - - const - integer - CairoHintStyle::STYLE_SLIGHT - 2 - - - const - integer - CairoHintStyle::STYLE_MEDIUM - 3 - - - const - integer - CairoHintStyle::STYLE_FULL - 4 - - - - - -
- - -
- &reftitle.constants; - - - - CairoHintStyle::STYLE_DEFAULT - - フォントバックエンドとターゲットデバイスに合わせたデフォルトのヒント形式を使います。 - - - - - CairoHintStyle::STYLE_NONE - - アウトラインのヒントを出しません。 - - - - - CairoHintStyle::STYLE_SLIGHT - - アウトラインのヒントを少し出して、コントラストを改善しつつ元のシェイプの状態も残します。 - - - - - CairoHintStyle::STYLE_MEDIUM - - アウトラインのヒントを中程度に出します。コントラストと元のシェイプの状態の両方を尊重したものになります。 - - - - - CairoHintStyle::STYLE_FULL - - コントラストを最大化するようにアウトラインのヒントを出します。 - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairoimagesurface.xml b/reference/cairo/cairoimagesurface.xml deleted file mode 100644 index 43e380bf42..0000000000 --- a/reference/cairo/cairoimagesurface.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - CairoImageSurface クラス - CairoImageSurface - - - - -
- &reftitle.intro; - - CairoImageSurface は、cairo あるいは呼び出し元のコードが確保したメモリバッファの内容をレンダリングする機能を提供します。 - 対応する画像フォーマットは CairoFormat で定義されているものです。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoImageSurface - - - - - CairoImageSurface - - - - extends - CairoSurface - - - - - &Methods; - - - &InheritedMethods; - - - - - -
- -
- - &reference.cairo.entities.cairoimagesurface; - -
- - diff --git a/reference/cairo/cairolineargradient.xml b/reference/cairo/cairolineargradient.xml deleted file mode 100644 index 72228fe228..0000000000 --- a/reference/cairo/cairolineargradient.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - CairoLinearGradient クラス - CairoLinearGradient - - - - -
- &reftitle.intro; - - 定義した線に沿って新たな CairoLinearGradient を作ります。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoLinearGradient - - - - - CairoLinearGradient - - - - extends - CairoGradientPattern - - - - - &Methods; - - - &InheritedMethods; - - - - - -
- -
- - &reference.cairo.entities.cairolineargradient; - -
- - diff --git a/reference/cairo/cairolinecap.xml b/reference/cairo/cairolinecap.xml deleted file mode 100644 index 3398cd6f1e..0000000000 --- a/reference/cairo/cairolinecap.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - CairoLineCap クラス - CairoLineCap - - - - -
- &reftitle.intro; - - パスを描画するときの端点の処理方法を指定します。 - - - デフォルトの方式は CairoLineCap::BUTT です。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoLineCap - - - - - CairoLineCap - - - - &Constants; - - const - integer - CairoLineCap::BUTT - 0 - - - const - integer - CairoLineCap::ROUND - 1 - - - const - integer - CairoLineCap::SQUARE - 2 - - - - - -
- - -
- &reftitle.constants; - - - - CairoLineCap::BUTT - - 直線の始点あるいは終点を、正確にその位置で止めます。 - - - - - CairoLineCap::ROUND - - 端点を円にして、円の中心が端点と一致するようにします。 - - - - - CairoLineCap::SQUARE - - 端点を正方形にして、正方形の中心が端点と一致するようにします。 - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairolinejoin.xml b/reference/cairo/cairolinejoin.xml deleted file mode 100644 index 51f0bb8a49..0000000000 --- a/reference/cairo/cairolinejoin.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - CairoLineJoin クラス - CairoLineJoin - - - - -
- &reftitle.intro; - - - -
- - -
- &reftitle.classsynopsis; - - - - CairoLineJoin - - - - - CairoLineJoin - - - - &Constants; - - const - integer - CairoLineJoin::MITER - 0 - - - const - integer - CairoLineJoin::ROUND - 1 - - - const - integer - CairoLineJoin::BEVEL - 2 - - - - - -
- - -
- &reftitle.constants; - - - - CairoLineJoin::MITER - - Description here... - - - - - CairoLineJoin::ROUND - - Description here... - - - - - CairoLineJoin::BEVEL - - Description here... - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairomatrix.xml b/reference/cairo/cairomatrix.xml deleted file mode 100644 index 747080427a..0000000000 --- a/reference/cairo/cairomatrix.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - CairoMatrix クラス - CairoMatrix - - - - -
- &reftitle.intro; - - マトリクスを使って、異なる座標空間の座標を変換します。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoMatrix - - - - - CairoMatrix - - - - - &Methods; - - - - -
- -
- - &reference.cairo.entities.cairomatrix; - -
- - diff --git a/reference/cairo/cairooperator.xml b/reference/cairo/cairooperator.xml deleted file mode 100644 index d390275372..0000000000 --- a/reference/cairo/cairooperator.xml +++ /dev/null @@ -1,274 +0,0 @@ - - - - - - - CairoOperator クラス - CairoOperator - - - - -
- &reftitle.intro; - - すべての描画操作に使う合成演算子を設定します。 - - - デフォルトの演算子は CairoOperator::OVER です。 - - - unbounded (境界なし) とマークされた演算子は、マスクレイヤーの外部であっても変更します - (つまり、その影響はマスクレイヤー内だけにはおさまらないということです)。 - しかし、その影響はクリッピング領域の中に限定されます。 - - - ドキュメントをシンプルにするために、ここでの演算子の説明は - 演算前と演算後の画像がどひらも完全に透明あるいは完全に不透明であるときの振る舞いだけになっています。 - 実際の実装は、半透明なレイヤーでも動作するようになっています。 - 各演算子の挙動についてより詳しい説明 (数学的な定義など) が必要な場合は、 - http://cairographics.org/operators/ を参照ください。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoOperator - - - - - CairoOperator - - - - &Constants; - - const - integer - CairoOperator::CLEAR - 0 - - - const - integer - CairoOperator::SOURCE - 1 - - - const - integer - CairoOperator::OVER - 2 - - - const - integer - CairoOperator::IN - 3 - - - const - integer - CairoOperator::OUT - 4 - - - const - integer - CairoOperator::ATOP - 5 - - - const - integer - CairoOperator::DEST - 6 - - - const - integer - CairoOperator::DEST_OVER - 7 - - - const - integer - CairoOperator::DEST_IN - 8 - - - const - integer - CairoOperator::DEST_OUT - 9 - - - const - integer - CairoOperator::DEST_ATOP - 10 - - - const - integer - CairoOperator::XOR - 11 - - - const - integer - CairoOperator::ADD - 12 - - - const - integer - CairoOperator::SATURATE - 13 - - - - - -
- - -
- &reftitle.constants; - - - - CairoOperator::CLEAR - - 対象レイヤーをクリアする (bounded) - - - - - CairoOperator::SOURCE - - 対象レイヤーを置き換える (bounded) - - - - - CairoOperator::OVER - - 元レイヤーを対象レイヤーの上に描画する (bounded) - - - - - CairoOperator::IN - - 元画像を対象があったところに描画する (unbounded) - - - - - CairoOperator::OUT - - 元画像を対象がなかったところに描画する (unbounded) - - - - - CairoOperator::ATOP - - 元画像を対象の上だけに描画する - - - - - CairoOperator::DEST - - 元画像を無視する - - - - - CairoOperator::DEST_OVER - - 対象画像を元画像の上に描画する - - - - - CairoOperator::DEST_IN - - 元画像があったところだけ、対象画像を残す (unbounded) - - - - - CairoOperator::DEST_OUT - - 元画像がなかったところだけ、対象画像を残す - - - - - CairoOperator::DEST_ATOP - - 元画像の上にあったところだけ、対象画像を残す (unbounded) - - - - - CairoOperator::XOR - - 元画像と対象画像のどちらか一方だけがあった部分を表示する - - - - - CairoOperator::ADD - - 元画像と対象画像を足し合わせる - - - - - CairoOperator::SATURATE - - CairoOperator::OVER と同様だが、元画像と対象画像の形が違うことを前提とする - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairopath.xml b/reference/cairo/cairopath.xml deleted file mode 100644 index 125cdecbff..0000000000 --- a/reference/cairo/cairopath.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - CairoPath クラス - CairoPath - - - - -
- &reftitle.intro; - - - - - 注意: CairoPath クラスのインスタンスを直接作ることはできません。 - 直接作ろうとすると Fatal Error が発生します。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoPath - - - - - CairoPath - - - - - - - -
- -
- - - -
- - diff --git a/reference/cairo/cairopattern.xml b/reference/cairo/cairopattern.xml deleted file mode 100644 index 8961729081..0000000000 --- a/reference/cairo/cairopattern.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - CairoPattern クラス - CairoPattern - - - - -
- &reftitle.intro; - - CairoPattern は抽象基底クラスで、他のパターンクラス群の親となります。 - インスタンスを直接作ることはできません。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoPattern - - - - - CairoPattern - - - - - &Methods; - - - - -
- -
- - &reference.cairo.entities.cairopattern; - -
- - diff --git a/reference/cairo/cairopatterntype.xml b/reference/cairo/cairopatterntype.xml deleted file mode 100644 index cca2f0890e..0000000000 --- a/reference/cairo/cairopatterntype.xml +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - CairoPatternType クラス - CairoPatternType - - - - -
- &reftitle.intro; - - CairoPatternType を使って、指定したパターンのタイプを表します。 - - - パターンのタイプは、それを作った関数で決まります。 - cairo_pattern_create_rgbcairo_pattern_create_rgba - といった関数は CairoPatternType::SOLID パターンを作ります。 - それ以外の cairo_pattern_create_* 系関数は、それぞれ特定のパターンタイプに対応します。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoPatternType - - - - - CairoPatternType - - - - &Constants; - - const - integer - CairoPatternType::SOLID - 0 - - - const - integer - CairoPatternType::SURFACE - 1 - - - const - integer - CairoPatternType::LINEAR - 2 - - - const - integer - CairoPatternType::RADIAL - 3 - - - - - -
- - -
- &reftitle.constants; - - - - CairoPatternType::SOLID - - ソリッドな (一様な) 色。不透明あるいは半透明になります。 - - - - - CairoPatternType::SURFACE - - サーフェイス (画像) に基づくパターン。 - - - - - CairoPatternType::LINEAR - - 直線のグラデーションパターン。 - - - - - CairoPatternType::RADIAL - - 放射状のグラデーションパターン。 - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairopdfsurface.xml b/reference/cairo/cairopdfsurface.xml deleted file mode 100644 index 76b245ab81..0000000000 --- a/reference/cairo/cairopdfsurface.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - CairoPdfSurface クラス - CairoPdfSurface - - - - -
- &reftitle.intro; - - - -
- - -
- &reftitle.classsynopsis; - - - - CairoPdfSurface - - - - - CairoPdfSurface - - - - extends - CairoSurface - - - - - &Methods; - - - &InheritedMethods; - - - - - -
- -
- - &reference.cairo.entities.cairopdfsurface; - -
- - diff --git a/reference/cairo/cairopslevel.xml b/reference/cairo/cairopslevel.xml deleted file mode 100644 index fd108b60ba..0000000000 --- a/reference/cairo/cairopslevel.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - CairoPsLevel クラス - CairoPsLevel - - - - -
- &reftitle.intro; - - - -
- - -
- &reftitle.classsynopsis; - - - - CairoPsLevel - - - - - CairoPsLevel - - - - &Constants; - - const - integer - CairoPsLevel::LEVEL_2 - 0 - - - const - integer - CairoPsLevel::LEVEL_3 - 1 - - - - - -
- - -
- &reftitle.constants; - - - - CairoPsLevel::LEVEL_2 - - Description here... - - - - - CairoPsLevel::LEVEL_3 - - Description here... - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairopssurface.xml b/reference/cairo/cairopssurface.xml deleted file mode 100644 index 20fde7f16d..0000000000 --- a/reference/cairo/cairopssurface.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - CairoPsSurface クラス - CairoPsSurface - - - - -
- &reftitle.intro; - - - -
- - -
- &reftitle.classsynopsis; - - - - CairoPsSurface - - - - - CairoPsSurface - - - - extends - CairoSurface - - - - - &Methods; - - - &InheritedMethods; - - - - - -
- -
- - &reference.cairo.entities.cairopssurface; - -
- - diff --git a/reference/cairo/cairoradialgradient.xml b/reference/cairo/cairoradialgradient.xml deleted file mode 100644 index f30bbed791..0000000000 --- a/reference/cairo/cairoradialgradient.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - CairoRadialGradient クラス - CairoRadialGradient - - - - -
- &reftitle.intro; - - - -
- - -
- &reftitle.classsynopsis; - - - - CairoRadialGradient - - - - - CairoRadialGradient - - - - extends - CairoGradientPattern - - - - - &Methods; - - - &InheritedMethods; - - - - - -
- -
- - &reference.cairo.entities.cairoradialgradient; - -
- - diff --git a/reference/cairo/cairoscaledfont.xml b/reference/cairo/cairoscaledfont.xml deleted file mode 100644 index ece3420fc8..0000000000 --- a/reference/cairo/cairoscaledfont.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - CairoScaledFont クラス - CairoScaledFont - - - - -
- &reftitle.intro; - - - -
- - -
- &reftitle.classsynopsis; - - - - CairoScaledFont - - - - - CairoScaledFont - - - - - &Methods; - - - - -
- -
- - &reference.cairo.entities.cairoscaledfont; - -
- - diff --git a/reference/cairo/cairosolidpattern.xml b/reference/cairo/cairosolidpattern.xml deleted file mode 100644 index 652da89668..0000000000 --- a/reference/cairo/cairosolidpattern.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - CairoSolidPattern クラス - CairoSolidPattern - - - - -
- &reftitle.intro; - - - -
- - -
- &reftitle.classsynopsis; - - - - CairoSolidPattern - - - - - CairoSolidPattern - - - - extends - CairoPattern - - - - - &Methods; - - - &InheritedMethods; - - - - - -
- -
- - &reference.cairo.entities.cairosolidpattern; - -
- - diff --git a/reference/cairo/cairostatus.xml b/reference/cairo/cairostatus.xml deleted file mode 100644 index bfe8b144d1..0000000000 --- a/reference/cairo/cairostatus.xml +++ /dev/null @@ -1,409 +0,0 @@ - - - - - - - CairoStatus クラス - CairoStatus - - - - -
- &reftitle.intro; - - CairoStatus は、Cairo を使っているときに発生するエラーを表します。 - 関数から直接返される場合もありますが、CairoContext を使っている場合は - 直近のエラーがオブジェクトに格納されており、CairoContext::status - あるいは cairo_status で取得できます。将来的には新たなエントリも追加されるでしょう。 - - - Cairo::statusToString あるいは cairo_status_to_string - を使えば、人間向けのエラーメッセージを取得できます。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoStatus - - - - - CairoStatus - - - - &Constants; - - const - integer - CairoStatus::SUCCESS - 0 - - - const - integer - CairoStatus::NO_MEMORY - 1 - - - const - integer - CairoStatus::INVALID_RESTORE - 2 - - - const - integer - CairoStatus::INVALID_POP_GROUP - 3 - - - const - integer - CairoStatus::NO_CURRENT_POINT - 4 - - - const - integer - CairoStatus::INVALID_MATRIX - 5 - - - const - integer - CairoStatus::INVALID_STATUS - 6 - - - const - integer - CairoStatus::NULL_POINTER - 7 - - - const - integer - CairoStatus::INVALID_STRING - 8 - - - const - integer - CairoStatus::INVALID_PATH_DATA - 9 - - - const - integer - CairoStatus::READ_ERROR - 10 - - - const - integer - CairoStatus::WRITE_ERROR - 11 - - - const - integer - CairoStatus::SURFACE_FINISHED - 12 - - - const - integer - CairoStatus::SURFACE_TYPE_MISMATCH - 13 - - - const - integer - CairoStatus::PATTERN_TYPE_MISMATCH - 14 - - - const - integer - CairoStatus::INVALID_CONTENT - 15 - - - const - integer - CairoStatus::INVALID_FORMAT - 16 - - - const - integer - CairoStatus::INVALID_VISUAL - 17 - - - const - integer - CairoStatus::FILE_NOT_FOUND - 18 - - - const - integer - CairoStatus::INVALID_DASH - 19 - - - const - integer - CairoStatus::INVALID_DSC_COMMENT - 20 - - - const - integer - CairoStatus::INVALID_INDEX - 21 - - - const - integer - CairoStatus::CLIP_NOT_REPRESENTABLE - 22 - - - const - integer - CairoStatus::TEMP_FILE_ERROR - 23 - - - const - integer - CairoStatus::INVALID_STRIDE - 24 - - - - - -
- - -
- &reftitle.constants; - - - - CairoStatus::SUCCESS - - エラーは発生していません - - - - - CairoStatus::NO_MEMORY - - メモリ不足 - - - - - CairoStatus::INVALID_RESTORE - - 対応する cairo_save がないときに cairo_restore を呼んだ - - - - - CairoStatus::INVALID_POP_GROUP - - 取り出すグループがない - - - - - CairoStatus::NO_CURRENT_POINT - - 現在の点が定義されていない - - - - - CairoStatus::INVALID_MATRIX - - 無効な行列 (不可逆) - - - - - CairoStatus::INVALID_STATUS - - 入力の CairoStatus に対して無効な値 - - - - - CairoStatus::NULL_POINTER - - Null ポインタ - - - - - CairoStatus::INVALID_STRING - - 入力文字列が妥当な UTF-8 文字列ではない - - - - - CairoStatus::INVALID_PATH_DATA - - 入力のパスデータが無効 - - - - - CairoStatus::READ_ERROR - - 入力ストリームからの読み込み中のエラー - - - - - CairoStatus::WRITE_ERROR - - 出力ストリームへの書き出し中のエラー - - - - - CairoStatus::SURFACE_FINISHED - - 対象のサーフェイスが処理済み - - - - - CairoStatus::SURFACE_TYPE_MISMATCH - - サーフェイスの型がその操作に適していない - - - - - CairoStatus::PATTERN_TYPE_MISMATCH - - パターンの型がその操作に適していない - - - - - CairoStatus::INVALID_CONTENT - - 入力の CairoContent に対して無効な値 - - - - - CairoStatus::INVALID_FORMAT - - 入力の CairoFormat に対して無効な値 - - - - - CairoStatus::INVALID_VISUAL - - 入力のビジュアルに対して無効な値 - - - - - CairoStatus::FILE_NOT_FOUND - - ファイルが存在しない - - - - - CairoStatus::INVALID_DASH - - ダッシュの設定で無効な値 - - - - - CairoStatus::INVALID_DSC_COMMENT - - DSC コメントとして妥当でない値 - - - - - CairoStatus::INVALID_INDEX - - 無効なインデックスがゲッターに渡された - - - - - CairoStatus::CLIP_NOT_REPRESENTABLE - - クリップ領域がそのフォーマットで表現できない - - - - - CairoStatus::TEMP_FILE_ERROR - - テンポラリファイルの作成あるいは書き込み時のエラー - - - - - CairoStatus::INVALID_STRIDE - - CairoStride の無効な値 - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairosubpixelorder.xml b/reference/cairo/cairosubpixelorder.xml deleted file mode 100644 index 57d2554967..0000000000 --- a/reference/cairo/cairosubpixelorder.xml +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - CairoSubpixelOrder クラス - CairoSubpixelOrder - - - - -
- &reftitle.intro; - - - -
- - -
- &reftitle.classsynopsis; - - - - CairoSubpixelOrder - - - - - CairoSubpixelOrder - - - - &Constants; - - const - integer - CairoSubpixelOrder::ORDER_DEFAULT - 0 - - - const - integer - CairoSubpixelOrder::ORDER_RGB - 1 - - - const - integer - CairoSubpixelOrder::ORDER_BGR - 2 - - - const - integer - CairoSubpixelOrder::ORDER_VRGB - 3 - - - const - integer - CairoSubpixelOrder::ORDER_VBGR - 4 - - - - - -
- - -
- &reftitle.constants; - - - - CairoSubpixelOrder::ORDER_DEFAULT - - Description here... - - - - - CairoSubpixelOrder::ORDER_RGB - - Description here... - - - - - CairoSubpixelOrder::ORDER_BGR - - Description here... - - - - - CairoSubpixelOrder::ORDER_VRGB - - Description here... - - - - - CairoSubpixelOrder::ORDER_VBGR - - Description here... - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairosurface.xml b/reference/cairo/cairosurface.xml deleted file mode 100644 index e3811e4231..0000000000 --- a/reference/cairo/cairosurface.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - CairoSurface クラス - CairoSurface - - - - -
- &reftitle.intro; - - これは、他のすべてのサーフェイスクラスの基底クラスです。 - CairoSurface は抽象型で、cairo が描画できるすべての描画ターゲットを表します。 - 実際の描画処理は CairoContext を使って行います。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoSurface - - - - - CairoSurface - - - - - &Methods; - - - - -
- -
- - &reference.cairo.entities.cairosurface; - -
- - diff --git a/reference/cairo/cairosurfacepattern.xml b/reference/cairo/cairosurfacepattern.xml deleted file mode 100644 index c290f92011..0000000000 --- a/reference/cairo/cairosurfacepattern.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - CairoSurfacePattern クラス - CairoSurfacePattern - - - - -
- &reftitle.intro; - - - -
- - -
- &reftitle.classsynopsis; - - - - CairoSurfacePattern - - - - - CairoSurfacePattern - - - - extends - CairoPattern - - - - - &Methods; - - - &InheritedMethods; - - - - - -
- -
- - &reference.cairo.entities.cairosurfacepattern; - -
- - diff --git a/reference/cairo/cairosurfacetype.xml b/reference/cairo/cairosurfacetype.xml deleted file mode 100644 index 86c95c3c13..0000000000 --- a/reference/cairo/cairosurfacetype.xml +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - - CairoSurfaceType クラス - CairoSurfaceType - - - - -
- &reftitle.intro; - - - -
- - -
- &reftitle.classsynopsis; - - - - CairoSurfaceType - - - - - CairoSurfaceType - - - - &Constants; - - const - integer - CairoSurfaceType::IMAGE - 0 - - - const - integer - CairoSurfaceType::PDF - 1 - - - const - integer - CairoSurfaceType::PS - 2 - - - const - integer - CairoSurfaceType::XLIB - 3 - - - const - integer - CairoSurfaceType::XCB - 4 - - - const - integer - CairoSurfaceType::GLITZ - 5 - - - const - integer - CairoSurfaceType::QUARTZ - 6 - - - const - integer - CairoSurfaceType::WIN32 - 7 - - - const - integer - CairoSurfaceType::BEOS - 8 - - - const - integer - CairoSurfaceType::DIRECTFB - 9 - - - const - integer - CairoSurfaceType::SVG - 10 - - - const - integer - CairoSurfaceType::OS2 - 11 - - - const - integer - CairoSurfaceType::WIN32_PRINTING - 12 - - - const - integer - CairoSurfaceType::QUARTZ_IMAGE - 13 - - - - - -
- - -
- &reftitle.constants; - - - - CairoSurfaceType::IMAGE - - Description here... - - - - - CairoSurfaceType::PDF - - Description here... - - - - - CairoSurfaceType::PS - - Description here... - - - - - CairoSurfaceType::XLIB - - Description here... - - - - - CairoSurfaceType::XCB - - Description here... - - - - - CairoSurfaceType::GLITZ - - Description here... - - - - - CairoSurfaceType::QUARTZ - - Description here... - - - - - CairoSurfaceType::WIN32 - - Description here... - - - - - CairoSurfaceType::BEOS - - Description here... - - - - - CairoSurfaceType::DIRECTFB - - Description here... - - - - - CairoSurfaceType::SVG - - Description here... - - - - - CairoSurfaceType::OS2 - - Description here... - - - - - CairoSurfaceType::WIN32_PRINTING - - Description here... - - - - - CairoSurfaceType::QUARTZ_IMAGE - - Description here... - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairosvgsurface.xml b/reference/cairo/cairosvgsurface.xml deleted file mode 100644 index 5ed6cdd5f7..0000000000 --- a/reference/cairo/cairosvgsurface.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - Svg サーフェイスバックエンド - CairoSvgSurface - - - - -
- &reftitle.intro; - - Svg 専用のサーフェイスクラスで、SVG (standard vector graphics) サーフェイスバックエンドを使います。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoSvgSurface - - - - - CairoSvgSurface - - - - extends - CairoSurface - - - - - &Methods; - - - &InheritedMethods; - - - - - -
- -
- - &reference.cairo.entities.cairosvgsurface; - -
- - diff --git a/reference/cairo/cairosvgversion.xml b/reference/cairo/cairosvgversion.xml deleted file mode 100644 index 64c750ae6b..0000000000 --- a/reference/cairo/cairosvgversion.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - CairoSvgVersion クラス - CairoSvgVersion - - - - -
- &reftitle.intro; - - - -
- - -
- &reftitle.classsynopsis; - - - - CairoSvgVersion - - - - - CairoSvgVersion - - - - &Constants; - - const - integer - CairoSvgVersion::VERSION_1_1 - 0 - - - const - integer - CairoSvgVersion::VERSION_1_2 - 1 - - - - - -
- - -
- &reftitle.constants; - - - - CairoSvgVersion::VERSION_1_1 - - Description here... - - - - - CairoSvgVersion::VERSION_1_2 - - Description here... - - - - -
- - - -
- - - -
- - diff --git a/reference/cairo/cairotoyfontface.xml b/reference/cairo/cairotoyfontface.xml deleted file mode 100644 index 3888289901..0000000000 --- a/reference/cairo/cairotoyfontface.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - CairoToyFontFace クラス - CairoToyFontFace - - - - -
- &reftitle.intro; - - CairoToyFontFace クラスを - CairoContext::selectFontFace - の代わりに使うと、コンテキストに依存しないトイフォントを作れます。 - -
- - -
- &reftitle.classsynopsis; - - - - CairoToyFontFace - - - - - CairoToyFontFace - - - - extends - CairoFontFace - - - - - - &InheritedMethods; - - - - -
- -
- - - -
- - diff --git a/reference/cairo/constants.xml b/reference/cairo/constants.xml deleted file mode 100644 index 4182ba912d..0000000000 --- a/reference/cairo/constants.xml +++ /dev/null @@ -1,1154 +0,0 @@ - - - - - - &reftitle.constants; - &extension.constants; - - - - - CAIRO_STATUS_SUCCESS - (integer) - - - - - - - - - CAIRO_STATUS_NO_MEMORY - (integer) - - - - - - - - - CAIRO_STATUS_INVALID_RESTORE - (integer) - - - - - - - - - CAIRO_STATUS_INVALID_POP_GROUP - (integer) - - - - - - - - - CAIRO_STATUS_NO_CURRENT_POINT - (integer) - - - - - - - - - CAIRO_STATUS_INVALID_MATRIX - (integer) - - - - - - - - - CAIRO_STATUS_INVALID_STATUS - (integer) - - - - - - - - - CAIRO_STATUS_NULL_POINTER - (integer) - - - - - - - - - CAIRO_STATUS_INVALID_STRING - (integer) - - - - - - - - - CAIRO_STATUS_INVALID_PATH_DATA - (integer) - - - - - - - - - CAIRO_STATUS_READ_ERROR - (integer) - - - - - - - - - CAIRO_STATUS_WRITE_ERROR - (integer) - - - - - - - - - CAIRO_STATUS_SURFACE_FINISHED - (integer) - - - - - - - - - CAIRO_STATUS_SURFACE_TYPE_MISMATCH - (integer) - - - - - - - - - CAIRO_STATUS_PATTERN_TYPE_MISMATCH - (integer) - - - - - - - - - CAIRO_STATUS_INVALID_CONTENT - (integer) - - - - - - - - - CAIRO_STATUS_INVALID_FORMAT - (integer) - - - - - - - - - CAIRO_STATUS_INVALID_VISUAL - (integer) - - - - - - - - - CAIRO_STATUS_FILE_NOT_FOUND - (integer) - - - - - - - - - CAIRO_STATUS_INVALID_DASH - (integer) - - - - - - - - - CAIRO_STATUS_INVALID_DSC_COMMENT - (integer) - - - - - - - - - CAIRO_STATUS_INVALID_INDEX - (integer) - - - - - - - - - CAIRO_STATUS_CLIP_NOT_REPRESENTABLE - (integer) - - - - - - - - - CAIRO_STATUS_TEMP_FILE_ERROR - (integer) - - - - - - - - - CAIRO_STATUS_INVALID_STRIDE - (integer) - - - - - - - - - CAIRO_ANTIALIAS_DEFAULT - (integer) - - - - - - - - - CAIRO_ANTIALIAS_NONE - (integer) - - - - - - - - - CAIRO_ANTIALIAS_GRAY - (integer) - - - - - - - - - CAIRO_ANTIALIAS_SUBPIXEL - (integer) - - - - - - - - - CAIRO_SUBPIXEL_ORDER_DEFAULT - (integer) - - - - - - - - - CAIRO_SUBPIXEL_ORDER_RGB - (integer) - - - - - - - - - CAIRO_SUBPIXEL_ORDER_BGR - (integer) - - - - - - - - - CAIRO_SUBPIXEL_ORDER_VRGB - (integer) - - - - - - - - - CAIRO_SUBPIXEL_ORDER_VBGR - (integer) - - - - - - - - - CAIRO_FILL_RULE_WINDING - (integer) - - - - - - - - - CAIRO_FILL_RULE_EVEN_ODD - (integer) - - - - - - - - - CAIRO_LINE_CAP_BUTT - (integer) - - - - - - - - - CAIRO_LINE_CAP_ROUND - (integer) - - - - - - - - - CAIRO_LINE_CAP_SQUARE - (integer) - - - - - - - - - CAIRO_LINE_JOIN_MITER - (integer) - - - - - - - - - CAIRO_LINE_JOIN_ROUND - (integer) - - - - - - - - - CAIRO_LINE_JOIN_BEVEL - (integer) - - - - - - - - - CAIRO_OPERATOR_CLEAR - (integer) - - - - - - - - - CAIRO_OPERATOR_SOURCE - (integer) - - - - - - - - - CAIRO_OPERATOR_OVER - (integer) - - - - - - - - - CAIRO_OPERATOR_IN - (integer) - - - - - - - - - CAIRO_OPERATOR_OUT - (integer) - - - - - - - - - CAIRO_OPERATOR_ATOP - (integer) - - - - - - - - - CAIRO_OPERATOR_DEST - (integer) - - - - - - - - - CAIRO_OPERATOR_DEST_OVER - (integer) - - - - - - - - - CAIRO_OPERATOR_DEST_IN - (integer) - - - - - - - - - CAIRO_OPERATOR_DEST_OUT - (integer) - - - - - - - - - CAIRO_OPERATOR_DEST_ATOP - (integer) - - - - - - - - - CAIRO_OPERATOR_XOR - (integer) - - - - - - - - - CAIRO_OPERATOR_ADD - (integer) - - - - - - - - - CAIRO_OPERATOR_SATURATE - (integer) - - - - - - - - - CAIRO_PATTERN_TYPE_SOLID - (integer) - - - - - - - - - CAIRO_PATTERN_TYPE_SURFACE - (integer) - - - - - - - - - CAIRO_PATTERN_TYPE_LINEAR - (integer) - - - - - - - - - CAIRO_PATTERN_TYPE_RADIAL - (integer) - - - - - - - - - CAIRO_EXTEND_NONE - (integer) - - - - - - - - - CAIRO_EXTEND_REPEAT - (integer) - - - - - - - - - CAIRO_EXTEND_REFLECT - (integer) - - - - - - - - - CAIRO_EXTEND_PAD - (integer) - - - - - - - - - CAIRO_FILTER_FAST - (integer) - - - - - - - - - CAIRO_FILTER_GOOD - (integer) - - - - - - - - - CAIRO_FILTER_BEST - (integer) - - - - - - - - - CAIRO_FILTER_NEAREST - (integer) - - - - - - - - - CAIRO_FILTER_BILINEAR - (integer) - - - - - - - - - CAIRO_FILTER_GAUSSIAN - (integer) - - - - - - - - - CAIRO_HINT_STYLE_DEFAULT - (integer) - - - - - - - - - CAIRO_HINT_STYLE_NONE - (integer) - - - - - - - - - CAIRO_HINT_STYLE_SLIGHT - (integer) - - - - - - - - - CAIRO_HINT_STYLE_MEDIUM - (integer) - - - - - - - - - CAIRO_HINT_STYLE_FULL - (integer) - - - - - - - - - CAIRO_HINT_METRICS_DEFAULT - (integer) - - - - - - - - - CAIRO_HINT_METRICS_OFF - (integer) - - - - - - - - - CAIRO_HINT_METRICS_ON - (integer) - - - - - - - - - CAIRO_FONT_TYPE_TOY - (integer) - - - - - - - - - CAIRO_FONT_TYPE_FT - (integer) - - - - - - - - - CAIRO_FONT_TYPE_WIN32 - (integer) - - - - - - - - - CAIRO_FONT_TYPE_QUARTZ - (integer) - - - - - - - - - CAIRO_FONT_SLANT_NORMAL - (integer) - - - - - - - - - CAIRO_FONT_SLANT_ITALIC - (integer) - - - - - - - - - CAIRO_FONT_SLANT_OBLIQUE - (integer) - - - - - - - - - CAIRO_FONT_WEIGHT_NORMAL - (integer) - - - - - - - - - CAIRO_FONT_WEIGHT_BOLD - (integer) - - - - - - - - - CAIRO_CONTENT_COLOR - (integer) - - - - - - - - - CAIRO_CONTENT_ALPHA - (integer) - - - - - - - - - CAIRO_CONTENT_COLOR_ALPHA - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_IMAGE - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_PDF - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_PS - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_XLIB - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_XCB - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_GLITZ - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_QUARTZ - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_WIN32 - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_BEOS - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_DIRECTFB - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_SVG - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_OS2 - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_WIN32_PRINTING - (integer) - - - - - - - - - CAIRO_SURFACE_TYPE_QUARTZ_IMAGE - (integer) - - - - - - - - - CAIRO_FORMAT_ARGB32 - (integer) - - - - - - - - - CAIRO_FORMAT_RGB24 - (integer) - - - - - - - - - CAIRO_FORMAT_A8 - (integer) - - - - - - - - - CAIRO_FORMAT_A1 - (integer) - - - - - - - - - CAIRO_PS_LEVEL_2 - (integer) - - - - - - - - - CAIRO_PS_LEVEL_3 - (integer) - - - - - - - - - CAIRO_SVG_VERSION_1_1 - (integer) - - - - - - - - - CAIRO_SVG_VERSION_1_2 - (integer) - - - - - - - - - - - - diff --git a/reference/cairo/examples.xml b/reference/cairo/examples.xml deleted file mode 100644 index 4c9d815506..0000000000 --- a/reference/cairo/examples.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - &reftitle.examples; - - Description here... - - - Cairo Example - - -]]> - - &example.outputs.similar; - - - - - - - - diff --git a/reference/cairo/reference.xml b/reference/cairo/reference.xml deleted file mode 100644 index 617316dfed..0000000000 --- a/reference/cairo/reference.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - Cairo &Functions; - - &reference.cairo.entities.functions; - - - - - diff --git a/reference/cairo/setup.xml b/reference/cairo/setup.xml deleted file mode 100644 index 06c3082893..0000000000 --- a/reference/cairo/setup.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - &reftitle.setup; - -
- &reftitle.required; - - Cairo は PHP 5.2+ および PHP 5.3+ でしか動作しません。 - また、cairo グラフィックスライブラリのバージョン 1.4 以降が必要です。 - cairo グラフィックスライブラリは、偶数バージョンが安定版で奇数バージョンが開発版を表します。 - どちらの版を使ってもかまいませんが、開発版を使っている場合でも - その一つ前の安定版がサポートする機能にしか対応しません。 - cairo の最新リリースは &url.cairo; にあります。 - - - The binary files used for the windows compiles can be found at - &url.cairo.dl; along with the project - files used to create them. - -
- -
- &reftitle.install; - - &pecl.info; - &url.pecl.package;cairo - - - &pecl.windows.download; - - - Windows でのインストールに関する注意 - - - この拡張モジュールのバイナリ版は - &url.cairo.dl; にあります。 - 適切な zip ファイルをダウンロードして php_cairo.dll - を拡張モジュールのディレクトリに置き、php.ini で有効にしましょう。 - PHP のマイナーバージョン (5.2、5.3)、スレッドセーフか非スレッドセーフか - (TS、NTS)、アーキテクチャ (x86、x64)、そしてコンパイラのバージョン - (VC6、VC9) を PHP と合わせないと、拡張モジュールはロードできません。 - -
- - -
- &reftitle.runtime; - &no.config; -
- - -
- &reftitle.resources; - &no.resource; -
- -
- - - diff --git a/reference/calendar/book.xml b/reference/calendar/book.xml index b428dad2fd..0bea7fc00b 100644 --- a/reference/calendar/book.xml +++ b/reference/calendar/book.xml @@ -11,7 +11,7 @@ &reftitle.intro; - カレンダーエクステンションは異なったカレンダーフォーマット間の変換処理をシンプルにする関数の集まりです。標準としているのは、ユリウス積算日です。 + カレンダー拡張モジュールは異なったカレンダーフォーマット間の変換処理をシンプルにする関数の集まりです。標準としているのは、ユリウス積算日です。 ユリウス積算日は、紀元前 4713 年 1 月 1 日から数え始められています。 複数のカレンダーシステム間の変換を行うには、ユリウス積算日に変換した後 に選択したカレンダーシステムに変換しなければなりません。 diff --git a/reference/calendar/constants.xml b/reference/calendar/constants.xml index 03933762f2..841cf31c78 100644 --- a/reference/calendar/constants.xml +++ b/reference/calendar/constants.xml @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - CAL_EASTER_DEFAULT - (integer) + CAL_EASTER_DEFAULT + (int) @@ -21,8 +21,8 @@ - CAL_EASTER_ROMAN - (integer) + CAL_EASTER_ROMAN + (int) @@ -33,8 +33,8 @@ - CAL_EASTER_ALWAYS_GREGORIAN - (integer) + CAL_EASTER_ALWAYS_GREGORIAN + (int) @@ -45,8 +45,8 @@ - CAL_EASTER_ALWAYS_JULIAN - (integer) + CAL_EASTER_ALWAYS_JULIAN + (int) @@ -57,8 +57,8 @@ - CAL_GREGORIAN - (integer) + CAL_GREGORIAN + (int) @@ -70,8 +70,8 @@ - CAL_JULIAN - (integer) + CAL_JULIAN + (int) @@ -83,8 +83,8 @@ - CAL_JEWISH - (integer) + CAL_JEWISH + (int) @@ -96,8 +96,8 @@ - CAL_FRENCH - (integer) + CAL_FRENCH + (int) @@ -109,8 +109,8 @@ - CAL_NUM_CALS - (integer) + CAL_NUM_CALS + (int) @@ -121,7 +121,7 @@ CAL_JEWISH_ADD_ALAFIM_GERESH - (integer) + (int) @@ -133,7 +133,7 @@ CAL_JEWISH_ADD_ALAFIM - (integer) + (int) @@ -145,7 +145,7 @@ CAL_JEWISH_ADD_GERESHAYIM - (integer) + (int) @@ -156,20 +156,20 @@ - CAL_DOW_DAYNO - (integer) + CAL_DOW_DAYNO + (int) - jddayofweek で、曜日を integer で返す。 + jddayofweek で、曜日を int で返す。 0 は日曜を、6 は土曜を意味する。 - CAL_DOW_SHORT - (integer) + CAL_DOW_SHORT + (int) @@ -179,8 +179,8 @@ - CAL_DOW_LONG - (integer) + CAL_DOW_LONG + (int) @@ -190,8 +190,8 @@ - CAL_MONTH_GREGORIAN_SHORT - (integer) + CAL_MONTH_GREGORIAN_SHORT + (int) @@ -201,8 +201,8 @@ - CAL_MONTH_GREGORIAN_LONG - (integer) + CAL_MONTH_GREGORIAN_LONG + (int) @@ -212,8 +212,8 @@ - CAL_MONTH_JULIAN_SHORT - (integer) + CAL_MONTH_JULIAN_SHORT + (int) @@ -223,8 +223,8 @@ - CAL_MONTH_JULIAN_LONG - (integer) + CAL_MONTH_JULIAN_LONG + (int) @@ -234,8 +234,8 @@ - CAL_MONTH_JEWISH - (integer) + CAL_MONTH_JEWISH + (int) @@ -245,8 +245,8 @@ - CAL_MONTH_FRENCH - (integer) + CAL_MONTH_FRENCH + (int) @@ -256,7 +256,6 @@ - - + - + cal_from_jd ユリウス積算日からサポートされるカレンダーに変換する @@ -12,12 +12,12 @@ &reftitle.description; arraycal_from_jd - intjd + intjulian_day intcalendar cal_from_jd は、 - jd で指定したユリウス日を + julian_day で指定したユリウス日を 指定した calendar に変換します。 サポートされる calendar の値は、 CAL_GREGORIAN、 @@ -32,7 +32,7 @@ - jd + julian_day ユリウス日を表す整数値。 @@ -110,7 +110,6 @@ Array - - + easter_date - 指定した年における復活祭の真夜中のUnix時を得る + 指定した年におけるローカルの復活祭の真夜中のUnix時を得る &reftitle.description; inteaster_date - intyeardate("Y") - intmethodCAL_EASTER_DEFAULT + intnullyear&null; + intmodeCAL_EASTER_DEFAULT 指定した年yearにおける復活祭の真夜中のUnix時を返します。 - - - この関数は、年がUnixタイムスタンプの範囲を越える時 - (すなわち、32bitシステムでは通常1970より前、または2037より後)に警告を発生させます。 - - 復活祭の日付は、西暦325年の Nicaea 会議で春分の日の後の 最初の満月の後の日曜日として定められました。 @@ -47,18 +41,23 @@ year - 1970 から 2037 までの年。省略した場合は、ローカルタイムにおける現在の年を使います。 + 年の値。32ビットのシステムでは、 + 1970 から 2037 までである必要があります。 + 64ビットのシステムでは、 + 1970 から 2,000,000,000 までである必要があります。 + 省略した場合、もしくは &null; の場合は、 + デフォルトとしてローカルタイムにおける現在の年を使います。 - method + mode CAL_EASTER_ALWAYS_JULIAN を設定すると、 ユリウス暦のカレンダをベースにして復活祭の日付が計算できます。 calendar の定数 を参照してください。 + linkend="calendar.constants">calendar の定数 を参照ください。 @@ -73,6 +72,55 @@ + + &reftitle.errors; + + 32ビットのシステムでは、year の値が 1970 より前か 2037 より後の場合、 + ValueError がスローされます。 + 64ビットのシステムでは、year の値が 1970 より前か 2,000,000,000 より後の場合、 + ValueError がスローされます。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + 64ビットのシステムでは、 + year の値として + 1970 から 2,000,000,000 までの値を受け入れるようになりました。 + + + + 8.0.0 + + year は、nullable になりました。 + + + + 8.0.0 + + year が範囲外の値の場合、 + ValueError がスローされるようになりました。 + これより前のバージョンでは、 + E_WARNING が発生して &false; を返していました。 + + + + + + + &reftitle.examples; @@ -86,6 +134,21 @@ echo date("M-d-Y", easter_date(1999)); // Apr-04-1999 echo date("M-d-Y", easter_date(2000)); // Apr-23-2000 echo date("M-d-Y", easter_date(2001)); // Apr-15-2001 +?> +]]> + + + + + <function>easter_date</function> を <classname>DateTime</classname> と一緒に使う + +setTimestamp($timestamp); +echo $datetime->format('M-d-Y'); // Apr-09-2023 + ?> ]]> @@ -154,7 +217,6 @@ Easter in 2015 is on April 5 - - + + easter_days @@ -11,8 +12,8 @@ &reftitle.description; inteaster_days - intyeardate("Y") - intmethodCAL_EASTER_DEFAULT + intnullyear&null; + intmodeCAL_EASTER_DEFAULT 指定した年 year において、3 月 21 日から復活祭までの日数を返します。 @@ -46,12 +47,13 @@ year - 正の数値で表した年。省略した場合は、ローカルタイムにおける現在の年を使います。 + 正の数値で表した年。省略した場合、もしくは &null; の場合は、 + ローカルタイムにおける現在の年を使います。 - method + mode CAL_EASTER_ROMAN に設定すると @@ -72,6 +74,28 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + year は、nullable になりました。 + + + + + + + &reftitle.examples; @@ -101,7 +125,6 @@ echo easter_days(1913); // 2, i.e. March 23 - - + jddayofweek @@ -10,9 +10,9 @@ &reftitle.description; - mixedjddayofweek - intjulianday - intmodeCAL_DOW_DAYNO + intstringjddayofweek + intjulian_day + intmodeCAL_DOW_DAYNO 曜日を返します。 @@ -25,7 +25,7 @@ - julianday + julian_day ユリウス積算日を表す整数値。 @@ -79,7 +79,6 @@ - - + @@ -12,7 +12,7 @@ &reftitle.description; stringjdmonthname - intjulianday + intjulian_day intmode @@ -53,7 +53,7 @@ CAL_MONTH_JEWISH ユダヤ暦 - Tishri, Heshvan, Kislev, Tevet, Shevat, AdarI, AdarII, Nisan, Iyyar, Sivan, Tammuz, Av, Elul + Tishri, Heshvan, Kislev, Tevet, Shevat, Adar, Adar I, Adar II, Nisan, Iyyar, Sivan, Tammuz, Av, Elul CAL_MONTH_FRENCH @@ -99,7 +99,6 @@ - - + jdtofrench @@ -10,7 +10,7 @@ &reftitle.description; stringjdtofrench - intjuliandaycount + intjulian_day ユリウス積算日をフランス革命暦に変換します。 @@ -22,7 +22,7 @@ - julianday + julian_day ユリウス積算日を表す整数値。 @@ -50,7 +50,6 @@ - - + jdtogregorian @@ -10,7 +10,7 @@ &reftitle.description; stringjdtogregorian - intjulianday + intjulian_day ユリウス積算日を "月/日/年" の形式でグレゴリウス日を含む文字列に変換します。 @@ -22,7 +22,7 @@ - julianday + julian_day ユリウス積算日を表す整数値。 @@ -50,7 +50,6 @@ - - + @@ -11,9 +11,9 @@ &reftitle.description; stringjdtojewish - intjuliandaycount + intjulian_day boolhebrew&false; - intfl0 + intflags0 ユリウス積算日をユダヤ暦に変換します。 @@ -25,7 +25,7 @@ - julianday + julian_day ユリウス積算日を表す整数値。 @@ -37,13 +37,13 @@ パラメータ hebrew が &true; に設定されている場合、 - ヘブライ語の ISO-8859-8 ベースの文字列形式での出力のために fl + ヘブライ語の ISO-8859-8 ベースの文字列形式での出力のために flags が使用されます。 - fl + flags 組み合わせ可能なビットマスクは @@ -105,8 +105,6 @@ echo jdtojewish($jd, true), PHP_EOL, - - - + jdtojulian @@ -11,7 +11,7 @@ &reftitle.description; stringjdtojulian - intjulianday + intjulian_day ユリウス積算日を "月/日/年" の形式でユリウス暦を含む文字列に変換します。 @@ -23,7 +23,7 @@ - julianday + julian_day ユリウス積算日を表す整数値。 @@ -51,7 +51,6 @@ - - + @@ -12,15 +12,12 @@ &reftitle.description; intjdtounix - intjday + intjulian_day - この関数は、jday で指定したユリウス歴に + この関数は、julian_day で指定したユリウス歴に 対応する Unix タイムスタンプを返します。 - jday が Unix 歴 - (グレゴリウス歴で 1970 年と 2037 年の間 - または 2440588 <= jday <= 2465342) - の範囲外の場合は &false; を返します。返される時刻はUTCです + 返される時刻はUTCです。 @@ -29,10 +26,11 @@ - jday + julian_day - 2440588 から 2465342 までのユリウス積算日。 + 64bit のシステムでは、2440588 から 106751993607888 までのユリウス積算日。 + 32bit のシステムでは、2440588 から 2465443 までの値です。 @@ -47,6 +45,45 @@ + + &reftitle.errors; + + julian_day が範囲外の値の場合、 + ValueError がスローされます。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数は、失敗時に &false; を返さなくなりました。 + 代わりに ValueError をスローするようになっています。 + + + + 7.3.24, 7.4.12 + + julian_day の上限が拡張されました。 + これより前のバージョンでは、アーキテクチャに関わらず、 + 2465342 が上限でした。 + + + + + + + &reftitle.seealso; @@ -56,7 +93,6 @@ - - + @@ -11,8 +11,8 @@ &reftitle.description; - intunixtojd - inttimestamptime() + intfalseunixtojd + intnulltimestamp&null; Unix タイムスタンプ(1970/1/1 からの秒数)timestamp @@ -42,9 +42,32 @@ &reftitle.returnvalues; ユリウス積算日を表す整数値を返します。 + &return.falseforfailure; + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + timestamp は、nullable になりました。 + + + + + + + &reftitle.seealso; @@ -54,7 +77,6 @@ - - + &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- - &reference.calendar.configure; - -
- &reftitle.runtime; - &no.config; -
- - - -
- &reftitle.resources; - &no.resource; -
- -
- - - - Constant hash database - chdb - - - &reftitle.intro; - - CHDB (constant hash database) は、高速に動作する KVS (Key Value Store) 方式のデータベースで、一度作成したらデータを更新することは出来ません。メモリマップファイルを使っていることが知られており、そのため以下の機能を持っています。 - - - - データベースのサイズに関わらず、最初のデータの読み込みが非常に高速です。 - - - - - 実際に使われるファイルに対応したページのみがディスクから読み出されます。 - - - - - 一度ページがロードされると、複数のプロセスから共有されます。 - - - - - 読み込まれたページは複数のプロセスにまたがってキャッシュされます。これはプロセスが再利用される時でも同じです。 - - - - - - たくさんの定数をPHPで定義するかわりに CHDB を使うのが典型的な使い方です。 - - - CHDB は、内部的には 完全ハッシュ関数 を使った ハッシュテーブル として実装されています。よって、最悪でも O(1) の検索時間で済むことを保証しています。 - - - - &reference.chdb.setup; - &reference.chdb.constants; - &reference.chdb.examples; - &reference.chdb.chdb; - &reference.chdb.reference; - - - - diff --git a/reference/chdb/chdb.xml b/reference/chdb/chdb.xml deleted file mode 100644 index a5d459d493..0000000000 --- a/reference/chdb/chdb.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - chdb クラス - chdb - - - - -
- &reftitle.intro; - - 読み込まれた chdb ファイルを表現します。 - -
- - -
- &reftitle.classsynopsis; - - - - chdb - - - - - chdb - - - - - メソッド - - - - -
- -
- - &reference.chdb.entities.chdb; - -
- - diff --git a/reference/chdb/chdb/construct.xml b/reference/chdb/chdb/construct.xml deleted file mode 100644 index 87ece0d01a..0000000000 --- a/reference/chdb/chdb/construct.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - chdb::__construct - chdb クラスのインスタンスを生成します。 - - - - &reftitle.description; - - public chdb::__construct - stringpathname - - - chdb のファイルをメモリにマップすることによって読み込みます。 - - -指定されたファイルに対して中身が正しいかがチェックされます。これはありがちな間違い(たとえば、chdb でないファイルを読み込んだり、どういうわけか今動いている chdb と互換性がなかったりする場合)を起こす可能性を避けるためのものです。悪意があるユーザーが細工した chdb ファイルを読み込むと危険な場合があるため、chdb ファイルは PHP の共有ライブラリに対して用いられるセキュリティ設定と同程度にしか信頼してはいけませんし、そのように扱うべきです。 - - - - - - - &reftitle.parameters; - - - pathname - - - 読み込むファイル名 - - - - - - - - &reftitle.errors; - - chdb ファイルの読み込みに失敗した場合は例外がスローされます。 - - - -正しい chdb ファイルであっても、異なったエンディアンを採用するアーキテクチャ上で作成したり、異なるバージョンの chdb で作成したものは読み込みに失敗する場合があります。また、chdb ファイルが巨大すぎてメモリにマップできない場合(ほとんどの場合は、32bit アーキテクチャと巨大なファイルの組み合わせです)も同様です。これらの場合は、例外をスローして読み込みが失敗するでしょう。それ以外の場合でも、不正な操作を行った場合はあらゆる場合に例外がスローされます。 - - - - - - - - diff --git a/reference/chdb/chdb/get.xml b/reference/chdb/chdb/get.xml deleted file mode 100644 index 707ac255b6..0000000000 --- a/reference/chdb/chdb/get.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - chdb::get - キーに対応した値を取得する - - - - &reftitle.description; - - public stringchdb::get - stringkey - - - chdb データベースから、キーに対応した値を取得します。 - - - - - &reftitle.parameters; - - - key - - - 値を取得するためのキー - - - - - - - - &reftitle.returnvalues; - - 与えられた key に対応した値を含む文字列を返します。対応する値が見つからなかった場合は &null; を返します。 - - - - - &reftitle.examples; - - <function>chdb::get</function> の例 - - 'value1', - 'key2' => 'value2', - // ... -); -chdb_create('data.chdb', $data); - -$chdb = new chdb('data.chdb'); -$value1 = $chdb->get('key1'); -$value2 = $chdb->get('key2'); - -echo $value1, PHP_EOL; -echo $value2, PHP_EOL; - -?> -]]> - - &example.outputs.similar; - - - - - - - - - - diff --git a/reference/chdb/configure.xml b/reference/chdb/configure.xml deleted file mode 100644 index 58fcfda3d5..0000000000 --- a/reference/chdb/configure.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - -
- &reftitle.install; - - - &pecl.info; - &url.pecl.package;chdb - - - - このエクステンションをインストールするには、cmph - (バージョン 0.9) が必要です。もし、cmph が標準外のディレクトリにインストールされた場合、 - スイッチを使用してください。 - その DIR は cmph インストール・プレフィックスです。 - - -
- - - diff --git a/reference/chdb/constants.xml b/reference/chdb/constants.xml deleted file mode 100644 index 38ec197372..0000000000 --- a/reference/chdb/constants.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - &reftitle.constants; - &no.constants; - - - diff --git a/reference/chdb/examples.xml b/reference/chdb/examples.xml deleted file mode 100644 index 064a376e6b..0000000000 --- a/reference/chdb/examples.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - &reftitle.examples; - - chdb ファイルを作成 - - 'value1', - 'key2' => 'value2', - // ... -); -chdb_create('data.chdb', $data); - -?> -]]> - - - 上の例では、 data.chdb という名前の、 - $data で定義されたキーパリューペアを含む chdb ファイルを生成します。 - - - - chdb ファイルを読み込んで検索 - -get('key1'); -$value2 = $chdb->get('key2'); - -echo $value1, PHP_EOL; -echo $value2, PHP_EOL; - -?> -]]> - - &example.outputs.similar; - - - - - - - diff --git a/reference/chdb/functions/chdb-create.xml b/reference/chdb/functions/chdb-create.xml deleted file mode 100644 index 0144c30365..0000000000 --- a/reference/chdb/functions/chdb-create.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - chdb_create - chdb ファイルを作成する - - - - &reftitle.description; - - boolchdb_create - stringpathname - arraydata - - - chdb_create 関数は、特定のキーと値のペアを含む chdb ファイルを作成します。 - - - -エンディアンが異なる環境で作られた chdb ファイルは移植性がありません。それを除けば、異なるアーキテクチャ上であっても移植性があります。また、バージョンが異なる chdb 間の互換性は保証されません。 - - - - - - &reftitle.parameters; - - - pathname - - - 作成する chdb のファイルパス名 - - - 指定されたパスと同じファイルが既にある場合は上書きされます。 - - - - - data - - - chdb ファイルに格納するキーと値のペアを含んだ配列 - - - キーと値はファイルに書き出される前に文字列に変換されます。これは chdb が文字列型しかサポートしていないからです。キーにも値にも、バイナリ文字列を使えることに注意してください。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.errors; - - chdb ファイルの作成に失敗した場合は例外がスローされます - - - - - &reftitle.examples; - - <function>chdb_create</function> の例 - - 'value1', - 'key2' => 'value2', - // ... -); -chdb_create('data.chdb', $data); - -?> -]]> - - - 上の例は data.chdb という名前の chdb ファイルを生成します。このファイルには $data に定義されたキーと値のペアが含まれています。 - - - - - - - - diff --git a/reference/chdb/reference.xml b/reference/chdb/reference.xml deleted file mode 100644 index b3205ffa96..0000000000 --- a/reference/chdb/reference.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - chdb &Functions; - - &reference.chdb.entities.functions; - - - - diff --git a/reference/chdb/setup.xml b/reference/chdb/setup.xml deleted file mode 100644 index dd334f3b4f..0000000000 --- a/reference/chdb/setup.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - &reftitle.setup; - -
- &reftitle.required; - - このモジュールは、完全ハッシュ - 関数を提供するために cmph - (バージョン 0.9) を使用します。 - - - このモジュールをインストールするには、cmph 0.9 が必要です。 - -
- - - &reference.chdb.configure; - - -
- &reftitle.runtime; - &no.config; -
- -
- &reftitle.resources; - &no.resource; -
- -
- - diff --git a/reference/classkit/book.xml b/reference/classkit/book.xml deleted file mode 100644 index 233ce56b15..0000000000 --- a/reference/classkit/book.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Classkit - - - &reftitle.intro; - - これらの関数は、PHP クラスの動的な操作を実行時に行います。 - - - - この拡張モジュールは - runkit に置き換えられ、 - クラスの操作だけでなく関数の操作も同様に可能となっています。 - - - - - &reference.classkit.setup; - &reference.classkit.constants; - &reference.classkit.reference; - - - - - diff --git a/reference/classkit/configure.xml b/reference/classkit/configure.xml deleted file mode 100644 index e247b593d4..0000000000 --- a/reference/classkit/configure.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - -
- &reftitle.install; - - &pecl.info.dead; - &url.pecl.vcs;classkit. - -
- - - diff --git a/reference/classkit/constants.xml b/reference/classkit/constants.xml deleted file mode 100644 index 5ac834ac24..0000000000 --- a/reference/classkit/constants.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - &reftitle.constants; - &extension.constants; - - - - - CLASSKIT_ACC_PRIVATE - (int) - - - - メソッドを private としてマークする - - - - - - CLASSKIT_ACC_PROTECTED - (int) - - - - メソッドを protected としてマークする - - - - - - CLASSKIT_ACC_PUBLIC - (int) - - - - メソッドを public としてマークする - - - - - - - diff --git a/reference/classkit/functions/classkit-import.xml b/reference/classkit/functions/classkit-import.xml deleted file mode 100644 index 5b27990028..0000000000 --- a/reference/classkit/functions/classkit-import.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - classkit_import - 新しいクラスメソッドの定義をファイルから読み込む - - - &reftitle.description; - - arrayclasskit_import - stringfilename - - ¬e.classkit.selfmanipulation; - &warn.experimental.func; - - - &reftitle.parameters; - - - - filename - - - クラスメソッドが定義されているファイルの名前。 - - - - - - - - &reftitle.returnvalues; - - 読み込まれたメソッドの連想配列を返します。 - - - - - &reftitle.examples; - - - <function>classkit_import</function> の例 - - -]]> - - -foo(); - -// 置き換えるメソッドの読み込み -classkit_import('newclass.php'); - -// 置き換えられたメソッドの出力 -echo $e->foo(); - -?> -]]> - - &example.outputs; - - - - - - - - - &reftitle.seealso; - - - classkit_method_add - classkit_method_copy - - - - - - diff --git a/reference/classkit/functions/classkit-method-add.xml b/reference/classkit/functions/classkit-method-add.xml deleted file mode 100644 index c74440dc87..0000000000 --- a/reference/classkit/functions/classkit-method-add.xml +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - classkit_method_add - 指定したクラスに、新しいメソッドを動的に追加する - - - &reftitle.description; - - boolclasskit_method_add - stringclassname - stringmethodname - stringargs - stringcode - intflagsCLASSKIT_ACC_PUBLIC - - &warn.experimental.func; - - - &reftitle.parameters; - - - - classname - - - メソッドを追加するクラスの名前。 - - - - - methodname - - - 追加するメソッドの名前。 - - - - - args - - - カンマで区切った、新しいメソッドの引数。 - - - - - code - - - methodname がコールされた際に - 評価されるコード。 - - - - - flags - - - 作成するメソッドの型。 - CLASSKIT_ACC_PUBLIC、 - CLASSKIT_ACC_PROTECTED あるいは - CLASSKIT_ACC_PRIVATE のいずれか。 - - - - このパラメータは PHP 5 以降でのみ使用されます。なぜなら、それ以前の - バージョンでは全てのメソッドが public だからです。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>classkit_method_add</function> の例 - -add(12, 4); -?> -]]> - - &example.outputs; - - - - - - - - &reftitle.seealso; - - - classkit_method_copy - classkit_method_redefine - classkit_method_remove - classkit_method_rename - create_function - - - - - - diff --git a/reference/classkit/functions/classkit-method-copy.xml b/reference/classkit/functions/classkit-method-copy.xml deleted file mode 100644 index b3c134b115..0000000000 --- a/reference/classkit/functions/classkit-method-copy.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - classkit_method_copy - あるクラスのメソッドを別のクラスにコピーする - - - &reftitle.description; - - boolclasskit_method_copy - stringdClass - stringdMethod - stringsClass - stringsMethod - - &warn.experimental.func; - - - &reftitle.parameters; - - - - dClass - - - メソッドのコピー先のクラス。 - - - - - dMethod - - - コピー先のメソッド名。 - - - - - sClass - - - メソッドのコピー元のクラス。 - - - - - sMethod - - - 元のクラスからコピーするメソッドの名前。指定されなかった場合は - dMethod と同じであるとみなされます。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>classkit_method_copy</function> の例 - - -]]> - - &example.outputs; - - - - - - - - &reftitle.seealso; - - - classkit_method_add - classkit_method_redefine - classkit_method_remove - classkit_method_rename - - - - - - diff --git a/reference/classkit/functions/classkit-method-redefine.xml b/reference/classkit/functions/classkit-method-redefine.xml deleted file mode 100644 index 0a39df32cd..0000000000 --- a/reference/classkit/functions/classkit-method-redefine.xml +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - classkit_method_redefine - 指定されたメソッドのコードを動的に変更する - - - &reftitle.description; - - boolclasskit_method_redefine - stringclassname - stringmethodname - stringargs - stringcode - intflagsCLASSKIT_ACC_PUBLIC - - ¬e.classkit.selfmanipulation; - &warn.experimental.func; - - - &reftitle.parameters; - - - - classname - - - メソッドを再定義するクラス。 - - - - - methodname - - - 再定義するメソッドの名前。 - - - - - args - - - カンマで区切られた、再定義後のメソッドの引数。 - - - - - code - - - methodname がコールされた際に - 評価される、新しいコード。 - - - - - flags - - - 再定義するメソッドの型。 - CLASSKIT_ACC_PUBLIC、 - CLASSKIT_ACC_PROTECTED あるいは - CLASSKIT_ACC_PRIVATE のいずれか。 - - - - このパラメータは PHP 5 以降でのみ使用されます。なぜなら、それ以前の - バージョンでは全てのメソッドが public だからです。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>classkit_method_redefine</function> の例 - -foo(); - -// 'foo' メソッドの再定義 -classkit_method_redefine( - 'Example', - 'foo', - '', - 'return "bar!\n";', - CLASSKIT_ACC_PUBLIC -); - -// Example::foo() の出力(再定義後) -echo "After: " . $e->foo(); -?> -]]> - - &example.outputs; - - - - - - - - &reftitle.seealso; - - - classkit_method_add - classkit_method_copy - classkit_method_remove - classkit_method_rename - - - - - - diff --git a/reference/classkit/functions/classkit-method-remove.xml b/reference/classkit/functions/classkit-method-remove.xml deleted file mode 100644 index baa1faa28e..0000000000 --- a/reference/classkit/functions/classkit-method-remove.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - classkit_method_remove - 指定したメソッドを動的に削除する - - - &reftitle.description; - - boolclasskit_method_remove - stringclassname - stringmethodname - - ¬e.classkit.selfmanipulation; - &warn.experimental.func; - - - &reftitle.parameters; - - - - classname - - - メソッドを削除するクラス。 - - - - - methodname - - - 削除するメソッドの名前。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>classkit_method_remove</function> の例 - - -]]> - - &example.outputs; - - - - - - - - &reftitle.seealso; - - - classkit_method_add - classkit_method_copy - classkit_method_redefine - classkit_method_rename - - - - - - diff --git a/reference/classkit/functions/classkit-method-rename.xml b/reference/classkit/functions/classkit-method-rename.xml deleted file mode 100644 index d79b282292..0000000000 --- a/reference/classkit/functions/classkit-method-rename.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - classkit_method_rename - 指定したメソッドの名前を動的に変更する - - - &reftitle.description; - - boolclasskit_method_rename - stringclassname - stringmethodname - stringnewname - - ¬e.classkit.selfmanipulation; - &warn.experimental.func; - - - &reftitle.parameters; - - - - classname - - - メソッド名を変更するクラス。 - - - - - methodname - - - 変更するメソッドの名前。 - - - - - newname - - - 変更後のメソッドの名前。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>classkit_method_rename</function> の例 - - -]]> - - &example.outputs; - - - - - - - - &reftitle.seealso; - - - classkit_method_add - classkit_method_copy - classkit_method_redefine - classkit_method_remove - - - - - - diff --git a/reference/classkit/ini.xml b/reference/classkit/ini.xml deleted file mode 100644 index 456bb7e837..0000000000 --- a/reference/classkit/ini.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - -
- &reftitle.runtime; - &no.config; -
- - \ No newline at end of file diff --git a/reference/classkit/reference.xml b/reference/classkit/reference.xml deleted file mode 100644 index 983faa52b7..0000000000 --- a/reference/classkit/reference.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - Classkit &Functions; - - &reference.classkit.entities.functions; - - - - - diff --git a/reference/classkit/setup.xml b/reference/classkit/setup.xml deleted file mode 100644 index 2bbf1a5163..0000000000 --- a/reference/classkit/setup.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- - &reference.classkit.configure; - - &reference.classkit.ini; - -
- &reftitle.resources; - &no.resource; -
- -
- - - diff --git a/reference/classobj/book.xml b/reference/classobj/book.xml index 4d445770b6..679cb08763 100644 --- a/reference/classobj/book.xml +++ b/reference/classobj/book.xml @@ -1,6 +1,6 @@ - + @@ -23,8 +23,6 @@
- &reference.classobj.setup; - &reference.classobj.constants; &reference.classobj.examples; &reference.classobj.reference; diff --git a/reference/classobj/constants.xml b/reference/classobj/constants.xml deleted file mode 100644 index 81b0d9bca9..0000000000 --- a/reference/classobj/constants.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - &reftitle.constants; - &no.constants; - - - - diff --git a/reference/classobj/examples.xml b/reference/classobj/examples.xml index 750532789a..8d64e780c6 100644 --- a/reference/classobj/examples.xml +++ b/reference/classobj/examples.xml @@ -1,6 +1,6 @@ - + @@ -8,62 +8,66 @@ &reftitle.examples; この例では、まず基底クラスおよびそのクラスの派生クラスを定義します。 - 基底クラスは食用か否か、色とかいった、一般的な野菜を記述します。 + 基底クラスは食用かどうか、色とかいった、一般的な野菜を記述します。 サブクラス Spinach は、 その野菜の料理法と調理済であるかどうかの情報を追加します。 - classes.inc + クラスの定義 + Vegetable edible = $edible; - $this->color = $color; - } + public function __construct($edible, $color = "green") + { + $this->edible = $edible; + $this->color = $color; + } - function is_edible() - { - return $this->edible; - } + public function isEdible() + { + return $this->edible; + } - function what_color() - { - return $this->color; - } - -} // クラスVegetableの終り - -// 基底クラスを拡張する -class Spinach extends Vegetable { - - var $cooked = false; - - function __construct() - { - parent::__construct(true, "green"); - } + public function getColor() + { + return $this->color; + } +} - function cook_it() - { - $this->cooked = true; - } +?> +]]> + + Spinach + +cooked; - } - -} // クラスSpinachの終り +class Spinach extends Vegetable { + public $cooked = false; + + public function __construct() + { + parent::__construct(true, "green"); + } + + public function cook() + { + $this->cooked = true; + } + + public function isCooked() + { + return $this->cooked; + } +} ?> ]]> @@ -81,78 +85,88 @@ class Spinach extends Vegetable { test_script.php $val) { - echo "\t$prop = $val\n"; -} + foreach (get_object_vars($obj) as $prop => $val) { + echo "\t$prop = $val\n"; + } } -function print_methods($obj) +function printMethods($obj) { -$arr = get_class_methods(get_class($obj)); -foreach ($arr as $method) { - echo "\tfunction $method()\n"; -} + $arr = get_class_methods(get_class($obj)); + foreach ($arr as $method) { + echo "\tfunction $method()\n"; + } } -function class_parentage($obj, $class) +function objectBelongsTo($obj, $class) { -if (is_subclass_of($GLOBALS[$obj], $class)) { - echo "Object $obj belongs to class " . get_class($GLOBALS[$obj]); - echo ", a subclass of $class\n"; -} else { - echo "Object $obj does not belong to a subclass of $class\n"; + if (is_subclass_of($obj, $class)) { + echo "Object belongs to class " . get_class($obj); + echo ", a subclass of $class\n"; + } else { + echo "Object does not belong to a subclass of $class\n"; + } } -} - -// 二つのオブジェクトのインスタンスを作成 +// 2つのオブジェクトをインスタンス化する $veggie = new Vegetable(true, "blue"); $leafy = new Spinach(); -// オブジェクトに関する情報を出力 +// オブジェクトの情報を出力 echo "veggie: CLASS " . get_class($veggie) . "\n"; echo "leafy: CLASS " . get_class($leafy); echo ", PARENT " . get_parent_class($leafy) . "\n"; -// veggieのプロパティを表示 +// 変数 veggie のプロパティを表示 echo "\nveggie: Properties\n"; -print_vars($veggie); +printProperties($veggie); -// そしてleafyのメソッドを表示 +// 変数 leafy のメソッドも表示 echo "\nleafy: Methods\n"; -print_methods($leafy); +printMethods($leafy); echo "\nParentage:\n"; -class_parentage("leafy", "Spinach"); -class_parentage("leafy", "Vegetable"); +objectBelongsTo($leafy, Spinach::class); +objectBelongsTo($leafy, Vegetable::class); + ?> - ]]> - - 注意すべき大事な点ですが、上記の例ではオブジェクト - $leafyは - Vegetableのサブクラスであるクラス - Spinachのインスタンスであり、 - このスクリプトの最後の部分は以下のような出力となります。 - + &examples.outputs; + + 注意すべき大事な点ですが、上記の例ではオブジェクト + $leafy は + Vegetable のサブクラスであるクラス + Spinach のインスタンスです。 + diff --git a/reference/classobj/functions/autoload.xml b/reference/classobj/functions/autoload.xml index d8e3361cbf..2d4d012774 100644 --- a/reference/classobj/functions/autoload.xml +++ b/reference/classobj/functions/autoload.xml @@ -1,6 +1,7 @@ - + + @@ -9,7 +10,7 @@ - &warn.deprecated.feature-7-2-0; + &warn.deprecated.function-7-2-0.removed-8-0-0; diff --git a/reference/classobj/functions/call-user-method-array.xml b/reference/classobj/functions/call-user-method-array.xml deleted file mode 100644 index 13a010ff03..0000000000 --- a/reference/classobj/functions/call-user-method-array.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - call_user_method_array - パラメータの配列を指定してユーザーメソッドをコールする - - - - &warn.deprecated.function.4-1-0.removed.7-0-0.alternatives; - - call_user_func_array - - - - - &reftitle.description; - - mixedcall_user_method_array - stringmethod_name - objectobj - arrayparams - - - - &reftitle.parameters; - - - - method_name - - - コールするメソッド名。 - - - - - - obj - - - - コールする method_name - があるオブジェクト。 - - - - - - params - - - - パラメータの配列。 - - - - - - - - - &reftitle.examples; - - - <function>call_user_method_array</function> の代替策 - - -]]> - - - - - - &reftitle.seealso; - - - call_user_func_array - call_user_func - - - - - - diff --git a/reference/classobj/functions/call-user-method.xml b/reference/classobj/functions/call-user-method.xml deleted file mode 100644 index 6e02ce51fa..0000000000 --- a/reference/classobj/functions/call-user-method.xml +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - call_user_method - 指定したオブジェクトのユーザーメソッドをコールする - - - - &warn.deprecated.function.4-1-0.removed.7-0-0.alternatives; - - call_user_func - - - - - &reftitle.description; - - mixedcall_user_method - stringmethod_name - objectobj - mixed... - - - - - &reftitle.parameters; - - - - method_name - - - コールするメソッド名。 - - - - - - obj - - - - コールする method_name - があるオブジェクト。 - - - - - - ... - - - - オプションのパラメータ。 - - - - - - - - - &reftitle.examples; - - - <function>call_user_method</function> の代替策 - - -]]> - - - - - - &reftitle.seealso; - - - call_user_func_array - call_user_func - - - - - - diff --git a/reference/classobj/functions/class-alias.xml b/reference/classobj/functions/class-alias.xml index 8e27042f66..17349ac908 100644 --- a/reference/classobj/functions/class-alias.xml +++ b/reference/classobj/functions/class-alias.xml @@ -1,6 +1,6 @@ - + class_alias @@ -10,22 +10,28 @@ &reftitle.description; boolclass_alias - stringoriginal + stringclass stringalias boolautoload&true; alias という名前のエイリアスを、 - ユーザー定義のクラス original に対して作成します。 + ユーザー定義のクラス class に対して作成します。 エイリアスは、元のクラスとまったく同一のものとなります。 + + + PHP 8.3.0 以降では、class_alias + は PHP の内部クラスのエイリアスを作る機能もサポートしています。 + + &reftitle.parameters; - original + class 元となるクラス。 @@ -44,7 +50,7 @@ autoload - 元のクラスが見つからない場合にオートロードするかどうか。 + 元のクラスが見つからない場合に オートロード するかどうか。 @@ -58,6 +64,28 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + class_alias は、内部クラスのエイリアスを作る機能をサポートしました。 + + + + + + + &reftitle.examples; @@ -67,23 +95,23 @@ ]]> @@ -103,6 +131,21 @@ bool(true) + + &reftitle.notes; + + + クラス名は、大文字小文字を区別しません。 + また、その振る舞いはこの関数にも反映されています。 + class_alias によって作られたエイリアスは、 + 小文字で宣言されます。 + たとえばクラス MyClass について、 + class_alias('MyClass', 'MyClassAlias') + を実行すると、myclassalias + という名前の新しいクラスエイリアスが宣言されます。 + + + &reftitle.seealso; @@ -113,7 +156,6 @@ bool(true) - - + + class_exists @@ -10,7 +11,7 @@ &reftitle.description; boolclass_exists - stringclass_name + stringclass boolautoload&true; @@ -22,7 +23,7 @@ - class_name + class クラス名。大文字小文字は区別しません。 @@ -33,7 +34,7 @@ autoload - デフォルトで &link.autoload; をコールするかしないか。 + まだロードされていない場合に オートロード するかどうか。 @@ -43,34 +44,10 @@ &reftitle.returnvalues; - クラス class_name が定義されている場合に &true;、 + クラス class が定義されている場合に &true;、 それ以外の場合に &false; を返します。 - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.0.2 - - 定義済みのインターフェイスに対しては &true; を返さないようになりました。 - インターフェイスについては interface_exists を使用します。 - - - - - - - &reftitle.examples; @@ -93,17 +70,16 @@ if (class_exists('MyClass')) { function_exists + enum_exists interface_exists get_declared_classes - + + + + enum_exists + 列挙型が定義されているかを調べる + + + &reftitle.description; + + boolenum_exists + stringenum + boolautoload&true; + + + この関数は、指定された 列挙型 が定義されているかを調べます。 + + + + &reftitle.parameters; + + + + enum + + + 列挙型の名前。この名前は、大文字小文字を区別せずに比較されます。 + + + + + autoload + + + まだロードされていない場合に オートロード するかどうか。 + + + + + + + + &reftitle.returnvalues; + + enum が定義済みの列挙型である場合、 + &true; を返します。そうでない場合、&false; を返します。 + + + + &reftitle.examples; + + + <function>enum_exists</function> の例 + + +]]> + + + + + + &reftitle.seealso; + + + function_exists + class_exists + interface_exists + get_declared_classes + + + + + diff --git a/reference/classobj/functions/get-called-class.xml b/reference/classobj/functions/get-called-class.xml index 4f0b8f82b0..04484db2d1 100644 --- a/reference/classobj/functions/get-called-class.xml +++ b/reference/classobj/functions/get-called-class.xml @@ -1,10 +1,10 @@ - + get_called_class - "静的遅延束縛" のクラス名 + "遅延静的束縛" のクラス名 &reftitle.description; @@ -13,13 +13,53 @@ - 静的メソッドのコール元のクラス名を取得します。 + staticメソッドのコール元のクラス名を取得します。 + + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; - クラス名を返します。クラスの外部からコールされた場合は &false; を返します。 + クラス名を返します。 + + + + &reftitle.errors; + + get_called_class がクラスの外部からコールされた場合、 + Error がスローされます。PHP 8.0.0 より前のバージョンでは、 + E_WARNING が発生していました。 + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数をクラスの外部からコールした場合に、 + Error がスローされるようになりました。 + これより前のバージョンでは、E_WARNING + が発生し、&false; を返していました。 + + + + + diff --git a/reference/classobj/functions/get-class-methods.xml b/reference/classobj/functions/get-class-methods.xml index fa8881dbb9..571e3f3b60 100644 --- a/reference/classobj/functions/get-class-methods.xml +++ b/reference/classobj/functions/get-class-methods.xml @@ -1,6 +1,6 @@ - + @@ -11,7 +11,7 @@ &reftitle.description; arrayget_class_methods - mixedclass_name + objectstringobject_or_class クラスメソッドの名前を取得します。 @@ -22,7 +22,7 @@ - class_name + object_or_class オブジェクトのインスタンスのクラス名。 @@ -35,11 +35,35 @@ &reftitle.returnvalues; - この関数は、指定したクラス class_name + この関数は、指定したクラス object_or_class についてメソッドの名前を配列として返します。 エラー時には &null; を返します。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + object_or_class は、 + オブジェクトまたは有効なクラス名を受け入れるようになりました。 + + + + + + + &reftitle.examples; @@ -83,7 +107,7 @@ foreach ($class_methods as $method_name) { &example.outputs; @@ -102,7 +126,6 @@ myfunc2 - - - + + get_class_vars @@ -11,7 +11,7 @@ &reftitle.description; arrayget_class_vars - stringclass_name + stringclass 指定したクラスのデフォルトプロパティを取得します。 @@ -22,7 +22,7 @@ - class_name + class クラス名。 @@ -36,51 +36,10 @@ &reftitle.returnvalues; 宣言されているプロパティのうち、現在のスコープから見えるものとそのデフォルト値を連想配列で返します。 - 返される配列要素は、変数名 => 値 の形式となります。 + 返される配列要素は、変数名 => 値 の形式となります。 エラーが発生した場合は &false; を返します。 - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.0.3 - - get_class_vars - は現在のスコープからアクセスできるプロパティのみを返すようになりました。 - - - - 5.0.2 - - get_class_vars をコールすると、 - すべてのプロパティが配列として公開されるようになりました。 - これまでは、protected や private なプロパティの先頭には nul - バイトが付加されていました。 - - - - 5.0.1 - - get_class_vars をコールすると、 - オブジェクトをクラスに変換するときのように - すべてのプロパティを公開するようになりました。 - - - - - - - &reftitle.examples; @@ -90,29 +49,28 @@ var1 = "foo"; $this->var2 = "bar"; return true; } - } -$my_class = new myclass(); +$my_class = new MyClass(); $class_vars = get_class_vars(get_class($my_class)); foreach ($class_vars as $name => $value) { - echo "$name : $value\n"; + echo "{$name}: ", var_export($value, true), "\n"; } ?> @@ -121,9 +79,9 @@ foreach ($class_vars as $name => $value) { &example.outputs; @@ -134,6 +92,7 @@ var3 : 100 ]]> @@ -185,7 +145,6 @@ a - - + @@ -25,19 +25,13 @@ object - 調べるオブジェクト。クラスの内部ではこのパラメータを省略することもできます。 + 調べるオブジェクト。 object に明示的に &null; を渡すことは、 - PHP 7.2.0 以降許されなくなりました。 - - - このパラメータは未だオプションです。 - get_class 関数を - クラスの内部からパラメータなしに呼び出しても動作します。 - しかし、&null; を渡してしまうと - E_WARNING レベルの警告が発生します。 + PHP 7.2.0 以降許されなくなり、E_WARNING レベルの警告が発生します。 + PHP 8.0.0 以降では、&null; を渡すと TypeError がスローされます。 @@ -49,12 +43,7 @@ &reftitle.returnvalues; オブジェクト object がインスタンス - であるクラスの名前を返します。object - がオブジェクトでない場合には&false;が返されます。 - - - クラスの内部で object を省略すると、 - そのクラスの名前を返します。 + であるクラスの名前を返します。 object が @@ -66,7 +55,14 @@ &reftitle.errors; オブジェクト以外に対して get_class をコールすると、 - E_WARNING レベルのエラーが発生します。 + TypeError がスローされます。 + PHP 8.0.0 より前のバージョンでは、 + E_WARNING レベルの警告が発生していました。 + + + get_class が、クラスの外部から引数なしで呼ばれた場合、 + Error が発生します。PHP 8.0.0 より前のバージョンでは、 + E_WARNING レベルの警告が発生していました。 @@ -82,19 +78,32 @@ - 7.2.0 + 8.3.0 - &null; は、object のデフォルトのパラメータとして - 扱われなくなり、 - 正しい入力ではなくなりました。 + get_class を引数なしでコールすると、 + E_DEPRECATED が発生するようになりました。 + これより前のバージョンでは、クラスの内部でこの関数をコールすると、 + そのクラスの名前を返していました。 - 5.3.0 + 8.0.0 - &null; が object のデフォルトとなりました。 - したがって、&null; を object - に渡すのは何も指定しないのと同じ意味ということになります。 + この関数をクラスの外部から引数なしで呼び出すと、 + Error が発生するようになりました。 + これより前のバージョンでは、 + E_WARNING レベルの警告が発生し、 + &false; を返していました。 + + + + 7.2.0 + + &null; は、object のデフォルトのパラメータとして + 扱われなくなり、 + 正しい入力ではなくなりました。 + これより前のバージョンでは、object + のデフォルトのパラメータは &null; であり、何も値を渡さないのと同じ意味でした。 @@ -205,6 +214,7 @@ string(11) "Foo\Bar\Baz" get_called_class get_parent_class gettype + get_debug_type is_subclass_of diff --git a/reference/classobj/functions/get-declared-classes.xml b/reference/classobj/functions/get-declared-classes.xml index cc82585666..e8c896fae5 100644 --- a/reference/classobj/functions/get-declared-classes.xml +++ b/reference/classobj/functions/get-declared-classes.xml @@ -1,6 +1,6 @@ - + @@ -17,6 +17,12 @@ 定義済のクラスの名前を配列として返します。 + + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; @@ -29,7 +35,7 @@ これは、自作のクラスをそれらと同じ名前で作成できないことを意味します。 定義済みのクラスについては付録の定義済みクラスのセクションを - 参照してください。 + 参照ください。 diff --git a/reference/classobj/functions/get-declared-interfaces.xml b/reference/classobj/functions/get-declared-interfaces.xml index 6f10b0b1ad..e53c45efc0 100644 --- a/reference/classobj/functions/get-declared-interfaces.xml +++ b/reference/classobj/functions/get-declared-interfaces.xml @@ -1,6 +1,6 @@ - + get_declared_interfaces @@ -16,6 +16,12 @@ 宣言されているインターフェイスを取得します。 + + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; diff --git a/reference/classobj/functions/get-declared-traits.xml b/reference/classobj/functions/get-declared-traits.xml index 2b14c4d187..c497f2a257 100644 --- a/reference/classobj/functions/get-declared-traits.xml +++ b/reference/classobj/functions/get-declared-traits.xml @@ -1,6 +1,6 @@ - + @@ -29,7 +29,6 @@ &reftitle.returnvalues; 宣言されているすべてのトレイトの名前を値に持つ配列を返します。 - 失敗した場合は &null; を返します。 diff --git a/reference/classobj/functions/get-mangled-object-vars.xml b/reference/classobj/functions/get-mangled-object-vars.xml new file mode 100644 index 0000000000..01b7ebd738 --- /dev/null +++ b/reference/classobj/functions/get-mangled-object-vars.xml @@ -0,0 +1,155 @@ + + + + + + get_mangled_object_vars + マングリングされたオブジェクトのプロパティを配列で返す + + + + &reftitle.description; + + arrayget_mangled_object_vars + objectobject + + + object のプロパティを要素とする配列を返します。 + 配列のキーはメンバ変数の名前ですが、 + 注意すべき例外がいくつかあります。 + private な変数については、キーの前にクラス名が付きます。 + そして、protected な変数については、 + キーの前に * が付きます。 + これらの付加される値は、両側に NUL + バイトが付いています。 + 未初期化の + 型付きプロパティ + は黙って捨てられます。 + + + + + &reftitle.parameters; + + + + object + + + オブジェクトのインスタンス。 + + + + + + + + + &reftitle.returnvalues; + + アクセス権に関わらず、 + object の全てのプロパティを含む配列を返します。 + + + + + &reftitle.examples; + + + <function>get_mangled_object_vars</function> の例 + +dynamic = 5; +$object->{'6'} = 6; + +var_dump(get_mangled_object_vars($object)); + +class AO extends ArrayObject +{ + private $private = 1; +} + +$arrayObject = new AO(['x' => 'y']); +$arrayObject->dynamic = 2; + +var_dump(get_mangled_object_vars($arrayObject)); +]]> + + &example.outputs; + + + int(4) + ["public"]=> + int(1) + ["*protected"]=> + int(2) + ["Aprivate"]=> + int(3) + ["dynamic"]=> + int(5) + [6]=> + int(6) +} +array(2) { + ["AOprivate"]=> + int(1) + ["dynamic"]=> + int(2) +} + +]]> + + + + + + + &reftitle.seealso; + + + get_class_vars + get_object_vars + + + + + + diff --git a/reference/classobj/functions/get-object-vars.xml b/reference/classobj/functions/get-object-vars.xml index 0b4ef76679..8ffe21b0ca 100644 --- a/reference/classobj/functions/get-object-vars.xml +++ b/reference/classobj/functions/get-object-vars.xml @@ -1,7 +1,7 @@ - - + + get_object_vars @@ -40,31 +40,6 @@ そのスコープ内でアクセス可能な非 static プロパティを連想配列として返します。 - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - object がオブジェクトではない場合に - &null; を返すようになりました。 - これより前のバージョンでは、&false; を返していました。 - - - - - - - &reftitle.examples; @@ -117,6 +92,12 @@ array(4) { + + + 初期化されていないプロパティは、アクセス不能とみなされるため、 + 結果の配列には含まれません。 + + &reftitle.seealso; diff --git a/reference/classobj/functions/get-parent-class.xml b/reference/classobj/functions/get-parent-class.xml index 5ee2f44d29..fab8c93155 100644 --- a/reference/classobj/functions/get-parent-class.xml +++ b/reference/classobj/functions/get-parent-class.xml @@ -1,7 +1,7 @@ - - + + get_parent_class @@ -10,8 +10,8 @@ &reftitle.description; - stringget_parent_class - mixedobject + stringfalseget_parent_class + objectstringobject_or_class オブジェクトあるいはクラスの親クラスの名前を取得します。 @@ -22,11 +22,10 @@ - object + object_or_class 調べたいオブジェクトあるいはクラスの名前。 - オブジェクトのメソッドからコールされた場合、このパラメータはオプションとなります。 @@ -36,43 +35,49 @@ &reftitle.returnvalues; - object + object_or_class がインスタンスあるいは名前であるクラスの親クラス名を返します。 - オブジェクトが親を持たない場合や指定したクラスが存在しない場合は &false; を返します。 + オブジェクトが親を持たない場合や、 + 指定したクラスが存在しない場合は &false; を返します。 - - オブジェクトの外部からこのパラメータを省略してコールすると、 - この関数は &false; を返します - + &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.1.0 - - オブジェクトの外部からパラメータなしでコールすると、 - この関数は警告を発生したうえで &null; を返していました。しかし、今は &false; を返します。 - - - - - - + + + + + &Version; + &Description; + + + + + 8.3.0 + + get_parent_class を引数なしでコールすると、 + E_DEPRECATED が発生するようになりました。 + これより前のバージョンでは、クラスの内部でこの関数をコールすると、 + そのクラスの名前を返していました。 + + + + 8.0.0 + + object_or_class は、 + オブジェクトまたは有効なクラス名を受け入れるようになりました。 + + + + + + &reftitle.examples; @@ -82,22 +87,22 @@ diff --git a/reference/classobj/functions/interface-exists.xml b/reference/classobj/functions/interface-exists.xml index 9c80f46320..ee91d5bd72 100644 --- a/reference/classobj/functions/interface-exists.xml +++ b/reference/classobj/functions/interface-exists.xml @@ -1,6 +1,6 @@ - + interface_exists @@ -10,7 +10,7 @@ &reftitle.description; boolinterface_exists - stringinterface_name + stringinterface boolautoload&true; @@ -22,7 +22,7 @@ - interface_name + interface インターフェイス名。 @@ -33,7 +33,7 @@ autoload - デフォルトで &link.autoload; をコールするかどうか。 + まだロードされていない場合に オートロード するかどうか。 @@ -43,7 +43,7 @@ &reftitle.returnvalues; - interface_name + interface で与えられたインターフェイスが宣言されていれば &true; を返します。 そうでなければ &false; を返します。 @@ -77,11 +77,11 @@ if (interface_exists('MyInterface')) { get_declared_interfaces class_implements class_exists + enum_exists - - + is_a - オブジェクトがこのクラスのものであるか、このクラスをその親クラスのひとつとしているかどうかを調べる + オブジェクトが指定された型のものか、部分型であるかを調べる &reftitle.description; boolis_a - mixedobject - stringclass_name + mixedobject_or_class + stringclass boolallow_string&false; - 指定した object - がこのクラスのものであるか、 - あるいはこのクラスをその親クラスのひとつとしているかどうかを調べます。 + 指定した object_or_class + が class オブジェクトの型であるか、 + あるいは class が、 + その上位型のひとつであるかを調べます。 @@ -26,7 +27,7 @@ - object + object_or_class 調べたいクラス名、またはオブジェクトのインスタンス @@ -34,10 +35,10 @@ - class_name + class - クラス名。 + クラスまたはインターフェイスの名前。 @@ -46,7 +47,7 @@ このパラメータを &false; にすると、 - クラス名を表す文字列を object に指定できなくなります。 + クラス名を表す文字列を object_or_class に指定できなくなります。 そして、クラスが存在しない場合のオートローダーの呼び出しもしなくなります。 @@ -57,50 +58,12 @@ &reftitle.returnvalues; - オブジェクトがこのクラスのものであるか、 - あるいはこのクラスをその親クラスのひとつとしている場合に + object_or_classclass + オブジェクトの型であるか、 + あるいは class が、その上位型のひとつである場合に &true;、それ以外の場合に &false; を返します。 - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.9 - - パラメータ allow_string が追加されました。 - - - - 5.3.0 - - この関数は非推奨ではなくなりました。そのため - E_STRICT も発生しなくなりました。 - - - - 5.0.0 - - この関数は非推奨となり、かわりに - instanceof - 演算子の使用が推奨されるようになりました。この関数をコールすると - E_STRICT が発生します。 - - - - - - - &reftitle.examples; @@ -126,10 +89,19 @@ if (is_a($WF, 'WidgetFactory')) { - PHP 5 での <emphasis>instanceof</emphasis> 演算子の使用 + <emphasis>instanceof</emphasis> 演算子の使用 - - - + + is_subclass_of @@ -11,13 +11,13 @@ &reftitle.description; boolis_subclass_of - mixedobject - stringclass_name + mixedobject_or_class + stringclass boolallow_string&true; - 指定した object が、その親のひとつに - class_name を持つか (あるいは class_name を実装しているか) どうかを調べます。 + 指定した object_or_class が、その親のひとつに + class を持つか (あるいは class を実装しているか) どうかを調べます。 @@ -25,7 +25,7 @@ - object + object_or_class クラス名あるいはオブジェクトのインスタンス。 @@ -34,7 +34,7 @@ - class_name + class クラス名。 @@ -46,7 +46,7 @@ このパラメータを false にすると、 - クラス名を表す文字列を object に指定できなくなります。 + クラス名を表す文字列を object_or_class に指定できなくなります。 そして、クラスが存在しない場合のオートローダーの呼び出しもしなくなります。 @@ -57,47 +57,11 @@ &reftitle.returnvalues; - この関数は、オブジェクト object - が superclass のサブクラスであるクラスに属する場合に + この関数は、オブジェクト object_or_class + が class のサブクラスであるクラスに属する場合に &true;、その他の場合に &false; を返します。 - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.9 - - パラメータ allow_string が追加されました。 - - - - 5.3.7 - - class_name にインターフェイスも使えるようになりました。 - - - - 5.0.3 - - object パラメータに文字列 - (クラス名) を指定可能です。 - - - - - - - &reftitle.examples; @@ -136,7 +100,6 @@ if (is_subclass_of($WF, 'WidgetFactory')) { } -// PHP 5.0.3 以降で使用可能 if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) { echo "yes, WidgetFactory_Child is a subclass of WidgetFactory\n"; } else { @@ -225,7 +188,6 @@ Yes, MyClass is a subclass of MyInterface - - - + + method_exists @@ -11,11 +11,11 @@ &reftitle.description; boolmethod_exists - mixedobject - stringmethod_name + objectstringobject_or_class + stringmethod - 指定した object にクラスメソッドが存在するかどうかを調べます。 + 指定した object_or_class にクラスメソッドが存在するかどうかを調べます。 @@ -23,7 +23,7 @@ - object + object_or_class オブジェクトのインスタンス、あるいはクラス名。 @@ -31,7 +31,7 @@ - method_name + method メソッドの名前。 @@ -44,15 +44,33 @@ &reftitle.returnvalues; - method_name で指定したメソッドが - 指定した object において定義されている場合に + method で指定したメソッドが + 指定した object_or_class において定義されている場合に &true;、そうでない場合に &false; を返します。 - - &reftitle.notes; - ¬e.uses-autoload; + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 7.4.0 + + 継承した private メソッドに対してこの関数を実行しても、 + &false; を返すようになりました。 + + + + + @@ -76,7 +94,7 @@ bool(true) - 静的な <function>method_exists</function> の例 + staticメソッドに対する <function>method_exists</function> の例 + + + &reftitle.notes; + ¬e.uses-autoload; + + + マジックメソッド __call を使ってアクセス可能なメソッドを、method_exists は検知できません。 + + + + &reftitle.seealso; @@ -104,7 +133,6 @@ bool(true) - - - + + property_exists @@ -13,7 +13,7 @@ &reftitle.description; boolproperty_exists - mixedclass + objectstringobject_or_class stringproperty @@ -33,7 +33,7 @@ - class + object_or_class 確認するクラス名、もしくはクラスのオブジェクトを指定します。 @@ -54,46 +54,10 @@ &reftitle.returnvalues; - プロパティが存在している場合は &true;、存在していない場合に &false;、 - エラー時には &null; を返します。 + プロパティが存在している場合は &true;、存在していない場合に &false; を返します。 - - &reftitle.notes; - ¬e.uses-autoload; - - - property_exists 関数は、マジックメソッド __get - を使ってアクセスするプロパティを検出することはできません。 - - - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - この関数は、アクセス権に依存せずにプロパティの存在確認を行うようになりました。 - - - - - - - &reftitle.examples; @@ -115,9 +79,9 @@ class myClass { var_dump(property_exists('myClass', 'mine')); //true var_dump(property_exists(new myClass, 'mine')); //true -var_dump(property_exists('myClass', 'xpto')); //PHP 5.3.0 以降では true +var_dump(property_exists('myClass', 'xpto')); //true var_dump(property_exists('myClass', 'bar')); //false -var_dump(property_exists('myClass', 'test')); //PHP 5.3.0 以降では true +var_dump(property_exists('myClass', 'test')); //true myClass::test(); ?> @@ -126,6 +90,19 @@ myClass::test(); + + + &reftitle.notes; + ¬e.uses-autoload; + + + property_exists 関数は、マジックメソッド __get + を使ってアクセスするプロパティを検出することはできません。 + + + + &reftitle.seealso; @@ -135,7 +112,6 @@ myClass::test(); - - + @@ -12,8 +12,8 @@ &reftitle.description; booltrait_exists - stringtraitname - boolautoload + stringtrait + boolautoload&true; @@ -25,7 +25,7 @@ &reftitle.parameters; - traitname + trait 調べたいトレイトの名前。 @@ -36,7 +36,7 @@ autoload - まだロードされていない場合にオートロードするかどうか。 + まだロードされていない場合に オートロード するかどうか。 @@ -46,13 +46,12 @@ &reftitle.returnvalues; - トレイトが存在する場合に &true;、存在しない場合に &false;、エラーが発生した場合に &null; を返します。 + トレイトが存在する場合に &true;、存在しない場合に &false; を返します。 - - - - - - &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- -
- &reftitle.install; - &no.install; -
- -
- &reftitle.runtime; - &no.config; -
- -
- &reftitle.resources; - &no.resource; -
- -
- - - diff --git a/reference/com/book.xml b/reference/com/book.xml index 1c3ad02c79..707240e468 100644 --- a/reference/com/book.xml +++ b/reference/com/book.xml @@ -1,13 +1,12 @@ - + - COM および .Net (Windows) COM - + &reftitle.intro; @@ -25,7 +24,7 @@ OLE オートメーションと呼ばれる COM のサブセットがあります。 - これは、COM オブジェクトに祖な結合を行うことができる COM インターフェイスを + これは、COM オブジェクトに疎な結合を行うことができる COM インターフェイスを 提供します。これにより、コンパイル時にオブジェクトの動作を知ることなく、 実行時にコールを行うことができるようになります。 PHP COM 拡張モジュールは、OLE オートメーションを使用して @@ -52,7 +51,7 @@ - + &reference.com.setup; &reference.com.constants; &reference.com.error-handling; @@ -62,6 +61,7 @@ &reference.com.variant; &reference.com.compersisthelper; &reference.com.com-exception; + &reference.com.com-safearray-proxy; &reference.com.reference; diff --git a/reference/com/com-exception.xml b/reference/com/com-exception.xml index ef929d26a7..742b8dd528 100644 --- a/reference/com/com-exception.xml +++ b/reference/com/com-exception.xml @@ -1,8 +1,7 @@ - - - + + com_exception クラス com_exception @@ -22,41 +21,29 @@ &reftitle.classsynopsis; - - com_exception - - - - - com_exception - + + + final + com_exception + - - extends - Exception - + + extends + Exception + - - Throwable - - - &InheritedProperties; - - + + - &InheritedMethods; - - + + + + + - @@ -68,8 +55,7 @@ &reference.com-dotnet.entities.com-exception; --> - - + + + + com_safearray_proxy クラス + com_safearray_proxy + + + + +
+ &reftitle.intro; + + com_safearray_proxy は、 + SafeArray 型上での多次元配列へのアクセスを解決するのに使われる内部クラスです。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + com_safearray_proxy + + + + +
+ +
+ +
+ diff --git a/reference/com/com.xml b/reference/com/com.xml index 25a38341f4..2bd279cc5a 100644 --- a/reference/com/com.xml +++ b/reference/com/com.xml @@ -1,8 +1,8 @@ - + - + com com クラス @@ -22,26 +22,19 @@ &reftitle.classsynopsis; - - com - - - - - com - + + + com + extends variant - - - &Methods; - - + + @@ -143,8 +136,7 @@ $conn = null; &reference.com.entities.com; - - + - + @@ -10,12 +10,12 @@ &reftitle.description; - - com::__construct + + public com::__construct stringmodule_name - mixedserver_name&null; - intcodepageCP_ACP - stringtypelib + arraystringnullserver_name&null; + intcodepageCP_ACP + stringtypelib"" 新しい com オブジェクトを構築します。 @@ -53,25 +53,26 @@ server_name - コンポーネントをロードし、実行する DCOM サーバ名。 + コンポーネントをロードし、実行する DCOM サーバー名。 &null; の場合、そのアプリケーションのデフォルトが使われ、実行されます。 デフォルトは通常はローカルマシン上で実行することですが、 管理者が異なるマシン上で起動するアプリケーションを設定するかもしれません。 server に &null; でない値を指定すると、PHP は - 設定オプションが &true; でない限りオブジェクトのロードを拒否します。 + com.allow_dcom + &php.ini; 設定オプションが &true; でない限りオブジェクトのロードを拒否します。 server_name が配列の場合、 次の要素が含まれるべきです(大文字小文字を区別します!)。 但し、これらは全てオプション(ユーザー名とパスワードは一緒に指定する必要があります) - であることに注意してください。つまり、サーバの設定を省略すると、 - (既に述べたとおり)デフォルトのサーバが使われ、オブジェクトのインスタンス化は - ディレクティブによって影響を受けません。 + であることに注意してください。つまり、サーバーの設定を省略すると、 + (既に述べたとおり)デフォルトのサーバーが使われ、オブジェクトのインスタンス化は + com.allow_dcom + &php.ini; ディレクティブによって影響を受けません。 - DCOM サーバ名 + DCOM サーバー名 @@ -84,7 +85,7 @@ Server string - サーバ名 + サーバー名 Username @@ -116,7 +117,7 @@ CLSCTX_SERVER ですが、 server を指定した場合は CLSCTX_REMOTE_SERVER です。 これらの定数の意味の詳細情報は、 - Microsoft の CoCreateInstance のドキュメントも参照してください。 + Microsoft の CoCreateInstance のドキュメントも参照ください。 通常、それらを使わないことはないはずです。 @@ -145,7 +146,7 @@ CP_UTF7 および CP_UTF8 です。 コードページの数値も使えます。 - コードページとその数値に関する詳細な情報は、Microsoft のドキュメントを参照してください。 + コードページとその数値に関する詳細な情報は、Microsoft のドキュメントを参照ください。 @@ -153,7 +154,6 @@ - - - - + + COMPersistHelper クラス COMPersistHelper @@ -14,7 +13,7 @@ &reftitle.intro; COMPersistHelper クラスは、 - &php.ini; の open_basedir ディレクティブと + &php.ini; の open_basedir ディレクティブと ストリーム &resource; を考慮して COMPHP の相互運用性を高めます。 @@ -25,24 +24,18 @@ &reftitle.classsynopsis; - - COMPersistHelper + + + final + COMPersistHelper + - - - - final - COMPersistHelper - - - - &Methods; - - + + - - + + @@ -53,8 +46,7 @@ &reference.com.entities.compersisthelper; - - + - + @@ -10,13 +10,13 @@ &reftitle.description; - + public COMPersistHelper::__construct - variantcom_object&null; + variantnullvariant&null; 永続化を助けるオブジェクトを構築します。 - これは通常、com_object に結びつけて使います。 + これは通常、variant に結びつけて使います。 @@ -24,7 +24,7 @@ &reftitle.parameters; - com_object + variant IDispatch を実装した COM オブジェクト。 @@ -34,7 +34,7 @@ をオブジェクトが実装していなければなりません。 - com_object に &null;を渡す意味があるのは、 + variant に &null;を渡す意味があるのは、 COMPersistHelper::LoadFromStream を呼び出してオブジェクトを読み込んだ場合に限ります。 @@ -56,7 +56,6 @@ - - + @@ -10,9 +10,9 @@ &reftitle.description; - - public stringCOMPersistHelper::GetCurFileName - + + public stringfalseCOMPersistHelper::GetCurFileName + オブジェクトに関連付けられた現在のファイル名を取得します。 @@ -42,7 +42,6 @@ - - + @@ -10,9 +10,9 @@ &reftitle.description; - + public intCOMPersistHelper::GetMaxStreamSize - + オブジェクトを保存するのに必要なストリームのサイズを取得します(バイト単位)。 @@ -43,7 +43,6 @@ - - + @@ -10,9 +10,9 @@ &reftitle.description; - + public boolCOMPersistHelper::InitNew - + オブジェクトをデフォルトの状態に初期化します @@ -42,7 +42,6 @@ - - + @@ -10,9 +10,9 @@ &reftitle.description; - + public boolCOMPersistHelper::LoadFromFile - stringpath + stringfilename intflags0 @@ -24,7 +24,7 @@ &reftitle.parameters; - path + filename 読み込むオブジェクトが保存されたファイル名 @@ -36,7 +36,7 @@ ファイルをオープンする際のアクセスモード。 - 有効な値は STGM enumeration を参照してください。 + 有効な値は STGM enumeration を参照ください。 メソッドはこの値を参考程度に扱い、必要に応じてより制限的なパーミッションを追加します。 flags0 を指定すると、 ユーザーがファイルを開くときのデフォルトのパーミッションを使ってファイルを開きます。 @@ -64,7 +64,6 @@ - - + @@ -10,7 +10,7 @@ &reftitle.description; - + public boolCOMPersistHelper::LoadFromStream resourcestream @@ -51,7 +51,6 @@ - - + @@ -10,9 +10,9 @@ &reftitle.description; - + public boolCOMPersistHelper::SaveToFile - stringfilename&null; + stringnullfilename boolremember&true; @@ -83,7 +83,6 @@ $word->Quit(); - - + @@ -10,7 +10,7 @@ &reftitle.description; - + public boolCOMPersistHelper::SaveToStream resourcestream @@ -52,7 +52,6 @@ - - + &reftitle.constants; &extension.constants; -
- COM 定数 - - - - 定数 - - 説明 - 備考 - - - - - - CLSCTX_INPROC_SERVER - (integer) - - 1 - - このクラスのコードを作成および管理するコードは DLL で、 - クラスのコンテキストを指定する呼び出し元の関数と同じプロセスで動きます。 - - - - - - CLSCTX_INPROC_HANDLER - (integer) - - 2 - - このクラスのオブジェクトを管理するコードはプロセス内ハンドラです。 - これは DLL で、クライアントプロセスで動きます。 - クラスのインスタンスがリモートでアクセスされるときに、 - このクラスのクライアント側の構造を実装します。 - - - - - - CLSCTX_LOCAL_SERVER - (integer) - - 4 - - このクラスのオブジェクトを作成および管理する EXE コードで、 - 同じマシンで動きますが別のプロセス空間にロードされます。 - - - - - - CLSCTX_REMOTE_SERVER - (integer) - - 16 - - リモートコンテキスト。 - このクラスのオブジェクトを作成および管理するコードは、別のコンピュータで動きます。 - - - - - - CLSCTX_SERVER - (integer) - - 21 - - プロセス内、ローカル、リモートのすべてのサーバーコードを表します。 - CLSCTX_INPROC_SERVER、 - CLSCTX_LOCAL_SERVER および - CLSCTX_REMOTE_SERVER を OR で連結したものです。 - - - - - - CLSCTX_ALL - (integer) - - 23 - - すべてのクラスコンテキストを表します。 - CLSCTX_INPROC_HANDLER と - CLSCTX_SERVER を OR で連結したものです。 - - - - - - VT_NULL - (integer) - - 1 - - NULL ポインタへの参照。 - - - - - - VT_EMPTY - (integer) - - 0 - - 型インジケータが VT_EMPTY であるプロパティには、 - 何もデータが関連づけられていません。つまり、この値のサイズはゼロです。 - - - - - - VT_INT - (integer) - - 22 - - 4 バイト符号つき整数値 - (VT_I4 と同じ)。 - - - - - - VT_I1 - (integer) - - 16 - - 1 バイト符号つき整数値。 - - - - - - VT_I2 - (integer) - - 2 - - 2 バイト符号つき整数値。 - - - - - - VT_I4 - (integer) - - 3 - - 4 バイト符号つき整数値。 - - - - - - VT_I8 - (integer) - - 20 - - 8 バイト符号つき整数値。 - - PHP 7.0.0 以降で利用可能です(x64 のみ) - - - - VT_UINT - (integer) - - 23 - - 4 バイト符号なし整数値 - (VT_I4 と同じ)。 - - - - - - VT_UI1 - (integer) - - 17 - - 1 バイト符号なし整数値。 - - - - - - VT_UI2 - (integer) - - 18 - - 2 バイト符号なし整数値。 - - - - - - VT_UI4 - (integer) - - 19 - - 4 バイト符号なし整数値。 - - - - - - VT_UI8 - (integer) - - 21 - - 8 バイト符号なし整数値。 - - PHP 7.0.0 以降で利用可能です(x64 のみ) - - - - VT_R4 - (integer) - - 4 - - 32 ビット IEEE 浮動小数点値。 - - - - - - VT_R8 - (integer) - - 5 - - 64 ビット IEEE 浮動小数点値。 - - - - - - VT_BOOL - (integer) - - 11 - - Boolean 値。 - - - - - - VT_ERROR - (integer) - - 10 - - エラーコード。エラーに関連づけられたステータスコードです。 - - - - - - VT_CY - (integer) - - 6 - - 8 バイト整数値をふたつつなげたもの (スケールは 10,000)。 - - - - - - VT_DATE - (integer) - - 7 - - 64 ビット浮動小数点値で、1899 年 12 月 31 日からの経過日数 (秒ではありません) - を表します。たとえば January 1, 1900 は 2.0、 - January 2, 1900 は 3.0 のようになります。 - 格納されるときは VT_R8 と同じ形式になります。 - - - - - - VT_BSTR - (integer) - - 8 - - Null 終端の Unicode 文字列へのポインタ。 - - - - - - VT_DECIMAL - (integer) - - 14 - - 十進型。 - - - - - - VT_UNKNOWN - (integer) - - 13 - - IUnknown インターフェイスを実装したオブジェクトへのポインタ。 - - - - - - VT_DISPATCH - (integer) - - 9 - - 指定したオブジェクトへのポインタのポインタ。 - - - - - - VT_VARIANT - (integer) - - 12 - - 対応する値を表す型インジケータ。 - VT_VARIANT を使うのは、 - VT_BYREF と組み合わせる場合のみです。 - - - - - - VT_ARRAY - (integer) - - 8192 - - 型インジケータを - VT_ARRAY と OR 演算子で組み合わせると、 - その値は SAFEARRAY へのポインタとなります。 - VT_ARRAY は、次のデータ型と OR で連結可能です。 - VT_I1, - VT_UI1, VT_I2, VT_UI2, - VT_I4, VT_UI4, VT_INT, - VT_UINT, VT_R4, VT_R8, - VT_BOOL, VT_DECIMAL, VT_ERROR, - VT_CY, VT_DATE, VT_BSTR, - VT_DISPATCH, VT_UNKNOWN および - VT_VARIANT. - - - - - - VT_BYREF - (integer) - - 16384 - - 型インジケータを - VT_BYREF と OR 演算子で組み合わせると、 - その値は参照となります。参照型はデータへの参照として扱われます。 - C++ における参照型と同じです。 - - - - - - CP_ACP - (integer) - - 0 - - ANSI コードページのデフォルト。 - - - - - - CP_MACCP - (integer) - - 2 - - Macintosh コードページ。 - - - - - - CP_OEMCP - (integer) - - 1 - - OEM コードページのデフォルト。 - - - - - - CP_UTF7 - (integer) - - 65000 - - Unicode (UTF-7)。 - - - - - - CP_UTF8 - (integer) - - 65001 - - Unicode (UTF-8)。 - - - - - - CP_SYMBOL - (integer) - - 42 - - SYMBOL 変換。 - - - - - - CP_THREAD_ACP - (integer) - - 3 - - 現在のスレッドの ANSI コードページ。 - - - - - - VARCMP_LT - (integer) - - 0 - - 左の bstr のほうが右の - bstr より小さい。 - - - - - - VARCMP_EQ - (integer) - - 1 - - ふたつのパラメータが等しい。 - - - - - - VARCMP_GT - (integer) - - 2 - - 左の bstr のほうが右の - bstr より大きい。 - - - - - - VARCMP_NULL - (integer) - - 3 - - 両方の式が NULL である。 - - - - - - NORM_IGNORECASE - (integer) - - 1 - - 大文字小文字を区別しない。 - - - - - - NORM_IGNORENONSPACE - (integer) - - 2 - - 空白文字以外を無視する。 - - - - - - NORM_IGNORESYMBOLS - (integer) - - 4 - - 記号を無視する。 - - - - - - NORM_IGNOREWIDTH - (integer) - - 131072 - - 文字幅を無視する。 - - - - - - NORM_IGNOREKANATYPE - (integer) - - 65536 - - カナの型を無視する。 - - - - - - NORM_IGNOREKASHIDA - (integer) - - 262144 - - アラビア語の kashida 文字を無視する。 - - - 使えるかどうかは、元となるライブラリに依存します。 - - - - - DISP_E_DIVBYZERO - (integer) - - -2147352558 - - ゼロ除算エラー。 - - PHP 7.0.0 以降、x64 における値は 2147614738 です。 - - - - DISP_E_OVERFLOW - (integer) - - -2147352566 - - 期待する形式で値を表すことができないことを意味するエラー。 - - PHP 7.0.0 以降、x64 における値は 2147614730 です。 - - - - DISP_E_BADINDEX - (integer) - - -2147352565 - - 配列のインデックスが存在しないことを意味するエラー。 - - PHP 7.0.0 以降、x64 における値は 2147614731 です。 - - - - MK_E_UNAVAILABLE - (integer) - - -2147221021 - - iMoniker COM ステータスコード。 - その関数が使えないことを表します。 - - PHP 7.0.0 以降、x64 における値は 2147746275 です。 - - - -
+ + + + CLSCTX_INPROC_SERVER + (int) + + + + このクラスのコードを作成および管理するコードは DLL で、 + クラスのコンテキストを指定する呼び出し元の関数と同じプロセスで動きます。 + + + + + + CLSCTX_INPROC_HANDLER + (int) + + + + このクラスのオブジェクトを管理するコードはプロセス内ハンドラです。 + これは DLL で、クライアントプロセスで動きます。 + クラスのインスタンスがリモートでアクセスされるときに、 + このクラスのクライアント側の構造を実装します。 + + + + + + CLSCTX_LOCAL_SERVER + (int) + + + + このクラスのオブジェクトを作成および管理する EXE コードで、 + 同じマシンで動きますが別のプロセス空間にロードされます。 + + + + + + CLSCTX_REMOTE_SERVER + (int) + + + + リモートコンテキスト。 + このクラスのオブジェクトを作成および管理するコードは、別のコンピュータで動きます。 + + + + + + CLSCTX_SERVER + (int) + + + + プロセス内、ローカル、リモートのすべてのサーバーコードを表します。 + CLSCTX_INPROC_SERVER、 + CLSCTX_LOCAL_SERVER および + CLSCTX_REMOTE_SERVER を OR で連結したものです。 + + + + + + CLSCTX_ALL + (int) + + + + すべてのクラスコンテキストを表します。 + CLSCTX_INPROC_HANDLER と + CLSCTX_SERVER を OR で連結したものです。 + + + + + + VT_NULL + (int) + + + + NULL ポインタへの参照。 + + + + + + VT_EMPTY + (int) + + + + 型インジケータが VT_EMPTY であるプロパティには、 + 何もデータが関連づけられていません。つまり、この値のサイズはゼロです。 + + + + + + VT_INT + (int) + + + + 4 バイト符号つき整数値 + (VT_I4 と同じ)。 + + + + + + VT_I1 + (int) + + + + 1 バイト符号つき整数値。 + + + + + + VT_I2 + (int) + + + + 2 バイト符号つき整数値。 + + + + + + VT_I4 + (int) + + + + 4 バイト符号つき整数値。 + + + + + + VT_I8 + (int) + + + + 8 バイト符号つき整数値。 + + + x64 のみ + + + + + + VT_UINT + (int) + + + + 4 バイト符号なし整数値 + (VT_I4 と同じ)。 + + + + + + VT_UI1 + (int) + + + + 1 バイト符号なし整数値 + + + + + + VT_UI2 + (int) + + + + 2 バイト符号なし整数値 + + + + + + VT_UI4 + (int) + + + + 4 バイト符号なし整数値 + + + + + + VT_UI8 + (int) + + + + 8 バイト符号なし整数値 + + + x64 のみ + + + + + + VT_R4 + (int) + + + + 32 ビット IEEE 浮動小数点値。 + + + + + + VT_R8 + (int) + + + + 64 ビット IEEE 浮動小数点値。 + + + + + + VT_BOOL + (int) + + + + Boolean 値 + + + + + + VT_ERROR + (int) + + + + エラーコード。エラーに関連づけられたステータスコードです。 + + + + + + VT_CY + (int) + + + + 8 バイト整数値をふたつつなげたもの (スケールは 10,000)。 + + + + + + VT_DATE + (int) + + + + 64 ビット浮動小数点値で、December 31, 1899 からの経過日数 (秒ではありません) + を表します。たとえば January 1, 19002.0、 + January 2, 19003.0 のようになります。 + 格納されるときは VT_R8 と同じ形式になります。 + + + + + + VT_BSTR + (int) + + + + Null 終端の Unicode 文字列へのポインタ。 + + + + + + VT_DECIMAL + (int) + + + + 十進型。 + + + + + + VT_UNKNOWN + (int) + + + + IUnknown インターフェイスを実装したオブジェクトへのポインタ。 + + + + + + VT_DISPATCH + (int) + + + + 指定したオブジェクトへのポインタのポインタ。 + + + + + + VT_VARIANT + (int) + + + + 対応する値を表す型インジケータ。 + VT_VARIANT を使うのは、 + VT_BYREF と組み合わせる場合のみです。 + + + + + + VT_ARRAY + (int) + + + + 型インジケータを + VT_ARRAY と OR 演算子で組み合わせると、 + その値は SAFEARRAY へのポインタとなります。 + VT_ARRAY は、次のデータ型と OR で連結可能です。 + VT_I1, + VT_UI1, VT_I2, VT_UI2, + VT_I4, VT_UI4, VT_INT, + VT_UINT, VT_R4, VT_R8, + VT_BOOL, VT_DECIMAL, VT_ERROR, + VT_CY, VT_DATE, VT_BSTR, + VT_DISPATCH, VT_UNKNOWN および + VT_VARIANT. + + + + + + VT_BYREF + (int) + + + + 型インジケータを + VT_BYREF と OR 演算子で組み合わせると、 + その値は参照となります。参照型はデータへの参照として扱われます。 + C++ における参照型と同じです。 + + + + + + CP_ACP + (int) + + + + ANSI コードページのデフォルト。 + + + + + + CP_MACCP + (int) + + + + Macintosh コードページ。 + + + + + + CP_OEMCP + (int) + + + + OEM コードページのデフォルト。 + + + + + + CP_UTF7 + (int) + + + + Unicode (UTF-7). + + + + + + CP_UTF8 + (int) + + + + Unicode (UTF-8). + + + + + + CP_SYMBOL + (int) + + + + SYMBOL 変換。 + + + + + + CP_THREAD_ACP + (int) + + + + 現在のスレッドの ANSI コードページ。 + + + + + + VARCMP_LT + (int) + + + + 左の bstr のほうが右の + bstr より小さい。 + + + + + + VARCMP_EQ + (int) + + + + ふたつのパラメータが等しい。 + + + + + + VARCMP_GT + (int) + + + + 左の bstr のほうが右の + bstr より大きい。 + + + + + + VARCMP_NULL + (int) + + + + 両方の式が NULL である。 + + + + + + NORM_IGNORECASE + (int) + + + + 大文字小文字を区別しない。 + + + + + + NORM_IGNORENONSPACE + (int) + + + + 空白文字以外を無視する。 + + + + + + NORM_IGNORESYMBOLS + (int) + + + + 記号を無視する。 + + + + + + NORM_IGNOREWIDTH + (int) + + + + 文字幅を無視する。 + + + + + + NORM_IGNOREKANATYPE + (int) + + + + カナの型を無視する。 + + + + + + NORM_IGNOREKASHIDA + (int) + + + + アラビア語の kashida 文字を無視する。 + + + 使えるかどうかは、元となるライブラリに依存します。 + + + + + + DISP_E_DIVBYZERO + (int) + + + + ゼロ除算エラー。 + + + + + + DISP_E_OVERFLOW + (int) + + + + 期待する形式で値を表すことができないことを意味するエラー。 + + + + + + DISP_E_BADINDEX + (int) + + + + 配列のインデックスが存在しないことを意味するエラー。 + + + + + + DISP_E_PARAMNOTFOUND + (int) + + + + パラメータのIDのうちのひとつが、 + メソッドのパラメータに関連付けられていない戻り値であることを示します。 + + + + + + MK_E_UNAVAILABLE + (int) + + + + iMoniker COM ステータスコード。 + その関数が使えないことを表します。 + + + + + + LOCALE_NEUTRAL + (int) + + + + ニュートラルロケール。 + 一般的に、この定数は NLS のAPIを呼び出すのに使いません。 + 代わりに、LOCALE_SYSTEM_DEFAULT を使って下さい。 + + + + + + LOCALE_SYSTEM_DEFAULT + (int) + + + + オペレーティングシステムのデフォルトのロケール + + + + - + - + dotnet dotnet クラス @@ -18,22 +18,28 @@
staticクラス をインスタンス化したり、staticメソッド を呼び出すことはサポートされていません。 + System.Collections.Generic.List + のようなジェネリッククラスをインスタンス化することもサポートしていません。 .Net クラスによっては、IDispatch を実装していないものがあります。 - それらはインスタンス化はできるものの、メソッドを呼び出したり - プロパティへのアクセスをサポートしていません。 + それらはインスタンス化はできるものの、メソッドをコールしたり + プロパティへアクセスすることをサポートしていません。 - この機能を利用するには、Webサーバに .Netランタイムをインストールする必要があります。 + この機能を利用するには、Webサーバーに .Netランタイムをインストールする必要があります。 - dotnet クラスは.Net framework 4.0 以降をサポートしていません。 + PHP 8.0.0 より前のバージョンでは、 + dotnet クラスは.Net framework 4.0 以降をサポートしていませんでした。 アセンブリが regasm.exe によって登録されている場合は、 それらのクラスは com オブジェクトを通じてインスタンス化できます。 + PHP 8.0.0 以降では、&php.ini; の + com.dotnet_version + を指定することで .Net framework 4.0 以降をサポートします。
@@ -43,26 +49,19 @@ &reftitle.classsynopsis; - - dotnet - - - - - dotnet - + + + dotnet + extends variant - - - &Methods; - - + + @@ -108,8 +107,7 @@ echo $stack->Pop() . $stack->Pop(); &reference.com.entities.dotnet; - - + - + @@ -10,11 +10,11 @@ &reftitle.description; - - dotnet::__construct + + public dotnet::__construct stringassembly_name - stringclass_name - intcodepageCP_ACP + stringdatatype_name + intcodepageCP_ACP 新しい dotnet オブジェクトを構築します。 @@ -33,7 +33,7 @@ - class_name + datatype_name アセンブリ中のどのクラスをインスタンス化するかを指定します。 @@ -45,7 +45,7 @@ Unicode文字列の変換に使うコードページ。 - 詳細な情報は クラスの同じ名前のパラメータを参照してください。 + 詳細な情報は クラスの同じ名前のパラメータを参照ください。 @@ -53,7 +53,6 @@ - - + + com_create_guid @@ -9,7 +10,7 @@ &reftitle.description; - stringcom_create_guid + stringfalsecom_create_guid @@ -20,10 +21,17 @@ 規約により、GUID が中括弧で囲まれるという点が異なります。 + + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; GUID を文字列で返します。 + &return.falseforfailure; @@ -35,7 +43,6 @@ - - + + com_event_sink @@ -10,13 +11,13 @@ &reftitle.description; boolcom_event_sink - variantcomobject - objectsinkobject - mixedsinkinterface + variantvariant + objectsink_object + arraystringnullsink_interface&null; - comobject が生成したイベントを PHP オブジェクト - sinkobject に通知するよう、COM に指示します。 + variant が生成したイベントを PHP オブジェクト + sink_object に通知するよう、COM に指示します。 この機能を利用する際には注意しましょう。もし以下の例のようなことを @@ -29,17 +30,17 @@ - comobject + variant - sinkobject + sink_object - sinkobject には、要求されるディスパッチ + sink_object には、要求されるディスパッチ インターフェイスと同じ名前のメソッドを持つクラスのインスタンスを 指定する必要があります。この要求を満たすクラスを作成するために、 com_print_typeinfo を使用することができます。 @@ -47,13 +48,13 @@ - sinkinterface + sink_interface - PHP は comobject に関連するタイプライブラリで + PHP は variant に関連するタイプライブラリで 指定されたデフォルトのディスパッチインターフェイスを使用しようと しますが、使用させたいインターフェイス名を - sinkinterface に指定することで、それを + sink_interface に指定することで、それを 上書きすることが可能です。 @@ -67,6 +68,29 @@ &return.success; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + sink_interface は、nullable になりました。 + + + + + + + &reftitle.examples; @@ -92,7 +116,6 @@ class IEEventSinker { } } $ie = new COM("InternetExplorer.Application"); -// PHP 5 では & が必要ないことに注意! $sink = new IEEventSinker(); com_event_sink($ie, $sink, "DWebBrowserEvents2"); $ie->Visible = true; @@ -107,6 +130,20 @@ $ie = null; + + + &reftitle.notes; + + + PHP 8.0.0 より前のバージョンでは、 + イベントハンドラから exit を呼ぶことはサポートされていませんでした。 + そうしてしまうと、PHP がハングする可能性もありました。 + この事象は、イベントハンドラから例外をスローしてメインのコードでキャッチし、 + exit を呼び出すことで回避できます。 + + + + &reftitle.seealso; @@ -117,7 +154,6 @@ $ie = null; - - + + com_get_active_object @@ -10,8 +11,8 @@ &reftitle.description; variantcom_get_active_object - stringprogid - intcode_page + stringprog_id + intnullcodepage&null; com_get_active_object は、新しい @@ -29,17 +30,17 @@ - progid + prog_id - progid は、アクセスしたいオブジェクトの + prog_id は、アクセスしたいオブジェクトの ProgID あるいは CLSID (たとえば Word.Application) である必要があります。 - code_page + codepage クラスの場合と同様の働きをします。 @@ -67,6 +68,30 @@ メソッドを使用することで、例外コードの内容を調べることが可能です。 + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + codepage は、nullable になりました。 + + + + + + + &reftitle.notes; @@ -82,7 +107,6 @@ - - + - + com_load_typelib タイプライブラリを読み込む @@ -11,8 +11,8 @@ &reftitle.description; boolcom_load_typelib - stringtypelib_name - boolcase_sensitive&true; + stringtypelib + boolcase_insensitive&true; タイプライブラリを読み込んで定数をエンジン内に登録し、それらが @@ -21,12 +21,13 @@ あまり融通の利く方法ではありませんが、 - 設定を利用して定数の + com.typelib-file + &php.ini; 設定を利用して定数の 事前読み込みと登録をすませるほうがずっと効率的であることに 注意しましょう。 - を有効にすると、 + com.autoregister-typelib を有効にすると、 PHP がインスタンス化した COM オブジェクトに関連付けられている定数を 自動的に登録しようと試みます。これは COM オブジェクト自身の提供する インターフェイスに依存し、常に可能であるとは限りません。 @@ -37,10 +38,10 @@ - typelib_name + typelib - typelib_name は、以下のいずれかの形式となります。 + typelib は、以下のいずれかの形式となります。 @@ -70,10 +71,10 @@ - case_sensitive + case_insensitive - case_sensitive は、 + case_insensitive は、 define 関数の $case_insensitive とは逆の動きをします。 @@ -88,7 +89,6 @@ - - + com_message_pump @@ -10,10 +10,10 @@ &reftitle.description; boolcom_message_pump - inttimeoutms0 + inttimeout_milliseconds0 - この関数は、timeoutms ミリ秒が経過するか + この関数は、timeout_milliseconds ミリ秒が経過するか キューにメッセージが到着するまで待機します。 @@ -31,13 +31,13 @@ - timeoutms + timeout_milliseconds タイムアウト。ミリ秒単位で指定します。 - timeoutms の値を指定しなかった場合は + timeout_milliseconds の値を指定しなかった場合は 0 であるとみなされます。0 という値は、一切待機しないことを 意味します。処理待ち状態のメッセージがあればそれを処理し、 なければこの関数はすぐに &false; を返します。 @@ -57,7 +57,6 @@ - - + @@ -11,9 +11,9 @@ &reftitle.description; boolcom_print_typeinfo - objectcomobject - stringdispinterface&null; - boolwantsink&false; + variantstringvariant + stringnulldispatch_interface&null; + booldisplay_sink&false; この関数の目的は、イベントシンクに使用するスケルトンクラスの作成を支援することです。 @@ -27,17 +27,17 @@ - comobject + variant - comobject は、COM オブジェクトのインスタンスか + variant は、COM オブジェクトのインスタンスか あるいはタイプライブラリの名前 (com_load_typelib の規則にしたがって名前解決されます) のいずれかです。 - dispinterface + dispatch_interface 結果を表示したいインターフェイスで、 @@ -46,7 +46,7 @@ - wantsink + display_sink &true; の場合、対応するシンクインターフェイスが代わりに表示されます。 @@ -72,7 +72,6 @@ - - + @@ -11,7 +11,7 @@ &reftitle.description; variantvariant_abs - mixedval + mixedvalue variant の絶対値を返します。 @@ -22,7 +22,7 @@ - val + value variant。 @@ -36,7 +36,7 @@ &reftitle.returnvalues; - val の絶対値を返します。 + value の絶対値を返します。 @@ -56,7 +56,6 @@ - - + variant_cast @@ -38,7 +38,8 @@ type - type は、定数 VT_XXX + type は、定数 + VT_* の中のひとつでなければなりません。 diff --git a/reference/com/functions/variant-cmp.xml b/reference/com/functions/variant-cmp.xml index 8f1fd288d3..919af4daad 100644 --- a/reference/com/functions/variant-cmp.xml +++ b/reference/com/functions/variant-cmp.xml @@ -1,6 +1,6 @@ - + variant_cmp @@ -12,8 +12,8 @@ intvariant_cmp mixedleft mixedright - intlcid - intflags + intlocale_idLOCALE_SYSTEM_DEFAULT + intflags0 leftright @@ -44,7 +44,7 @@ - lcid + locale_id 文字列の比較に使用する有効なロケール識別子です @@ -146,7 +146,6 @@ - - + variant_date_to_timestamp @@ -9,7 +9,7 @@ &reftitle.description; - intvariant_date_to_timestamp + intnullvariant_date_to_timestamp variantvariant @@ -37,6 +37,7 @@ &reftitle.returnvalues; unix タイムスタンプを返します。 + 失敗時には &null; を返します。 @@ -50,7 +51,6 @@ - - + @@ -11,7 +11,7 @@ &reftitle.description; variantvariant_fix - mixedvariant + mixedvalue variant の整数部を取得します。 @@ -22,7 +22,7 @@ - variant + value variant。 @@ -36,9 +36,9 @@ &reftitle.returnvalues; - variant が負の数の場合、variant の値以上の + value が負の数の場合、variant の値以上の 最初の整数値を返します。それ以外の場合は - variant の値の整数部分を返します。 + value の値の整数部分を返します。 @@ -49,16 +49,6 @@ - - &reftitle.notes; - - - このドキュメントは MSDN ドキュメントに基づいています。 - この関数は variant_int とまったく同じか、 - そうでなければ MSDN ドキュメントに間違いがあると思われます。 - - - &reftitle.seealso; @@ -72,7 +62,6 @@ - - + @@ -40,7 +40,8 @@ あるいは クラスのインスタンスです。 - 返される値は、VT_XXX 定数のいずれかと比較することが可能です。 + 返される値は、VT_* + 定数のいずれかと比較することが可能です。 COM および DOTNET オブジェクトの返す値は、通常 diff --git a/reference/com/functions/variant-int.xml b/reference/com/functions/variant-int.xml index b3a3fbca7f..63e11cd904 100644 --- a/reference/com/functions/variant-int.xml +++ b/reference/com/functions/variant-int.xml @@ -1,6 +1,6 @@ - + @@ -11,7 +11,7 @@ &reftitle.description; variantvariant_int - mixedvariant + mixedvalue variant の整数部を返します。 @@ -22,7 +22,7 @@ - variant + value variant。 @@ -36,9 +36,9 @@ &reftitle.returnvalues; - variant が負の数の場合、variant の値以上の - 最初の整数値を返します。それ以外の場合は - variant の値の整数部分を返します。 + value が負の数の場合、variant の値以下の + 最初の負の整数値を返します。それ以外の場合は + value の値の整数部分を返します。 @@ -62,7 +62,6 @@ - - + @@ -11,10 +11,10 @@ &reftitle.description; variantvariant_neg - mixedvariant + mixedvalue - variant の論理否定演算を行います。 + value の論理否定演算を行います。 @@ -22,7 +22,7 @@ - variant + value variant。 @@ -48,7 +48,6 @@ - - + @@ -11,10 +11,10 @@ &reftitle.description; variantvariant_not - mixedvariant + mixedvalue - variant のビット否定演算を行い、その結果を返します。 + value のビット否定演算を行い、その結果を返します。 @@ -22,7 +22,7 @@ - variant + value variant。 @@ -37,7 +37,7 @@ &reftitle.returnvalues; ビット否定演算の結果を返します。 - variant が &null; の場合、 + value が &null; の場合、 結果も &null; となります。 @@ -50,7 +50,6 @@ - - + variant_round @@ -9,12 +9,12 @@ &reftitle.description; - mixedvariant_round - mixedvariant + variantnullvariant_round + mixedvalue intdecimals - variant を、 + value を、 decimals で指定した桁で丸めた結果を返します。 @@ -23,7 +23,7 @@ - variant + value variant。 @@ -46,6 +46,7 @@ &reftitle.returnvalues; 丸めた結果を返します。 + 失敗した場合は &null; を返します。 @@ -57,7 +58,6 @@ - - +
&reftitle.runtime; @@ -17,41 +17,47 @@ &Changelog; - + com.allow_dcom "0" - PHP_INI_SYSTEM + INI_SYSTEM com.autoregister_typelib "0" - PHP_INI_ALL + INI_ALL com.autoregister_verbose "0" - PHP_INI_ALL + INI_ALL com.autoregister_casesensitive "1" - PHP_INI_ALL + INI_ALL com.code_page "" - PHP_INI_ALL + INI_ALL + + com.dotnet_version + "" + INI_SYSTEM + PHP 8.0.0 以降で利用可能 + com.typelib_file "" - PHP_INI_SYSTEM + INI_SYSTEM @@ -89,9 +95,7 @@ 定数を PHP に登録しようと試みます。ただし、それはオブジェクトが 当該情報を取得するためのインターフェイスを提供している場合のみです。 登録する定数の大文字小文字を区別するかどうかについては、 - 設定ディレクティブで - 制御します。 + com.autoregister_casesensitive &php.ini; 設定ディレクティブで制御します。 @@ -148,6 +152,19 @@ + + + com.dotnet_version + + + + dotnet オブジェクトが使う、.NET framework のバージョン。 + この値は、framework のバージョン番号のうち、ドットで区切られた最初の3つの部分で、 + v が先頭に付きます。たとえば v4.0.30319 のようなものです。 + + + + com.typelib_file diff --git a/reference/com/setup.xml b/reference/com/setup.xml index 9e7a9315de..3e4a8c24a1 100644 --- a/reference/com/setup.xml +++ b/reference/com/setup.xml @@ -1,6 +1,6 @@ - + @@ -13,7 +13,7 @@ COM 関数は、Windows 版の PHP でのみ利用可能です。 - .Net サポートは .Net ランタイムを必要とします。 + .Net サポートには .Net ランタイムが必要です。
@@ -22,9 +22,8 @@
&reftitle.install; - PHP 5.3.15 / 5.4.5 以降は、php_com_dotnet.dll - を &php.ini; で有効にしておかないとこれらの関数を使えなくなりました。 - それまでのバージョンの PHP では、この拡張モジュールがデフォルトで有効になっていました。 + これらの関数を使うには、php_com_dotnet.dll + を &php.ini; で有効にしておく必要があります。 使いたい COM オブジェクト (MS Word など) は別途インストールしておかないといけません。 @@ -38,13 +37,6 @@ &reference.com.ini; - -
- &reftitle.resources; - &no.resource; -
- - - + - + variant variant クラス @@ -23,20 +23,14 @@ &reftitle.classsynopsis; - - variant - - - - - variant - - - + + + variant + &Methods; - - + + @@ -82,8 +76,7 @@ print "The value is " . $v . "
"; &reference.com.entities.variant; -
- + - + @@ -10,11 +10,11 @@ &reftitle.description; - - variant::__construct + + public variant::__construct mixedvalue&null; - inttypeVT_EMPTY - intcodepageCP_ACP + inttypeVT_EMPTY + intcodepageCP_ACP 新しい variant オブジェクトを構築します。 @@ -38,7 +38,8 @@ variant オブジェクトの型を指定します。 有効な値は VT_XXX のうちの一つです。 + linkend="com.constants"/> の + VT_* のうちの一つです。 PHP は参照渡しを自動で認識できます。 @@ -54,7 +55,7 @@ 文字列をUnicodeに変換するのに使うコードページ。 - 詳細な情報は クラスの同じ名前のパラメータを参照してください。 + 詳細な情報は クラスの同じ名前のパラメータを参照ください。 @@ -62,7 +63,6 @@ - - - - - - Cracklib - Crack - - - - &reftitle.intro; - - このモジュールの関数により、パスワードの '強度' を試すための CrackLib - ライブラリが使用可能となります。パスワードの '強度' は、長さ、大文字/ - 小文字の使用で確認され、指定した CrackLib の辞書を用いて確認されます。 - CrackLib は、パスワードを '強化する' ために有用な統計情報も出力します。 - - - - &pecl.moved-ver;5.0.0. - - - - - - &reference.crack.setup; - &reference.crack.constants; - &reference.crack.examples; - &reference.crack.reference; - - - - - diff --git a/reference/crack/configure.xml b/reference/crack/configure.xml deleted file mode 100644 index a712b940b6..0000000000 --- a/reference/crack/configure.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - -
- &reftitle.install; - - &pecl.moved; - &pecl.info; - &url.pecl.package;crack. - - - これらの関数を使用するためには、設定オプション - を用いて - Crackサポートを有効にしてPHPを - コンパイルする必要があります。 - - - Windowsユーザーは、これらの関数を使用するために、 - &php.ini; の中に php_crack.dll を - 追加します。 - &pecl.windows.download; - -
- - diff --git a/reference/crack/constants.xml b/reference/crack/constants.xml deleted file mode 100644 index 414dac3a06..0000000000 --- a/reference/crack/constants.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - &reftitle.constants; - &no.constants; - - - - diff --git a/reference/crack/examples.xml b/reference/crack/examples.xml deleted file mode 100644 index f130610788..0000000000 --- a/reference/crack/examples.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - &reftitle.examples; - - 以下の例は、CrackLib 辞書をオープンする方法を示しており、 - 指定したパスワードを試験し、解析メッセージを取得し、辞書を閉じます。 - - CrackLib の例 - - -]]> - - - - - - crack_check が &true; を返すと、 - crack_getlastmessage は - 'strong password' - を返します。 - - - - - - diff --git a/reference/crack/functions/crack-check.xml b/reference/crack/functions/crack-check.xml deleted file mode 100644 index ef8ccf2e9d..0000000000 --- a/reference/crack/functions/crack-check.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - crack_check - 指定したパスワードに関して強度チェックを行う - - - 辞書 - - boolcrack_check - resourcedictionary - stringpassword - - - boolcrack_check - stringpassword - stringusername"" - stringgecos"" - resourcedictionary&null; - - - 指定した辞書を用いて指定したパスワードの強度チェックを行います。 - もうひとつのシグネチャは、ユーザー名と GECOS 情報も考慮します。 - - &warn.experimental.func; - - - &reftitle.parameters; - - - - dictionary - - - crackライブラリの辞書。指定しない場合は、直近にオープンされた辞書が - 使用されます。 - - - - - password - - - チェックするパスワード。 - - - - - username - - - そのパスワードを使うアカウントのユーザー名。 - - - - - gecos - - - ユーザーアカウントに関連づけられた GECOS 情報。 - - - - - - - - &reftitle.returnvalues; - - password が強い場合に、 - &true;、それ以外の場合に &false; を返します。 - - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 0.3 - - usernamegecos そして - dictionary パラメータを追加したもうひとつのシグネチャが用意されました。 - - - - - - - - - - - diff --git a/reference/crack/functions/crack-closedict.xml b/reference/crack/functions/crack-closedict.xml deleted file mode 100644 index 29101068e9..0000000000 --- a/reference/crack/functions/crack-closedict.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - crack_closedict - オープンされているCrackLib辞書を閉じる - - - 辞書 - - boolcrack_closedict - resourcedictionary - - - crack_closedictは、指定した - dictionaryIDを閉じます。 - - &warn.experimental.func; - - - &reftitle.parameters; - - - - dictionary - - - クローズする辞書。 - 指定されない場合、カレントの辞書がクローズされます。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - &reftitle.seealso; - - - crack_opendict - - - - - - diff --git a/reference/crack/functions/crack-getlastmessage.xml b/reference/crack/functions/crack-getlastmessage.xml deleted file mode 100644 index 2e4a66e7d0..0000000000 --- a/reference/crack/functions/crack-getlastmessage.xml +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - crack_getlastmessage - 直近の強度チェックからのメッセージを返す - - - &reftitle.description; - - stringcrack_getlastmessage - - - - crack_getlastmessage は、 - 直近の強度チェックからのメッセージを返します。 - - &warn.experimental.func; - - - &reftitle.returnvalues; - - 直近の強度チェックによるメッセージ、あるいはチェックがまだ行われていない場合は - &false; を返します。 - - - メッセージは以下のいずれかです。 - - - - it's WAY too short - - - - - it is too short - - - - - it does not contain enough DIFFERENT characters - - - - - it is all whitespace - - - - - it is too simplistic/systematic - - - - - it looks like a National Insurance number. - - - - - it is based on a dictionary word - - - - - it is based on a (reversed) dictionary word - - - - - strong password - - - - - - - &reftitle.seealso; - - - crack_check - - - - - - diff --git a/reference/crack/functions/crack-opendict.xml b/reference/crack/functions/crack-opendict.xml deleted file mode 100644 index 5bd47f7321..0000000000 --- a/reference/crack/functions/crack-opendict.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - crack_opendict - 新規CrackLib辞書をオープンする - - - 説明 - - resourcecrack_opendict - stringdictionary - - - crack_opendict は、指定した CrackLib - dictionary をオープンします。この辞書は、 - crack_checkで使用されます。 - - &warn.experimental.func; - - - 1度にオープンできる辞書は1つだけです。 - - - - - &reftitle.parameters; - - - - dictionary - - - Cracklib辞書のパス。 - - - - - - - - &reftitle.returnvalues; - - 成功時に辞書のリソースID、失敗時に &false; 。 - - - - &reftitle.seealso; - - - crack_check - crack_closedict - - - - - - diff --git a/reference/crack/reference.xml b/reference/crack/reference.xml deleted file mode 100644 index 5b6da73ebe..0000000000 --- a/reference/crack/reference.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - Crack &Functions; - - &reference.crack.entities.functions; - - - - diff --git a/reference/crack/setup.xml b/reference/crack/setup.xml deleted file mode 100644 index 951b834ef0..0000000000 --- a/reference/crack/setup.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - &reftitle.setup; - - -
- &reftitle.required; - - CrackLib に関するより詳細な情報は、 - &url.crack; にあります。 - -
- - - - &reference.crack.configure; - - - -
- &reftitle.runtime; - &no.config; -
- - - -
- &reftitle.resources; - - CrackLib 拡張モジュールでは、crack_opendict - が返すディレクトリリソース識別子を定義しています。 - -
- - -
- - - diff --git a/reference/csprng/book.xml b/reference/csprng/book.xml deleted file mode 100644 index 81195d33d7..0000000000 --- a/reference/csprng/book.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - CSPRNG - - - &reftitle.intro; - - cryptographically secure - pseudo-random number generator (CSPRNG) API は、 - 暗号学的に強固な乱数やバイト列を - 暗号化の文脈で使うための、 - 簡単で信頼性が高い方法を提供します。 - - - &version.exists.asof;7.0.0 ですが、 - PHP >= 5.2.0 で使える - ユーザーランドの実装 も公開されています。 - - - - &reference.csprng.setup; - &reference.csprng.constants; - &reference.csprng.reference; - - - - - diff --git a/reference/csprng/constants.xml b/reference/csprng/constants.xml deleted file mode 100644 index 95b67feef8..0000000000 --- a/reference/csprng/constants.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - &reftitle.constants; - &no.constants; - - - - diff --git a/reference/csprng/functions/random-bytes.xml b/reference/csprng/functions/random-bytes.xml deleted file mode 100644 index cbb6375bfa..0000000000 --- a/reference/csprng/functions/random-bytes.xml +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - random_bytes - 暗号論的に安全な、疑似ランダムなバイト列を生成する - - - - &reftitle.description; - - stringrandom_bytes - intlength - - - ソルトやキーや初期化ベクトルのような、暗号化の用途に合った、 - 暗号論的にランダムなバイト列を任意の長さの文字列として生成します。 - - &csprng.sources; - &csprng.function.backport; - - - - &reftitle.parameters; - - - length - - - 返すべきランダムな文字列の長さをバイト単位で指定します。 - - - - - - - - &reftitle.returnvalues; - - 暗号論的に安全なランダムなバイト列を含んだ文字列を返します。 - - - - - &reftitle.errors; - - &csprng.errors; - - - 不正な length が指定されると、 - Error がスローされます。 - - - - - - - &reftitle.examples; - - <function>random_bytes</function> の例 - - -]]> - - &example.outputs.similar; - - - - - - - - &reftitle.seealso; - - random_int - openssl_random_pseudo_bytes - bin2hex - - - - - - diff --git a/reference/csprng/functions/random-int.xml b/reference/csprng/functions/random-int.xml deleted file mode 100644 index 44a90a79a4..0000000000 --- a/reference/csprng/functions/random-int.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - random_int - 暗号論的に安全な疑似乱数を生成する - - - - &reftitle.description; - - intrandom_int - intmin - intmax - - - ポーカーゲームやカードデッキのシャッフルのような、 - 偏りがない結果が重要になる用途に合う、 - 暗号学的にランダムな整数を生成します。 - - &csprng.sources; - &csprng.function.backport; - - - - &reftitle.parameters; - - - min - - - 返される最小値。 - この値は、PHP_INT_MIN 以上でなければなりません。 - - - - - max - - - 返される最大値。 - この値は、PHP_INT_MAX 以下でなければなりません。 - - - - - - - - &reftitle.returnvalues; - - minmax の範囲で、 - 暗号学的に安全なランダムな整数値を返します (min と max を含みます) - - - - - &reftitle.errors; - - &csprng.errors; - - - maxmin より小さい場合、 - Error がスローされます。 - - - - - - - &reftitle.examples; - - <function>random_int</function> の例 - - -]]> - - &example.outputs.similar; - - - - - - - - &reftitle.seealso; - - random_bytes - - - - - - diff --git a/reference/csprng/reference.xml b/reference/csprng/reference.xml deleted file mode 100644 index 8c13ae814a..0000000000 --- a/reference/csprng/reference.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - CSPRNG &Functions; - - &reference.csprng.entities.functions; - - - - - diff --git a/reference/csprng/setup.xml b/reference/csprng/setup.xml deleted file mode 100644 index d1d0faa9b2..0000000000 --- a/reference/csprng/setup.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- -
- &reftitle.install; - &no.install; -
- -
- &reftitle.runtime; - &no.config; -
- -
- &reftitle.resources; - &no.resource; -
- -
- - diff --git a/reference/ctype/book.xml b/reference/ctype/book.xml index 47211bbcb8..a48288367e 100644 --- a/reference/ctype/book.xml +++ b/reference/ctype/book.xml @@ -1,6 +1,6 @@ - + @@ -23,12 +23,11 @@ 数値が -128 および -1 (境界を含む) の間の場合、256 が追加され、 その数字に関してチェックが行われます。
+ ¬e.ctype.parameter.non-string; 文字列引数を指定してコールした場合、これらの関数は、その文字列の全 ての文字を調べ、その文字列の全ての文字が要求された基準に一致する場 - 合にのみ &true; を返します。空の文字列でコールした場合は、 - PHP 5.1 より前のバージョンでは常に結果は &true; となり、一方 5.1 - 以降では常に結果は &false; となります。 + 合にのみ &true; を返します。&ctype.result.empty-string; 文字列または整数以外のものを指定した場合は、直ちに &false; が @@ -37,7 +36,7 @@ ctype 関数は、正規表現よりもつねに好ましく、さらに "str_*" および "is_*" のような いくつかの等価な関数よりも好ましいことに注意してください。 - これは、ctype 関数がネーティブな C ライブラリを使用しており、処理が著しく + これは、ctype 関数がネイティブな C ライブラリを使用しており、処理が著しく 高速であるためです。 @@ -48,13 +47,12 @@ また、この拡張モジュールのほうが Python の "ctypes" より先に登場しているわけで、 - こんなややこしいことになってしまったのも、決してこちらのせいではないわけで…。 + こんなややこしいことになってしまったのも、決して PHP のせいではないわけで…。 &reference.ctype.setup; - &reference.ctype.constants; &reference.ctype.reference; diff --git a/reference/ctype/configure.xml b/reference/ctype/configure.xml index b658ee65f8..d75dbd9176 100644 --- a/reference/ctype/configure.xml +++ b/reference/ctype/configure.xml @@ -1,12 +1,11 @@ - +
&reftitle.install; - によりctypeを無効にすること - ができます。 + &installation.enabled.disable; + &windows.builtin;
@@ -30,4 +29,4 @@ End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 ---> \ No newline at end of file +--> diff --git a/reference/ctype/constants.xml b/reference/ctype/constants.xml deleted file mode 100644 index f7188a5af5..0000000000 --- a/reference/ctype/constants.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - &reftitle.constants; - &no.constants; - - - - diff --git a/reference/ctype/functions/ctype-alnum.xml b/reference/ctype/functions/ctype-alnum.xml index e006807137..92bded8535 100644 --- a/reference/ctype/functions/ctype-alnum.xml +++ b/reference/ctype/functions/ctype-alnum.xml @@ -1,7 +1,7 @@ - - + + ctype_alnum @@ -12,7 +12,7 @@ &reftitle.description; boolctype_alnum - stringtext + mixedtext 与えられた文字列 text のすべての文字が英字または @@ -29,6 +29,8 @@ 調べる文字列。 + ¬e.ctype.parameter.integer; + ¬e.ctype.parameter.non-string; @@ -41,6 +43,7 @@ text のすべての文字が英字または数字だった場合に &true; 、そうでない場合に &false; を返します。 + &ctype.result.empty-string; @@ -74,11 +77,6 @@ The string foo!#$bar does not consist of all letters or digits. - - &reftitle.notes; - ¬e.ctype.parameter.integer; - - &reftitle.seealso; @@ -86,6 +84,7 @@ The string foo!#$bar does not consist of all letters or digits. ctype_alpha ctype_digit setlocale + IntlChar::isalnum diff --git a/reference/ctype/functions/ctype-alpha.xml b/reference/ctype/functions/ctype-alpha.xml index a36f9a6573..880a73b51c 100644 --- a/reference/ctype/functions/ctype-alpha.xml +++ b/reference/ctype/functions/ctype-alpha.xml @@ -1,7 +1,7 @@ - - + + ctype_alpha @@ -12,7 +12,7 @@ &reftitle.description; boolctype_alpha - stringtext + mixedtext 与えられた文字列 text のすべての文字が @@ -33,6 +33,8 @@ 調べる文字列。 + ¬e.ctype.parameter.integer; + ¬e.ctype.parameter.non-string; @@ -45,6 +47,7 @@ text のすべての文字が英字だった場合に &true; 、そうでない場合に &false; を返します。 + &ctype.result.empty-string; @@ -78,11 +81,6 @@ foreach ($strings as $testcase) { - - &reftitle.notes; - ¬e.ctype.parameter.integer; - - &reftitle.seealso; @@ -90,6 +88,7 @@ foreach ($strings as $testcase) { ctype_upper ctype_lower setlocale + IntlChar::isalpha diff --git a/reference/ctype/functions/ctype-cntrl.xml b/reference/ctype/functions/ctype-cntrl.xml index 810aff2dee..966be71b2b 100644 --- a/reference/ctype/functions/ctype-cntrl.xml +++ b/reference/ctype/functions/ctype-cntrl.xml @@ -1,7 +1,7 @@ - - + + ctype_cntrl @@ -12,7 +12,7 @@ &reftitle.description; boolctype_cntrl - stringtext + mixedtext 与えられた文字列 text @@ -30,6 +30,8 @@ 調べる文字列。 + ¬e.ctype.parameter.integer; + ¬e.ctype.parameter.non-string; @@ -42,6 +44,7 @@ text のすべての文字が現在のロケールの制御文字だった場合に &true;、そうでない場合に &false; を返します。 + &ctype.result.empty-string; @@ -75,16 +78,12 @@ The string 'string2' does not consist of all control characters. - - &reftitle.notes; - ¬e.ctype.parameter.integer; - - &reftitle.seealso; ctype_print + IntlChar::iscntrl diff --git a/reference/ctype/functions/ctype-digit.xml b/reference/ctype/functions/ctype-digit.xml index ffcc921e0c..c0afa95a40 100644 --- a/reference/ctype/functions/ctype-digit.xml +++ b/reference/ctype/functions/ctype-digit.xml @@ -1,7 +1,7 @@ - - + + ctype_digit @@ -12,7 +12,7 @@ &reftitle.description; boolctype_digit - stringtext + mixedtext 与えられた文字列 text のすべての文字が @@ -29,6 +29,8 @@ 調べる文字列。 + ¬e.ctype.parameter.integer; + ¬e.ctype.parameter.non-string; @@ -41,31 +43,7 @@ string text のすべての文字が 10 進数字だった場合に &true;、そうでない場合に &false; を返します。 - - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.1.0 - - PHP 5.1.0 より前のバージョンでは、この関数は - text が空文字列の場合に &true; を返していました。 - - - - - + &ctype.result.empty-string; @@ -120,19 +98,6 @@ is_numeric($integer); // true - - &reftitle.notes; - - - この関数を活用するには string を渡さなければなりません。 - たとえば integer を渡すと、期待する結果にならない可能性があります。 - HTML フォームに入力された整数値は、integer ではなく string 型で返されます。 - マニュアルの 型 についての節を参照ください。 - - - ¬e.ctype.parameter.integer; - - &reftitle.seealso; @@ -142,6 +107,7 @@ is_numeric($integer); // true is_numeric is_int is_string + IntlChar::isdigit diff --git a/reference/ctype/functions/ctype-graph.xml b/reference/ctype/functions/ctype-graph.xml index 8c607721a7..e0ccc2dd34 100644 --- a/reference/ctype/functions/ctype-graph.xml +++ b/reference/ctype/functions/ctype-graph.xml @@ -1,7 +1,7 @@ - - + + ctype_graph @@ -12,7 +12,7 @@ &reftitle.description; boolctype_graph - stringtext + mixedtext 与えられた文字列 text のすべての文字が @@ -29,6 +29,8 @@ 調べる文字列。 + ¬e.ctype.parameter.integer; + ¬e.ctype.parameter.non-string; @@ -41,6 +43,7 @@ text のすべての文字が印字可能で実際に目に見える 出力を行う(空白でない)場合に &true; 、そうでない場合に &false; を返します。 + &ctype.result.empty-string; @@ -75,11 +78,6 @@ The string 'string3' consists of all (visibly) printable characters. - - &reftitle.notes; - ¬e.ctype.parameter.integer; - - &reftitle.seealso; @@ -87,6 +85,7 @@ The string 'string3' consists of all (visibly) printable characters. ctype_alnum ctype_print ctype_punct + IntlChar::isgraph diff --git a/reference/ctype/functions/ctype-lower.xml b/reference/ctype/functions/ctype-lower.xml index 04f6d0d352..9f1ab27d21 100644 --- a/reference/ctype/functions/ctype-lower.xml +++ b/reference/ctype/functions/ctype-lower.xml @@ -1,7 +1,7 @@ - - + + ctype_lower @@ -12,7 +12,7 @@ &reftitle.description; boolctype_lower - stringtext + mixedtext text のすべての文字が小文字だった場合に @@ -29,6 +29,8 @@ 調べる文字列。 + ¬e.ctype.parameter.integer; + ¬e.ctype.parameter.non-string; @@ -41,6 +43,7 @@ text のすべての文字がカレントのロケールで 小文字だった場合に &true; 、そうでない場合に &false; を返します。 + &ctype.result.empty-string; @@ -75,11 +78,6 @@ The string QASsdks does not consist of all lowercase letters. - - &reftitle.notes; - ¬e.ctype.parameter.integer; - - &reftitle.seealso; @@ -87,6 +85,7 @@ The string QASsdks does not consist of all lowercase letters. ctype_alpha ctype_upper setlocale + IntlChar::islower diff --git a/reference/ctype/functions/ctype-print.xml b/reference/ctype/functions/ctype-print.xml index 502e2807a8..78db9e9aa6 100644 --- a/reference/ctype/functions/ctype-print.xml +++ b/reference/ctype/functions/ctype-print.xml @@ -1,7 +1,7 @@ - - + + ctype_print @@ -12,7 +12,7 @@ &reftitle.description; boolctype_print - stringtext + mixedtext 与えられた文字列 text のすべての文字が @@ -29,6 +29,8 @@ 調べる文字列。 + ¬e.ctype.parameter.integer; + ¬e.ctype.parameter.non-string; @@ -43,6 +45,7 @@ 出力を行う場合に &true; 、text に制御文字 またはまったく出力も制御も行わない文字が含まれる場合に &false; を返します。 + &ctype.result.empty-string; @@ -77,11 +80,6 @@ The string 'string3' consists of all printable characters. - - &reftitle.notes; - ¬e.ctype.parameter.integer; - - &reftitle.seealso; @@ -89,6 +87,7 @@ The string 'string3' consists of all printable characters. ctype_cntrl ctype_graph ctype_punct + IntlChar::isprint diff --git a/reference/ctype/functions/ctype-punct.xml b/reference/ctype/functions/ctype-punct.xml index f063731aad..bbda12e20c 100644 --- a/reference/ctype/functions/ctype-punct.xml +++ b/reference/ctype/functions/ctype-punct.xml @@ -1,7 +1,7 @@ - - + + ctype_punct @@ -14,7 +14,7 @@ &reftitle.description; boolctype_punct - stringtext + mixedtext 与えられた文字列 text のすべての文字が @@ -31,6 +31,8 @@ 調べる文字列。 + ¬e.ctype.parameter.integer; + ¬e.ctype.parameter.non-string; @@ -44,6 +46,7 @@ text のすべての文字が出力可能であり、 かつ文字でも数字でも空白でもなかった場合に &true; 、そうでない場合に &false; を返します。 + &ctype.result.empty-string; @@ -78,17 +81,13 @@ The string *&$() consists of all punctuation. - - &reftitle.notes; - ¬e.ctype.parameter.integer; - - &reftitle.seealso; ctype_cntrl ctype_graph + IntlChar::ispunct diff --git a/reference/ctype/functions/ctype-space.xml b/reference/ctype/functions/ctype-space.xml index a6ddf66f13..afde205a12 100644 --- a/reference/ctype/functions/ctype-space.xml +++ b/reference/ctype/functions/ctype-space.xml @@ -1,7 +1,7 @@ - - + + ctype_space @@ -12,7 +12,7 @@ &reftitle.description; boolctype_space - stringtext + mixedtext 与えられた文字列 text のすべての文字が @@ -29,6 +29,8 @@ 調べる文字列。 + ¬e.ctype.parameter.integer; + ¬e.ctype.parameter.non-string; @@ -43,6 +45,7 @@ 生成する場合に &true; 、そうでない場合に &false; を返します。 空白文字には、タブ・垂直タブ・改行・復帰・フォームフィード文字も 含まれます。 + &ctype.result.empty-string; @@ -82,11 +85,6 @@ The string 'string3' contains non-whitespace characters. - - &reftitle.notes; - ¬e.ctype.parameter.integer; - - &reftitle.seealso; @@ -94,6 +92,7 @@ The string 'string3' contains non-whitespace characters. ctype_cntrl ctype_graph ctype_punct + IntlChar::isspace diff --git a/reference/ctype/functions/ctype-upper.xml b/reference/ctype/functions/ctype-upper.xml index e7aac51e35..9daed42664 100644 --- a/reference/ctype/functions/ctype-upper.xml +++ b/reference/ctype/functions/ctype-upper.xml @@ -1,7 +1,7 @@ - - + + ctype_upper @@ -12,7 +12,7 @@ &reftitle.description; boolctype_upper - stringtext + mixedtext 与えられた文字列 text のすべての文字が @@ -29,6 +29,8 @@ 調べる文字列。 + ¬e.ctype.parameter.integer; + ¬e.ctype.parameter.non-string; @@ -41,6 +43,7 @@ text のすべての文字がカレントのロケールで 大文字だった場合に &true; 、そうでない場合に &false; を返します。 + &ctype.result.empty-string; @@ -75,11 +78,6 @@ The string akwSKWsm does not consist of all uppercase letters. - - &reftitle.notes; - ¬e.ctype.parameter.integer; - - &reftitle.seealso; @@ -87,6 +85,7 @@ The string akwSKWsm does not consist of all uppercase letters. ctype_alpha ctype_lower setlocale + IntlChar::isupper diff --git a/reference/ctype/functions/ctype-xdigit.xml b/reference/ctype/functions/ctype-xdigit.xml index 00619cbfc3..b7077f4b77 100644 --- a/reference/ctype/functions/ctype-xdigit.xml +++ b/reference/ctype/functions/ctype-xdigit.xml @@ -1,7 +1,7 @@ - - + + ctype_xdigit @@ -14,7 +14,7 @@ &reftitle.description; boolctype_xdigit - stringtext + mixedtext 与えられた文字列 text のすべての文字が @@ -31,6 +31,8 @@ 調べる文字列。 + ¬e.ctype.parameter.integer; + ¬e.ctype.parameter.non-string; @@ -44,6 +46,7 @@ text のすべての文字が 16 進の '数字' つまり 10 進の数字または [A-Fa-f] だった場合に &true; 、そうでない場合に &false; を返します。 + &ctype.result.empty-string; @@ -78,16 +81,12 @@ The string ab12bc99 consists of all hexadecimal digits. - - &reftitle.notes; - ¬e.ctype.parameter.integer; - - &reftitle.seealso; ctype_digit + IntlChar::isxdigit diff --git a/reference/ctype/setup.xml b/reference/ctype/setup.xml index 34c350180f..983cd6e472 100644 --- a/reference/ctype/setup.xml +++ b/reference/ctype/setup.xml @@ -1,6 +1,6 @@ - + @@ -15,16 +15,6 @@ &reference.ctype.configure; -
- &reftitle.runtime; - &no.config; -
- -
- &reftitle.resources; - &no.resource; -
-
diff --git a/reference/cubrid/book.xml b/reference/cubrid/book.xml index 1dd8b6626d..aa70e84c69 100644 --- a/reference/cubrid/book.xml +++ b/reference/cubrid/book.xml @@ -1,7 +1,8 @@ - + + CUBRID CUBRID diff --git a/reference/cubrid/configure.xml b/reference/cubrid/configure.xml index a6482247af..52ad720b27 100644 --- a/reference/cubrid/configure.xml +++ b/reference/cubrid/configure.xml @@ -1,6 +1,6 @@ - +
&reftitle.install; diff --git a/reference/cubrid/cubridmysql.xml b/reference/cubrid/cubridmysql.xml index d2f6132f42..97c8de8a62 100644 --- a/reference/cubrid/cubridmysql.xml +++ b/reference/cubrid/cubridmysql.xml @@ -1,6 +1,6 @@ - + CUBRID MySQL 互換関数 diff --git a/reference/cubrid/reference.xml b/reference/cubrid/reference.xml index 21d612d623..3e3cc4e2bc 100644 --- a/reference/cubrid/reference.xml +++ b/reference/cubrid/reference.xml @@ -1,6 +1,6 @@ - + CUBRID &Functions; diff --git a/reference/curl/book.xml b/reference/curl/book.xml index c8c96cf762..aa081ea6ad 100644 --- a/reference/curl/book.xml +++ b/reference/curl/book.xml @@ -1,6 +1,6 @@ - + @@ -12,12 +12,13 @@ &reftitle.intro; - PHP は、Daniel Stenbergにより開発されたライブラリlibcurl をサポートします。 + PHP は、Daniel Stenberg により開発されたライブラリ libcurl をサポートします。 このライブラリにより、多くの異なったプロトコルで様々なサーバーと接続し、 通信することが可能になります。libcurl は現在 http, https, ftp, gopher, telnet, dict, file, ldap - プロトコルをサポートしてします。libcurl は HTTPS 認証、HTTP POST、HTTP PUT、FTP - アップロード(これはPHPのftp拡張機能でも実行可能です)、 + プロトコルをサポートしてします。 + libcurl は HTTPS 認証、HTTP POST、HTTP PUT、FTP + アップロード(これは PHP の ftp 拡張モジュールでも実行可能です)、 HTTPフォームによるアップロード、プロキシ、クッキー、 ユーザー名+パスワードによる認証もサポートします。 @@ -28,7 +29,12 @@ &reference.curl.constants; &reference.curl.examples; &reference.curl.reference; + &reference.curl.curlhandle; + &reference.curl.curlmultihandle; + &reference.curl.curlsharehandle; + &reference.curl.curlsharepersistenthandle; &reference.curl.curlfile; + &reference.curl.curlstringfile; @@ -52,4 +58,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> - diff --git a/reference/curl/configure.xml b/reference/curl/configure.xml index 076453b941..33891deb3a 100644 --- a/reference/curl/configure.xml +++ b/reference/curl/configure.xml @@ -1,6 +1,6 @@ - +
&reftitle.install; @@ -12,9 +12,7 @@ 必要があり、そのフォルダにはファイル easy.h および curl.h がある必要が あります。libcurl.a という名前のファイルがディレクトリ lib - にある必要があります。PHP 5.5.0 より前のバージョンでは、URL ストリームで cURL を使用するよう PHP を - 設定するために - を指定可能でした。 + にある必要があります。 Win32 ユーザーへの注意 diff --git a/reference/curl/constants.xml b/reference/curl/constants.xml index 4001117f98..961ef40f92 100644 --- a/reference/curl/constants.xml +++ b/reference/curl/constants.xml @@ -1,4615 +1,2345 @@ - - + &reftitle.constants; &extension.constants; - これらの定数についての説明や実際の使用法は、 - curl_setopt および curl_getinfo - のドキュメントを参照ください。 + 以下の定数の説明と使い方は、 + curl_setopt, curl_multi_setopt, + curl_getinfo のドキュメントで説明しています。 - - + + - CURLOPT_AUTOREFERER - (integer) + CURLALTSVC_H1 + (int) - PHP 5.1.0 以降で使用可能です。 + PHP 8.2.0 以降 および cURL 7.64.1 以降で利用可能です。 - + - CURLOPT_COOKIESESSION - (integer) - - - - PHP 5.1.0 以降で使用可能です。 - - - - - - CURLOPT_DNS_USE_GLOBAL_CACHE - (integer) - - - - - - - - - - CURLOPT_DNS_CACHE_TIMEOUT - (integer) - - - - - - - - - - CURLOPT_FTP_SSL - (integer) - - - - PHP 5.2.0 以降で使用可能です。 - - - - - - CURLFTP_CREATE_DIR - (integer) - - - - PHP 7.0.7 および cURL 7.19.3 以降で使用可能です。 - - - - - - CURLFTP_CREATE_DIR_NONE - (integer) - - - - PHP 7.0.7 および cURL 7.19.3 以降で使用可能です。 - - - - - - CURLFTP_CREATE_DIR_RETRY - (integer) - - - - PHP 7.0.7 および cURL 7.19.3 以降で使用可能です。 - - - - - - CURLFTPSSL_TRY - (integer) - - - - PHP 5.2.0 以降で使用可能です。 - - - - - - CURLFTPSSL_ALL - (integer) - - - - PHP 5.2.0 以降で使用可能です。 - - - - - - CURLFTPSSL_CONTROL - (integer) - - - - PHP 5.2.0 以降で使用可能です。 - - - - - - CURLFTPSSL_NONE - (integer) - - - - PHP 5.2.0 以降で使用可能です。 - - - - - - CURLOPT_PRIVATE - (integer) - - - - PHP 5.2.4 以降で使用可能です。 - - - - - - CURLOPT_FTPSSLAUTH - (integer) - - - - PHP 5.1.0 以降で使用可能です。 - - - - - - CURLOPT_PORT - (integer) - - - - - - - - - - CURLOPT_FILE - (integer) - - - - - - - - - - - CURLOPT_INFILE - (integer) + CURLALTSVC_H2 + (int) - + PHP 8.2.0 以降 および cURL 7.64.1 以降で利用可能です。 - + - CURLOPT_INFILESIZE - (integer) + CURLALTSVC_H3 + (int) - + PHP 8.2.0 以降 および cURL 7.64.1 以降で利用可能です。 - + - CURLOPT_URL - (integer) + CURLALTSVC_READONLYFILE + (int) - + PHP 8.2.0 以降 および cURL 7.64.1 以降で利用可能です。 - + - CURLOPT_PROXY - (integer) + CURLAUTH_ANY + (int) - + - + - CURLOPT_VERBOSE - (integer) + CURLAUTH_ANYSAFE + (int) - + - + - CURLOPT_HEADER - (integer) + CURLAUTH_AWS_SIGV4 + (int) - + PHP 8.2.0 以降 および cURL 7.75.0 以降で利用可能です。 - + - CURLOPT_HTTPHEADER - (integer) + CURLAUTH_BASIC + (int) - + - + - CURLOPT_NOPROGRESS - (integer) + CURLAUTH_BEARER + (int) - + PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。 - + - CURLOPT_NOBODY - (integer) + CURLAUTH_DIGEST + (int) - + - + - CURLOPT_FAILONERROR - (integer) + CURLAUTH_DIGEST_IE + (int) - + IE フレーバーと HTTP Digest 認証を使います。 + cURL 7.19.3 以降で利用可能です。 - + - CURLOPT_UPLOAD - (integer) + CURLAUTH_GSSAPI + (int) - + PHP 7.3.0 以降 および cURL 7.54.1 以降で利用可能です。 - + - CURLOPT_POST - (integer) + CURLAUTH_GSSNEGOTIATE + (int) - + - + - CURLOPT_FTPLISTONLY - (integer) + CURLAUTH_NEGOTIATE + (int) - + PHP 7.0.7 以降 および cURL 7.38.0 以降で利用可能です。 - + - CURLOPT_FTPAPPEND - (integer) + CURLAUTH_NONE + (int) - + cURL 7.10.6 以降で利用可能です。 - + - CURLOPT_FTP_CREATE_MISSING_DIRS - (integer) + CURLAUTH_NTLM + (int) - + - + - CURLOPT_NETRC - (integer) + CURLAUTH_NTLM_WB + (int) - + PHP 7.0.7 以降 および cURL 7.22.0 以降で利用可能です。 - + - CURLOPT_FOLLOWLOCATION - (integer) + CURLAUTH_ONLY + (int) - open_basedir あるいは - safe_mode が有効な場合は、 - この定数は使用できません。 + これはメタシンボルです。 + この値と単一の特別な認証の値を組み合わせることで、 + libcurl に制限なしの認証を試みさせ、 + それが失敗した場合、単一の認証アルゴリズムを受け入れさせるようにします。 + cURL 7.21.3 以降で利用可能です。 - + - CURLOPT_FTPASCII - (integer) + CURLFTPAUTH_DEFAULT + (int) - + - + - CURLOPT_PUT - (integer) + CURLFTPAUTH_SSL + (int) - + - + - CURLOPT_MUTE - (integer) + CURLFTPAUTH_TLS + (int) - + - + - CURLOPT_USERPWD - (integer) + CURLFTPMETHOD_DEFAULT + (int) - + PHP 8.2.0 以降 および cURL 7.15.3 以降で利用可能です。 - + - CURLOPT_PROXYUSERPWD - (integer) + CURLFTPMETHOD_MULTICWD + (int) - + 指定された URL 中の個別の path 部分に + CWD + 操作を行います。 + cURL 7.15.3 以降で利用可能です。 - + - CURLOPT_RANGE - (integer) + CURLFTPMETHOD_NOCWD + (int) - + CWD を全く実行しません。 + SIZE, + RETR, + STOR などを実行し、 + これらのコマンドに対して、サーバーのフルパスを指定します。 + cURL 7.15.3 以降で利用可能です。 - + - CURLOPT_TIMEOUT - (integer) + CURLFTPMETHOD_SINGLECWD + (int) - + ディレクトリ全体に対して一度 + CWD を実行してから、 + multicwd の場合のように、ファイルを操作します。 + cURL 7.15.3 以降で利用可能です。 - + - CURLOPT_TIMEOUT_MS - (integer) + CURLFTPSSL_ALL + (int) - + - + - CURLOPT_TCP_NODELAY - (integer) + CURLFTPSSL_CCC_ACTIVE + (int) - PHP 5.2.1 以降で使用可能です。 + シャットダウンを発行し、応答を待ちます。 + cURL 7.16.2 以降で利用可能です。 - + - CURLOPT_POSTFIELDS - (integer) + CURLFTPSSL_CCC_NONE + (int) - + CCC (Clear Command Channel) を使いません。 + cURL 7.16.2 以降で利用可能です。 - + - CURLOPT_PROGRESSFUNCTION - (integer) + CURLFTPSSL_CCC_PASSIVE + (int) - PHP 5.3.0 以降で使用可能です。 + シャットダウンを発行せず、サーバーが発行するのを待ちます。 + 応答を送信しません。 + cURL 7.16.1 以降で利用可能です。 - + - CURLOPT_REFERER - (integer) + CURLFTPSSL_CONTROL + (int) - + - + - CURLOPT_USERAGENT - (integer) + CURLFTPSSL_NONE + (int) - + - + - CURLOPT_FTPPORT - (integer) + CURLFTPSSL_TRY + (int) - + - + - CURLOPT_FTP_USE_EPSV - (integer) + CURLFTP_CREATE_DIR + (int) - + PHP 7.0.7 以降 および cURL 7.19.3 以降で利用可能です。 - + - CURLOPT_LOW_SPEED_LIMIT - (integer) + CURLFTP_CREATE_DIR_NONE + (int) - + PHP 7.0.7 以降 および cURL 7.19.3 以降で利用可能です。 - + - CURLOPT_LOW_SPEED_TIME - (integer) + CURLFTP_CREATE_DIR_RETRY + (int) - + PHP 7.0.7 以降 および cURL 7.19.3 以降で利用可能です。 - + - CURLOPT_RESUME_FROM - (integer) + CURLGSSAPI_DELEGATION_FLAG + (int) - + GSSAPI クレデンシャルの委譲を許可します。 + cURL 7.22.0 以降で利用可能です。 - + - CURLOPT_COOKIE - (integer) + CURLGSSAPI_DELEGATION_POLICY_FLAG + (int) - + GSS-API の実装がこの機能をサポートしている場合、 + かつ GSS_C_DELEG_POLICY_FLAG がコンパイル時に定義されている場合には、 + サービスチケットに OK-AS-DELEGATE + フラグが設定されている場合に限り委譲を行います。 + cURL 7.22.0 以降で利用可能です。 - + - CURLOPT_COOKIELIST - (integer) + CURLHEADER_SEPARATE + (int) - PHP 5.5.0 以降 および cURL 7.14.1 で利用可能。 + PHP 7.0.7 以降 および cURL 7.37.0 以降で利用可能です。 - + - CURLOPT_SSLCERT - (integer) + CURLHEADER_UNIFIED + (int) - + PHP 7.0.7 以降 および cURL 7.37.0 以降で利用可能です。 - + - CURLOPT_SSLCERTPASSWD - (integer) + CURLHSTS_ENABLE + (int) - + PHP 8.2.0 以降 および cURL 7.74.0 以降で利用可能です。 - + - CURLOPT_WRITEHEADER - (integer) + CURLHSTS_READONLYFILE + (int) - + PHP 8.2.0 以降 および cURL 7.74.0 以降で利用可能です。 - + - CURLOPT_SSL_VERIFYHOST - (integer) + CURLKHMATCH_LAST + (int) - + PHP 8.3.0 以降 および cURL 7.19.6 以降で利用可能です。 - + - CURLOPT_COOKIEFILE - (integer) + CURLKHMATCH_MISMATCH + (int) - + PHP 8.3.0 以降 および cURL 7.19.6 以降で利用可能です。 - + - CURLOPT_SSLVERSION - (integer) + CURLKHMATCH_MISSING + (int) - + PHP 8.3.0 以降 および cURL 7.19.6 以降で利用可能です。 - + - CURL_SSLVERSION_DEFAULT - (integer) + CURLKHMATCH_OK + (int) - + PHP 8.3.0 以降 および cURL 7.19.6 以降で利用可能です。 - + - CURL_SSLVERSION_TLSv1 - (integer) + CURLMIMEOPT_FORMESCAPE + (int) - + PHP 8.3.0 以降 および cURL 7.81.0 以降で利用可能です。 - + - CURL_SSLVERSION_SSLv2 - (integer) + CURLMSG_DONE + (int) - + - + - CURL_SSLVERSION_SSLv3 - (integer) + CURLPIPE_HTTP1 + (int) - + cURL 7.43.0 以降で利用可能です。 - + - CURL_SSLVERSION_TLSv1_0 - (integer) + CURLPIPE_MULTIPLEX + (int) - PHP 5.5.19 および 5.6.3 以降で使用可能です。 + cURL 7.43.0 以降で利用可能です。 - + - CURL_SSLVERSION_TLSv1_1 - (integer) + CURLPIPE_NOTHING + (int) - PHP 5.5.19 および 5.6.3 以降で使用可能です。 + cURL 7.43.0 以降で利用可能です。 - + - CURL_SSLVERSION_TLSv1_2 - (integer) + CURLPROXY_HTTP + (int) - PHP 5.5.19 および 5.6.3 以降で使用可能です。 + cURL 7.10 以降で利用可能です。 - + - CURLOPT_TIMECONDITION - (integer) + CURLPROXY_HTTPS + (int) - + PHP 7.3.0 以降 および cURL 7.52.0 以降で利用可能です。 - + - CURLOPT_TIMEVALUE - (integer) + CURLPROXY_HTTP_1_0 + (int) - + PHP 7.0.7 以降 および cURL 7.19.3 以降で利用可能です。 - + - CURLOPT_CUSTOMREQUEST - (integer) + CURLPROXY_SOCKS4 + (int) - + cURL 7.10 以降で利用可能です。 - + - CURLOPT_STDERR - (integer) + CURLPROXY_SOCKS4A + (int) - + cURL 7.18.0 以降で利用可能です。 - + - CURLOPT_TRANSFERTEXT - (integer) + CURLPROXY_SOCKS5 + (int) - + cURL 7.10 以降で利用可能です。 - + - CURLOPT_RETURNTRANSFER - (integer) + CURLPROXY_SOCKS5_HOSTNAME + (int) - + cURL 7.18.0 以降で利用可能です。 - + - CURLOPT_QUOTE - (integer) + CURLPX_BAD_ADDRESS_TYPE + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_POSTQUOTE - (integer) + CURLPX_BAD_VERSION + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_INTERFACE - (integer) + CURLPX_CLOSED + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_KRB4LEVEL - (integer) + CURLPX_GSSAPI + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_HTTPPROXYTUNNEL - (integer) + CURLPX_GSSAPI_PERMSG + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_FILETIME - (integer) + CURLPX_GSSAPI_PROTECTION + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_WRITEFUNCTION - (integer) + CURLPX_IDENTD + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_READFUNCTION - (integer) + CURLPX_IDENTD_DIFFER + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_PASSWDFUNCTION - (integer) + CURLPX_LONG_HOSTNAME + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_HEADERFUNCTION - (integer) + CURLPX_LONG_PASSWD + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_MAXREDIRS - (integer) + CURLPX_LONG_USER + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_MAXCONNECTS - (integer) + CURLPX_NO_AUTH + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_CLOSEPOLICY - (integer) + CURLPX_OK + (int) - PHP 5.6.0 で削除されました。 + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_FRESH_CONNECT - (integer) + CURLPX_RECV_ADDRESS + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_FORBID_REUSE - (integer) + CURLPX_RECV_AUTH + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_RANDOM_FILE - (integer) + CURLPX_RECV_CONNECT + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_EGDSOCKET - (integer) + CURLPX_RECV_REQACK + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_CONNECTTIMEOUT - (integer) + CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_CONNECTTIMEOUT_MS - (integer) + CURLPX_REPLY_COMMAND_NOT_SUPPORTED + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_SSL_VERIFYPEER - (integer) + CURLPX_REPLY_CONNECTION_REFUSED + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_CAINFO - (integer) + CURLPX_REPLY_GENERAL_SERVER_FAILURE + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_CAPATH - (integer) + CURLPX_REPLY_HOST_UNREACHABLE + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_COOKIEJAR - (integer) + CURLPX_REPLY_NETWORK_UNREACHABLE + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_SSL_CIPHER_LIST - (integer) + CURLPX_REPLY_NOT_ALLOWED + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_BINARYTRANSFER - (integer) + CURLPX_REPLY_TTL_EXPIRED + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_NOSIGNAL - (integer) + CURLPX_REPLY_UNASSIGNED + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_PROXYTYPE - (integer) + CURLPX_REQUEST_FAILED + (int) - cURL 7.10 以降で使用可能です。 + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_BUFFERSIZE - (integer) + CURLPX_RESOLVE_HOST + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_HTTPGET - (integer) + CURLPX_SEND_AUTH + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_HTTP_VERSION - (integer) + CURLPX_SEND_CONNECT + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_SSLKEY - (integer) + CURLPX_SEND_REQUEST + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_SSLKEYTYPE - (integer) + CURLPX_UNKNOWN_FAIL + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_SSLKEYPASSWD - (integer) + CURLPX_UNKNOWN_MODE + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_SSLENGINE - (integer) + CURLPX_USER_REJECTED + (int) - + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 - + - CURLOPT_SSLENGINE_DEFAULT - (integer) + CURLSSH_AUTH_AGENT + (int) - + PHP 7.0.7 以降 および cURL 7.28.0 以降で利用可能です。 - + - CURLOPT_SSLCERTTYPE - (integer) + CURLSSH_AUTH_ANY + (int) - + - + - CURLOPT_CRLF - (integer) + CURLSSH_AUTH_DEFAULT + (int) - + - + - CURLOPT_ENCODING - (integer) + CURLSSH_AUTH_GSSAPI + (int) - + PHP 7.3.0 以降 および cURL 7.58.0 以降で利用可能です。 - + - CURLOPT_PROXYPORT - (integer) + CURLSSH_AUTH_HOST + (int) - + - + - CURLOPT_UNRESTRICTED_AUTH - (integer) + CURLSSH_AUTH_KEYBOARD + (int) - + - + - CURLOPT_FTP_USE_EPRT - (integer) + CURLSSH_AUTH_NONE + (int) - + - + - CURLOPT_HTTP200ALIASES - (integer) + CURLSSH_AUTH_PASSWORD + (int) - + - + - CURLOPT_HTTPAUTH - (integer) + CURLSSH_AUTH_PUBLICKEY + (int) - + - + - CURLAUTH_BASIC - (integer) + CURLSSLOPT_ALLOW_BEAST + (int) - + cURL 7.25. 以降で利用可能です。 - + - CURLAUTH_DIGEST - (integer) + CURLSSLOPT_AUTO_CLIENT_CERT + (int) - + PHP 8.2.0 以降 および cURL 7.77.0 以降で利用可能です。 - + - CURLAUTH_GSSNEGOTIATE - (integer) + CURLSSLOPT_NATIVE_CA + (int) - + PHP 8.2.0 以降 および cURL 7.71.0 以降で利用可能です。 - + - CURLAUTH_NEGOTIATE - (integer) + CURLSSLOPT_NO_PARTIALCHAIN + (int) - PHP 7.0.7 および cURL 7.38.0 以降で使用可能です。 + PHP 8.2.0 以降 および cURL 7.68.0 以降で利用可能です。 - + - CURLAUTH_NTLM - (integer) + CURLSSLOPT_NO_REVOKE + (int) - + PHP 7.0.7 以降 および cURL 7.44.0 以降で利用可能です。 - + - CURLAUTH_NTLM_WB - (integer) + CURLSSLOPT_REVOKE_BEST_EFFORT + (int) - PHP 7.0.7 および cURL 7.22.0 以降で使用可能です。 + PHP 8.2.0 以降 および cURL 7.70.0 以降で利用可能です。 - + - CURLAUTH_ANY - (integer) + CURLUSESSL_ALL + (int) - + 全ての通信に SSL を要求するか、 + CURLE_USE_SSL_FAILED + で失敗します。 + cURL 7.17.0 以降で利用可能です。 - + - CURLAUTH_ANYSAFE - (integer) + CURLUSESSL_CONTROL + (int) - + 制御接続(コントロールコネクション) について SSL を要求するか、 + CURLE_USE_SSL_FAILED + で失敗します。 + cURL 7.17.0 以降で利用可能です。 - + - CURLOPT_PROXYAUTH - (integer) + CURLUSESSL_NONE + (int) - + SSL を利用しません。 + cURL 7.17.0 以降で利用可能です。 - + - CURLOPT_MAX_RECV_SPEED_LARGE - (integer) + CURLUSESSL_TRY + (int) - PHP 5.4.0 および cURL 7.15.5 以降で使用可能です。 + SSL を利用しようとしますが、利用できなければ通常の接続を試みます。 + ネゴシエーションが失敗した場合、サーバーの接続が閉じる可能性があることに注意しましょう。 + cURL 7.17.0 以降で利用可能です。 - + - CURLOPT_MAX_SEND_SPEED_LARGE - (integer) + CURLVERSION_NOW + (int) - PHP 5.4.0 および cURL 7.15.5 以降で使用可能です。 + - + - CURLOPT_HEADEROPT - (integer) + CURLWS_RAW_MODE + (int) - PHP 7.0.7 および cURL 7.37.0 以降で使用可能です。 + PHP 8.3.0 以降 および cURL 7.86.0 以降で利用可能です。 - + - CURLOPT_PROXYHEADER - (integer) + CURL_FNMATCHFUNC_FAIL + (int) - PHP 7.0.7 および cURL 7.37.0 以降で使用可能です。 + エラーが発生した場合、ワイルドカードマッチのコールバック関数を返します。 + cURL 7.21.0 以降で利用可能です。 - + - CURLCLOSEPOLICY_LEAST_RECENTLY_USED - (integer) + CURL_FNMATCHFUNC_MATCH + (int) - PHP 5.6.0 で削除されました。 + 文字列にパターンがマッチした場合、 + ワイルドカードマッチのコールバック関数を返します。 + cURL 7.21.0 以降で利用可能です。 - + - CURLCLOSEPOLICY_LEAST_TRAFFIC - (integer) + CURL_FNMATCHFUNC_NOMATCH + (int) - PHP 5.6.0 で削除されました。 + 文字列にパターンがマッチしない場合、 + ワイルドカードマッチのコールバック関数を返します。 + cURL 7.21.0 以降で利用可能です。 - + - CURLCLOSEPOLICY_SLOWEST - (integer) + CURL_HTTP_VERSION_1_0 + (int) - PHP 5.6.0 で削除されました。 + - + - CURLCLOSEPOLICY_CALLBACK - (integer) + CURL_HTTP_VERSION_1_1 + (int) - PHP 5.6.0 で削除されました。 + - + - CURLCLOSEPOLICY_OLDEST - (integer) + CURL_HTTP_VERSION_2 + (int) - PHP 5.6.0 で削除されました。 + PHP 7.0.7 以降 および cURL 7.43.0 以降で利用可能です。 - + - CURLINFO_PRIVATE - (integer) + CURL_HTTP_VERSION_2TLS + (int) - PHP 5.2.4 以降で使用可能です。 + PHP 7.0.7 以降 および cURL 7.47.0 以降で利用可能です。 - + - CURLINFO_EFFECTIVE_URL - (integer) + CURL_HTTP_VERSION_2_0 + (int) - + cURL 7.33. 以降で利用可能です。 - + - CURLINFO_HTTP_CODE - (integer) + CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE + (int) - PHP 5.5.0 以降 および cURL 7.10.8 で利用可能。 - これは、 - CURLINFO_RESPONSE_CODE の古いエイリアスです。 + PHP 7.0.7 以降 および cURL 7.49.0 以降で利用可能です。 - + - CURLINFO_RESPONSE_CODE - (integer) + CURL_HTTP_VERSION_3 + (int) - PHP 5.5.0 以降 および cURL 7.10.8 で利用可能。 + PHP 8.4.0 以降 および cURL 7.66.0 以降で利用可能です。 - + - CURLINFO_HEADER_OUT - (integer) + CURL_HTTP_VERSION_3ONLY + (int) - PHP 5.1.3 以降で使用可能です。 + PHP 8.4.0 以降 および cURL 7.88.0 以降で利用可能です。 - + - CURLINFO_HEADER_SIZE - (integer) + CURL_HTTP_VERSION_NONE + (int) - + - + - CURLINFO_REQUEST_SIZE - (integer) + CURL_IPRESOLVE_V4 + (int) - + 接続を確立する際に、IPv4 アドレスのみを使うか、 + コネクションプールから接続を選択します。 + cURL 7.10.8 以降で利用可能です。 - + - CURLINFO_TOTAL_TIME - (integer) + CURL_IPRESOLVE_V6 + (int) - + 接続を確立する際に、IPv6 アドレスのみを使うか、 + コネクションプールから接続を選択します。 + cURL 7.10.8 以降で利用可能です。 - + - CURLINFO_NAMELOOKUP_TIME - (integer) + CURL_IPRESOLVE_WHATEVER + (int) - + システムから許可された全ての IP のバージョンのアドレスを使います。 + cURL 7.10.8 以降で利用可能です。 - + - CURLINFO_CONNECT_TIME - (integer) + CURL_MAX_READ_SIZE + (int) - + PHP 7.3.0 以降 および cURL 7.53.0 以降で利用可能です。 - + - CURLINFO_PRETRANSFER_TIME - (integer) + CURL_NETRC_IGNORED + (int) - + - + - CURLINFO_SIZE_UPLOAD - (integer) + CURL_NETRC_OPTIONAL + (int) - + - + - CURLINFO_SIZE_DOWNLOAD - (integer) + CURL_NETRC_REQUIRED + (int) - + - + - CURLINFO_SPEED_DOWNLOAD - (integer) + CURL_PUSH_DENY + (int) - + PHP 7.1.0 以降 および cURL 7.44.0 以降で利用可能です。 - + - CURLINFO_SPEED_UPLOAD - (integer) + CURL_PUSH_OK + (int) - + PHP 7.1.0 以降 および cURL 7.44.0 以降で利用可能です。 - + - CURLINFO_FILETIME - (integer) + CURL_READFUNC_PAUSE + (int) - + cURL 7.18.0 以降で利用可能です。 - + - CURLINFO_SSL_VERIFYRESULT - (integer) + CURL_REDIR_POST_301 + (int) - + PHP 7.0.7 以降 および cURL 7.18.2 以降で利用可能です。 - + - CURLINFO_CONTENT_LENGTH_DOWNLOAD - (integer) + CURL_REDIR_POST_302 + (int) - + PHP 7.0.7 以降 および cURL 7.18.2 以降で利用可能です。 - + - CURLINFO_CONTENT_LENGTH_UPLOAD - (integer) + CURL_REDIR_POST_303 + (int) - + PHP 7.0.7 以降 および cURL 7.25.1 以降で利用可能です。 - + - CURLINFO_STARTTRANSFER_TIME - (integer) + CURL_REDIR_POST_ALL + (int) - + PHP 7.0.7 以降 および cURL 7.18.2 以降で利用可能です。 - + - CURLINFO_CONTENT_TYPE - (integer) + CURL_RTSPREQ_ANNOUNCE + (int) - + クライアントが送信した場合、このメソッドはセッションの説明を変更します。 + ANNOUNCE は、 + HTTP PUT や POST のような動作をします。 + これは CURL_RTSPREQ_SET_PARAMETER + と同様です。 + cURL 7.20.0 以降で利用可能です。 - + - CURLINFO_REDIRECT_TIME - (integer) + CURL_RTSPREQ_DESCRIBE + (int) - + ストリームの低レベルな説明を取得するために使います。 + アプリケーションは、自分が理解しているフォーマットを + Accept: + ヘッダに記述する必要があります。 + 手動で設定しない限り、 + libcurl は自動的に + Accept: application/sdp + を追加します。 + CURLOPT_TIMECONDITION + オプションを使うと、DESCRIBE リクエストに時刻に関する条件のヘッダを追加します。 + cURL 7.20.0 以降で利用可能です。 - + - CURLINFO_REDIRECT_COUNT - (integer) + CURL_RTSPREQ_GET_PARAMETER + (int) - + サーバーからパラメータを取得します。 + デフォルトでは、libcurl は + Content-Type: text/parameters + ヘッダを全ての空でないリクエストに追加します。 + カスタムのヘッダが設定されない限り、これは行われます。 + GET_PARAMETER + は、HTTP PUT や POST のように振る舞います。 + ハートビートメッセージを送信したいアプリケーションは、 + 空の GET_PARAMETER + リクエストを使うべきです。 + cURL 7.20.0 以降で利用可能です。 - + - CURLINFO_REDIRECT_URL - (string) + CURL_RTSPREQ_OPTIONS + (int) - PHP 5.3.7 以降で使用可能です。 + サーバーで利用可能なメソッドを取得するために使います。 + cURL 7.20.0 以降で利用可能です。 - + - CURLINFO_PRIMARY_IP - (string) + CURL_RTSPREQ_PAUSE + (int) - PHP 5.4.7 以降で使用可能です。 + PAUSE + コマンドをサーバーに送信します。 + CURLOPT_RANGE + を単一の値と一緒に使い、 + ストリームを停止すべきタイミング(例: npt=25) を指定します。 + cURL 7.20.0 以降で利用可能です。 - + - CURLINFO_PRIMARY_PORT - (integer) + CURL_RTSPREQ_PLAY + (int) - PHP 5.4.7 以降で使用可能です。 + PLAY + コマンドをサーバーに送信します。 + 再生時間を変更するには、 + CURLOPT_RANGE + オプションを使います(例: npt=10-15)。 + cURL 7.20.0 以降で利用可能です。 - + - CURLINFO_LOCAL_IP - (string) + CURL_RTSPREQ_RECEIVE + (int) - PHP 5.4.7 以降で使用可能です。 + この値を RTSP リクエストタイプに設定すると、 + インターリーブされた RTP データを受信できます。 + cURL 7.20.0 以降で利用可能です。 - + - CURLINFO_LOCAL_PORT - (integer) + CURL_RTSPREQ_RECORD + (int) - PHP 5.4.7 以降で使用可能です。 + サーバーにセッションを記録するように指示します。 + 記録する時間を変更するには、 + CURLOPT_RANGE + オプションを使います。 + cURL 7.20.0 以降で利用可能です。 - + - CURL_PUSH_OK - (integer) + CURL_RTSPREQ_SETUP + (int) - PHP 7.1.0 および cURL 7.44.0 以降で使用可能です。 + セッションの transport layer を初期化するために使います。 + cURL 7.20.0 以降で利用可能です。 - + - CURL_PUSH_DENY - (integer) + CURL_RTSPREQ_SET_PARAMETER + (int) - PHP 7.1.0 および cURL 7.44.0 以降で使用可能です。 + サーバー上のパラメーターを設定します。 + cURL 7.20.0 以降で利用可能です。 - + - CURL_REDIR_POST_301 - (integer) + CURL_RTSPREQ_TEARDOWN + (int) - PHP 7.0.7 および cURL 7.18.2 以降で使用可能です。 + RTSP セッションを終了します。 + 単純に接続を閉じただけでは、RTSP セッションは終了しません。 + なぜなら、異なる接続から RTSP セッションを制御するのは正当なためです。 + cURL 7.20.0 以降で利用可能です。 - + - CURL_REDIR_POST_302 - (integer) + CURL_SSLVERSION_DEFAULT + (int) - PHP 7.0.7 および cURL 7.18.2 以降で使用可能です。 + - + - CURL_REDIR_POST_303 - (integer) + CURL_SSLVERSION_MAX_DEFAULT + (int) - PHP 7.0.7 および cURL 7.25.1 以降で使用可能です。 + PHP 7.3.0 以降 および cURL 7.54.0 以降で利用可能です。 - + - CURL_REDIR_POST_ALL - (integer) + CURL_SSLVERSION_MAX_NONE + (int) - PHP 7.0.7 および cURL 7.18.2 以降で使用可能です。 + PHP 7.3.0 以降 および cURL 7.54.0 以降で利用可能です。 - + - CURL_TIMECOND_IFMODSINCE - (integer) + CURL_SSLVERSION_MAX_TLSv1_0 + (int) - + PHP 7.3.0 以降 および cURL 7.54.0 以降で利用可能です。 - + - CURL_TIMECOND_IFUNMODSINCE - (integer) + CURL_SSLVERSION_MAX_TLSv1_1 + (int) - + PHP 7.3.0 以降 および cURL 7.54.0 以降で利用可能です。 - + - CURL_TIMECOND_LASTMOD - (integer) + CURL_SSLVERSION_MAX_TLSv1_2 + (int) - + PHP 7.3.0 以降 および cURL 7.54.0 以降で利用可能です。 - + - CURL_VERSION_ALTSVC - (integer) + CURL_SSLVERSION_MAX_TLSv1_3 + (int) - PHP 7.3.6 および cURL 7.64.1 以降で使用可能です。 + PHP 7.3.0 以降 および cURL 7.54.0 以降で利用可能です。 - + - CURL_VERSION_ASYNCHDNS - (integer) + CURL_SSLVERSION_SSLv2 + (int) - PHP 7.3.0 および cURL 7.10.7 以降で使用可能です。 + - + - CURL_VERSION_BROTLI - (integer) + CURL_SSLVERSION_SSLv3 + (int) - PHP 7.3.0 および cURL 7.57.0 以降で使用可能です。 + - + - CURL_VERSION_CONV - (integer) + CURL_SSLVERSION_TLSv1 + (int) - PHP 7.3.0 および cURL 7.15.4 以降で使用可能です。 + - + - CURL_VERSION_CURLDEBUG - (integer) + CURL_SSLVERSION_TLSv1_0 + (int) - PHP 7.3.6 および cURL 7.19.6 以降で使用可能です。 + - + - CURL_VERSION_DEBUG - (integer) + CURL_SSLVERSION_TLSv1_1 + (int) - PHP 7.3.0 および cURL 7.10.6 以降で使用可能です。 + - + - CURL_VERSION_GSSAPI - (integer) + CURL_SSLVERSION_TLSv1_2 + (int) - PHP 7.3.0 および cURL 7.38.0 以降で使用可能です。 + - + - CURL_VERSION_GSSNEGOTIATE - (integer) + CURL_SSLVERSION_TLSv1_3 + (int) - PHP 7.3.0 および cURL 7.10.6 以降で使用可能です(7.38.0 以降では推奨されていません)。 + PHP 7.3.0 以降 および cURL 7.52.0 以降で利用可能です。 - + - CURL_VERSION_IDN - (integer) + CURL_TIMECOND_IFMODSINCE + (int) - PHP 7.3.0 および cURL 7.12.0 以降で使用可能です。 + - + - CURL_VERSION_MULTI_SSL - (integer) + CURL_TIMECOND_IFUNMODSINCE + (int) - PHP 7.3.0 および cURL 7.56.0 以降で使用可能です。 + - + - CURL_VERSION_NTLM - (integer) + CURL_TIMECOND_LASTMOD + (int) - PHP 7.3.0 および cURL 7.10.6 以降で使用可能です。 + - + - CURL_VERSION_NTLM_WB - (integer) + CURL_TIMECOND_NONE + (int) - PHP 7.3.0 および cURL 7.22.0 以降で使用可能です。 + - + - CURL_VERSION_IPV6 - (integer) + CURL_TLSAUTH_SRP + (int) - + cURL 7.21.4 以降で利用可能です。 - + - CURL_VERSION_KERBEROS4 - (integer) + CURL_VERSION_ALTSVC + (int) - + PHP 7.3.6 以降 および cURL 7.64.1 以降で利用可能です。 - - - CURL_VERSION_KERBEROS5 - (integer) - - - - PHP 7.0.7 および cURL 7.40.0 以降で使用可能です。 - - - - - - CURL_VERSION_HTTP2 - (integer) - - - - PHP 5.5.24、PHP 5.6.8 および cURL 7.33.0 以降で使用可能です。 - - - - - - CURL_VERSION_PSL - (integer) - - - - PHP 7.3.6 および cURL 7.47.0 以降で使用可能です。 - - - - - - CURL_VERSION_SPNEGO - (integer) - - - - PHP 7.3.0 および cURL 7.10.8 以降で使用可能です。 - - - - - - CURL_VERSION_SSPI - (integer) - - - - PHP 7.3.0 および cURL 7.13.2 以降で使用可能です。 - - - - - - CURL_VERSION_SSL - (integer) - - - - - - - - - - CURL_VERSION_TLSAUTH_SRP - (integer) - - - - PHP 7.3.0 および cURL 7.21.4 以降で使用可能です。 - - - - - - CURL_VERSION_UNIX_SOCKETS - (integer) - - - - PHP 7.0.7 および cURL 7.40.0 以降で使用可能です。 - - - - - - CURL_VERSION_LIBZ - (integer) - - - - - - - - - - CURLVERSION_NOW - (integer) - - - - - - - - - - CURLE_OK - (integer) - - - - - - - - - - CURLE_UNSUPPORTED_PROTOCOL - (integer) - - - - - - - - - - CURLE_FAILED_INIT - (integer) - - - - - - - - - - CURLE_URL_MALFORMAT - (integer) - - - - - - - - - - CURLE_URL_MALFORMAT_USER - (integer) - - - - - - - - - - CURLE_COULDNT_RESOLVE_PROXY - (integer) - - - - - - - - - - CURLE_COULDNT_RESOLVE_HOST - (integer) - - - - - - - - - - CURLE_COULDNT_CONNECT - (integer) - - - - - - - - - - CURLE_FTP_WEIRD_SERVER_REPLY - (integer) - - - - - - - - - - CURLE_FTP_ACCESS_DENIED - (integer) - - - - - - - - - - CURLE_FTP_USER_PASSWORD_INCORRECT - (integer) - - - - - - - - - - CURLE_FTP_WEIRD_PASS_REPLY - (integer) - - - - - - - - - - CURLE_FTP_WEIRD_USER_REPLY - (integer) - - - - - - - - - - CURLE_FTP_WEIRD_PASV_REPLY - (integer) - - - - - - - - - - CURLE_FTP_WEIRD_227_FORMAT - (integer) - - - - - - - - - - CURLE_FTP_CANT_GET_HOST - (integer) - - - - - - - - - - CURLE_FTP_CANT_RECONNECT - (integer) - - - - - - - - - - CURLE_FTP_COULDNT_SET_BINARY - (integer) - - - - - - - - - - CURLE_PARTIAL_FILE - (integer) - - - - - - - - - - CURLE_FTP_COULDNT_RETR_FILE - (integer) - - - - - - - - - - CURLE_FTP_WRITE_ERROR - (integer) - - - - - - - - - - CURLE_FTP_QUOTE_ERROR - (integer) - - - - - - - - - - CURLE_HTTP_NOT_FOUND - (integer) - - - - - - - - - - CURLE_WRITE_ERROR - (integer) - - - - - - - - - - CURLE_MALFORMAT_USER - (integer) - - - - - - - - - - CURLE_FTP_COULDNT_STOR_FILE - (integer) - - - - - - - - - - CURLE_READ_ERROR - (integer) - - - - - - - - - - CURLE_OUT_OF_MEMORY - (integer) - - - - - - - - - - CURLE_OPERATION_TIMEOUTED - (integer) - - - - - - - - - - CURLE_FTP_COULDNT_SET_ASCII - (integer) - - - - - - - - - - CURLE_FTP_PORT_FAILED - (integer) - - - - - - - - - - CURLE_FTP_COULDNT_USE_REST - (integer) - - - - - - - - - - CURLE_FTP_COULDNT_GET_SIZE - (integer) - - - - - - - - - - CURLE_HTTP_RANGE_ERROR - (integer) - - - - - - - - - - CURLE_HTTP_POST_ERROR - (integer) - - - - - - - - - - CURLE_SSL_CONNECT_ERROR - (integer) - - - - - - - - - - CURLE_FTP_BAD_DOWNLOAD_RESUME - (integer) - - - - - - - - - - CURLE_FILE_COULDNT_READ_FILE - (integer) - - - - - - - - - - CURLE_LDAP_CANNOT_BIND - (integer) - - - - - - - - - - CURLE_LDAP_SEARCH_FAILED - (integer) - - - - - - - - - - CURLE_LIBRARY_NOT_FOUND - (integer) - - - - - - - - - - CURLE_FUNCTION_NOT_FOUND - (integer) - - - - - - - - - - CURLE_ABORTED_BY_CALLBACK - (integer) - - - - - - - - - - CURLE_BAD_FUNCTION_ARGUMENT - (integer) - - - - - - - - - - CURLE_BAD_CALLING_ORDER - (integer) - - - - - - - - - - CURLE_HTTP_PORT_FAILED - (integer) - - - - - - - - - - CURLE_BAD_PASSWORD_ENTERED - (integer) - - - - - - - - - - CURLE_TOO_MANY_REDIRECTS - (integer) - - - - - - - - - - CURLE_UNKNOWN_TELNET_OPTION - (integer) - - - - - - - - - - CURLE_TELNET_OPTION_SYNTAX - (integer) - - - - - - - - - - CURLE_OBSOLETE - (integer) - - - - - - - - - - CURLE_SSL_PEER_CERTIFICATE - (integer) - - - - - - - - - - CURLE_GOT_NOTHING - (integer) - - - - - - - - - - CURLE_SSL_ENGINE_NOTFOUND - (integer) - - - - - - - - - - CURLE_SSL_ENGINE_SETFAILED - (integer) - - - - - - - - - - CURLE_SEND_ERROR - (integer) - - - - - - - - - - CURLE_RECV_ERROR - (integer) - - - - - - - - - - CURLE_SHARE_IN_USE - (integer) - - - - - - - - - - CURLE_SSL_CERTPROBLEM - (integer) - - - - - - - - - - CURLE_SSL_CIPHER - (integer) - - - - - - - - - - CURLE_SSL_CACERT - (integer) - - - - - - - - - - CURLE_BAD_CONTENT_ENCODING - (integer) - - - - - - - - - - CURLE_LDAP_INVALID_URL - (integer) - - - - - - - - - - CURLE_FILESIZE_EXCEEDED - (integer) - - - - - - - - - - CURLE_FTP_SSL_FAILED - (integer) - - - - - - - - - - CURLE_SSH - (integer) - - - - PHP 5.3.0 および cURL 7.16.1 以降で使用可能です。 - - - - - - CURLFTPAUTH_DEFAULT - (integer) - - - - PHP 5.1.0 以降で使用可能です。 - - - - - - CURLFTPAUTH_SSL - (integer) - - - - PHP 5.1.0 以降で使用可能です。 - - - - - - CURLFTPAUTH_TLS - (integer) - - - - PHP 5.1.0 以降で使用可能です。 - - - - - - CURLPROXY_HTTP - (integer) - - - - cURL 7.10 以降で使用可能です。 - - - - - - CURLPROXY_HTTP_1_0 - (integer) - - - - PHP 7.0.7 および cURL 7.19.3 以降で使用可能です。 - - - - - - CURLPROXY_SOCKS4 - (integer) - - - - PHP 5.2.10 および cURL 7.10 以降で使用可能です。 - - - - - - CURLPROXY_SOCKS5 - (integer) - - - - cURL 7.10 以降で使用可能です。 - - - - - - CURL_NETRC_OPTIONAL - (integer) - - - - - - - - - - CURL_NETRC_IGNORED - (integer) - - - - - - - - - - CURL_NETRC_REQUIRED - (integer) - - - - - - - - - - CURL_HTTP_VERSION_NONE - (integer) - - - - - - - - - - CURL_HTTP_VERSION_1_0 - (integer) - - - - - - - - - - CURL_HTTP_VERSION_1_1 - (integer) - - - - - - - - - - CURL_HTTP_VERSION_2 - (integer) - - - - PHP 7.0.7 および cURL 7.43.0 以降で使用可能です。 - - - - - - CURL_HTTP_VERSION_2_0 - (integer) - - - - PHP 5.5.24, 5.6.8 および cURL 7.33.0 以降で使用可能です。 - - - - - - CURL_HTTP_VERSION_2TLS - (integer) - - - - PHP 7.0.7 および cURL 7.47.0 以降で使用可能です。 - - - - - - CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE - (integer) - - - - PHP 7.0.7 および cURL 7.49.0 以降で使用可能です。 - - - - - - CURLM_CALL_MULTI_PERFORM - (integer) - - - - - - - - - - CURLM_OK - (integer) - - - - - - - - - - CURLM_BAD_HANDLE - (integer) - - - - - - - - - - CURLM_BAD_EASY_HANDLE - (integer) - - - - - - - - - - CURLM_OUT_OF_MEMORY - (integer) - - - - - - - - - - CURLM_INTERNAL_ERROR - (integer) - - - - - - - - - - CURLMSG_DONE - (integer) - - - - - - - - - - CURLOPT_KEYPASSWD - (integer) - - - - - - - - - - CURLOPT_SSH_AUTH_TYPES - (integer) - - - - - - - - - - CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 - (integer) - - - - - - - - - - CURLOPT_SSH_PRIVATE_KEYFILE - (integer) - - - - - - - - - - CURLOPT_SSH_PUBLIC_KEYFILE - (integer) - - - - - - - - - - CURLOPT_SSL_OPTIONS - (integer) - - - - PHP 5.5.0 および cURL 7.25.0 以降で使用可能です。 - - - - - - CURLSSLOPT_ALLOW_BEAST - (integer) - - - - PHP 5.5.0 および cURL 7.25.0 以降で使用可能です。 - - - - - - CURLSSLOPT_NO_REVOKE - (integer) - - - - PHP 7.0.7 および cURL 7.44.0 以降で使用可能です。 - - - - - - CURLOPT_USERNAME - (integer) - - - - PHP 5.5.0 および cURL 7.19.1 以降で使用可能です。 - - - - - - CURLOPT_SASL_IR - (integer) - - - - PHP 7.0.7 および cURL 7.31.0 以降で使用可能です。 - - - - - - CURLOPT_DNS_INTERFACE - (integer) - - - - PHP 7.0.7 および cURL 7.33.0 以降で使用可能です。 - - - - - - CURLOPT_DNS_LOCAL_IP4 - (integer) - - - - PHP 7.0.7 および cURL 7.33.0 以降で使用可能です。 - - - - - - CURLOPT_DNS_LOCAL_IP6 - (integer) - - - - PHP 7.0.7 および cURL 7.33.0 以降で使用可能です。 - - - - - - CURLOPT_XOAUTH2_BEARER - (integer) - - - - PHP 7.0.7 および cURL 7.33.0 以降で使用可能です。 - - - - - - CURLOPT_LOGIN_OPTIONS - (integer) - - - - PHP 7.0.7 および cURL 7.34.0 以降で使用可能です。 - - - - - - CURLOPT_EXPECT_100_TIMEOUT_MS - (integer) - - - - PHP 7.0.7 および cURL 7.36.0 以降で使用可能です。 - - - - - - CURLOPT_SSL_ENABLE_ALPN - (integer) - - - - PHP 7.0.7 および cURL 7.36.0 以降で使用可能です。 - - - - - - CURLOPT_SSL_ENABLE_NPN - (integer) - - - - PHP 7.0.7 および cURL 7.36.0 以降で使用可能です。 - - - - - - CURLOPT_PINNEDPUBLICKEY - (integer) - - - - PHP 7.0.7 および cURL 7.39.0 以降で使用可能です。 - - - - - - CURLOPT_UNIX_SOCKET_PATH - (integer) - - - - PHP 7.0.7 および cURL 7.40.0 以降で使用可能です。 - - - - - - CURLOPT_SSL_VERIFYSTATUS - (integer) - - - - PHP 7.0.7 および cURL 7.41.0 以降で使用可能です。 - - - - - - CURLOPT_PATH_AS_IS - (integer) - - - - PHP 7.0.7 および cURL 7.42.0 以降で使用可能です。 - - - - - - CURLOPT_SSL_FALSESTART - (integer) - - - - PHP 7.0.7 および cURL 7.42.0 以降で使用可能です。 - - - - - - CURLOPT_PIPEWAIT - (integer) - - - - PHP 7.0.7 および cURL 7.43.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_SERVICE_NAME - (integer) - - - - PHP 7.0.7 および cURL 7.43.0 以降で使用可能です。 - - - - - - CURLOPT_SERVICE_NAME - (integer) - - - - PHP 7.0.7 および cURL 7.43.0 以降で使用可能です。 - - - - - - CURLOPT_DEFAULT_PROTOCOL - (integer) - - - - PHP 7.0.7 および cURL 7.45.0 以降で使用可能です。 - - - - - - CURLOPT_STREAM_WEIGHT - (integer) - - - - PHP 7.0.7 および cURL 7.46.0 以降で使用可能です。 - - - - - - CURLOPT_TFTP_NO_OPTIONS - (integer) - - - - PHP 7.0.7 および cURL 7.48.0 以降で使用可能です。 - - - - - - CURLOPT_CONNECT_TO - (integer) - - - - PHP 7.0.7 および cURL 7.49.0 以降で使用可能です。 - - - - - - CURLOPT_TCP_FASTOPEN - (integer) - - - - PHP 7.0.7 および cURL 7.49.0 以降で使用可能です。 - - - - - - CURLOPT_TCP_KEEPALIVE - (integer) - - - - PHP 5.5.0 以降 および cURL 7.25.0 で利用可能。 - - - - - - CURLOPT_TCP_KEEPIDLE - (integer) - - - - PHP 5.5.0 以降 および cURL 7.25.0 で利用可能。 - - - - - - CURLOPT_TCP_KEEPINTVL - (integer) - - - - PHP 5.5.0 以降 および cURL 7.25.0 で利用可能。 - - - - - - CURLMOPT_PIPELINING - (integer) - - - - PHP 5.5.0 および cURL 7.16.0 以降で使用可能です。 - - - - - - CURLMOPT_MAXCONNECTS - (integer) - - - - PHP 5.5.0 および cURL 7.16.3 以降で使用可能です。 - - - - - - CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE - (integer) - - - - PHP 7.0.7 および cURL 7.30.0 以降で使用可能です。 - - - - - - CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE - (integer) - - - - PHP 7.0.7 および cURL 7.30.0 以降で使用可能です。 - - - - - - CURLMOPT_MAX_HOST_CONNECTIONS - (integer) - - - - PHP 7.0.7 および cURL 7.30.0 以降で使用可能です。 - - - - - - CURLMOPT_MAX_PIPELINE_LENGTH - (integer) - - - - PHP 7.0.7 および cURL 7.30.0 以降で使用可能です。 - - - - - - CURLMOPT_MAX_TOTAL_CONNECTIONS - (integer) - - - - PHP 7.0.7 および cURL 7.30.0 以降で使用可能です。 - - - - - - CURLMOPT_PUSHFUNCTION - (integer) - - - - PHP 7.1.0 および cURL 7.44.0 以降で使用可能です。 - - - - - - CURLSSH_AUTH_AGENT - (integer) - - - - PHP 7.0.7 および cURL 7.28.0 以降で使用可能です。 - - - - - - CURLSSH_AUTH_ANY - (integer) - - - - - - - - - - CURLSSH_AUTH_DEFAULT - (integer) - - - - - - - - - - CURLSSH_AUTH_HOST - (integer) - - - - - - - - - - CURLSSH_AUTH_KEYBOARD - (integer) - - - - - - - - - - CURLSSH_AUTH_NONE - (integer) - - - - - - - - - - CURLSSH_AUTH_PASSWORD - (integer) - - - - - - - - - - CURLSSH_AUTH_PUBLICKEY - (integer) - - - - - - - - - - CURL_WRAPPERS_ENABLED - (integer) - - - - PHP の configure 時に - - を指定しているかどうか。PHP 5.5.0 で PECL に移動しました。 - - - - - - CURLPAUSE_ALL - (integer) - - - - PHP 5.5.0 および cURL 7.18.0 以降で使用可能です。 - - - - - - CURLPAUSE_CONT - (integer) - - - - PHP 5.5.0 および cURL 7.18.0 以降で使用可能です。 - - - - - - CURLPAUSE_RECV - (integer) - - - - PHP 5.5.0 および cURL 7.18.0 以降で使用可能です。 - - - - - - CURLPAUSE_RECV_CONT - (integer) - - - - PHP 5.5.0 および cURL 7.18.0 以降で使用可能です。 - - - - - - CURLPAUSE_SEND - (integer) - - - - PHP 5.5.0 および cURL 7.18.0 以降で使用可能です。 - - - - - - CURLPAUSE_SEND_CONT - (integer) - - - - PHP 5.5.0 および cURL 7.18.0 以降で使用可能です。 - - - - - - CURLPIPE_NOTHING - (integer) - - - - PHP 7.0.0 および cURL 7.43.0 以降で使用可能です。 - - - - - - CURLPIPE_HTTP1 - (integer) - - - - PHP 7.0.0 および cURL 7.43.0 以降で使用可能です。 - - - - - - CURLPIPE_MULTIPLEX - (integer) - - - - PHP 7.0.0 および cURL 7.43.0 以降で使用可能です。 - - - - - - CURLPROXY_SOCKS4A - (integer) - - - - PHP 5.5.23 と PHP 5.6.7 および cURL 7.18.0 以降で使用可能です。 - - - - - - CURLPROXY_SOCKS5_HOSTNAME - (integer) - - - - PHP 5.5.23 と PHP 5.6.7 および cURL 7.18.0 以降で使用可能です。 - - - - - - CURLHEADER_SEPARATE - (integer) - - - - PHP 7.0.7 および cURL 7.37.0 以降で使用可能です。 - - - - - - CURLHEADER_UNIFIED - (integer) - - - - PHP 7.0.7 および cURL 7.37.0 以降で使用可能です。 - - - - - - CURLPROTO_SMB - (integer) - - - - PHP 7.0.7 および cURL 7.40.0 以降で使用可能です。 - - - - - - CURLPROTO_SMBS - (integer) - - - - PHP 7.0.7 および cURL 7.40.0 以降で使用可能です。 - - - - - - CURLOPT_REQUEST_TARGET - (integer) - - - - PHP 7.3.0 および cURL 7.55.0 以降で使用可能です。 - - - - - - CURLAUTH_GSSAPI - (integer) - - - - PHP 7.3.0 および cURL 7.54.1 以降で使用可能です。 - - - - - - CURLE_WEIRD_SERVER_REPLY - (integer) - - - - PHP 7.3.0 および cURL 7.51.0 以降で使用可能です。 - - - - - - CURLINFO_CONTENT_LENGTH_DOWNLOAD_T - (integer) - - - - PHP 7.3.0 および cURL 7.55.0 以降で使用可能です。 - - - - - - CURLINFO_CONTENT_LENGTH_UPLOAD_T - (integer) - - - - PHP 7.3.0 および cURL 7.55.0 以降で使用可能です。 - - - - - - CURLINFO_HTTP_VERSION - (integer) - - - - PHP 7.3.0 および cURL 7.50.0 以降で使用可能です。 - - - - - - CURLINFO_PROTOCOL - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLINFO_PROXY_SSL_VERIFYRESULT - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLINFO_SCHEME - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLINFO_SIZE_DOWNLOAD_T - (integer) - - - - PHP 7.3.0 および cURL 7.50.0 以降で使用可能です。 - - - - - - CURLINFO_SIZE_UPLOAD_T - (integer) - - - - PHP 7.3.0 および cURL 7.50.0 以降で使用可能です。 - - - - - - CURLINFO_SPEED_DOWNLOAD_T - (integer) - - - - PHP 7.3.0 および cURL 7.50.0 以降で使用可能です。 - - - - - - CURLINFO_SPEED_UPLOAD_T - (integer) - - - - PHP 7.3.0 および cURL 7.50.0 以降で使用可能です。 - - - - - - CURL_MAX_READ_SIZE - (integer) - - - - PHP 7.3.0 および cURL 7.53.0 以降で使用可能です。 - - - - - - CURLOPT_ABSTRACT_UNIX_SOCKET - (integer) - - - - PHP 7.3.0 および cURL 7.53.0 以降で使用可能です。 - - - - - - CURLOPT_KEEP_SENDING_ON_ERROR - (integer) - - - - PHP 7.3.0 および cURL 7.51.0 以降で使用可能です。 - - - - - - CURLOPT_PRE_PROXY - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_CAINFO - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_CAPATH - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_CRLFILE - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_KEYPASSWD - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_PINNEDPUBLICKEY - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_SSLCERT - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_SSLCERTTYPE - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_SSL_CIPHER_LIST - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_SSLKEY - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_SSLKEYTYPE - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_SSL_OPTIONS - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_SSL_VERIFYHOST - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_SSL_VERIFYPEER - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_SSLVERSION - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_TLSAUTH_PASSWORD - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLOPT_PROXY_TLSAUTH_TYPE - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - + - CURLOPT_PROXY_TLSAUTH_USERNAME - (integer) + CURL_VERSION_ASYNCHDNS + (int) - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 + 非同期で DNS の名前解決を行います。 + PHP 7.3.0 以降 および cURL 7.10.7 以降で利用可能です。 - + - CURLOPT_SOCKS5_AUTH - (integer) + CURL_VERSION_BROTLI + (int) - PHP 7.3.0 および cURL 7.55.0 以降で使用可能です。 + PHP 7.3.0 以降 および cURL 7.57.0 以降で利用可能です。 - + - CURLOPT_SUPPRESS_CONNECT_HEADERS - (integer) + CURL_VERSION_CONV + (int) - PHP 7.3.0 および cURL 7.54.0 以降で使用可能です。 + 文字変換をサポートします。 + PHP 7.3.0 以降 および cURL 7.15.4 以降で利用可能です。 - + - CURLPROXY_HTTPS - (integer) + CURL_VERSION_CURLDEBUG + (int) - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 + デバッグ用途に、メモリ追跡をサポートします。 + PHP 7.3.6 以降 および cURL 7.19.6 以降で利用可能です。 - + - CURL_SSLVERSION_MAX_DEFAULT - (integer) + CURL_VERSION_DEBUG + (int) - PHP 7.3.0 および cURL 7.54.0 以降で使用可能です。 + デバッグ機能を有効にしてビルドします。 + PHP 7.3.0 以降 および cURL 7.10.6 以降で利用可能です。 - + - CURL_SSLVERSION_MAX_NONE - (integer) + CURL_VERSION_GSASL + (int) - PHP 7.3.0 および cURL 7.54.0 以降で使用可能です。 + PHP 8.2.0 以降 および cURL 7.76.0 以降で利用可能です。 - + - CURL_SSLVERSION_MAX_TLSv1_0 - (integer) + CURL_VERSION_GSSAPI + (int) - PHP 7.3.0 および cURL 7.54.0 以降で使用可能です。 + GSS-API ライブラリを組み込んでビルドします。 + PHP 7.3.0 以降 および cURL 7.38.0 以降で利用可能です。 - + - CURL_SSLVERSION_MAX_TLSv1_1 - (integer) + CURL_VERSION_GSSNEGOTIATE + (int) - PHP 7.3.0 および cURL 7.54.0 以降で使用可能です。 + Negotiate auth をサポートします。 + PHP 7.3.0 以降 および cURL 7.10.6 (cURL 7.38.0 以降では非推奨) 以降で利用可能です。 - + - CURL_SSLVERSION_MAX_TLSv1_2 - (integer) + CURL_VERSION_HSTS + (int) - PHP 7.3.0 および cURL 7.54.0 以降で使用可能です。 + PHP 8.2.0 以降 および cURL 7.74.0 以降で利用可能です。 - + - CURL_SSLVERSION_MAX_TLSv1_3 - (integer) + CURL_VERSION_HTTP2 + (int) - PHP 7.3.0 および cURL 7.54.0 以降で使用可能です。 + HTTP2 サポートを組み込みます。 + cURL 7.33. 以降で利用可能です。 - + - CURL_SSLVERSION_TLSv1_3 - (integer) + CURL_VERSION_HTTP3 + (int) - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 + PHP 8.2.0 以降 および cURL 7.66.0 以降で利用可能です。 CURL_VERSION_HTTPS_PROXY - (integer) - - - - PHP 7.3.0 および cURL 7.52.0 以降で使用可能です。 - - - - - - CURLAUTH_BEARER - (integer) + (int) - PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。 + PHP 7.3.0 以降 および cURL 7.52.0 以降で利用可能です。 - + - CURLINFO_APPCONNECT_TIME_T - (integer) + CURL_VERSION_IDN + (int) - PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。 + IDN (国際化ドメイン名) をサポートします。 + PHP 7.3.0 以降 および cURL 7.12.0 以降で利用可能です。 - + - CURLINFO_CONNECT_TIME_T - (integer) + CURL_VERSION_IPV6 + (int) - PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。 + IPv6-enabled. - + - CURLINFO_FILETIME_T - (integer) + CURL_VERSION_KERBEROS4 + (int) - PHP 7.3.0 および cURL 7.59.0 以降で使用可能です。 + Kerberos V4 による認証をサポートします。 - + - CURLINFO_NAMELOOKUP_TIME_T - (integer) + CURL_VERSION_KERBEROS5 + (int) - PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。 + Kerberos V5 による認証をサポートします。 + PHP 7.0.7 以降 および cURL 7.40.0 以降で利用可能です。 - + - CURLINFO_PRETRANSFER_TIME_T - (integer) + CURL_VERSION_LARGEFILE + (int) - PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。 + 2GB 以上のファイルをサポートします。 + cURL 7.33.0 以降で利用可能です。 - + - CURLINFO_REDIRECT_TIME_T - (integer) + CURL_VERSION_LIBZ + (int) - PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。 + libz features are present. - + - CURLINFO_STARTTRANSFER_TIME_T - (integer) + CURL_VERSION_MULTI_SSL + (int) - PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。 + PHP 7.3.0 以降 および cURL 7.56.0 以降で利用可能です。 - + - CURLINFO_TOTAL_TIME_T - (integer) + CURL_VERSION_NTLM + (int) - PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。 + NTLM 認証をサポートします。 + PHP 7.3.0 以降 および cURL 7.10.6 以降で利用可能です。 - + - CURL_LOCK_DATA_CONNECT - (integer) + CURL_VERSION_NTLM_WB + (int) - PHP 7.3.0 および cURL 7.10.0 以降で使用可能です。 + winbind ヘルパに対する NTLM 委譲をサポートします。 + PHP 7.3.0 以降 および cURL 7.22.0 以降で利用可能です。 - + - CURL_LOCK_DATA_PSL - (integer) + CURL_VERSION_PSL + (int) - PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。 + Mozilla の Public Suffix List。 + Cookie ドメインの検証に使います。 + PHP 7.3.6 以降 および cURL 7.47.0 以降で利用可能です。 - + - CURLOPT_DISALLOW_USERNAME_IN_URL - (integer) + CURL_VERSION_SPNEGO + (int) - PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。 + SPNEGO 認証をサポートします。 + PHP 7.3.0 以降 および cURL 7.10.8 以降で利用可能です。 - + - CURLOPT_DNS_SHUFFLE_ADDRESSES - (integer) + CURL_VERSION_SSL + (int) - PHP 7.3.0 および cURL 7.60.0 以降で使用可能です。 + SSL オプションが存在します。 - + - CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS - (integer) + CURL_VERSION_SSPI + (int) - PHP 7.3.0 および cURL 7.59.0 以降で使用可能です。 + Windows SSPI を有効にしてビルドします。 + PHP 7.3.0 以降 および cURL 7.13.2 以降で利用可能です。 - + - CURLOPT_HAPROXYPROTOCOL - (integer) + CURL_VERSION_TLSAUTH_SRP + (int) - PHP 7.3.0 および cURL 7.60.0 以降で使用可能です。 + TLS-SRP 認証をサポートします。 + PHP 7.3.0 以降 および cURL 7.21.4 以降で利用可能です。 - + - CURLOPT_PROXY_TLS13_CIPHERS - (integer) + CURL_VERSION_UNICODE + (int) - PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。 + PHP 8.2.0 以降 および cURL 7.72.0 以降で利用可能です。 - + - CURLOPT_SSH_COMPRESSION - (integer) + CURL_VERSION_UNIX_SOCKETS + (int) - PHP 7.3.0 および cURL 7.56.0 以降で使用可能です。 + Unix ドメインソケットをサポートします。 + PHP 7.0.7 以降 および cURL 7.40.0 以降で利用可能です。 - + - CURLOPT_TIMEVALUE_LARGE - (integer) + CURL_VERSION_ZSTD + (int) - PHP 7.3.0 および cURL 7.59.0 以降で使用可能です。 + PHP 8.2.0 以降 および cURL 7.72.0 以降で利用可能です。 - + - CURLOPT_TLS13_CIPHERS - (integer) + CURL_WRITEFUNC_PAUSE + (int) - PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。 + cURL 7.18.0 以降で利用可能です。 - + - CURLSSH_AUTH_GSSAPI - (integer) + CURL_PREREQFUNC_OK + (int) - PHP 7.3.0 および cURL 7.58.0 以降で使用可能です。 + PHP 8.4.0 以降 および cURL 7.80.0 以降で利用可能です。 - + - CURLOPT_HTTP09_ALLOWED - (integer) + CURL_PREREQFUNC_ABORT + (int) - PHP 7.3.15 と 7.4.3 および cURL 7.64.0 以降で使用可能です。 + PHP 8.4.0 以降 および cURL 7.80.0 以降で利用可能です。 - + &reference.curl.constants-curl-setopt; + &reference.curl.constants-curl-share-setopt; + &reference.curl.constants-curl-getinfo; + &reference.curl.constants-curl-multi-setopt; + &reference.curl.constants-curlproto; + &reference.curl.constants-curl-error; + &reference.curl.constants-curl-multi; + &reference.curl.constants-curl-pause; - + + + cURL エラー定数 + + + CURLE_ABORTED_BY_CALLBACK + (int) + + + + コールバックによって abort されました。 + コールバックが libcurl に "abort" を返しました。 + + + + + + CURLE_BAD_CALLING_ORDER + (int) + + + + + + + + + + CURLE_BAD_CONTENT_ENCODING + (int) + + + + 認識できない転送エンコーディングです。 + + + + + + CURLE_BAD_DOWNLOAD_RESUME + (int) + + + + 指定されたオフセットがファイルの境界の範囲外のため、 + ダウンロードを再開できませんでした。 + + + + + + CURLE_BAD_FUNCTION_ARGUMENT + (int) + + + + 関数が不正な引数を使ってコールされました。 + + + + + + CURLE_BAD_PASSWORD_ENTERED + (int) + + + + + + + + + + CURLE_COULDNT_CONNECT + (int) + + + + ホストまたはプロキシに接続できませんでした。 + + + + + + CURLE_COULDNT_RESOLVE_HOST + (int) + + + + ホストを解決できませんでした。 + 指定されたリモートホストが解決できませんでした。 + + + + + + CURLE_COULDNT_RESOLVE_PROXY + (int) + + + + プロキシを解決できませんでした。 + 指定されたプロキシホストが解決できませんでした。 + + + + + + CURLE_FAILED_INIT + (int) + + + + 初期化のはじめの段階で失敗しました。 + 内部エラーか、 + 何かしらの基本的な処理が初期化時に行えなかったリソース問題の可能性があります。 + + + + + + CURLE_FILESIZE_EXCEEDED + (int) + + + + ファイルの最大サイズを超えました。 + + + + + + CURLE_FILE_COULDNT_READ_FILE + (int) + + + + FILE:// で指定されたファイルが開けませんでした。 + これはほとんどの場合、ファイルパスが既存のファイルを指していないか、 + 適切なファイルパーミッションが欠けていることによって発生します。 + + + + + + CURLE_FTP_ACCESS_DENIED + (int) + + + + + + + + + + CURLE_FTP_BAD_DOWNLOAD_RESUME + (int) + + + + + + + + + + CURLE_FTP_CANT_GET_HOST + (int) + + + + 新規接続に指定されたホストのルックアップに、 + 内部的に失敗しました。 + + + + + + CURLE_FTP_CANT_RECONNECT + (int) + + + + + + + + + + CURLE_FTP_COULDNT_GET_SIZE + (int) + + + + + + + + + + CURLE_FTP_COULDNT_RETR_FILE + (int) + + + + 'RETR' コマンドへの応答が想定外であったか、 + 転送が完了したサイズが0バイトでした。 + + + + + + CURLE_FTP_COULDNT_SET_ASCII + (int) + + + + + + + + + + CURLE_FTP_COULDNT_SET_BINARY + (int) + + + + + + + + + + CURLE_FTP_COULDNT_STOR_FILE + (int) + + + + + + + + + + CURLE_FTP_COULDNT_USE_REST + (int) + + + + FTP REST コマンドがエラーを返しました。 + サーバーが正常であれば、このエラーは決して発生しないはずです。 + + + + + + CURLE_FTP_PARTIAL_FILE + (int) + + + + + + + + + + CURLE_FTP_PORT_FAILED + (int) + + + + FTP PORT コマンドがエラーを返しました。 + ほとんどの場合、 + これは libcurl が使う十分なアドレスが指定されていない場合に起こります。 + CURLOPT_FTPPORT を参照ください。 + + + + + + CURLE_FTP_QUOTE_ERROR + (int) + + + + + + + + + + CURLE_FTP_SSL_FAILED + (int) + + + + + + + + + + CURLE_FTP_USER_PASSWORD_INCORRECT + (int) + + + + + + + + + + CURLE_FTP_WEIRD_227_FORMAT + (int) + + + + FTP サーバーは、PASV コマンドの応答として、227 応答を返します。 + libcurl がこの応答行をパースできない場合、 + このエラーコードが返されます。 + + + + + + CURLE_FTP_WEIRD_PASS_REPLY + (int) + + + + FTP パスワードをサーバーに送信後、 + libcurl は適切な応答を期待します。 + このエラーコードは、予期しないエラーコードが応答されたことを示します。 + + + + + + CURLE_FTP_WEIRD_PASV_REPLY + (int) + + + + libcurl は、PASV や EPSV コマンドのレスポンスとして、 + サーバーから妥当な結果を取得できませんでした。 + サーバーにバグがあります。 + + + + + + CURLE_FTP_WEIRD_SERVER_REPLY + (int) + + + + サーバーが送信したデータを、libcurl がパースできませんでした。 + このエラーコードは、cURL 7.51.0 以降は + CURLE_WEIRD_SERVER_REPLY + になりました。 + + + + + + CURLE_FTP_WEIRD_USER_REPLY + (int) + + + + + + + + + + CURLE_FTP_WRITE_ERROR + (int) + + + + + + + + + + CURLE_FUNCTION_NOT_FOUND + (int) + + + + 関数が見つかりません。 + 要求されている zlib 関数が見つかりませんでした。 + + + + + + CURLE_GOT_NOTHING + (int) + + + + サーバーから何も返されませんでした。 + 条件によっては、何も受信しないことがエラーとみなされます。 + + + + + + CURLE_HTTP_NOT_FOUND + (int) + + + + + + + + + + CURLE_HTTP_PORT_FAILED + (int) + + + + + + + + + + CURLE_HTTP_POST_ERROR + (int) + + + + これは主に内部的な処理の混乱によって発生する、奇妙なエラーです。 + + + + + + CURLE_HTTP_RANGE_ERROR + (int) + + + + + + + + + + CURLE_HTTP_RETURNED_ERROR + (int) + + + + CURLOPT_FAILONERROR を &true; に設定し、 + かつ HTTP サーバーが 400 以上のエラーコードをまえした場合に、 + この値が返されます。 + + + + + + CURLE_LDAP_CANNOT_BIND + (int) + + + + LDAP がバインドできません。 + LDAP のバインド操作が失敗しました。 + + + + + + CURLE_LDAP_INVALID_URL + (int) + + + + + + + + + + CURLE_LDAP_SEARCH_FAILED + (int) + + + + LDAP 検索が失敗しました。 + + + + + + CURLE_LIBRARY_NOT_FOUND + (int) + + + + + + + + + + CURLE_MALFORMAT_USER + (int) + + + + + + + + + + CURLE_OBSOLETE + (int) + + + + + + + + + + CURLE_OK + (int) + + + + 全て順調です。通常通り処理します。 + + + + + + CURLE_OPERATION_TIMEDOUT + (int) + + + + 条件に基づく、指定されたタイムアウト時間に到達しました。 + + + + + + CURLE_OPERATION_TIMEOUTED + (int) + + + + + + + + + + CURLE_OUT_OF_MEMORY + (int) + + + + メモリ割当てリクエストに失敗しました。 + + + + + + CURLE_PARTIAL_FILE + (int) + + + + ファイル転送サイズが、期待より大きいか小さいです。 + これは、サーバーが最初に期待される転送サイズを報告した後、 + そこで指定したサイズと一致しないデータを送信した場合に発生します。 + + + + + + CURLE_PROXY + (int) + + + + Proxy ハンドシェイクエラー。 + CURLINFO_PROXY_ERROR + を指定すると、特定の問題に関する詳細が得られます。 + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 + + + + + + CURLE_READ_ERROR + (int) + + + + ローカルファイルを読み取る際に問題が発生したか、 + 読み取りコールバックからエラーが返されました。 + + + + + + CURLE_RECV_ERROR + (int) + + + + ネットワークデータを受信する処理に失敗しました。 + + + + + + CURLE_SEND_ERROR + (int) + + + + ネットワークデータを送信する処理に失敗しました。 + + + + + + CURLE_SHARE_IN_USE + (int) + + + + + + + + + + CURLE_SSH + (int) + + + + SSH セッションの間に、不明なエラーが発生しました。 + cURL 7.16.1 以降で利用可能です。 + + + + + + CURLE_SSL_CACERT + (int) + + + + + + + + + + CURLE_SSL_CACERT_BADFILE + (int) + + + + SSL CA cert を読み取る際に問題が発生しました。 + + + + + + CURLE_SSL_CERTPROBLEM + (int) + + + + ローカルのクライアント証明書 を読み取る際に問題が発生しました。 + + + + + + CURLE_SSL_CIPHER + (int) + + + + 特定の暗号を使えませんでした。 + + + + + + CURLE_SSL_CONNECT_ERROR + (int) + + + + SSL/TLS ハンドシェイクのどこかで問題が発生しました。 + エラーバッファ内のメッセージを読み取ると、問題の詳細が確認できます。 + 原因としては、証明書(ファイル形式、パス、権限)や、パスワードなどが考えられます。 + + + + + + CURLE_SSL_ENGINE_NOTFOUND + (int) + + + + 指定された暗号化エンジンが見つかりませんでした。 + + + + + + CURLE_SSL_ENGINE_SETFAILED + (int) + + + + 選択した SSL 暗号化エンジンを、デフォルト設定にできませんでした。 + + + + + + CURLE_SSL_PEER_CERTIFICATE + (int) + + + + + + + + + + CURLE_SSL_PINNEDPUBKEYNOTMATCH + (int) + + + + CURLOPT_PINNEDPUBLICKEY で指定された + 固定鍵と一致しませんでした。 + + + + + + CURLE_TELNET_OPTION_SYNTAX + (int) + + + + + + + + + + CURLE_TOO_MANY_REDIRECTS + (int) + + + + リダイレクトの回数が多過ぎます。 + リダイレクトを追跡しましたが、 + libcurl がその最大回数に達しました。 + この回数は CURLOPT_MAXREDIRS + で設定できます。 + + + + + + CURLE_UNKNOWN_TELNET_OPTION + (int) + + + + + + + + + + CURLE_UNSUPPORTED_PROTOCOL + (int) + + + + libcurl に渡された URL が、 + サポートしていないプロトコルを指定していました。 + コンパイル時にオプションが指定されなかったか、 + プロトコルを指定する文字列の間違い、 + または、単に libcurl が未実装の可能性があります。 + + + + + + CURLE_URL_MALFORMAT + (int) + + + + URL が適切にフォーマットされていませんでした。 + + + + + + CURLE_URL_MALFORMAT_USER + (int) + + + + + + + + + + CURLE_WEIRD_SERVER_REPLY + (int) + + + + サーバーが送信したデータをパースできませんでした。 + cURL 7.51.0 より前のバージョンでは、 + このエラーコードは CURLE_FTP_WEIRD_SERVER_REPLY + でした。 + PHP 7.3.0 以降 および cURL 7.51.0 以降で利用可能です。 + + + + + + CURLE_WRITE_ERROR + (int) + + + + 受信したデータをローカルファイルに書き込む際に、エラーが発生しました。 + または、libcurl の書き込みコールバックからエラーが返されました。 + + + + diff --git a/reference/curl/constants_curl_getinfo.xml b/reference/curl/constants_curl_getinfo.xml new file mode 100644 index 0000000000..2fb9518a80 --- /dev/null +++ b/reference/curl/constants_curl_getinfo.xml @@ -0,0 +1,825 @@ + + + + + <function>curl_getinfo</function> + + + CURLINFO_APPCONNECT_TIME + (int) + + + + 処理開始から、リモートホストとの SSL/SSH 接続/ハンドシェイクが完了するまでの、かかった時間の合計(秒単位)。 + + + + + + CURLINFO_APPCONNECT_TIME_T + (int) + + + + 処理開始から、リモートホストとの SSL/SSH 接続/ハンドシェイクが完了するまでの、かかった時間の合計(マイクロ秒単位)。 + PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。 + + + + + + CURLINFO_CAINFO + (int) + + + + デフォルトで組み込まれた CA 証明書のパス。 + PHP 8.3.0 以降 および cURL 7.84.0 以降で利用可能です。 + + + + + + CURLINFO_CAPATH + (int) + + + + デフォルトで組み込まれた CA のパスの文字列。 + PHP 8.3.0 以降 および cURL 7.84.0 以降で利用可能です。 + + + + + + CURLINFO_CERTINFO + (int) + + + + TLS 証明書チェイン + + + + + + CURLINFO_CONDITION_UNMET + (int) + + + + 時間に関する条件が満たされなかった場合の情報 + + + + + + CURLINFO_CONNECT_TIME + (int) + + + + 接続を確立するまでにかかった時間(秒単位) + + + + + + CURLINFO_CONNECT_TIME_T + (int) + + + + 処理開始から、リモートホスト(またはプロキシ)への接続が完了するまでの、かかった時間の合計(マイクロ秒単位)。 + PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。 + + + + + + CURLINFO_CONTENT_LENGTH_DOWNLOAD + (int) + + + + ダウンロードしたコンテンツのサイズ。 + Content-Length: サイズから読み取ります。 + + + + + + CURLINFO_CONTENT_LENGTH_DOWNLOAD_T + (int) + + + + ダウンロードしたコンテンツのサイズ。 + Content-Length: サイズから読み取った値ですが、 + サイズが不明な場合は -1 になります。 + PHP 7.3.0 以降 および cURL 7.55.0 以降で利用可能です。 + + + + + + CURLINFO_CONTENT_LENGTH_UPLOAD + (int) + + + + 指定されたアップロードサイズ + + + + + + CURLINFO_CONTENT_LENGTH_UPLOAD_T + (int) + + + + 指定されたアップロードサイズ。 + 不明な場合は -1 になります。 + PHP 7.3.0 以降 および cURL 7.55.0 以降で利用可能です。 + + + + + + CURLINFO_CONTENT_TYPE + (int) + + + + リクエストされた文書の Content-Type。 + NULL の場合は、サーバーが正しい Content-Type を送信しなかったことを示します。 + + + + + + CURLINFO_COOKIELIST + (int) + + + + 全ての既知の Cookie + + + + + + CURLINFO_EFFECTIVE_METHOD + (int) + + + + 直近で使用した HTTP メソッド + + + + + + CURLINFO_EFFECTIVE_URL + (int) + + + + 直近の有効な URL + + + + + + CURLINFO_FILETIME + (int) + + + + CURLOPT_FILETIME が有効な場合は、取得したドキュメントのリモート時刻。 + -1 が返された場合、ドキュメントの時刻は不明です。 + + + + + + CURLINFO_FILETIME_T + (int) + + + + 取得したドキュメントのリモート時刻を(Unixタイムスタンプとして)取得します。 + 32ビット長の変数を使うシステムが、32ビットタイムスタンプの範囲外の日付を抽出できるようにする目的で、 + CURLINFO_FILETIME の代替として使います。 + PHP 7.3.0 以降 および cURL 7.59.0 以降で利用可能です。 + + + + + + CURLINFO_FTP_ENTRY_PATH + (int) + + + + FTP サーバーのエントリーパス + + + + + + CURLINFO_HEADER_OUT + (int) + + + + 送信されたリクエスト文字列。 + これを機能させるには、curl_setopt をコールし、 + CURLINFO_HEADER_OUT オプションをハンドルに追加する必要があります。 + + + + + + CURLINFO_HEADER_SIZE + (int) + + + + 受信した全てのヘッダの合計サイズ + + + + + + CURLINFO_HTTPAUTH_AVAIL + (int) + + + + 前回の応答に基づいて、利用可能な認証方法を示すビットマスク + + + + + + CURLINFO_HTTP_CODE + (int) + + + + 直近のレスポンスコード。 + cURL 7.10.8 以降は、この値は CURLINFO_RESPONSE_CODE + のレガシーエイリアスです。 + + + + + + CURLINFO_HTTP_CONNECTCODE + (int) + + + + CONNECT に対するレスポンスコード + + + + + + CURLINFO_HTTP_VERSION + (int) + + + + 直近の HTTP 接続で使用されたバージョン。 + 戻り値は定義済みの CURL_HTTP_VERSION_* + 定数のいずれかです。バージョンが判別できない場合は 0 になります。 + PHP 7.3.0 以降 および cURL 7.50.0 以降で利用可能です。 + + + + + + CURLINFO_LASTONE + (int) + + + + libcurlCURLINFO enum の最後の値 + + + + + + CURLINFO_LOCAL_IP + (int) + + + + 直近の接続のローカルの(ソース)IPアドレス + + + + + + CURLINFO_LOCAL_PORT + (int) + + + + 直近の接続のローカルの(ソース)ポート + + + + + + CURLINFO_NAMELOOKUP_TIME + (int) + + + + 名前解決が完了するまでにかかった時間 + + + + + + CURLINFO_NAMELOOKUP_TIME_T + (int) + + + + 処理開始から、名前解決が開始されるまでの経過時間(秒単位)。 + PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。 + + + + + + CURLINFO_NUM_CONNECTS + (int) + + + + 直前の転送を完了するために、curl が作成しなければならなかった接続数 + + + + + + CURLINFO_OS_ERRNO + (int) + + + + 接続が失敗した際の Errno。 + 実際の値は OS とシステム依存です。 + + + + + + CURLINFO_PRETRANSFER_TIME + (int) + + + + 処理開始から、ファイル転送が開始されるまでの経過時間(秒単位)。 + + + + + + CURLINFO_PRETRANSFER_TIME_T + (int) + + + + ファイル転送が開始される直前までの経過時間(マイクロ秒単位)。 + PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。 + + + + + + CURLINFO_PRIMARY_IP + (int) + + + + もっとも直近の接続の IP アドレス + + + + + + CURLINFO_PRIMARY_PORT + (int) + + + + 直近の接続先のポート番号 + + + + + + CURLINFO_PRIVATE + (int) + + + + curl_setopt の + CURLOPT_PRIVATE をオプションを以前に設定した場合に、 + この cURL ハンドルに関連付けられたプライベートデータ。 + + + + + + CURLINFO_PROTOCOL + (int) + + + + 直近の HTTP 接続で使用したプロトコル。 + 返される値は、CURLPROTO_* の値のうち、いずれか1つです。 + PHP 7.3.0 以降 および cURL 7.52.0 以降で利用可能です。 + + + + + + CURLINFO_PROXYAUTH_AVAIL + (int) + + + + 前回の応答に基づいて、利用可能なプロキシ認証方法を示すビットマスク + + + + + + CURLINFO_PROXY_ERROR + (int) + + + + 直近の転送でCURLE_PROXY エラーが返された際の、 + 詳細な(SOCKS)プロキシエラーコード。 + 返される値は CURLPX_* 値のいずれかひとつです。 + 応答コードが利用できない場合、エラーコードは CURLPX_OK になります。 + PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。 + + + + + + CURLINFO_PROXY_SSL_VERIFYRESULT + (int) + + + + (CURLOPT_PROXY_SSL_VERIFYPEER オプションを使用して) + 要求した証明書の検証の結果。HTTPS プロキシでのみ使用されます。 + PHP 7.3.0 以降 および cURL 7.52.0 以降で利用可能です。 + + + + + + CURLINFO_REDIRECT_COUNT + (int) + + + + CURLOPT_FOLLOWLOCATION オプションが有効な場合の、 + リダイレクトの回数 + + + + + + CURLINFO_REDIRECT_TIME + (int) + + + + CURLOPT_FOLLOWLOCATION が有効な場合に、 + 最終トランザクション開始前の、全リダイレクトステップにかかった合計時間(秒単位) + + + + + + CURLINFO_REDIRECT_TIME_T + (int) + + + + 最終トランザクションが開始される前に、名前解決、接続、事前転送、 + 転送を含むすべてのリダイレクトステップにかかった合計時間(マイクロ秒単位)。 + PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。 + + + + + + CURLINFO_REDIRECT_URL + (int) + + + + CURLOPT_FOLLOWLOCATION オプションが無効の場合: + 直近のトランザクションで検出されたリダイレクト先URL。 + このリダイレクト先に、次は手動でリクエストすべきです。 + CURLOPT_FOLLOWLOCATION オプションが有効の場合: + この場合のリダイレクト先URLは、CURLINFO_EFFECTIVE_URL + で利用できます。 + + + + + + CURLINFO_REFERER + (int) + + + + Referer ヘッダ。 + PHP 8.2.0 以降 および cURL 7.76.0 以降で利用可能です。 + + + + + + CURLINFO_REQUEST_SIZE + (int) + + + + 発行されたリクエストの合計サイズ。 + 現状は、HTTP リクエスト向けのみです。 + + + + + + CURLINFO_RESPONSE_CODE + (int) + + + + 最後のレスポンスコード。 + cURL 7.10.8 以降で利用可能です。 + + + + + + CURLINFO_RETRY_AFTER + (int) + + + + Retry-After から取得した情報。 + 有効なヘッダがない場合は 0 になります。 + PHP 8.2.0 以降 および cURL 7.66.0 以降で利用可能です。 + + + + + + CURLINFO_RTSP_CLIENT_CSEQ + (int) + + + + RTSP クライアントの次の CSeq 番号 + + + + + + CURLINFO_RTSP_CSEQ_RECV + (int) + + + + 直近に受信した CSeq 番号 + + + + + + CURLINFO_RTSP_SERVER_CSEQ + (int) + + + + RTSP サーバーとの次の CSeq 番号 + + + + + + CURLINFO_RTSP_SESSION_ID + (int) + + + + RTSP セッションID + + + + + + CURLINFO_SCHEME + (int) + + + + もっとも直近の接続で使用した URL スキーム。 + PHP 7.3.0 以降 および cURL 7.52.0 以降で利用可能です。 + + + + + + CURLINFO_SIZE_DOWNLOAD + (int) + + + + ダウンロードした合計バイト数 + + + + + + CURLINFO_SIZE_DOWNLOAD_T + (int) + + + + ダウンロードした合計バイト数。 + この値は直近の転送のみの値で、新しい転送が行われるたびにリセットされます。 + PHP 7.3.0 以降 および cURL 7.50.0 以降で利用可能です。 + + + + + + CURLINFO_SIZE_UPLOAD + (int) + + + + アップロードした合計バイト数 + + + + + + CURLINFO_SIZE_UPLOAD_T + (int) + + + + アップロードした合計バイト数 + PHP 7.3.0 以降 および cURL 7.50.0 以降で利用可能です。 + + + + + + CURLINFO_SPEED_DOWNLOAD + (int) + + + + ダウンロード速度の平均 + + + + + + CURLINFO_SPEED_DOWNLOAD_T + (int) + + + + ダウンロードを完了するまでに curl が計測した、平均ダウンロード速度(バイト/秒)。 + PHP 7.3.0 以降 および cURL 7.50.0 以降で利用可能です。 + + + + + + CURLINFO_SPEED_UPLOAD + (int) + + + + アップロード速度の平均 + + + + + + CURLINFO_SPEED_UPLOAD_T + (int) + + + + アップロードを完了するまでに curl が計測した、平均アップロード速度(バイト/秒)。 + PHP 7.3.0 以降 および cURL 7.50.0 以降で利用可能です。 + + + + + + CURLINFO_SSL_ENGINES + (int) + + + + サポートされている OpenSSL の暗号化エンジン + + + + + + CURLINFO_SSL_VERIFYRESULT + (int) + + + + CURLOPT_SSL_VERIFYPEER + で要求した、SSL 証明書の検証結果 + + + + + + CURLINFO_STARTTRANSFER_TIME + (int) + + + + 最初のバイトが送信される直前までにかかった、秒単位の時間。 + + + + + + CURLINFO_STARTTRANSFER_TIME_T + (int) + + + + 通信の開始から最初のバイトを受信するまでにかかった、マイクロ秒単位の時間。 + PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。 + + + + + + CURLINFO_TOTAL_TIME + (int) + + + + 直近の転送における、トランザクションの合計時間(秒単位) + + + + + + CURLINFO_TOTAL_TIME_T + (int) + + + + 以前の転送でかかった、マイクロ秒単位の時間。 + 転送には、名前解決や TCP 接続などが含まれます。 + PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。 + + + + + + CURLINFO_POSTTRANSFER_TIME_T + (int) + + + + 送信の開始から最後のバイトが送信されるまでにかかった、マイクロ秒単位の時間。 + PHP 8.4.0 以降 および cURL 8.10.0 以降で利用可能です。 + + + + diff --git a/reference/curl/constants_curl_multi.xml b/reference/curl/constants_curl_multi.xml new file mode 100644 index 0000000000..1197c484cb --- /dev/null +++ b/reference/curl/constants_curl_multi.xml @@ -0,0 +1,95 @@ + + + + + curl_multi_<replaceable>*</replaceable> 定数 + + + CURLM_ADDED_ALREADY + (int) + + + + 既にマルチハンドルに追加済みの easy ハンドルを、再度追加しようとしました。 + cURL 7.32.1 以降で利用可能です。 + + + + + + CURLM_BAD_EASY_HANDLE + (int) + + + + easy ハンドルが有効なものではありません。 + easy ハンドルではない可能性もありますし、 + 既にハンドルが、このハンドルまたは別のマルチハンドルから使われているかもしれません。 + cURL 7.9.6 以降で利用可能です。 + + + + + + CURLM_BAD_HANDLE + (int) + + + + 渡されたハンドルが、有効なマルチハンドルではありません。 + cURL 7.9.6 以降で利用可能です。 + + + + + + CURLM_CALL_MULTI_PERFORM + (int) + + + + cURL 7.20.0 以降は、この定数は使われていません。 + cURL 7.20.0 より前のバージョンでは、 + curl_multi_select や類似の関数がコールされる際に、 + curl_multi_exec が他の定数を返す前にこのコードを返す可能性がありました。 + cURL 7.9.6 以降で利用可能です。 + + + + + + CURLM_INTERNAL_ERROR + (int) + + + + libcurl の内部エラー。 + cURL 7.9.6 以降で利用可能です。 + + + + + + CURLM_OK + (int) + + + + エラーはありません。 + cURL 7.9.6 以降で利用可能です。 + + + + + + CURLM_OUT_OF_MEMORY + (int) + + + + マルチハンドルを処理中にメモリが枯渇しました。 + cURL 7.9.6 以降で利用可能です。 + + + + diff --git a/reference/curl/constants_curl_multi_setopt.xml b/reference/curl/constants_curl_multi_setopt.xml new file mode 100644 index 0000000000..8a414b14c2 --- /dev/null +++ b/reference/curl/constants_curl_multi_setopt.xml @@ -0,0 +1,170 @@ + + + + + <function>curl_multi_setopt</function> + + + CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE + (int) + + + + パイプライン処理における、チャンクの長さのしきい値をバイト単位で指定します。 + PHP 7.0.7 以降 および cURL 7.30.0 以降で利用可能です。 + + + + + + CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE + (int) + + + + パイプライン処理における、ペナルティのしきい値をバイト単位で指定します。 + PHP 7.0.7 以降 および cURL 7.30.0 以降で利用可能です。 + + + + + + CURLMOPT_MAXCONNECTS + (int) + + + + 同時に開く接続の最大数を指定します。 + これを libcurl がキャッシュします。 + デフォルトのサイズは、curl_multi_add_handle + で追加したハンドル数の四倍に収まるように拡大されます。 + キャッシュがいっぱいになると、curl はキャッシュ内で一番古い接続を閉じ、 + 開いている接続の数が増えないようにします。 + cURL 7.16.3 以降で利用可能です。 + + + + + + CURLMOPT_MAX_CONCURRENT_STREAMS + (int) + + + + cURL が HTTP/2 接続でサポートすべき同時ストリームの最大数を指定します。 + 有効な値の範囲は 1 から + 21474836472^31 - 1)です。 + ここで指定された値は、 + 他のシステムリソースのプロパティに基づいて適用されます。 + デフォルトは 100 です。 + PHP 8.2.0 以降 および cURL 7.67.0. 以降で利用可能です。 + + + + + + CURLMOPT_MAX_HOST_CONNECTIONS + (int) + + + + 単一ホストへの最大接続数を指定します。 + PHP 7.0.7 以降 および cURL 7.30.0 以降で利用可能です。 + + + + + + CURLMOPT_MAX_PIPELINE_LENGTH + (int) + + + + パイプライン内の最大リクエスト数を指定します。 + PHP 7.0.7 以降 および cURL 7.30.0 以降で利用可能です。 + + + + + + CURLMOPT_MAX_TOTAL_CONNECTIONS + (int) + + + + 同時に開くことができる、接続の最大数を指定します。 + PHP 7.0.7 以降 および cURL 7.30.0 以降で利用可能です。 + + + + + + CURLMOPT_PIPELINING + (int) + + + + 1 を指定するとパイプラインが有効になり、 + 0 を指定すると無効になります。 + マルチハンドルでパイプラインを有効にすると、 + このハンドルを使用した転送では可能な限り HTTP パイプラインを実行しようとします。 + これは、既存の接続を利用可能な2つ目のリクエストを追加すると、 + そのリクエストが同じ接続上で "パイプ" されることを意味します。 + cURL 7.43.0 以降、この値はビットマスクとなり、 + 2 を渡すと既存の HTTP/2 接続上で新規転送の多重化を試行します。 + 3 を渡すと、パイプライン化と多重化を + 互いに独立して要求するよう cURL に指示します。 + cURL 7.62.0 以降は、パイプラインビットを設定しても効果がありません。 + 整数リテラルではなく、CURLPIPE_* 定数も使用できます。 + cURL 7.16.0 以降で利用可能です。 + + + + + + CURLMOPT_PUSHFUNCTION + (int) + + + + サーバープッシュを処理するために登録する callable を渡します。 + これは、以下のシグネチャを持ちます: + + intpushfunction + resourceparent_ch + resourcepushed_ch + arrayheaders + + + + parent_ch + + + 親の cURL ハンドル(クライアントが作成したリクエスト) + + + + + pushed_ch + + + プッシュされたリクエスト向けの、新しい cURL ハンドル + + + + + headers + + + push promise のヘッダ + + + + + プッシュ関数は、プッシュが処理できる場合は、CURL_PUSH_OK + を返し、拒否する場合は CURL_PUSH_DENY を返すことが期待されています。 + PHP 7.1.0 以降 および cURL 7.44.0 以降で利用可能です。 + + + + diff --git a/reference/curl/constants_curl_pause.xml b/reference/curl/constants_curl_pause.xml new file mode 100644 index 0000000000..1c56895505 --- /dev/null +++ b/reference/curl/constants_curl_pause.xml @@ -0,0 +1,78 @@ + + + + + <function>curl_pause</function> + + + CURLPAUSE_ALL + (int) + + + + データの送信と受信を中断します。 + cURL 7.18.0 以降で利用可能です。 + + + + + + CURLPAUSE_CONT + (int) + + + + データの送信と受信を再開します。 + cURL 7.18.0 以降で利用可能です。 + + + + + + CURLPAUSE_RECV + (int) + + + + データの受信を中断します。 + cURL 7.18.0 以降で利用可能です。 + + + + + + CURLPAUSE_RECV_CONT + (int) + + + + データの受信を再開します。 + cURL 7.18.0 以降で利用可能です。 + + + + + + CURLPAUSE_SEND + (int) + + + + データの送信を中断します。 + cURL 7.18.0 以降で利用可能です。 + + + + + + CURLPAUSE_SEND_CONT + (int) + + + + データの送信を再開します。 + cURL 7.18.0 以降で利用可能です。 + + + + diff --git a/reference/curl/constants_curl_share_setopt.xml b/reference/curl/constants_curl_share_setopt.xml new file mode 100644 index 0000000000..da3304ad94 --- /dev/null +++ b/reference/curl/constants_curl_share_setopt.xml @@ -0,0 +1,108 @@ + + + + + <function>curl_share_setopt</function> + + + CURL_LOCK_DATA_CONNECT + (int) + + + + 接続キャッシュを共有/非共有にします。 + PHP 7.3.0 および cURL 7.10.3 以降で使用可能です。 + + + + + + CURL_LOCK_DATA_COOKIE + (int) + + + + Cookie データを共有/非共有にします。 + cURL 7.10.3 以降で使用可能です。 + + + + + + CURL_LOCK_DATA_DNS + (int) + + + + DNS キャッシュを共有/非共有にします。 + cURL 7.10.3 以降で使用可能です。 + このオプションを cURL マルチハンドルで使う場合、 + 同一のマルチハンドルに追加される全てのハンドルは、 + デフォルトで DNS キャッシュを共有する点に注意しましょう。 + + + + + + CURL_LOCK_DATA_PSL + (int) + + + + Public Suffix List を共有/非共有にします。 + PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。 + + + + + + CURL_LOCK_DATA_SSL_SESSION + (int) + + + + SSL セッションID を 共有/非共有化にし、 + 同じサーバーに再接続する際の SSL ハンドシェイクにかかる時間を短縮します。 + SSL セッションID は、同一ハンドル内ではデフォルトで再利用されます。 + cURL 7.10.3 以降で使用可能です。 + + + + + + CURLSHOPT_NONE + (int) + + + + cURL 7.10.3 以降で使用可能です。 + + + + + + CURLSHOPT_SHARE + (int) + + + + 共有すべきデータのタイプを指定します。 + cURL 7.10.3 以降で使用可能です。 + + + + + + CURLSHOPT_UNSHARE + (int) + + + + 共有しないデータのタイプを指定します。 + cURL 7.10.3 以降で使用可能です。 + + + + + + diff --git a/reference/curl/constants_curlproto.xml b/reference/curl/constants_curlproto.xml new file mode 100644 index 0000000000..81981960e2 --- /dev/null +++ b/reference/curl/constants_curlproto.xml @@ -0,0 +1,336 @@ + + + + + cURL protocol 定数 + + + CURLPROTO_ALL + (int) + + + + cURL 7.19.4 以降で利用可能です。 + + + + + + CURLPROTO_DICT + (int) + + + + cURL 7.19.4 以降で利用可能です。 + + + + + + CURLPROTO_FILE + (int) + + + + cURL 7.19.4 以降で利用可能です。 + + + + + + CURLPROTO_FTP + (int) + + + + cURL 7.19.4 以降で利用可能です。 + + + + + + CURLPROTO_FTPS + (int) + + + + cURL 7.19.4 以降で利用可能です。 + + + + + + CURLPROTO_GOPHER + (int) + + + + cURL 7.21.2 以降で利用可能です。 + + + + + + CURLPROTO_HTTP + (int) + + + + cURL 7.19.4 以降で利用可能です。 + + + + + + CURLPROTO_HTTPS + (int) + + + + cURL 7.19.4 以降で利用可能です。 + + + + + + CURLPROTO_IMAP + (int) + + + + cURL 7.20.0 以降で利用可能です。 + + + + + + CURLPROTO_IMAPS + (int) + + + + cURL 7.20.0 以降で利用可能です。 + + + + + + CURLPROTO_LDAP + (int) + + + + cURL 7.19.4 以降で利用可能です。 + + + + + + CURLPROTO_LDAPS + (int) + + + + cURL 7.19.4 以降で利用可能です。 + + + + + + CURLPROTO_MQTT + (int) + + + + PHP 8.2.0 以降 および cURL 7.71.0 以降で利用可能です。 + + + + + + CURLPROTO_POP3 + (int) + + + + cURL 7.20.0 以降で利用可能です。 + + + + + + CURLPROTO_POP3S + (int) + + + + cURL 7.20.0 以降で利用可能です。 + + + + + + CURLPROTO_RTMP + (int) + + + + cURL 7.21.0 以降で利用可能です。 + + + + + + CURLPROTO_RTMPE + (int) + + + + cURL 7.21.0 以降で利用可能です。 + + + + + + CURLPROTO_RTMPS + (int) + + + + cURL 7.21.0 以降で利用可能です。 + + + + + + CURLPROTO_RTMPT + (int) + + + + cURL 7.21.0 以降で利用可能です。 + + + + + + CURLPROTO_RTMPTE + (int) + + + + cURL 7.21.0 以降で利用可能です。 + + + + + + CURLPROTO_RTMPTS + (int) + + + + cURL 7.21.0 以降で利用可能です。 + + + + + + CURLPROTO_RTSP + (int) + + + + cURL 7.20.0 以降で利用可能です。 + + + + + + CURLPROTO_SCP + (int) + + + + cURL 7.19.4 以降で利用可能です。 + + + + + + CURLPROTO_SFTP + (int) + + + + cURL 7.19.4 以降で利用可能です。 + + + + + + CURLPROTO_SMB + (int) + + + + PHP 7.0.7 以降 および cURL 7.40.0 以降で利用可能です。 + + + + + + CURLPROTO_SMBS + (int) + + + + PHP 7.0.7 以降 および cURL 7.40.0 以降で利用可能です。 + + + + + + CURLPROTO_SMTP + (int) + + + + cURL 7.20.0 以降で利用可能です。 + + + + + + CURLPROTO_SMTPS + (int) + + + + cURL 7.20.0 以降で利用可能です。 + + + + + + CURLPROTO_TELNET + (int) + + + + cURL 7.19.4 以降で利用可能です。 + + + + + + CURLPROTO_TFTP + (int) + + + + cURL 7.19.4 以降で利用可能です。 + + + + diff --git a/reference/curl/curlfile.xml b/reference/curl/curlfile.xml index 9d5cbe6e14..34f7699a95 100644 --- a/reference/curl/curlfile.xml +++ b/reference/curl/curlfile.xml @@ -1,9 +1,8 @@ - + - - + CURLFile クラス CURLFile @@ -14,8 +13,12 @@
&reftitle.intro; - CURLOPT_POSTFIELDS でファイルのアップロードをするには、 - CURLFile を使わなければいけません。 + CURLOPT_POSTFIELDS でファイルのアップロードをするには、このクラスか、CURLStringFile を使わなければいけません。 + + + CURLFile + のインスタンスをアンシリアライズすることはできません。 + PHP 7.4.0 以降では、そもそもシリアライズ自体も禁止されています。
@@ -24,36 +27,38 @@ &reftitle.classsynopsis; - - CURLFile + + + CURLFile + - - - - CURLFile - - - &Properties; public - mixed + string name + "" public - mixed + string mime + "" public - mixed + string postname + "" - &Methods; - + + + + + + @@ -93,6 +98,7 @@ curl_setopt + CURLStringFile
@@ -102,8 +108,7 @@ &reference.curl.entities.curlfile; - - +
- + @@ -13,18 +13,18 @@ &reftitle.description; &style.oop; - + public CURLFile::__construct stringfilename - stringmimetype"" - stringpostname"" - + stringnullmime_type&null; + stringnullposted_filename&null; + &style.procedural; CURLFilecurl_file_create stringfilename - stringmimetype"" - stringpostname"" + stringnullmime_type&null; + stringnullposted_filename&null; CURLFile オブジェクトを作ります。これは、CURLOPT_POSTFIELDS @@ -44,7 +44,7 @@ - mimetype + mime_type ファイルの Mimetype。 @@ -52,7 +52,7 @@ - postname + posted_filename アップロードデータの中で使うファイルの名前。 @@ -69,6 +69,30 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + mime_typeposted_filename + は nullable になりました。 + これより前のバージョンでは、デフォルト値が 0 でした。 + + + + + + + &reftitle.examples; @@ -150,22 +174,17 @@ array(1) { new CURLFile(realpath('first-file.jpg'), 'image/jpeg'), - 'blob[1]' => new CURLFile(realpath('second-file.txt'), 'text/plain'), - 'blob[2]' => new CURLFile(realpath('third-file.exe'), 'application/octet-stream'), - ] ); +curl_setopt($request, CURLOPT_SAFE_UPLOAD, true); +curl_setopt($request, CURLOPT_POSTFIELDS, [ + 'blob[0]' => new CURLFile(realpath('first-file.jpg'), 'image/jpeg'), + 'blob[1]' => new CURLFile(realpath('second-file.txt'), 'text/plain'), + 'blob[2]' => new CURLFile(realpath('third-file.exe'), 'application/octet-stream'), +]); curl_setopt($request, CURLOPT_RETURNTRANSFER, true); echo curl_exec($request); var_dump(curl_getinfo($request)); - -curl_close($request); ]]> &style.procedural; @@ -175,21 +194,17 @@ curl_close($request); // procedural $request = curl_init('http://www.example.com/upload.php'); curl_setopt($request, CURLOPT_POST, true); -curl_setopt($request, CURLOPT_SAFE_UPLOAD, true); curl_setopt( - $request, - CURLOPT_POSTFIELDS, - [ - 'blob[0]' => curl_file_create(realpath('first-file.jpg'), 'image/jpeg'), - 'blob[1]' => curl_file_create(realpath('second-file.txt'), 'text/plain'), - 'blob[2]' => curl_file_create(realpath('third-file.exe'), 'application/octet-stream'), - ] ); +curl_setopt($request, CURLOPT_SAFE_UPLOAD, true); +curl_setopt($request, CURLOPT_POSTFIELDS, [ + 'blob[0]' => curl_file_create(realpath('first-file.jpg'), 'image/jpeg'), + 'blob[1]' => curl_file_create(realpath('second-file.txt'), 'text/plain'), + 'blob[2]' => curl_file_create(realpath('third-file.exe'), 'application/octet-stream'), +]); curl_setopt($request, CURLOPT_RETURNTRANSFER, true); echo curl_exec($request); var_dump(curl_getinfo($request)); - -curl_close($request); ]]> &example.outputs; @@ -265,7 +280,6 @@ array(26) { - - + @@ -10,9 +10,9 @@ &reftitle.description; - + public stringCURLFile::getFilename - + @@ -29,7 +29,6 @@ - - + @@ -10,9 +10,9 @@ &reftitle.description; - + public stringCURLFile::getMimeType - + @@ -29,7 +29,6 @@ - - + @@ -10,9 +10,9 @@ &reftitle.description; - + public stringCURLFile::getPostFilename - + @@ -29,7 +29,6 @@ - - + @@ -10,9 +10,9 @@ &reftitle.description; - + public voidCURLFile::setMimeType - stringmime + stringmime_type @@ -20,7 +20,7 @@ &reftitle.parameters; - mime + mime_type POST データで用いる MIME タイプ。 @@ -38,7 +38,6 @@ - - + @@ -10,9 +10,9 @@ &reftitle.description; - + public voidCURLFile::setPostFilename - stringpostname + stringposted_filename @@ -20,7 +20,7 @@ &reftitle.parameters; - postname + posted_filename POST データで用いるファイル名。 @@ -38,7 +38,6 @@ - - - - - - CURLFile::__wakeup - アンシリアライズ用ハンドラ - - - - &reftitle.description; - - public voidCURLFile::__wakeup - - - - - - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - - &return.void; - - - - - &reftitle.errors; - - CURLFile はシリアライズできません。 - - - - - - diff --git a/reference/curl/curlhandle.xml b/reference/curl/curlhandle.xml new file mode 100644 index 0000000000..ea391317df --- /dev/null +++ b/reference/curl/curlhandle.xml @@ -0,0 +1,59 @@ + + + + + + CurlHandle クラス + CurlHandle + + + + +
+ &reftitle.intro; + + PHP 8.0.0 以降、 + curl リソースを置き換える完全不透明クラスです。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + CurlHandle + + + + +
+ +
+ + + +
+ diff --git a/reference/curl/curlmultihandle.xml b/reference/curl/curlmultihandle.xml new file mode 100644 index 0000000000..05780020e7 --- /dev/null +++ b/reference/curl/curlmultihandle.xml @@ -0,0 +1,59 @@ + + + + + + CurlMultiHandle クラス + CurlMultiHandle + + + + +
+ &reftitle.intro; + + PHP 8.0.0 以降、 + curl_multi リソースを置き換える完全不透明クラスです。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + CurlMultiHandle + + + + +
+ +
+ + + +
+ diff --git a/reference/curl/curlsharehandle.xml b/reference/curl/curlsharehandle.xml new file mode 100644 index 0000000000..740a5d9073 --- /dev/null +++ b/reference/curl/curlsharehandle.xml @@ -0,0 +1,59 @@ + + + + + + CurlShareHandle クラス + CurlShareHandle + + + + +
+ &reftitle.intro; + + PHP 8.0.0 以降、 + curl_share リソースを置き換える完全不透明クラスです。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + CurlShareHandle + + + + +
+ +
+ + + +
+ diff --git a/reference/curl/curlsharepersistenthandle.xml b/reference/curl/curlsharepersistenthandle.xml new file mode 100644 index 0000000000..e014ccb504 --- /dev/null +++ b/reference/curl/curlsharepersistenthandle.xml @@ -0,0 +1,80 @@ + + + + + CurlSharePersistentHandle クラス + CurlSharePersistentHandle + + + + +
+ &reftitle.intro; + + 持続的な cURL "共有" ハンドルを表します。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + CurlSharePersistentHandle + + + &Properties; + + public + readonly + array + options + + + + +
+ + +
+ &reftitle.properties; + + + options + + このハンドルを使って、リクエスト間で共有される CURL_LOCK_DATA_* のキャッシュ + + + +
+ + + +
+ + + +
+ diff --git a/reference/curl/curlstringfile.xml b/reference/curl/curlstringfile.xml new file mode 100644 index 0000000000..1ef61fc979 --- /dev/null +++ b/reference/curl/curlstringfile.xml @@ -0,0 +1,122 @@ + + + + + + CURLStringFile クラス + CURLStringFile + + + + +
+ &reftitle.intro; + + CURLStringFile を使うと、 + ファイルのアップロードを変数を使って直接行うことができます。 + このクラスは CURLFile + に似ていますが、ファイル名ではなく、 + ファイルの中身を使って動作する点が異なります。 + CURLOPT_POSTFIELDS でファイルのアップロードをするには、このクラスか、CURLFile を使わなければいけません。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + CURLStringFile + + + &Properties; + + public + string + data + + + public + string + postname + + + public + string + mime + + + &Methods; + + + + + + +
+ + +
+ &reftitle.properties; + + + data + + アップロードするデータ + + + + postname + + アップロードするデータの中のファイルの名前 + + + + mime + + ファイルの MIME タイプ(デフォルトは application/octet-stream) + + + +
+ + +
+ &reftitle.seealso; + + + + curl_setopt + + CURLFile + + +
+ +
+ + &reference.curl.entities.curlstringfile; + +
+ diff --git a/reference/curl/curlstringfile/construct.xml b/reference/curl/curlstringfile/construct.xml new file mode 100644 index 0000000000..2b46deb785 --- /dev/null +++ b/reference/curl/curlstringfile/construct.xml @@ -0,0 +1,137 @@ + + + + + + CURLStringFile::__construct + CURLStringFile オブジェクトを作る + + + + &reftitle.description; + + public CURLStringFile::__construct + stringdata + stringpostname + stringmime"application/octet-stream" + + + CURLStringFile オブジェクトを作ります。 + これは、CURLOPT_POSTFIELDS でファイルをアップロードするときに使います。 + + + + + &reftitle.parameters; + + + data + + + アップロードするデータ。 + + + + + postname + + + アップロードするデータの中のファイルの名前。 + + + + + mime + + + ファイルの MIME タイプ(デフォルトは application/octet-stream) + + + + + + + + &reftitle.examples; + + <function>CURLStringFile::__construct</function> の例 + + +*/ + +// cURL ハンドルを作ります +$ch = curl_init('http://example.com/upload.php'); + +// CURLStringFile オブジェクトを作ります +$cstringfile = new CURLStringFile('test upload contents','test.txt','text/plain'); + +// POST データを設定します +$data = array('test_string' => $cstringfile); +curl_setopt($ch, CURLOPT_POST, 1); +curl_setopt($ch, CURLOPT_POSTFIELDS, $data); + +// このハンドルを実行します +curl_exec($ch); +?> +]]> + + &example.outputs; + + + array(5) { + ["name"]=> + string(8) "test.txt" + ["type"]=> + string(10) "text/plain" + ["tmp_name"]=> + string(14) "/tmp/phpTtaoCz" + ["error"]=> + int(0) + ["size"]=> + int(20) + } +} +string(20) "test upload contents" +]]> + + + + + + &reftitle.seealso; + + + curl_setopt + + + + + + diff --git a/reference/curl/examples.xml b/reference/curl/examples.xml index d04a16c319..e3205bff31 100644 --- a/reference/curl/examples.xml +++ b/reference/curl/examples.xml @@ -1,6 +1,6 @@ - + @@ -12,8 +12,8 @@ curl 関数を使用可能となります。cURL 関数の基本的な使用法は、 curl_initにより cURL セッションを初期化、 curl_setopt により転送時のオプションを設定、 - 続いてcurl_exec により転送を実行し、 - curl_close によりセッションを終了するというものになります。 + 続いてcurl_exec + により転送を実行するというものになります。 cURL 関数を使用して example.com ホームページをファイルに取得する例を示します。 PHP の cURL モジュールを使用して example.com のホームページを取得する @@ -31,7 +31,6 @@ curl_exec($ch); if(curl_error($ch)) { fwrite($fp, curl_error($ch)); } -curl_close($ch); fclose($fp); ?> ]]> diff --git a/reference/curl/functions/curl-close.xml b/reference/curl/functions/curl-close.xml index 48ad91b47e..73923fabac 100644 --- a/reference/curl/functions/curl-close.xml +++ b/reference/curl/functions/curl-close.xml @@ -1,22 +1,28 @@ - + curl_close cURL セッションを閉じる + + + &warn.deprecated.function-8-5-0; + &reftitle.description; + #[\Deprecated] voidcurl_close - resourcech + CurlHandlehandle + ¬e.resource-migration-8.0-dead-function; cURL セッションを閉じ、全てのリソースを開放します。 - cURL ハンドル ch も削除されます。 + cURL ハンドル handle も削除されます。 @@ -36,6 +42,23 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.handle-param; + + + + + &reftitle.examples; @@ -73,7 +96,6 @@ curl_close($ch); - - + + curl_copy_handle @@ -10,8 +11,8 @@ &reftitle.description; - resourcecurl_copy_handle - resourcech + CurlHandlefalsecurl_copy_handle + CurlHandlehandle cURL ハンドルをコピーし、同じ設定を保持します。 @@ -31,9 +32,35 @@ &reftitle.returnvalues; 新しい cURL ハンドルを返します。 + &return.falseforfailure; + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.handle-param; + + 8.0.0 + + 成功時に、この関数は + CurlHandle クラスのインスタンスを返すようになりました。 + これより前のバージョンでは、resource が返されていました。 + + + + + + + &reftitle.examples; @@ -54,10 +81,6 @@ $ch2 = curl_copy_handle($ch); // URL (http://www.example.com/) を取得し、ブラウザに渡します curl_exec($ch2); - -// cURL リソースを閉じ、システムリソースを開放します -curl_close($ch2); -curl_close($ch); ?> ]]> @@ -65,7 +88,6 @@ curl_close($ch); - - + - + curl_errno 直近のエラー番号を返す @@ -12,7 +12,7 @@ &reftitle.description; intcurl_errno - resourcech + CurlHandlehandle 直近の cURL 処理に関するエラー番号を返します。 @@ -36,6 +36,23 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.handle-param; + + + + + &reftitle.examples; @@ -56,9 +73,6 @@ if(curl_errno($ch)) { echo 'Curl error: ' . curl_error($ch); } - -// ハンドルを閉じます -curl_close($ch); ?> ]]> @@ -77,7 +91,6 @@ curl_close($ch); - - + - + curl_error 現在のセッションに関する直近のエラー文字列を返す @@ -12,7 +12,7 @@ &reftitle.description; stringcurl_error - resourcech + CurlHandlehandle 直近の cURL 操作に関するエラーメッセージをクリアテキストで返します。 @@ -36,6 +36,23 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.handle-param; + + + + + &reftitle.examples; @@ -56,9 +73,6 @@ else { echo 'Operation completed without any errors'; } - -// ハンドルを閉じます -curl_close($ch); ?> ]]> @@ -77,7 +91,6 @@ curl_close($ch); - - + @@ -11,9 +11,9 @@ &reftitle.description; - stringcurl_escape - resourcech - stringstr + stringfalsecurl_escape + CurlHandlehandle + stringstring この関数は、指定した文字列を RFC 3986 に従って URL エンコードします。 @@ -26,7 +26,7 @@ &curl.ch.description; - str + string エンコードする文字列。 @@ -43,6 +43,23 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.handle-param; + + + + + &reftitle.examples; @@ -51,6 +68,7 @@ ]]> @@ -87,7 +105,6 @@ curl_close($ch); - - + @@ -11,8 +11,8 @@ &reftitle.description; - mixedcurl_exec - resourcech + stringboolcurl_exec + CurlHandlehandle 指定した cURL セッションを実行します。 @@ -35,9 +35,11 @@ &reftitle.returnvalues; - &return.success; しかし、オプション CURLOPT_RETURNTRANSFER + 成功時には、この関数は結果を直接 stdout + にフラッシュし、&true; を返します。&return.falseforfailure; + しかし、オプション CURLOPT_RETURNTRANSFER設定されていると、 - 成功した場合に取得結果、失敗した場合に &false; を返します。 + 成功した場合に取得結果を、失敗した場合に &false; を返します。 &return.falseproblem; @@ -49,7 +51,24 @@ - + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.handle-param; + + + + + &reftitle.examples; @@ -67,9 +86,6 @@ curl_setopt($ch, CURLOPT_HEADER, 0); // URL を取得し、ブラウザに渡します curl_exec($ch); - -// cURL リソースを閉じ、システムリソースを解放します -curl_close($ch); ?> ]]> @@ -87,7 +103,6 @@ curl_close($ch); - - - - - - curl_file_create - CURLFile オブジェクトを作る - - - - &reftitle.description; - - &info.function.alias; CURLFile::__construct - - - - - - diff --git a/reference/curl/functions/curl-getinfo.xml b/reference/curl/functions/curl-getinfo.xml index 0558f01d1a..3640f85bc3 100644 --- a/reference/curl/functions/curl-getinfo.xml +++ b/reference/curl/functions/curl-getinfo.xml @@ -1,22 +1,21 @@ - - - + + curl_getinfo - 指定した伝送に関する情報を得る + 特定のデータ転送に関する情報を得る - + &reftitle.description; mixedcurl_getinfo - resourcech - intopt + CurlHandlehandle + intnulloption&null; - 直近の転送に関する情報を取得します。 + 直近のデータ転送に関する情報を取得します。 @@ -26,330 +25,10 @@ &curl.ch.description; - opt + option - これは、以下のいずれかの定数となります。 - - - - CURLINFO_EFFECTIVE_URL - 直近の有効な URL - - - - - CURLINFO_HTTP_CODE - 最後に受け取った HTTP コード。PHP 5.5.0とcURL 7.10.8以降では CURLINFO_RESPONSE_CODE の別名になりました。 - - - - - CURLINFO_FILETIME - ドキュメントを取得するのにかかった時間。 - CURLOPT_FILETIME が有効な状態で用いる。 - 取得できなかった場合は -1 - - - - - CURLINFO_TOTAL_TIME - 直近の伝送にかかった秒数 - - - - - CURLINFO_NAMELOOKUP_TIME - 名前解決が完了するまでにかかった秒数 - - - - - CURLINFO_CONNECT_TIME - 接続を確立するまでにかかった秒数 - - - - - CURLINFO_PRETRANSFER_TIME - 開始からファイル伝送がはじまるまでにかかった秒数 - - - - - CURLINFO_STARTTRANSFER_TIME - 最初のバイトの伝送がはじまるまでの秒数 - - - - - CURLINFO_REDIRECT_COUNT - リダイレクト処理の回数 (CURLOPT_FOLLOWLOCATION オプションが有効な場合) - - - - - CURLINFO_REDIRECT_TIME - 伝送が始まるまでのリダイレクト処理の秒数 (CURLOPT_FOLLOWLOCATION オプションが有効な場合) - - - - - CURLINFO_REDIRECT_URL - CURLOPT_FOLLOWLOCATION オプションが無効な場合: - 直近のトランザクションで見つかったリダイレクト先 URL。これを、次に手動でリクエストしなければいけません。 - CURLOPT_FOLLOWLOCATION オプションが有効な場合: これは空になります。 - この場合のリダイレクト先 URL は、CURLINFO_EFFECTIVE_URL となります。 - - - - - CURLINFO_PRIMARY_IP - 直近の接続の IP アドレス - - - - - CURLINFO_PRIMARY_PORT - 直近の接続の接続先ポート - - - - - CURLINFO_LOCAL_IP - 直近の接続の接続元 IP アドレス - - - - - CURLINFO_LOCAL_PORT - 直近の接続の接続元ポート - - - - - CURLINFO_SIZE_UPLOAD - アップロードされたバイト数 - - - - - CURLINFO_SIZE_DOWNLOAD - ダウンロードされたバイト数 - - - - - CURLINFO_SPEED_DOWNLOAD - 平均のダウンロード速度 - - - - - CURLINFO_SPEED_UPLOAD - 平均のアップロード速度 - - - - - CURLINFO_HEADER_SIZE - 受信したヘッダのサイズ - - - - - CURLINFO_HEADER_OUT - 送信したリクエスト文字列。 - これを動作させるには、curl_setopt をコールする際に - CURLINFO_HEADER_OUT オプションを使うようにしておく必要があります。 - - - - - CURLINFO_REQUEST_SIZE - 発行されたリクエストのサイズ。現在は - HTTP リクエストの場合のみ - - - - - CURLINFO_SSL_VERIFYRESULT - CURLOPT_SSL_VERIFYPEER - を設定した際に要求される SSL 証明書の認証結果 - - - - - CURLINFO_CONTENT_LENGTH_DOWNLOAD - ダウンロードされるサイズ。 - Content-Length: フィールドの内容を取得する - - - - - CURLINFO_CONTENT_LENGTH_UPLOAD - アップロードされるサイズ。 - - - - - CURLINFO_CONTENT_TYPE - 要求されたドキュメントの - Content-Type:。 - NULL は、サーバーが適切な Content-Type: ヘッダを返さなかったことを示す - - - - - CURLINFO_PRIVATE - この cURL ハンドルに関連づけられたプライベートデータ。 - 事前に curl_setoptCURLOPT_PRIVATE オプションで設定したもの。 - - - - - CURLINFO_RESPONSE_CODE - 直近のレスポンスコード。 - - - - - CURLINFO_HTTP_CONNECTCODE - CONNECT のレスポンスコード。 - - - - - CURLINFO_HTTPAUTH_AVAIL - 直前のレスポンスから判断する、利用可能な認証方式のビットマスク。 - - - - - CURLINFO_PROXYAUTH_AVAIL - 直前のレスポンスから判断する、プロキシ認証方式のビットマスク。 - - - - - CURLINFO_OS_ERRNO - 接続に失敗したときのエラー番号。OS やシステムによって異なります。 - - - - - CURLINFO_NUM_CONNECTS - curl が直前の転送を実行するために要した接続数。 - - - - - CURLINFO_SSL_ENGINES - サポートする OpenSSL 暗号エンジン。 - - - - - CURLINFO_COOKIELIST - すべての既知のクッキー。 - - - - - CURLINFO_FTP_ENTRY_PATH - FTP サーバーのエントリパス。 - - - - - CURLINFO_APPCONNECT_TIME - リモートホストとの SSL/SSH 接続/ハンドシェイク が完了するまでに要した秒数。 - - - - - CURLINFO_CERTINFO - TLS 証明書チェイン。 - - - - - CURLINFO_CONDITION_UNMET - 時間の条件が満たされなかったことに関する情報。 - - - - - CURLINFO_RTSP_CLIENT_CSEQ - 次の RTSP クライアントの CSeq。 - - - - - CURLINFO_RTSP_CSEQ_RECV - 直前に受け取った CSeq。 - - - - - CURLINFO_RTSP_SERVER_CSEQ - 次の RTSP サーバーの CSeq。 - - - - - CURLINFO_RTSP_SESSION_ID - RTSP セッション ID。 - - - - - CURLINFO_CONTENT_LENGTH_DOWNLOAD_T - ダウンロードの content-length の値。これは Content-Type: フィールドから読み取った値です。-1 はサイズが不明であることを示します。 - - - - - CURLINFO_CONTENT_LENGTH_UPLOAD_T - 指定されたアップロードのサイズ。-1 はサイズが不明であることを示します。 - - - - - CURLINFO_HTTP_VERSION - 直近のHTTP接続で使われたバージョン。返される値は、CURL_HTTP_VERSION_* で定義されたうちのひとつです。バージョンが特定できない場合は、0 が返されます。 - - - - - CURLINFO_PROTOCOL - 直近のHTTP接続で使われたプロトコル。返される値は、CURLPROTO_* で定義されたうちのひとつです。 - - - - - CURLINFO_PROXY_SSL_VERIFYRESULT - (CURLOPT_PROXY_SSL_VERIFYPEER オプションを使って) リクエストされた証明書の検証結果です。 HTTPS プロキシを使った場合にのみ有効です。 - - - - - CURLINFO_SCHEME - 直近の接続で使われたURLスキーム - - - - - CURLINFO_SIZE_DOWNLOAD_T - ダウンロードした合計のバイト数。この数値は直近の転送のみの値です。新しい転送が行われるたびにリセットされます。 - - - - - CURLINFO_SIZE_UPLOAD_T - アップロードされた合計サイズ(バイト単位) - - - - - CURLINFO_SPEED_DOWNLOAD_T - ダウンロードが完了した際にcurlが計測した、平均ダウンロード速度(バイト/毎秒) - - - - - CURLINFO_SPEED_UPLOAD_T - アップロードが完了した際にcurlが計測した、平均アップロード速度(バイト/毎秒) - - - - - CURLINFO_APPCONNECT_TIME_T - リモートホストと SSL/SSH の接続/ハンドシェイクを開始してから完了するまでにかかった時間 (マイクロ秒) - - - - - CURLINFO_CONNECT_TIME_T - リモートホスト(またはプロキシ) と接続を開始して、完了するまでにかかった合計時間(マイクロ秒) - - - - - CURLINFO_FILETIME_T - 文書を取得したリモートの時間(Unixタイムスタンプ)。これは CURLINFO_FILETIME の代替であり、32ビットのタイムスタンプの範囲から外れた日付を32ビットのシステムで変数に展開することができます。 - - - - - CURLINFO_NAMELOOKUP_TIME_T - 名前解決が完了するまでにかかった時間(マイクロ秒) - - - - - CURLINFO_PRETRANSFER_TIME_T - ファイルの転送が始まるまでにかかった時間(マイクロ秒) - - - - - CURLINFO_REDIRECT_TIME_T - リダイレクトのステップ全てにかかった合計時間(マイクロ秒)。これには、名前解決や接続、事前の転送や最後のトランザクションが開始されるまでの転送処理を含みます。 - - - - - CURLINFO_STARTTRANSFER_TIME_T - 最初のバイトを受信するまでにかかった時間(マイクロ秒) - - - - - CURLINFO_TOTAL_TIME_T - 名前解決, TCP 接続などを含む、以前の転送にかかった合計時間(マイクロ秒) - - - + 定数 CURLINFO_* のうちの一つ。 @@ -360,9 +39,10 @@ &reftitle.returnvalues; - opt を指定した場合は、その値を返します。 - それ以外の場合は、以下の要素をもつ連想配列を返します - (それぞれの要素が opt に対応します)。 + option を指定した場合、 + その値を返します。 + 指定しない場合は、以下の要素をもつ連想配列を返します + (それぞれの要素が option に対応します)。 失敗した場合は &false; を返します。 @@ -501,8 +181,14 @@ をコールしたときに CURLINFO_HEADER_OUT を設定した場合のみです) + + + "posttransfer_time_us" (PHP 8.4.0 以降かつ cURL 8.10.0 以降で利用可能) + + - プライベートデータはこの連想配列には含まれず、CURLINFO_PRIVATE オプションで個別に取得しなければいけないことに注意しましょう。 + プライベートデータはこの連想配列には含まれず、 + CURLINFO_PRIVATE オプションで個別に取得しなければいけないことに注意しましょう。 @@ -518,11 +204,41 @@ + + 8.4.0 + + 定数 CURLINFO_POSTTRANSFER_TIME_T + と posttransfer_time_us が追加されました。(Curl 8.10.0 以降) + + + + 8.3.0 + + CURLINFO_CAINFO, + CURLINFO_CAPATH が追加されました。 + + + + 8.2.0 + + CURLINFO_PROXY_ERROR, + CURLINFO_REFERER, + CURLINFO_RETRY_AFTER が追加されました。 + + + &curl.changelog.handle-param; + + 8.0.0 + + option は nullable になりました。 + これより前のバージョンでは、デフォルト値は 0 でした。 + + 7.3.0 CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, - CURLINFO_CONTENT_LENGTH_UPLOAD_T, + CURLINFO_CONTENT_LENGTH_UPLOAD_T, CURLINFO_HTTP_VERSION, CURLINFO_PROTOCOL, CURLINFO_PROXY_SSL_VERIFYRESULT, @@ -541,65 +257,12 @@ CURLINFO_TOTAL_TIME_T が追加されました。 - - 5.5.0 - - CURLINFO_RESPONSE_CODE、 - CURLINFO_HTTP_CONNECTCODE、 - CURLINFO_HTTPAUTH_AVAIL、 - CURLINFO_PROXYAUTH_AVAIL、 - CURLINFO_OS_ERRNO、 - CURLINFO_NUM_CONNECTS、 - CURLINFO_SSL_ENGINES、 - CURLINFO_COOKIELIST、 - CURLINFO_FTP_ENTRY_PATH、 - CURLINFO_APPCONNECT_TIME、 - CURLINFO_CONDITION_UNMET、 - CURLINFO_RTSP_CLIENT_CSEQ、 - CURLINFO_RTSP_CSEQ_RECV、 - CURLINFO_RTSP_SERVER_CSEQ および - CURLINFO_RTSP_SESSION_ID が追加されました。 - - - - 5.4.7 - - CURLINFO_PRIMARY_IP、 - CURLINFO_PRIMARY_PORT、 - CURLINFO_LOCAL_IP および - CURLINFO_LOCAL_PORT が追加されました。 - - - - 5.3.7 - - CURLINFO_REDIRECT_URL が追加されました。 - - - - 5.3.0 - - CURLINFO_CERTINFO が追加されました。 - - - - 5.2.4 - - CURLINFO_PRIVATE が追加されました。 - - - - 5.1.3 - - CURLINFO_HEADER_OUT が追加されました。 - - - + &reftitle.examples; @@ -614,14 +277,11 @@ $ch = curl_init('http://www.example.com/'); // 実行します curl_exec($ch); -// エラーが発生したかどうかを確認します +// エラーが発生したかどうかを調べます if (!curl_errno($ch)) { $info = curl_getinfo($ch); echo 'Took ', $info['total_time'], ' seconds to send a request to ', $info['url'], "\n"; } - -// ハンドルを閉じます -curl_close($ch); ?> ]]> @@ -629,7 +289,7 @@ curl_close($ch); - <function>curl_getinfo</function> で <parameter>opt</parameter> パラメータを使う例 + <function>curl_getinfo</function> に <parameter>option</parameter> を指定する例 ]]> - + &reftitle.notes; - この関数で収集した情報を、ハンドルを再利用するとそのまま保持されます。 + ハンドルを再利用すると、この関数で収集した情報はそのまま保持されます。 つまり、この関数で内部的に統計情報を上書きしない限りは以前の情報が返されるということです。 - - + @@ -11,14 +11,11 @@ &reftitle.description; - resourcecurl_init - stringurl&null; + CurlHandlefalsecurl_init + stringnullurl&null; - 新規セッションを初期化し、cURL - ハンドルを返します。このハンドルは、関数 - curl_setopt, curl_exec, - curl_close で使用します。 + 新規セッションを初期化し、cURL ハンドルを返します。 @@ -30,10 +27,10 @@ url - urlを指定した場合、オプション - CURLOPT_URL がそのパラメータの値に設定されます。関数 + この値を指定した場合、CURLOPT_URL + オプションがその値に設定されます。 curl_setopt により、 - この値をマニュアルで設定することも可能です。 + この値を手動で設定することもできます。 @@ -55,6 +52,36 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + 成功時に、この関数は + CurlHandle クラスのインスタンスを返すようになりました。 + これより前のバージョンでは、resource を返していました。 + + + + 8.0.0 + + url は、nullable になりました。 + + + + + + + &reftitle.examples; @@ -65,7 +92,8 @@ ]]> @@ -95,7 +121,6 @@ curl_close($ch); - - + @@ -12,12 +12,12 @@ &reftitle.description; intcurl_multi_add_handle - resourcemh - resourcech + CurlMultiHandlemulti_handle + CurlHandlehandle - ch ハンドルを、マルチハンドル - mh に追加します。 + handle ハンドルを、マルチハンドル + multi_handle に追加します。 @@ -35,57 +35,29 @@ &reftitle.returnvalues; 成功した場合に 0、あるいはエラーコード - CURLM_XXX のいずれかを返します。 + CURLM_* + のいずれかを返します。 - - &reftitle.examples; - - - <function>curl_multi_add_handle</function> の例 - - この例は、ふたつの cURL ハンドルを作成し、それをマルチハンドルに追加して非同期で実行します。 - - - -]]> - - - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.multi-handle-param; + &curl.changelog.handle-param; + + + - + &reftitle.seealso; @@ -98,7 +70,6 @@ curl_multi_close($mh); - - + curl_multi_close - cURL ハンドルのセットを閉じる + マルチハンドルから全てのcURL ハンドルのを削除する &reftitle.description; voidcurl_multi_close - resourcemh + CurlMultiHandlemulti_handle - cURL ハンドルのセットを閉じます。 + CurlMultiHandle + にアタッチされた全ての CurlHandle + を削除します。 + それぞれの CurlHandle + に対して curl_multi_remove_handle + がコールされたかのように動作します。 + + + PHP 8.0.0 より前のバージョンでは、 + この関数は cURL のマルチハンドルリソースもクローズし、 + 利用できない状態にしていました。 @@ -35,68 +45,33 @@ - - &reftitle.examples; - - - <function>curl_multi_close</function> の例 - - この例は、ふたつの cURL ハンドルを作成し、それをマルチハンドルに追加して非同期で実行します。 - - - -]]> - - - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.multi-handle-param; + + + - + &reftitle.seealso; curl_multi_init - curl_close - - + @@ -10,9 +10,9 @@ &reftitle.description; - + intcurl_multi_errno - resourcemh + CurlMultiHandlemulti_handle 直近のマルチハンドルに対するエラー番号を含んだ数値を返します。 @@ -30,10 +30,32 @@ &reftitle.returnvalues; 直近のマルチハンドルに対するエラー番号を含んだ数値を返します。 - &return.falseforfailure;. + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数は、失敗時に &false; を返さなくなりました。 + + + &curl.changelog.multi-handle-param; + + + + + &reftitle.seealso; @@ -42,7 +64,6 @@ - - + @@ -12,7 +12,7 @@ &reftitle.description; intcurl_multi_exec - resourcemh + CurlMultiHandlemulti_handle intstill_running @@ -52,46 +52,83 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.multi-handle-param; + + + + + &reftitle.examples; <function>curl_multi_exec</function> の例 - この例は、ふたつの cURL ハンドルを作成し、それをマルチハンドルに追加して非同期で実行します。 + この例は、URL のリストを処理する cURL ハンドルを作成し、それをマルチハンドルに追加して非同期で実行します。 @@ -113,7 +150,6 @@ curl_multi_close($mh); - - + + curl_multi_getcontent @@ -10,8 +11,8 @@ &reftitle.description; - stringcurl_multi_getcontent - resourcech + stringnullcurl_multi_getcontent + CurlHandlehandle CURLOPT_RETURNTRANSFER に何らかのハンドルが設定されている場合に、 @@ -33,9 +34,28 @@ CURLOPT_RETURNTRANSFER が設定されている場合に、 cURL ハンドルの内容を返します。 + CURLOPT_RETURNTRANSFER が設定されていない場合は、 + &null; を返します。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.handle-param; + + + + + &reftitle.seealso; @@ -46,7 +66,6 @@ - - + @@ -11,9 +11,9 @@ &reftitle.description; - arraycurl_multi_info_read - resourcemh - intmsgs_in_queue&null; + arrayfalsecurl_multi_info_read + CurlMultiHandlemulti_handle + intqueued_messages&null; マルチハンドルに対して、個別の転送にメッセージ/情報が残っているかどうかを問い合わせます。 @@ -22,7 +22,7 @@ この関数を繰り返しコールすると、毎回新しい結果を返します。&false; が返されると、その時点でもう取得する結果がないことを意味します。 - msgs_in_queue がさす値は、 + queued_messages がさす値は、 この関数をコールした後に残っているメッセージの数となります。 @@ -40,7 +40,7 @@ &curl.mh.description; - msgs_in_queue + queued_messages まだキューの中に残っているメッセージの数。 @@ -69,11 +69,11 @@ msg - 定数 CURLMSG_DONE。その他の返り値は現在は存在しません。 + 定数 CURLMSG_DONE。その他の戻り値は現在は存在しません。 result - 定数 CURLE_* のいずれか。すべて OK なら + 定数 CURLE_* のいずれか。すべて OK なら CURLE_OK が返ります。 @@ -86,105 +86,21 @@ - - &reftitle.examples; - - - <function>curl_multi_info_read</function> の例 - - $url) { - $conn[$i] = curl_init($url); - curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1); - curl_multi_add_handle($mh, $conn[$i]); -} - -do { - $status = curl_multi_exec($mh, $active); - if ($active) { - curl_multi_select($mh); - } - while (false !== ($info = curl_multi_info_read($mh))) { - var_dump($info); - } -} while ($active && $status == CURLM_OK); - -foreach ($urls as $i => $url) { - $res[$i] = curl_multi_getcontent($conn[$i]); - curl_close($conn[$i]); -} - -var_dump(curl_multi_info_read($mh)); - -?> -]]> - - &example.outputs.similar; - - - int(1) - ["result"]=> - int(0) - ["handle"]=> - resource(5) of type (curl) -} -array(3) { - ["msg"]=> - int(1) - ["result"]=> - int(0) - ["handle"]=> - resource(7) of type (curl) -} -array(3) { - ["msg"]=> - int(1) - ["result"]=> - int(0) - ["handle"]=> - resource(6) of type (curl) -} -bool(false) -]]> - - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.2.0 - - msgs_in_queue が追加されました。 - - - - - - + + + + + &Version; + &Description; + + + + &curl.changelog.multi-handle-param; + + + @@ -197,7 +113,6 @@ bool(false) - - + @@ -11,8 +11,8 @@ &reftitle.description; - resourcecurl_multi_init - + CurlMultiHandlecurl_multi_init + 複数の cURL ハンドルを非同期で実行できるようにします。 @@ -27,58 +27,34 @@ &reftitle.returnvalues; - 成功した場合に cURL マルチハンドルリソース、失敗した場合に &false; を返します。 + cURL マルチハンドルを返します。 - - &reftitle.examples; - - - <function>curl_multi_init</function> の例 - - この例は、ふたつの cURL ハンドルを作成し、それをマルチハンドルに追加して非同期で実行します。 - - - -]]> - - - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + 成功時に、この関数は + CurlMultiHandle クラスのインスタンスを返すようになりました。 + これより前のバージョンでは、resource を返していました。 + + + + + - + &reftitle.seealso; @@ -90,7 +66,6 @@ curl_multi_close($mh); - - + curl_multi_remove_handle - cURL ハンドルのセットからマルチハンドルを削除する + cURL ハンドルのセットからハンドルを削除する &reftitle.description; intcurl_multi_remove_handle - resourcemh - resourcech + CurlMultiHandlemulti_handle + CurlHandlehandle - 指定した ch ハンドルを、mh ハンドルから削除します。 - ch ハンドルが削除されてからも、このハンドルで + 指定した handle を、multi_handle から削除します。 + handle が削除されてからも、このハンドルで curl_exec を実行できます。 - 使用中の ch ハンドルを削除する際には、 + 使用中の handle を削除する際には、 そのハンドルにかかわる進行中の転送をきちんと停止します。 @@ -36,11 +36,30 @@ &reftitle.returnvalues; - 成功した場合に 0、失敗した場合にエラーコード CURLM_XXX のいずれかを返します。 - codes. + 成功した場合に 0、失敗した場合にエラーコード + CURLM_* + のいずれかを返します。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.multi-handle-param; + &curl.changelog.handle-param; + + + + + &reftitle.seealso; @@ -53,7 +72,6 @@ - - + curl_multi_select - curl_multi 接続のアクティビティを待つ + 任意の cURL マルチハンドル接続で読み取りまたは書き込みが可能になるまで待機する - + &reftitle.description; intcurl_multi_select - resourcemh + CurlMultiHandlemulti_handle floattimeout1.0 - curl_multi 接続に関するアクティビティがあるまでブロックします。 + スクリプトの実行をブロックし、次の curl_multi_exec の呼び出しで + cURL マルチハンドルに関連付けられた cURL ハンドルが処理を進められるようになるか、 + タイムアウトになるまで待機します(どちらか早い方が適用されます)。 @@ -29,24 +31,55 @@ timeout - レスポンスを待つ秒数。 + アクティブな cURL マルチハンドル接続からのレスポンスを待機する時間(秒単位)。 - + &reftitle.returnvalues; - 成功した場合は、記述子セットに含まれる記述子の数を返します。 - どの記述子上にもアクティビティがなかった場合は、結果が 0 になることもあります。 - select に失敗した場合は -1 を返し、それ以外の失敗時は - (select システムコールから) タイムアウトします。 + 成功した場合は、記述子セットに含まれるアクティブな記述子の数を返します。 + どの記述子上にもアクティビティがなかった場合は、結果が 0 になることもあります。 + (select() システムコールから) select に失敗した場合は -1 を返します。 + + &reftitle.errors; + + timeout0 未満または PHP_INT_MAX + を超える場合、ValueError をスローします。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + timeout0 未満または PHP_INT_MAX + を超える場合、ValueError をスローするようになりました。 + + + &curl.changelog.multi-handle-param; + + + + + &reftitle.seealso; @@ -57,7 +90,6 @@ - - + @@ -13,34 +13,25 @@ &reftitle.description; boolcurl_multi_setopt - resourcemh + CurlMultiHandlemulti_handle intoption mixedvalue - + 指定された cURL マルチハンドル用のオプションを設定します。 - &warn.undocumented.func; - &reftitle.parameters; - - mh - - - - - - + &curl.mh.description; option - CURLMOPT_* 定数のいずれか。 + CURLMOPT_* 定数のいずれか。 @@ -49,120 +40,9 @@ option に設定する値。 - - - value には int 型の値を指定しなければいけません。 - option パラメータの値によって、それぞれ次のようになります。 - - - - - オプション - value の設定値 - - - - - CURLMOPT_PIPELINING - - 1 を渡せば有効に、そして 0 を渡せば無効になります。 - マルチハンドルでのパイプライン化を有効にすると、このハンドルによる転送で、 - 可能な限り HTTP パイプライン化を試みます。 - つまり、二番目のリクエストを追加したときに既存の接続が使える場合は、 - 既存の接続に「パイプ」でつなぎます。 - cURL 7.43.0 以降では、この値はビットマスクですが、 - 2 を渡すと、既存の HTTP/2 接続上での新しい転送で、 - 可能な限り多重化を試みます。 - 3 を渡すと、パイプライン化と多重化を互いに独立して行うよう - cURL に指示します。 - cURL 7.62.0 以降は、パイプライン化のbitを設定しても効果はありません。 - - - - CURLMOPT_MAXCONNECTS - - 同時に開く接続の最大数を指定します。これを libcurl がキャッシュします。 - デフォルトのサイズは、 - curl_multi_add_handle で追加したハンドル数の四倍に収まるように拡大されます。 - キャッシュがいっぱいになると、キャッシュ内で一番古い接続を閉じ、 - 開いている接続の数が増えないようにします。 - - - - CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE - - パイプライン化のチャンク長の閾値をバイト単位で指定します。 - - - - CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE - - パイプライン化のペナルティの閾値をバイト単位で指定します。 - - - - CURLMOPT_MAX_HOST_CONNECTIONS - - 単一のホストへの最大接続数を指定します。 - - - - CURLMOPT_MAX_PIPELINE_LENGTH - - 単一のパイプライン内での最大リクエスト数を指定します。 - - - - CURLMOPT_MAX_TOTAL_CONNECTIONS - - 同時にオープンする接続の最大数を指定します。 - - - - CURLMOPT_PUSHFUNCTION - - サーバープッシュを扱うために登録される - callable を渡し、以下のようなシグナチャをとります: - - intpushfunction - resourceparent_ch - resourcepushed_ch - arrayheaders - - - - parent_ch - - - 親となる cURL ハンドル(クライアントが作成したリクエストの) - - - - - pushed_ch - - - プッシュされたリクエストのための、新しい cURL ハンドル - - - - - headers - - - プッシュのためのプロミスヘッダ - - - - - プッシュ関数自体は、プッシュをハンドルできる場合は - CURL_PUSH_OK を返し、 - 拒否する場合は、CURL_PUSH_DENY を返すことが想定されています。 - - - - - + それぞれの定数が期待する値の型に関する詳細は、 + CURLMOPT_* + の説明を参照ください。 @@ -188,6 +68,13 @@ + + 8.2.0 + + CURLMOPT_MAX_CONCURRENT_STREAMS が追加されました。 + + + &curl.changelog.multi-handle-param; 7.1.0 @@ -212,7 +99,6 @@ - - + @@ -12,11 +12,11 @@ &reftitle.description; - stringcurl_multi_strerror - interrornum + stringnullcurl_multi_strerror + interror_code - 指定した CURLM エラーコードに対応するエラーメッセージの文字列を返します。 + 指定した CURLM_* エラーコードに対応するエラーメッセージの文字列を返します。 @@ -25,10 +25,11 @@ &reftitle.parameters; - errornum + error_code - CURLM エラーコード 定数のいずれか。 + CURLM_* + 定数のいずれか。 @@ -42,46 +43,6 @@ - - &reftitle.examples; - - - <function>curl_multi_strerror</function> の例 - - -]]> - - - - - &reftitle.seealso; @@ -93,7 +54,6 @@ if ($status != CURLM_OK) { - - + @@ -12,15 +12,16 @@ &reftitle.description; intcurl_pause - resourcech - intbitmask + CurlHandlehandle + intflags - + cURL の接続セッションを中断、または再開します。 + 接続セッションは、転送中であれば、読み取り書き込みどちらの方向であっても + curl_setopt + で登録したコールバックからこの関数をコールすることで中断できます。 - &warn.undocumented.func; - @@ -28,10 +29,10 @@ &curl.ch.description; - bitmask + flags - 定数 CURLPAUSE_* のいずれか。 + 定数 CURLPAUSE_* のいずれか。 @@ -45,8 +46,24 @@ - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.handle-param; + + + + + - + @@ -12,7 +12,7 @@ &reftitle.description; voidcurl_reset - resourcech + CurlHandlehandle 指定した cURL ハンドルに設定されているすべてのオプションを初期化してデフォルト値に戻します。 @@ -34,6 +34,23 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.handle-param; + + + + + &reftitle.examples; @@ -54,9 +71,6 @@ curl_reset($ch); // HTTP リクエストを送信します curl_setopt($ch, CURLOPT_URL, 'http://example.com/'); curl_exec($ch); // 事前に設定した user-agent は送信されません。curl_reset で初期化されたからです - -// ハンドルを閉じます -curl_close($ch); ?> ]]> @@ -83,7 +97,6 @@ curl_close($ch); - - + curl_setopt_array @@ -10,7 +10,7 @@ &reftitle.description; boolcurl_setopt_array - resourcech + CurlHandlehandle arrayoptions @@ -49,6 +49,23 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.handle-param; + + + + + &reftitle.examples; @@ -71,34 +88,6 @@ curl_setopt_array($ch, $options); // URL の内容を取得し、ブラウザに渡します curl_exec($ch); - -// cURL リソースを閉じ、システムリソースを開放します -curl_close($ch); -?> -]]> - - - - - PHP 5.1.3 より前のバージョンでこの関数と同等の操作をするには、次のようにします。 - - - - <function>curl_setopt_array</function> の独自実装 - - $value) { - if (!curl_setopt($ch, $option, $value)) { - return false; - } - } - return true; - } -} ?> ]]> @@ -128,7 +117,6 @@ if (!function_exists('curl_setopt_array')) { - - + @@ -12,7 +12,7 @@ &reftitle.description; boolcurl_setopt - resourcech + CurlHandlehandle intoption mixedvalue @@ -30,7 +30,7 @@ option - 設定したい CURLOPT_XXX オプション。 + 設定する CURLOPT_* の値。 @@ -39,2278 +39,16 @@ option に設定する値。 - - - value には、 - option の以下の値に関して - bool 値を指定する必要があります。 - - - - - オプション - value への設定値 - 注記 - - - - - CURLOPT_AUTOREFERER - - &true; を設定すると、Location: によるリダイレクトを - たどる際には自動的に Referer: フィールドをリクエストに - 追加します。 - - - - - - CURLOPT_BINARYTRANSFER - - &true; を設定すると、CURLOPT_RETURNTRANSFER - が使用された場合に出力結果を何も加工せずに返します。 - - - PHP 5.1.3 以降では、このオプションは何の効果もありません。 - CURLOPT_RETURNTRANSFER を使ったときには - 常に出力をそのまま返すようになりました。 - - - - CURLOPT_COOKIESESSION - - &true; を設定すると、クッキーの "セッション" を新しく開始します。 - 以前のセッションで読み込まれていた "セッションクッキー" は無視するよう、 - libcurl に指示します。デフォルトでは、それがセッションクッキーであるか - どうかにかかわらず libcurl はすべてのクッキーを読み込んで保存します。 - セッションクッキーとは、有効期限が指定されておらず "セッション" の間のみ - 有効であるクッキーのことです。 - - - - - - CURLOPT_CERTINFO - - &true; を設定すると、セキュアな転送時に SSL 証明書の情報を - STDERR に出力します。 - - - cURL 7.19.1 で追加されました。 - PHP 5.3.2 以降で使用可能です。これを使うには、CURLOPT_VERBOSE - を on にしておかなければなりません。 - - - - CURLOPT_CONNECT_ONLY - - &true; を設定すると、プロキシの認証や接続の確立などをすべて行いますが、データは転送しません。 - このオプションは、HTTP や SMTP そして POP3 用に実装されています。 - - - 7.15.2 で追加されました。 - PHP 5.5.0 以降で使用可能です。 - - - - CURLOPT_CRLF - - &true; を設定すると、転送時に Unix 形式の改行を CRLF 形式に変換します。 - - - - - - CURLOPT_DISALLOW_USERNAME_IN_URL - - ユーザー名をURLに含めてはいけない場合に &true; にします。 - デフォルトは 0 で、ユーザー名は許可されています。 - - - cURL 7.61.0 で追加されました。 - PHP 7.3.0 以降で利用可能です。 - - - - CURLOPT_DNS_SHUFFLE_ADDRESSES - - 名前が解決され、ひとつ以上のIPアドレスが返された際、 - ランダムな順番でそれらを利用するために、 - 返されたアドレスの順番をシャッフルする場合に &true; にします。 - これによって、IPv6 アドレスの前に IPv4 アドレスが使われるなどの事象が起こるかもしれません。 - - - cURL 7.60.0 で追加されました。 - PHP 7.3.0 以降で利用可能です。 - - - - CURLOPT_HAPROXYPROTOCOL - - HAProxy Proxy プロトコル v1 ヘッダを接続の開始時に送信する場合に &true; にします。 - デフォルトではこのヘッダは送信されません。 - - - cURL 7.60.0 で追加されました。 - PHP 7.3.0 以降で利用可能です。 - - - - CURLOPT_SSH_COMPRESSION - - ビルトインの SSH 圧縮を有効にする場合に &true; にします。 - これはリクエストであり、命令ではありません。 - つまり、圧縮されるかどうかはサーバ次第です。 - - - cURL 7.56.0 で追加されました。 - PHP 7.3.0 以降で利用可能です。 - - - - CURLOPT_DNS_USE_GLOBAL_CACHE - - &true; を設定すると、グローバル DNS キャッシュを利用します。 - このオプションはスレッドセーフではありません。 - また、PHP がスレッドセーフでない用途でビルドされている場合 - (CLI, FCGI, Apache2-Prefork など) には、デフォルトで有効になっています。 - - - - - - CURLOPT_FAILONERROR - - &true; を設定すると、HTTP で 400 以上のコードが返ってきた際に - 処理失敗と判断します。デフォルトでは、コードの値を無視して - ページの内容を取得します。 - - - - - - CURLOPT_SSL_FALSESTART - - &true; にすると、TLS false start を有効にします。 - - - cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。 - - - - CURLOPT_FILETIME - - &true; を設定すると、ドキュメントの更新日時を取得しようと試みます。 - この値を取得するには、curl_getinfo で - CURLINFO_FILETIME オプションを用います。 - - - - - - CURLOPT_FOLLOWLOCATION - - &true; を設定すると、サーバーが HTTP ヘッダの一部として送ってくる - "Location: " ヘッダの内容をたどります - (これは再帰的に行われます。CURLOPT_MAXREDIRS - が指定されていない限り、送ってくる "Location: " - ヘッダの内容をずっとたどり続けることに注意しましょう)。 - - - - - - CURLOPT_FORBID_REUSE - - &true; を設定すると、処理が終了した際に明示的に接続を切断します。 - 接続を再利用しません。 - - - - - - CURLOPT_FRESH_CONNECT - - &true; を設定すると、キャッシュされている接続を利用せずに - 新しい接続を確立します。 - - - - - - CURLOPT_FTP_USE_EPRT - - &true; を設定すると、FTP のダウンロードに EPRT(および LPRT) - を利用します。&false; の場合は EPRT・LPRT を無効にして PORT - を利用します。 - - - - - - CURLOPT_FTP_USE_EPSV - - &true; を設定すると、FTP 転送の際にまず EPSV コマンドの利用を - 試みます。失敗した場合は PASV を利用します。&false; を設定すると、 - EPSV を無効にします。 - - - - - - CURLOPT_FTP_CREATE_MISSING_DIRS - - &true; を設定すると、FTP の操作中にパスが存在しなかったときに - ディレクトリを作成します。 - - - - - - CURLOPT_FTPAPPEND - - &true; を設定すると、リモートファイルを上書きせずに追記します。 - - - - - - CURLOPT_TCP_NODELAY - - &true; にすると、TCP の Nagle アルゴリズムを解除します。解除すると、小さなパケットがネットワーク上を流れる回数をできるだけ減らそうと試みます。 - - - PHP 5.2.1 以降のバージョンで、libcurl 7.11.2 以降と組み合わせてコンパイルしたときに利用可能です。 - - - - CURLOPT_FTPASCII - - CURLOPT_TRANSFERTEXT のエイリアスです。 - - - - - - CURLOPT_FTPLISTONLY - - &true; を設定すると、FTP でディレクトリ名のみ表示します。 - - - - - - CURLOPT_HEADER - - &true; を設定すると、ヘッダの内容も出力します。 - - - - - - CURLINFO_HEADER_OUT - - &true; を設定すると、リクエスト文字列を追跡します。 - - - PHP 5.1.3 以降で使用可能です。プレフィックスが CURLINFO_ - となっているのは意図的なものです。 - - - - CURLOPT_HTTP09_ALLOWED - - HTTP/0.9 形式のレスポンスを許可するかどうか。libcurl 7.66.0 以降のデフォルトは &false; です。 - それより前のバージョンのデフォルトは &true; でした。 - - - PHP 7.3.15 と 7.4.3 以降 および cURL >= 7.64.0 をビルドした場合に使用可能です。 - - - - CURLOPT_HTTPGET - - &true; を設定すると、HTTP のリクエスト形式を GET に戻します。 - GET はデフォルト設定なので、リクエスト形式が変更されている - 場合にのみ必要となります。 - - - - - - CURLOPT_HTTPPROXYTUNNEL - - &true; にすると、指定された HTTP プロキシを介してトンネルします。 - - - - - - CURLOPT_HTTP_CONTENT_DECODING - - &false; を設定すると、生の HTTP レスポンスボディを取得します。 - - - PHP 5.5.0 以降で、libcurl >= 7.16.2 とビルドした場合に利用可能です。 - - - - CURLOPT_KEEP_SENDING_ON_ERROR - - 返されたHTTPコードが300以上であっても、リクエストボディを送信し続ける場合は &true; にします。 - デフォルトのアクションはリクエストボディの送信を止め、 - ストリームまたは接続を閉じます。 - 手動でNTLM認証を行う場合に、このオプションは適切です。 - ほとんどのアプリケーションは、このオプションは不要です。 - - - PHP 7.3.0 以降で、libcurl >= 7.51.0 とビルドした場合に利用可能です。 - - - - CURLOPT_MUTE - - &true; を設定すると、cURL 関数に関連する出力を完全に抑えます。 - - - cURL 7.15.5 で削除されました (かわりに CURLOPT_RETURNTRANSFER が使えます) - - - - CURLOPT_NETRC - - &true; を設定すると、リモートサイトと接続を確立する際に用いる - ユーザー名やパスワードを、~/.netrc から取得します。 - - - - - - CURLOPT_NOBODY - - &true; を設定すると、出力から本文を削除します。 - リクエストメソッドは HEAD となります。これを &false; - に変更してもリクエストメソッドは GET には変わりません。 - - - - - - CURLOPT_NOPROGRESS - - &true; を設定すると、cURL 転送の進捗状況表示を無効にします。 - - - PHP は、このオプションを自動的に &true; に設定します。 - これを変更するのは、デバッグ時のみにすべきです。 - - - - - - - - CURLOPT_NOSIGNAL - - &true; を設定すると、cURL 関数が PHP プロセスに送信するシグナルを - 無視します。マルチスレッド SAPI ではデフォルトで on となっており、 - そのためタイムアウトオプションもまだ利用されています。 - - - cURL 7.10 で追加されました。 - - - - CURLOPT_PATH_AS_IS - - &true; にすると、ドットの連続を処理しません。 - - - cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。 - - - - CURLOPT_PIPEWAIT - - &true; にすると、パイプライン化/多重化を待ちます。 - - - cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。 - - - - CURLOPT_POST - - &true; を設定すると、HTTP POST を行います。POST は、 - application/x-www-form-urlencoded 形式で - 行われます。これは一般的な HTML のフォームと同じ形式です。 - - - - - - CURLOPT_PUT - - &true; を設定すると、HTTP PUT を行います。PUT するファイルは - CURLOPT_INFILE および - CURLOPT_INFILESIZE - で指定されている必要があります。 - - - - - - CURLOPT_RETURNTRANSFER - - &true; を設定すると、curl_exec の返り値を - 文字列で返します。通常はデータを直接出力します。 - - - - - - CURLOPT_SAFE_UPLOAD - - &true; にすると、CURLOPT_POSTFIELDS - でのファイルアップロードの際の @ プレフィックスを無効にします。 - つまり、@ で始まる値を安全に渡せるようになるということです。 - アップロードには CURLFile が使われるでしょう。 - - - PHP 5.5.0 で追加され、デフォルトは &false; でした。 - PHP 5.6.0 で、デフォルトが &true; に変わりました。 - PHP 7 で、このオプションは削除されました; - つまり、ファイルをアップロードするためには - CURLFile インターフェイスを使わなければならないということです。 - - - - CURLOPT_SASL_IR - - &true; にすると、最初のパケット内の最初のレスポンスの送信を有効にします。 - - - cURL 7.31.0 で追加されました。PHP 7.0.7 以降で使用可能です。 - - - - CURLOPT_SSL_ENABLE_ALPN - - &false; にすると、SSL ハンドシェイクの際の ALPN を無効にします - (SSL バックエンドの libcurl がそれに対応するビルドである場合)。 - これは、http2 ネゴシエーションに使えます。 - - - cURL 7.36.0 で追加されました。PHP 7.0.7 以降で使用可能です。 - - - - CURLOPT_SSL_ENABLE_NPN - - &false; にすると、SSL ハンドシェイクの際の NPN を無効にします - (SSL バックエンドの libcurl がそれに対応するビルドである場合)。 - これは、http2 ネゴシエーションに使えます。 - - - cURL 7.36.0 で追加されました。PHP 7.0.7 以降で使用可能です。 - - - - CURLOPT_SSL_VERIFYPEER - - &false; を設定すると、cURL はサーバー証明書の検証を行いません。 - 別の証明書を CURLOPT_CAINFO オプションで - 指定するか、CURLOPT_CAPATH オプションで - 証明ディレクトリを指定します。 - - - cURL 7.10 以降、デフォルト値は &true; です。また、 - cURL 7.10 以降、デフォルトでインストールされています。 - - - - CURLOPT_SSL_VERIFYSTATUS - - &true; にすると、証明書のステータスを検証します。 - - - cURL 7.41.0 で追加されました。PHP 7.0.7 以降で使用可能です。 - - - - CURLOPT_PROXY_SSL_VERIFYPEER - - &false; を設定すると、cURL がピアの証明書の検証を行わなくなります。 - 別の証明書を検証するには、CURLOPT_CAINFO オプションで指定するか、 - CURLOPT_CAPATH を使って証明書のディレクトリを指定するやり方が使えます。 - &false; を指定すると、ピアの証明書の検証はオプションに関係なく成功します。 - - - &true; がデフォルトです。 - PHP 7.3.0 以降で、libcurl >= 7.52.0 とビルドした場合に利用可能です。 - - - - CURLOPT_SUPPRESS_CONNECT_HEADERS - - &true; を設定すると、 - CURLOPT_HTTPPROXYTUNNEL を使って CONNECT リクエストが生成された場合に、 - ユーザーのコールバック関数 - CURLOPT_HEADERFUNCTION および CURLOPT_WRITEFUNCTION - では proxy CONNECT のレスポンスヘッダを抑制します。 - - - cURL 7.54.0 で追加されました。PHP 7.3.0 以降で使用可能です。 - - - - CURLOPT_TCP_FASTOPEN - - &true; にすると、TCP Fast Open を有効にします。 - - - cURL 7.49.0 で追加されました。PHP 7.0.7 以降で使用可能です。 - - - - CURLOPT_TFTP_NO_OPTIONS - - &true; にすると、TFTP オプションリクエストを送信しません。 - - - cURL 7.48.0 で追加されました。PHP 7.0.7 以降で使用可能です。 - - - - CURLOPT_TRANSFERTEXT - - &true; を設定すると、FTP 転送を ASCII モードで行います。 - LDAP の場合は、データを HTML ではなくプレーンテキストで取得します。 - Windows システムでは STDOUT - に対してバイナリモードを設定しないでください。 - - - - - - CURLOPT_UNRESTRICTED_AUTH - - &true; を設定すると、(CURLOPT_FOLLOWLOCATION - を利用して)場所をたどっていく際にユーザー名とパスワードを送信し続けます。 - これは、たとえホスト名が変わっても続けられます。 - - - - - - CURLOPT_UPLOAD - - &true; を設定すると、アップロードの準備をします。 - - - - - - CURLOPT_VERBOSE - - &true; を設定すると、詳細な情報を出力します。情報は - STDERR か、または - CURLOPT_STDERR - で指定したファイルに出力されます。 - - - - - - - - - - value には、 - option の以下の値に関して - 整数値を指定する必要があります。 - - - - - オプション - value への設定値 - 注記 - - - - - CURLOPT_BUFFERSIZE - - 1 回の読み込みに用いるバッファのサイズ。しかしながら、必ず - このバッファいっぱいまで読み込まれることを保証するものではありません。 - - - cURL 7.10 で追加されました。 - - - - CURLOPT_CLOSEPOLICY - - CURLCLOSEPOLICY_* のいずれかの値。 - - - このオプションは非推奨となりました。cURL で実装されることがなく、指定しても何の効果もありませんでした。 - - - - - PHP 5.6.0 で削除されました。 - - - - CURLOPT_CONNECTTIMEOUT - - 接続の試行を待ち続ける秒数。0 は永遠に待ち続けることを意味します。 - - - - - - CURLOPT_CONNECTTIMEOUT_MS - - 接続の試行を待ち続けるミリ秒数。0 は永遠に待ち続けることを意味します。 - - システムの標準の名前解決を使うように libcurl をビルドしている場合は、 - 接続のタイムアウトは秒単位の精度となり、最小のタイムアウトは 1 秒となります。 - - - cURL 7.16.2 で追加されました。PHP 5.2.3 以降で使用可能です。 - - - - CURLOPT_DNS_CACHE_TIMEOUT - - DNS エントリをメモリ内に保持し続ける秒数。デフォルトでは - 120(2 分)に設定されています。 - - - - - - CURLOPT_EXPECT_100_TIMEOUT_MS - - 期待するタイムアウト。連続100リクエストの時間をミリ秒で指定します。 - デフォルトは1000ミリ秒です。 - - - cURL 7.36.0 で追加されました。PHP 7.0.7 以降で使用可能です。 - - - - CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS - - Happy Eyeballs アルゴリズムで IPv6 接続を優先して開始します。 - Happy Eyeballs アルゴリズムは、 - デュアルスタックホストのために IPv4 と IPv6アドレス両方に接続を試みますが、 - IPv6 を優先して扱い、そのタイムアウトをミリ秒単位で指定します。 - デフォルトは CURL_HET_DEFAULT であり、現状は200ミリ秒です。 - - - cURL 7.59.0 で追加されました。PHP 7.3.0 以降で使用可能です。 - - - - CURLOPT_FTPSSLAUTH - - (使用可能な場合の)FTP 認証方法。 - CURLFTPAUTH_SSL(まず SSL を試す)、 - CURLFTPAUTH_TLS(まず TLS を試す)あるいは - CURLFTPAUTH_DEFAULT(cURL が決める)のいずれかです。 - - - cURL 7.12.2 で追加されました。 - - - - CURLOPT_HEADEROPT - - ヘッダをどう扱うかを指定します。 - 次の定数のうち、一つを指定できます: - - CURLHEADER_UNIFIED: - CURLOPT_HTTPHEADER で指定されたヘッダが、 - サーバとプロキシ双方のリクエストに対して使われます。 - このオプションが有効な場合、 - CURLOPT_PROXYHEADER は効果がありません。 - - - CURLHEADER_SEPARATE: - CURLOPT_HTTPHEADER で指定されたヘッダは、 - プロキシには送られず、サーバにのみ送られます。 - プロキシに送るヘッダは、 - CURLOPT_PROXYHEADER を設定しなければなりません。 - CONNECT でないリクエストがプロキシに送信された場合、 - libcurl はサーバとプロキシ両方にヘッダを送信することに注意してください。 - CONNECT リクエストを送信する場合、 - libcurl は CURLOPT_PROXYHEADER - をプロキシのみに送り、 - CURLOPT_HTTPHEADER をサーバにのみ送信します。 - - - cURL 7.42.1 以降は - CURLHEADER_SEPARATE がデフォルトで、 - それより前では、 - CURLHEADER_UNIFIED がデフォルトでした。 - - - - cURL 7.37.0 で追加されました。PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_HTTP_VERSION - - CURL_HTTP_VERSION_NONE (デフォルト。 - 使用するバージョンを決めるのは cURL にまかせる)、 - CURL_HTTP_VERSION_1_0 (HTTP/1.0 を使用する)、 - あるいは CURL_HTTP_VERSION_1_1 (HTTP/1.1 を使用する) - CURL_HTTP_VERSION_2_0 (HTTP 2 の使用を試みる), - CURL_HTTP_VERSION_2 (CURL_HTTP_VERSION_2_0 のエイリアス), - CURL_HTTP_VERSION_2TLS (TLS (https) の場合のみ HTTP 2 の使用を試みる) または - CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (HTTP 1.1 へのアップグレードを行わず、HTTP/2 を使って TLS でないリクエストを発行する) - のいずれかです。 - - - - - - CURLOPT_HTTPAUTH - - - 使用する HTTP 認証方法。以下の中から選びます。 - CURLAUTH_BASIC、 - CURLAUTH_DIGEST、 - CURLAUTH_GSSNEGOTIATE、 - CURLAUTH_NTLM、 - CURLAUTH_ANY および - CURLAUTH_ANYSAFE。 - - - 2 つ以上の方法を組み合わせるには、ビット演算子 |(or) - を使用します。このような場合、cURL はサーバーがサポートしている方法を - 問い合わせたうえで最適な方法を選択します。 - - - CURLAUTH_ANY は - CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM - のエイリアスです。 - - - CURLAUTH_ANYSAFE は - CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM - のエイリアスです。 - - - - - - - CURLOPT_INFILESIZE - - ファイルをリモートサイトにアップロードする際のファイルサイズ。 - このオプションを指定しても、libcurl がそれ以上のデータを送信するのは止められないことに注意しましょう。 - 実際に何が送信されるのかは - CURLOPT_READFUNCTION に依存します。 - - - - - - CURLOPT_LOW_SPEED_LIMIT - - 1 秒あたりのバイト数で、転送速度がこれより遅い期間が - CURLOPT_LOW_SPEED_TIME 秒以上続いた場合に - PHP は転送を終了します。 - - - - - - CURLOPT_LOW_SPEED_TIME - - 転送速度が CURLOPT_LOW_SPEED_LIMIT - より遅い期間がどれだけ続いた場合に転送を異常終了させるかを、 - 秒単位で指定します。 - - - - - - CURLOPT_MAXCONNECTS - - 許可される持続的接続の最大数。もしこの値に達した場合、 - どの接続を閉じるのかを CURLOPT_CLOSEPOLICY - によって決定します。 - - - - - - CURLOPT_MAXREDIRS - - HTTP のリダイレクト先を追いかける最大値。 - CURLOPT_FOLLOWLOCATION とあわせて使用します。 - - - - - - CURLOPT_PORT - - 接続先のポート番号。 - - - - - - CURLOPT_POSTREDIR - - CURLOPT_FOLLOWLOCATION が設定されているときに、 - どの形式のリダイレクトの場合に HTTP POST メソッドを維持するのかを、 - 1 (301 Moved Permanently)、2 (302 Found)、4 (303 See Other) のビットマスクで指定します。 - - - cURL 7.19.1 で追加されました。PHP 5.3.2 以降で使用可能です。 - - - - CURLOPT_PROTOCOLS - - - CURLPROTO_* の値のビットマスク。使用すると、 - 転送時に libcurl がどのプロトコルを使用するのかに制約を加えます。 - さまざまなプロトコルに対応するよう libcurl をビルドしていた場合でも、 - これによって特定の転送プロトコルのみを使用するように制限することができます。 - デフォルトでは、libcurl がサポートしているすべてのプロトコルの使用を許可します。 - CURLOPT_REDIR_PROTOCOLS も参照ください。 - - - 使用できるプロトコルオプションは次のとおりです。 - CURLPROTO_HTTP, - CURLPROTO_HTTPS, - CURLPROTO_FTP, - CURLPROTO_FTPS, - CURLPROTO_SCP, - CURLPROTO_SFTP, - CURLPROTO_TELNET, - CURLPROTO_LDAP, - CURLPROTO_LDAPS, - CURLPROTO_DICT, - CURLPROTO_FILE, - CURLPROTO_TFTP, - CURLPROTO_ALL - - - - cURL 7.19.4 で追加されました。 - - - - CURLOPT_PROXYAUTH - - プロキシ接続に使用する HTTP 認証の方法。 - CURLOPT_HTTPAUTH で説明したのと同じオプションを - 指定可能です。プロキシ認証でサポートされているのは、今のところ - CURLAUTH_BASIC および - CURLAUTH_NTLM のみです。 - - - cURL 7.10.7 で追加されました。 - - - - CURLOPT_PROXYPORT - - プロキシ接続のポート番号。このポート番号は、 - CURLOPT_PROXY で指定することも可能です。 - - - - - - CURLOPT_PROXYTYPE - - CURLPROXY_HTTP(デフォルト)、 - CURLPROXY_SOCKS4、 - CURLPROXY_SOCKS5、 - CURLPROXY_SOCKS4A あるいは - CURLPROXY_SOCKS5_HOSTNAME。 - - - cURL 7.10 で追加されました。 - - - - CURLOPT_REDIR_PROTOCOLS - - CURLPROTO_* の値のビットマスク。使用すると、 - CURLOPT_FOLLOWLOCATION が有効な場合のリダイレクト時の転送に - libcurl がどのプロトコルを使用するのかに制約を加えます。これによって、 - リダイレクト時に特定の転送プロトコルのみを使用するように制限することができます。 - デフォルトでは、libcurl がサポートしているすべてのプロトコルのうち - FILE と SCP 以外のすべての使用を許可します。この挙動は 7.19.4 - より前のバージョンとは異なります。7.19.4 より前のバージョンでは、 - サポートするすべてのプロトコルを無条件に許可していました。 - プロトコル定数の値は CURLOPT_PROTOCOLS を参照ください。 - - - cURL 7.19.4 で追加されました。 - - - - CURLOPT_RESUME_FROM - - 転送を途中から再開する場合のバイトオフセット。 - - - - - - CURLOPT_SOCKS5_AUTH - - - 利用する SOCKS5 認証方法。以下が指定できます: - CURLAUTH_BASIC, - CURLAUTH_GSSAPI, - CURLAUTH_NONE - - - 一つ以上の認証方法を組み合わせるために ビット演算子 | (or) が使えます。 - これを使うと、cURL がどの方法をサポートしているかをポーリングし、もっとも良いものを選択します。 - - - CURLAUTH_BASIC を指定すると、ユーザー名/パスワード による認証ができます。 - - - CURLAUTH_GSSAPI を指定すると、GSS-API 認証ができます。 - - - CURLAUTH_NONE を指定すると、認証は行われません。 - - - デフォルトは CURLAUTH_BASIC|CURLAUTH_GSSAPI です。 - 実際のユーザー名とパスワードは CURLOPT_PROXYUSERPWD オプションを使って設定してください。 - - - - PHP 7.3.0 以降 および curl >= 7.55.0 で利用可能です。 - - - - CURLOPT_SSL_OPTIONS - - SSL 関連の振る舞いのオプションを設定します。 - 以下に示す定数のビットマスクの組み合わせです: - - CURLSSLOPT_ALLOW_BEAST: - SSL3 や TLS1.0 プロトコルのセキュリティ上の欠陥を回避するあらゆる手段を使わない。 - - - CURLSSLOPT_NO_REVOKE: - 証明書の失効チェックを行うSSLバックエンドについて、それを無効にする。 - - - - cURL 7.25.0 で追加されました。PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_SSL_VERIFYHOST - - 1 は SSL ピア証明書に一般名が存在するかどうかを調べます。 - 2 はそれに加え、その名前がホスト名と一致することを検証します。 - 0 は、名前をチェックしません。 - 本番環境では、このオプションの値は常に - 2 (デフォルト値) にしておかなければなりません。 - - - 値 1 は、cURL 7.28.1 以降では使えなくなりました。 - - - - CURLOPT_SSLVERSION - - CURL_SSLVERSION_DEFAULT (0)、 - CURL_SSLVERSION_TLSv1 (1)、 - CURL_SSLVERSION_SSLv2 (2)、 - CURL_SSLVERSION_SSLv3 (3)、 - CURL_SSLVERSION_TLSv1_0 (4)、 - CURL_SSLVERSION_TLSv1_1 (5)、 - CURL_SSLVERSION_TLSv1_2 (6) のいずれかの値。 - TLSバージョンの最大値は、定数 CURL_SSLVERSION_MAX_* で設定できます。 - 定数 CURL_SSLVERSION_MAX_* のうちのひとつと、 - 定数 CURL_SSLVERSION_* のうちのひとつを OR で設定することもできます。 - CURL_SSLVERSION_MAX_DEFAULT (ライブラリがサポートする最大のバージョン), - CURL_SSLVERSION_MAX_TLSv1_0, - CURL_SSLVERSION_MAX_TLSv1_1, - CURL_SSLVERSION_MAX_TLSv1_2, または - CURL_SSLVERSION_MAX_TLSv1_3. - - - この値は何も設定せず、デフォルトに任せるのが最適です。 - 2 や 3 を設定すると、SSLv2 および SSLv3 の既知の脆弱性の影響を受けるため、非常に危険です。 - - - - - - - - CURLOPT_PROXY_SSL_OPTIONS - - HTTPSプロキシの振る舞いを設定するオプションです。 - これは以下の定数のうち、任意のものを組み合わせたビットマスクです: - - CURLSSLOPT_ALLOW_BEAST: - SSL3 と TLS1.0 プロトコルに存在する脆弱性を回避するための回避策を使いません。 - - - CURLSSLOPT_NO_REVOKE: - SSLバックエンドの証明書の失効チェックを無効にします。 - 但し、そうした振る舞いが存在した場合に限ります(curl >= 7.44.0) - - - CURLSSLOPT_NO_PARTIALCHAIN: - "部分的な"証明書チェインを許可しません。 - デフォルトでは許可されています(curl >= 7.68.0) - - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_SSL_VERIFYHOST - - HTTPSプロキシの証明書の名前フィールドをプロキシ名と突き合わせて検証する場合 - 2 を設定します。 - 0 を設定すると、証明書でどのような名前が使われていようと、接続は成功します。 - 注意して使用してください! - 1 は curl 7.28.0 以前ではデバッグオプションとして扱われていました。 - curl 7.28.1 から 7.65.3 までは CURLE_BAD_FUNCTION_ARGUMENT が返されていました。 - curl 7.66.0 以降では 12 は同じ値として扱われます。 - 本番環境では、このオプションの値は (デフォルトの) 2 であるべきです。 - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_SSLVERSION - - 以下のうちのひとつが指定できます: CURL_SSLVERSION_DEFAULT, - CURL_SSLVERSION_TLSv1, - CURL_SSLVERSION_TLSv1_0, - CURL_SSLVERSION_TLSv1_1, - CURL_SSLVERSION_TLSv1_2, - CURL_SSLVERSION_TLSv1_3, - CURL_SSLVERSION_MAX_DEFAULT, - CURL_SSLVERSION_MAX_TLSv1_0, - CURL_SSLVERSION_MAX_TLSv1_1, - CURL_SSLVERSION_MAX_TLSv1_2, - CURL_SSLVERSION_MAX_TLSv1_3, - CURL_SSLVERSION_SSLv3 - - - 最も良い選択は、このオプションを設定せず、 - デフォルトの CURL_SSLVERSION_DEFAULT を使うことです。 - このオプションは、リモートのSSLプロトコルのバージョンを見つけようとします。 - - - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_STREAM_WEIGHT - - ストリームの重みを数値で設定します(1 から 256 までの数値) - - - cURL 7.46.0 で追加されました。PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_TCP_KEEPALIVE - - この値を 1 に設定すると、TCP keepalive のプローブが送信されます。 - これらのプローブを送信する頻度と遅延時間は オペレーティングシステムがサポートしていれば - CURLOPT_TCP_KEEPIDLECURLOPT_TCP_KEEPINTVL で制御可能です。 - 0 に設定すると(デフォルト)、keepalive のプローブは送信されません。 - - - cURL 7.25.0 で追加されました。PHP 5.5.0 以降で利用可能です。 - - - - CURLOPT_TCP_KEEPIDLE - - CURLOPT_TCP_KEEPALIVE が有効になっている場合に、 - keepalive のプローブを送信する前に、接続をアイドルなままにしてオペレーティングシステムを待たせる - 遅延時間を秒単位で設定します。 - 全てのオペレーティングシステムがこのオプションをサポートしているわけではありません。 - デフォルトは 60 です。 - - - cURL 7.25.0 で追加されました。PHP 5.5.0 以降で利用可能です。 - - - - CURLOPT_TCP_KEEPINTVL - - CURLOPT_TCP_KEEPALIVE が有効になっている場合に、 - keepalive のプローブを送信する前に、オペレーティングシステムが待つ間隔を秒単位で設定します。 - 全てのオペレーティングシステムがこのオプションをサポートしているわけではありません。 - デフォルトは 60 です。 - - - cURL 7.25.0 で追加されました。PHP 5.5.0 以降で利用可能です。 - - - - CURLOPT_TIMECONDITION - - CURLOPT_TIMEVALUE の扱いを決定します。 - CURLOPT_TIMEVALUE で指定した時刻以降に - 変更されたページのみを返す場合は - CURL_TIMECOND_IFMODSINCE を使用します。 - CURLOPT_HEADER が &true; だと仮定すると、 - ページが変更されていない場合は - "304 Not Modified" ヘッダが返されます。 - CURL_TIMECOND_IFUNMODSINCE は反対の意味です。 - デフォルトは CURL_TIMECOND_IFMODSINCE - です。 - - - - - - CURLOPT_TIMEOUT - - cURL 関数の実行にかけられる時間の最大値。 - - - - - - CURLOPT_TIMEOUT_MS - - cURL 関数の実行にかけられる最大のミリ秒数。 - - システムの標準の名前解決を使うように libcurl をビルドしている場合は、 - 接続のタイムアウトは秒単位の精度となり、最小のタイムアウトは 1 秒となります。 - - - cURL 7.16.2 で追加されました。PHP 5.2.3 以降で使用可能です。 - - - - CURLOPT_TIMEVALUE - - 1970 年 1 月 1 日からの経過秒数。この値は - CURLOPT_TIMECONDITION で使用されます。デフォルトでは - CURL_TIMECOND_IFMODSINCE が設定されます。 - - - - - - CURLOPT_TIMEVALUE_LARGE - - 1970年1月1日からの経過時刻を秒単位で示します。 - この値は CURLOPT_TIMECONDITION によって使われます。 - デフォルトは0です。 - このオプションと CURLOPT_TIMEVALUE の違いは引数の型です。 - 'long' が 32ビット長しかないシステムでは、 - 2038年以降の日付を設定するためにこのオプションを使わなければいけません。 - - - cURL 7.59.0 で追加されました。PHP 7.3.0 以降で使用可能です。 - - - - CURLOPT_MAX_RECV_SPEED_LARGE - - ダウンロード速度 (単位は「バイト/秒」) の転送中累加平均がこの値を超えると、 - 転送を一時停止して、平均速度がこのパラメータの値以下に落ちるまで待ちます。 - デフォルトは無制限です。 - - - cURL 7.15.5 で追加されました。PHP 5.4.0 以降で使用可能です。 - - - - CURLOPT_MAX_SEND_SPEED_LARGE - - アップロード速度 (単位は「バイト/秒」) の転送中累加平均がこの値を超えると、 - 転送を一時停止して、平均速度がこのパラメータの値以下に落ちるまで待ちます。 - デフォルトは無制限です。 - - - cURL 7.15.5 で追加されました。PHP 5.4.0 以降で使用可能です。 - - - - CURLOPT_SSH_AUTH_TYPES - - CURLSSH_AUTH_PUBLICKEY, - CURLSSH_AUTH_PASSWORD, - CURLSSH_AUTH_HOST, - CURLSSH_AUTH_KEYBOARD - のビットマスク。 - CURLSSH_AUTH_ANY にすると libcurl がいずれかひとつを選択します。 - - - cURL 7.16.1 で追加されました。 - - - - CURLOPT_IPRESOLVE - - ホスト名の解決にどの形式の IP アドレスを使うのかを、アプリケーションが選べるようにします。 - 複数のバージョンの IP アドレスで解決できるホスト名のときに使うもので、指定できる値は - CURL_IPRESOLVE_WHATEVER、 - CURL_IPRESOLVE_V4 そして - CURL_IPRESOLVE_V6 です。 - デフォルトは CURL_IPRESOLVE_WHATEVER です。 - - - cURL 7.10.8 で追加されました。 - - - - CURLOPT_FTP_FILEMETHOD - - FTP(S) サーバー上のファイルに到達するために使う方法を curl に伝えます。利用可能な値は - CURLFTPMETHOD_MULTICWD、 - CURLFTPMETHOD_NOCWD および - CURLFTPMETHOD_SINGLECWD です。 - - - cURL 7.15.1 で追加されました。PHP 5.3.0 以降で使用可能です。 - - - - - - - - value は、 - option パラメータの - 以下の値に関して文字列である必要があります。 - - - - - オプション - value への設定値 - 注記 - - - - - CURLOPT_ABSTRACT_UNIX_SOCKET - - ホストにTCP接続する代わりに、抽象化されたUnixドメインソケットの使用を有効にし、 - パスを指定された string に設定します。 - このオプションは CURLOPT_UNIX_SOCKET_PATH - と同じセマンティクスを共有しています。 - これらのふたつのオプションは同じストレージを共有するので、 - ハンドルごとにそれらのうちのひとつだけを設定できます。 - - - cURL 7.53.0 で追加されました。PHP 7.3.0 以降で利用可能です。 - - - - CURLOPT_CAINFO - - 接続先を検証するための証明書を保持するファイル名。 - これは CURLOPT_SSL_VERIFYPEER を使用する場合に - のみ意味を持ちます。 - - - 絶対パスで指定しなければならないでしょう。 - - - - CURLOPT_CAPATH - - 複数の証明書ファイルを保持するディレクトリ。このオプションは - CURLOPT_SSL_VERIFYPEER とともに使用します。 - - - - - - CURLOPT_COOKIE - - HTTP リクエストにおける - "Cookie: " ヘッダの内容。 - クッキーが複数ある場合は、セミコロンとスペースで区切られる - (例 "fruit=apple; colour=red") - ことに注意しましょう。 - - - - - - CURLOPT_COOKIEFILE - - クッキーのデータを保持するファイルの名前。クッキーファイルは、 - Netscape フォーマットあるいは - HTTP ヘッダを単純にファイルにダンプしたものが使用可能です。 - 名前が空文字列の場合はクッキーを読み込みませんが、クッキーの処理は有効なままです。 - - - - - - CURLOPT_COOKIEJAR - - ハンドルを閉じる際 (curl_close のコール後など) に、 - すべての内部クッキーを保存するファイルの名前。 - - - - - - CURLOPT_COOKIELIST - - 内部的な Cookie ストアに追加するCookie文字列(つまり、NetScape/Mozilla フォーマット または - HTTP形式の Set-Cookieヘッダ)。 - "ALL" の場合、メモリに保持している全てのクッキーを削除します。 - "SESS" の場合、メモリに保持している全てのセッションクッキーを削除します。 - "FLUSH" の場合、CURLOPT_COOKIEJAR で指定されたファイルに全ての既知の Cooie を書き込みます。 - "RELOAD" の場合、CURLOPT_COOKIEFILE で指定されたファイルから全てのクッキーを読み込みます。 - - - PHP 5.5.0 および cURL 7.14.1 以降で利用可能です。 - - - - CURLOPT_CUSTOMREQUEST - - HTTP リクエストで - "GET" あるいは "HEAD" 以外に - 使用するカスタムメソッド。これが有用なのは、"DELETE" - やその他のあまり知られていない HTTP リクエストを実行する場合です。 - 使用可能な値は "GET"、 - "POST""CONNECT" などです。 - HTTP リクエストの内容をすべて指定するわけではありません。つまり、 - "GET /index.html HTTP/1.0\r\n\r\n" のような - 記述は間違いだということです。 - - - 使用しようとしているメソッドをサーバーがサポートしていることを - 確かめるまで、これを使用しないでください。 - - - - - - - - CURLOPT_DEFAULT_PROTOCOL - - URL にスキーム名がなかった場合のデフォルトのプロトコル - - - cURL 7.45.0 で追加されました。PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_DNS_INTERFACE - - DNS リゾルバがバインドするべきネットワークインターフェイス名を設定します。 - これは、(アドレスではなく)インターフェイス名でなければなりません。 - - - cURL 7.33.0 で追加されました。PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_DNS_LOCAL_IP4 - - リゾルバがバインドするべきローカルの IPv4 アドレスを設定します。 - この値は、数値の IPv4 アドレスを文字列で含めるべきです。 - - - cURL 7.33.0 で追加されました。PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_DNS_LOCAL_IP6 - - リゾルバがバインドするべきローカルの IPv6 アドレスを設定します。 - この値は、数値の IPv6 アドレスを文字列で含めるべきです。 - - - cURL 7.33.0 で追加されました。PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_EGDSOCKET - - CURLOPT_RANDOM_FILE と似ていますが、 - Entropy Gathering Daemon ソケットを使用してファイル名を生成する点が - 違います。 - - - - - - CURLOPT_ENCODING - - "Accept-Encoding: " ヘッダの内容。 - これにより、応答のデコードを可能にします。サポートされる - エンコーディングは "identity"、 - "deflate" および "gzip" - です。もし空文字列 "" が指定された場合、 - サポートされるエンコーディングをすべて含むヘッダが送信されます。 - - - cURL 7.10 で追加されました。 - - - - CURLOPT_FTPPORT - - FTP で "PORT" を使用するための IP アドレスを取得する際に使用される値。 - "PORT" は、リモートサーバーに対してこちらが指定した IP アドレスに - 接続するよう指示します。この値に設定できる内容は IP アドレス、ホスト名、 - ネットワークインターフェイス名(Unix)、あるいは単に '-' を指定する - ことでシステムのデフォルト IP アドレスを指定します。 - - - - - - CURLOPT_INTERFACE - - 使用するネットワークインターフェイスの名前。 - インターフェイス名、IP アドレスあるいはホスト名が指定可能です。 - - - - - - CURLOPT_KEYPASSWD - - CURLOPT_SSLKEY - あるいは CURLOPT_SSH_PRIVATE_KEYFILE 秘密鍵を使うときに必須となるパスワード。 - - - cURL 7.16.1 で追加されました。 - - - - CURLOPT_KRB4LEVEL - - KRB4(Kerberos 4)セキュリティレベル。以下の値のいずれか - (セキュリティの低い順です)が指定可能です。 - "clear"、 - "safe"、 - "confidential"、 - "private"。 - 文字列がこれらのどれでもなかった場合は、 - "private" が使用されます。このオプションを &null; - にすると KRB4 セキュリティを無効にします。現時点では、KRB4 - セキュリティは FTP 転送にのみ使用可能です。 - - - - - - CURLOPT_LOGIN_OPTIONS - - プロトコル特有のログインオプションを設定するために使えます。 - たとえば好ましい認証メカニズムが "AUTH=NTLM" とか "AUTH=*" の場合で、 - CURLOPT_USERNAME オプションと組み合わせて使うべき場合です。 - - - cURL 7.34.0 で追加されました。PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_PINNEDPUBLICKEY - - ピン止めされた公開鍵を設定します。 - ピン止めされた公開鍵のファイル名ファイル名を文字列として指定できます。 - 期待されているファイルフォーマットは "PEM" または "DER" 形式です。 - 文字列は、 base64 エンコードされた sha256 ハッシュで、 - "sha256//" が先頭に付いたものです。これを任意の数だけ指定でき、 - ";" で区切られます。 - - - cURL 7.39.0 で追加されました。PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_POSTFIELDS - - - HTTP "POST" で送信するすべてのデータ。 - ファイルを送信するには、ファイル名の先頭に @ - をつけてフルパスを指定します。ファイルタイプを明示的に指定するには、ファイル名の後に - ';type=mimetype' 形式で続けます。 - このパラメータは - 'para1=val1&para2=val2&...' - のように url エンコードされた文字列形式で渡すこともできますし、 - フィールド名をキー、データを値とする配列で渡すこともできます。 - value が配列の場合、 - Content-Type ヘッダには - multipart/form-data を設定します。 - - - PHP 5.2.0 以降、このオプションに - @ プレフィックスつきでファイルを渡したときは - value が配列でなければならなくなりました。 - - - PHP 5.5.0 以降、@ プレフィックスは非推奨になりました。 - また、ファイルを CURLFile で送信できるようになりました。 - @ プレフィックスを無効化して、 - @ で始まる値を安全に渡せるようにするには、 - CURLOPT_SAFE_UPLOAD オプションを &true; と設定します。 - - - - - - - CURLOPT_PRIVATE - - この cURL ハンドルに関連づけるデータ。ここで関連づけたデータは、 - curl_getinfo の - CURLINFO_PRIVATE オプションで取得できます。 - cURL はデータを一切加工しません。 - cURL マルチハンドルを使う場合は一般的に、この値が cURL ハンドルを特定する一意なキーとなります。 - - - cURL 7.10.3 で追加されました。 - - - - CURLOPT_PRE_PROXY - - CURLOPT_PROXY で指定された HTTP(S) プロキシにcurlが接続する前に、 - 事前に接続する preproxy を設定します。 - この値には、ホスト名またはドットで区切られた数値のIPアドレスを設定します。 - preproxy は SOCKS プロキシだけがなることができ、 - どの socks を使うかを指定するために [scheme]:// を先頭に付けます。 - 数値の IPv6 アドレスは 角括弧 "[]" 内に書かなければいけません。 - preproxy にから文字列を設定すると、明示的に preproxy を無効にできます。 - この文字列にポート番号を設定するには、 - ホスト名の最後に :[port] を追加します。 - プロキシのポート番号は別のオプション CURLOPT_PROXYPORT - で指定しても構いません。ポート番号を指定しない場合は、 - デフォルトでは 1080 を使います。 - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY - - リクエストを経由させる HTTP プロキシ。 - - - - - - CURLOPT_PROXY_SERVICE_NAME - - プロキシ認証サービス名 - - - cURL 7.34.0 で追加されました。PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_PROXY_CAINFO - - 証明書認証局(CA)バンドルのパス。 - HTTPS プロキシを検証するためのひとつ以上の証明書を持つファイル名のパスを - string で設定します。 - このオプションはHTTPSプロキシに接続するためのもので、 - HTTPSサーバに接続するためのものではありません。 - デフォルトでは、libcurl の cacert バンドルが保存されていると想定されている - システムパスが設定されます。 - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_CAPATH - - HTTPSプロキシを検証するための複数のCA証明書が置かれたディレクトリ。 - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_CRLFILE - - PEMフォーマットの CRL (Certificate Revocation List, 証明書失効リスト) - を連結したファイル名を設定します。 - これはSSL通信の際に行われる証明書の検証に使います。 - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_KEYPASSWD - - CURLOPT_PROXY_SSLKEY で設定する秘密鍵で使う、 - 必須のパスワードを設定します。 - 証明書を読み込むのにパスフレーズは不要ですが、 - 秘密鍵を読み込むにはパスフレーズが必要です。 - このオプションはHTTPSプロキシに接続するために必要です。 - HTTPSサーバに接続するためのものではありません。 - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_PINNEDPUBLICKEY - - HTTPSプロキシ向けの pinned public key を設定します。 - pinned public key のファイル名を文字列で設定できます。 - ファイルフォーマットは "PEM" または "DER" です。 - base64 エンコードされた sha256 ハッシュ を任意の数だけ - "sha256//" の後に続けることもできます。このハッシュは ";" で区切ります。 - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_SSLCERT - - HTTPSプロキシに接続する時に使うクライアント証明書のフォーマット。 - デフォルトは Secure Transport の場合 "P12" で、 - それ以外のエンジンでは "PEM" ですが、 - CURLOPT_PROXY_SSLCERTTYPE でも変更できます。 - NSS や Secure transport では、 - セキュリティデータベースで名付けられた証明書のニックネームも設定できます。 - 現在のディレクトリにあるファイルを使いたい場合は、 - ニックネームとの混乱を避けるため "./" をプレフィックスとして付けてください。 - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_SSLCERTTYPE - - HTTPSプロキシに接続する時に使うクライアント証明書のフォーマット。 - サポートされているのは "PEM" と "DER" ですが、 - Secure Transport はこれらをサポートしていません。 - OpenSSL (0.9.3 以降) と Secure Transport - (iOS 5 以降, または OS X 10.7 以降) では PKCS#12-encoded ファイル向けに - "P12" もサポートしています。デフォルトは "PEM" です。 - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_SSL_CIPHER_LIST - - HTTPSプロキシと接続を確立するために使う暗号スイートの一覧。 - この一覧はひとつ以上の暗号スイートの文字列がコロンで区切られており、 - 構文的に正しくなければなりません。 - コンマやスペースも区切り文字としては有効ですが、通常はコロンが使われます。 - !, - および + が演算子として使えます。 - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_TLS13_CIPHERS - - TLS 1.3 接続をプロキシと確立するために使う暗号スイートの一覧。 - この一覧はひとつ以上の暗号スイートの文字列がコロンで区切られており、 - 構文的に正しくなければなりません。 - 現状、このオプションはcurlが OpenSSL 1.1.1 以降とビルドされた時にだけ使われています。 - OpenSSL 以外のSSLバックエンドを使っている場合は、 - CURLOPT_PROXY_SSL_CIPHER_LIST オプションを使って - TLS 1.3 の暗号スイートを設定できます。 - - - PHP 7.3.0 以降 および cURL >= 7.61.0 と OpenSSL >= 1.1.1 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_SSLKEY - - HTTPSプロキシに接続するのに使う秘密鍵のファイル名。 - デフォルトのフォーマットは "PEM" で、 - そのフォーマットは CURLOPT_PROXY_SSLKEYTYPE で変更できます。 - (iOS と Mac OS X のみ) Secure Transport を使って curl がビルドされている場合、 - このオプションは無視されます。 - - - PHP 7.3.0 以降 および cURL >= 7.61.0 をビルドした場合、 - かつ TLS が有効な場合にのみ使用可能です。 - - - - CURLOPT_PROXY_SSLKEYTYPE - - 秘密鍵のフォーマット。"PEM", "DER" および "ENG" がサポートされています。 - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_TLSAUTH_PASSWORD - - CURLOPT_PROXY_TLSAUTH_TYPE オプションで指定したTLS認証メソッド - で使うパスワード。 - CURLOPT_PROXY_TLSAUTH_USERNAME オプションも設定する必要があります。 - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_TLSAUTH_TYPE - - HTTPS接続で使うTLS認証メソッド。 - "SRP" がサポートされています。 - - - TLS の Secure Remote Password (SRP) 認証は、 - ローカルとリモートの双方が共通のシークレットを持っている場合に、 - お互いを認証する方法を提供します。 - TLS-SRP を使うためには、 - CURLOPT_PROXY_TLSAUTH_USERNAME と - CURLOPT_PROXY_TLSAUTH_PASSWORD オプションも設定する必要があります。 - - - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXY_TLSAUTH_USERNAME - - CURLOPT_PROXY_TLSAUTH_TYPE オプションで指定された - HTTPSプロキシのTLS認証メソッドで使うユーザー名。 - CURLOPT_PROXY_TLSAUTH_PASSWORD オプションも設定する必要があります。 - - - PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 - - - - CURLOPT_PROXYUSERPWD - - プロキシに接続するためのユーザー名とパスワード。 - "[username]:[password]" 形式で指定します。 - - - - - - CURLOPT_RANDOM_FILE - - 使用するファイル名を、SSL の乱数生成器を使用して作成します。 - - - - - - CURLOPT_RANGE - - 取得するデータの範囲を - "X-Y" 形式で指定します。X あるいは Y は省略可能です。 - HTTP 転送では、いくつかの範囲をカンマで区切った - "X-Y,N-M" のような形式もサポートしています。 - - - - - - CURLOPT_REFERER - - HTTP リクエストで使用される "Referer: " - ヘッダの内容。 - - - - - - CURLOPT_SERVICE_NAME - - 認証サービス名 - - - cURL 7.43.0 で追加されました。PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 - - 32 桁の十六進文字列。この文字列は、リモートホストの公開鍵の MD5 チェックサムでなければなりません。 - md5sum がマッチしない限り、libcurl はホストとの接続を拒否します。 - このオプションは、SCP および SFTP でのみ有効です。 - - - cURL 7.17.1 で追加されました。 - - - - CURLOPT_SSH_PUBLIC_KEYFILE - - 公開鍵のファイル名。指定しなかった場合、libcurl はデフォルトの場所を探します。デフォルトは、 - 環境変数 HOME が設定されていれば $HOME/.ssh/id_dsa.pub、設定されていなければ - カレントディレクトリの "id_dsa.pub" です。 - - - cURL 7.16.1 で追加されました。 - - - - CURLOPT_SSH_PRIVATE_KEYFILE - - 秘密鍵のファイル名。指定しなかった場合、libcurl はデフォルトの場所を探します。デフォルトは、 - 環境変数 HOME が設定されていれば $HOME/.ssh/id_dsa、設定されていなければ - カレントディレクトリの "id_dsa" です。 - ファイルがパスワードで保護されている場合は、パスワードを - CURLOPT_KEYPASSWD に設定します。 - - - cURL 7.16.1 で追加されました。 - - - - CURLOPT_SSL_CIPHER_LIST - - SSL で使用する暗号のリスト。例えば - RC4-SHA および TLSv1 が - 使用可能です。 - - - - - - CURLOPT_SSLCERT - - PEM フォーマットの証明書を含むファイルの名前。 - - - - - - CURLOPT_SSLCERTPASSWD - - CURLOPT_SSLCERT - 証明書を使用する際に必要なパスワード。 - - - - - - CURLOPT_SSLCERTTYPE - - 証明書の形式。サポートされるフォーマットは - "PEM"(デフォルト)、"DER" - および "ENG" です。 - OpenSSL 0.9.3 以降では、 - "P12" (PKCS#12 でエンコードされたファイル) もサポートしています。 - - - cURL 7.9.3 で追加されました。 - - - - CURLOPT_SSLENGINE - - CURLOPT_SSLKEY で指定した SSL 秘密鍵の - 暗号化エンジンの ID 。 - - - - - - CURLOPT_SSLENGINE_DEFAULT - - 非対称暗号化で使用する暗号化エンジンの ID 。 - - - - - - CURLOPT_SSLKEY - - SSL 秘密鍵を含むファイルの名前。 - - - - - - CURLOPT_SSLKEYPASSWD - - CURLOPT_SSLKEY で指定した SSL 秘密鍵を - 使用するために必要なパスワード。 - - - このオプションには重要なパスワードが含まれます。PHP スクリプトを - 安全な状態におくことを忘れないでください。 - - - - - - - - CURLOPT_SSLKEYTYPE - - CURLOPT_SSLKEY で指定した SSL 秘密鍵の - 形式。サポートされる型は以下のとおりです。 - "PEM"(デフォルト)、"DER" - および "ENG" 。 - - - - - - CURLOPT_TLS13_CIPHERS - - TLS 1.3 接続を確立するために使う暗号スイートの一覧。 - この一覧はひとつ以上の暗号スイートの文字列がコロンで区切られており、 - 構文的に正しくなければなりません。 - このオプションは現状、OpenSSL 1.1.1 以降でcurlがビルドされている場合にだけ使われています。 - 他のSSLバックエンドを使っている場合、 - CURLOPT_SSL_CIPHER_LIST を使うと TLS 1.3 の暗号スイートを設定できます。 - - - PHP 7.3.0 以降 および cURL >= 7.61.0 と OpenSSL >= 1.1.1 をビルドした場合に使用可能です。 - - - - CURLOPT_UNIX_SOCKET_PATH - - 接続のエンドポイントとして Unixドメインソケットの利用を有効にし、 - ドメインソケットのパスを与えられた string として設定します。 - - - cURL 7.40.0 で追加されました。 - PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_URL - - 取得する URL 。curl_init でセッションを - 初期化する際に指定することも可能です。 - - - - - - CURLOPT_USERAGENT - - HTTP リクエストで使用される "User-Agent: " - ヘッダの内容。 - - - - - - CURLOPT_USERNAME - - 認証に使うユーザー名 - - - cURL 7.19.1 で追加されました。PHP 5.5.0 以降で利用可能です。 - - - - CURLOPT_USERPWD - - 接続に使用するユーザー名とパスワード。 - "[username]:[password]" 形式で指定します。 - - - - - - CURLOPT_XOAUTH2_BEARER - - OAuth 2.0 のアクセストークンを指定します。 - - - cURL 7.33.0 で追加されました。PHP 7.0.7 以降で利用可能です。 - - - - - - - - value には、 - option の以下の値に関して - 配列を指定する必要があります。 - - - - - オプション - value への設定値 - 注記 - - - - - CURLOPT_CONNECT_TO - - URL で指定されたホストとポートのかわりに接続する、 - 特定のホストとポート。 - HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT - というフォーマット文字列の配列を受け入れます。 - - - cURL 7.49.0 で追加されました。 - PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_HTTP200ALIASES - - エラーではなく正常な応答として扱われる、HTTP 200 レスポンスの配列。 - - - cURL 7.10.3 で追加されました。 - - - - CURLOPT_HTTPHEADER - - 設定する HTTP ヘッダフィールドの配列。 - - array('Content-type: text/plain', 'Content-length: 100') - - 形式。 - - - - - - CURLOPT_POSTQUOTE - - FTP リクエストの実行後に、サーバー上で実行する FTP コマンドの配列。 - - - - - - CURLOPT_PROXYHEADER - - プロキシに渡すカスタムHTTPヘッダの配列 - - - cURL 7.37.0 で追加されました。 - PHP 7.0.7 以降で利用可能です。 - - - - CURLOPT_QUOTE - - FTP リクエストの前にサーバー上で実行する FTP コマンドの配列。 - - - - - - CURLOPT_RESOLVE - - 特定のホストとポートのペアのための、カスタムアドレスを指定します。 - ホスト名、ポート、そして IP アドレスの文字列の配列です。 - それぞれの要素はコロンで区切る必要があります。 - 以下のようなフォーマットになります: - - array("example.com:80:127.0.0.1") - - - - cURL 7.21.3 で追加されました。 - PHP 5.5.0 以降で利用可能です。 - - - - - - - - value はストリームリソース(例えば - fopen が作成するもの)であり、以下の - option パラメータに設定します。 - - - - - オプション - value に設定する内容 - - - - - CURLOPT_FILE - - 転送内容が書き込まれるファイル。デフォルトは STDOUT - (ブラウザウィンドウ)。 - - - - CURLOPT_INFILE - - アップロード時に転送内容を読み込むファイル。 - - - - CURLOPT_STDERR - - STDERR の代わりにエラーを出力する場所。 - - - - CURLOPT_WRITEHEADER - - 転送のヘッダ部分が書き込まれるファイル。 - - - - - - - - value には、 - option の以下の値に関して - 有効な関数あるいはクロージャの名前を指定する必要があります。 - - - - - オプション - value への設定値 - - - - - CURLOPT_HEADERFUNCTION - - 二つのパラメータをとるコールバック。 - 最初のパラメータは CURL リソースで、2 番目は書き込む - ヘッダデータの文字列です。このコールバック関数を使用するにあたり、 - ヘッダデータを書き込む処理を実装するのはあなたの役目となります。 - 書き込んだデータのバイト数を返します。 - - - - CURLOPT_PASSWDFUNCTION - - 三つのパラメータをとるコールバック。 - 最初のパラメータは CURL リソースで、2 番目はパスワード - プロンプトの文字列、そして 3 番目はパスワードの最大長です。 - 入力されたパスワードを文字列で返します。 - - - - CURLOPT_PROGRESSFUNCTION - - - 五つのパラメータをとるコールバック。 - 最初のパラメータは cURL 利ソールで、2 番目はこの転送でダウンロードしようとしている総バイト数、 - 3 番目はこれまでにダウンロードしたバイト数、4 番目はこの転送でアップロードしようとしている総バイト数、 - そして 5 番目はこれまでにアップロードしたバイト数です。 - - - - このコールバックが呼ばれるのは、CURLOPT_NOPROGRESS - が &false; の場合だけです。 - - - - ゼロ以外の値を返すと、転送を強制終了できます。このとき、この転送にはエラー - CURLE_ABORTED_BY_CALLBACK - が設定されます。 - - - - - CURLOPT_READFUNCTION - - 三つのパラメータをとるコールバック。 - 最初のパラメータは CURL リソースで、2 番目は - CURLOPT_INFILE で cURL に渡したストリームリソース、 - そして最後が読み込むデータの最大量です。 - コールバックは、要求したデータ量以下の長さの文字列を返さなければなりません。 - 一般的には、渡されたストリームリソースから読み込んだデータを返します。 - EOF を伝えるには空文字列を返さなければなりません。 - - - - CURLOPT_WRITEFUNCTION - - 二つのパラメータをとるコールバック。 - 最初のパラメータは CURL リソースで、2 番目は書き込む - データの文字列です。データの保存には、 - このコールバック関数を使わなければなりません。 - 書き込んだデータの正確なバイト数を返す必要があります。 - 返さなければ、エラーで転送が異常終了します。 - - - - - - - - その他の値 - - - - - オプション - value への設定値 - - - - - CURLOPT_SHARE - - curl_share_init の結果。 - この cURL ハンドルに、共有ハンドルからのデータを使わせるようにします。 - - - - - + それぞれの定数の値が期待する型の詳細については、 + CURLOPT_* + 定数を参照ください。 - + &reftitle.returnvalues; @@ -2330,6 +68,14 @@ + + 8.4.0 + + CURLOPT_DNS_USE_GLOBAL_CACHE は意味を成さず、 + スレッドセーフな PHP ビルドで有効にしても警告は表示されなくなりました。 + + + &curl.changelog.handle-param; 7.3.15, 7.4.3 @@ -2388,85 +134,6 @@ が追加されました。 - - 7.0.0 - - CURLOPT_SAFE_UPLOAD オプションを無効にするサポートが削除されました。 - 全ての curl によるファイルアップロードは、 - CURLFile を使わなければなりません。 - - - - 5.6.0 - - CURLOPT_SAFE_UPLOAD のデフォルトが &true; になりました。 - - - - 5.6.0 - - CURLOPT_CLOSEPOLICY およびそれに関連する値が削除されました。 - - - - 5.5.0 - - cURL リソースを、 - CURLOPT_PROGRESSFUNCTION コールバックの最初の引数として渡すようになりました。 - - - - 5.5.0 - - CURLOPT_SHARE が追加されました。 - - - - 5.3.0 - - CURLOPT_PROGRESSFUNCTION が追加されました。 - - - - 5.2.10 - - CURLOPT_PROTOCOLS および - CURLOPT_REDIR_PROTOCOLS - が追加されました。 - - - - 5.2.4 - - CURLOPT_PRIVATE が追加されました。 - - - - 5.1.0 - - CURLOPT_AUTOREFERER, - CURLOPT_BINARYTRANSFER, - CURLOPT_FTPSSLAUTH, - CURLOPT_PROXYAUTH および - CURLOPT_TIMECONDITION - が追加されました。 - - - - 5.0.0 - - CURLOPT_FTP_USE_EPRT, - CURLOPT_NOSIGNAL, - CURLOPT_UNRESTRICTED_AUTH, - CURLOPT_BUFFERSIZE, - CURLOPT_HTTPAUTH, - CURLOPT_PROXYPORT, - CURLOPT_PROXYTYPE, - CURLOPT_SSLCERTTYPE および - CURLOPT_HTTP200ALIASES - が追加されました。 - - @@ -2489,62 +156,10 @@ curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_HEADER, false); // URL の内容を取得し、ブラウザに渡します -curl_exec($ch); - -// cURL リソースを閉じ、システムリソースを開放します -curl_close($ch); -?> -]]> - - - - - - ファイルのアップロード (PHP 5.5.0 以降では非推奨) - - 'Foo', 'file' => '@/home/user/test.png'); - -curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php'); -curl_setopt($ch, CURLOPT_POST, 1); -curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); // PHP 5.6.0 以降ではこれが必要です -curl_setopt($ch, CURLOPT_POSTFIELDS, $data); - curl_exec($ch); ?> ]]> - &example.outputs; - - Foo -) -Array -( - [file] => Array - ( - [name] => test.png - [type] => image/png - [tmp_name] => /tmp/phpcpjNeQ - [error] => 0 - [size] => 279 - ) - -) - -]]> - @@ -2566,12 +181,13 @@ Array curl_setopt_array + CURLFile + CURLStringFile - - + + @@ -8,12 +9,18 @@ cURL 共有ハンドルを閉じる + + &warn.deprecated.function-8-5-0; + + &reftitle.description; + #[\Deprecated] voidcurl_share_close - resourcesh + CurlShareHandleshare_handle + ¬e.resource-migration-8.0-dead-function; cURL 共有ハンドルを閉じ、すべてのリソースを解放します。 @@ -23,14 +30,7 @@ &reftitle.parameters; - - sh - - - curl_share_init が返す cURL 共有ハンドル。 - - - + &curl.sh.description; @@ -41,7 +41,24 @@ - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.share-handle-param; + + + + + + &reftitle.examples; @@ -74,10 +91,6 @@ curl_exec($ch2); // cURL 共有ハンドルを閉じます curl_share_close($sh); - -// cURL ハンドルを閉じます -curl_close($ch1); -curl_close($ch2); ?> ]]> @@ -95,7 +108,6 @@ curl_close($ch2); - - + @@ -10,9 +10,9 @@ &reftitle.description; - + intcurl_share_errno - resourcesh + CurlShareHandleshare_handle 直近の共有ハンドルに対するエラー番号を含んだ数値を返します。 @@ -22,14 +22,7 @@ &reftitle.parameters; - - sh - - - curl_share_init によって返された、cURL 共有ハンドル - - - + &curl.sh.description; @@ -37,10 +30,32 @@ &reftitle.returnvalues; 直近の共有ハンドルに対するエラー番号を含んだ数値を返します。 - &return.falseforfailure;. + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数は、失敗時に &false; を返さなくなりました。 + + + &curl.changelog.share-handle-param; + + + + + &reftitle.seealso; @@ -49,7 +64,6 @@ - + + + + curl_share_init_persistent + 持続的な cURL 共有ハンドルを初期化する + + + + &reftitle.description; + + CurlSharePersistentHandlecurl_share_init_persistent + arrayshare_options + + + 持続的な cURL 共有ハンドルを、 + 指定した共有オプションを使って初期化します。 + curl_share_init と異なり、 + この関数で作成したハンドルは、PHP のリクエスト終了時に破棄されません。 + 同じ share_options を持つ共有ハンドルが見つかった場合、 + それが再利用されます。 + + + + + &reftitle.parameters; + + + + share_options + + + CURL_LOCK_DATA_* 定数を指定した、 + 空でない配列 + + + + CURL_LOCK_DATA_COOKIE は許可されません。 + 指定すると、この関数は ValueError をスローします。 + PHP リクエスト間で Cookie を共有すると、 + ユーザー間でセンシティブなデータがうっかり混在する可能性があるからです。 + + + + + + + + + + &reftitle.returnvalues; + + CurlSharePersistentHandle を返します。 + + + + + &reftitle.errors; + + + + share_options が空の場合、 + この関数は ValueError をスローします。 + + + + + share_options が + CURL_LOCK_DATA_* + にマッチしない値を含んでいた場合、 + この関数は ValueError をスローします。 + + + + + share_options が + CURL_LOCK_DATA_COOKIE を含んでいた場合、 + この関数は ValueError をスローします。 + + + + + share_options に数値でない値が含まれていた場合、 + この関数は TypeError をスローします。 + + + + + + + &reftitle.examples; + + <function>curl_share_init_persistent</function> の例 + + この例では、持続的な cURL 共有ハンドルを作成し、 + 接続を共有する方法を示します。 + このコードを長く生き残る PHP SAPI で実行した場合、 + $sh は SAPI リクエスト間で生き残ります。 + + + + + + ]]> + + + + + + &reftitle.seealso; + + curl_setopt + curl_share_init + + + + + diff --git a/reference/curl/functions/curl-share-init.xml b/reference/curl/functions/curl-share-init.xml index 3888728cfa..109534926c 100644 --- a/reference/curl/functions/curl-share-init.xml +++ b/reference/curl/functions/curl-share-init.xml @@ -1,6 +1,7 @@ - + + @@ -11,11 +12,11 @@ &reftitle.description; - resourcecurl_share_init - + CurlShareHandlecurl_share_init + - 複数の cURL ハンドルで、データを共有できるようにします。 + 複数の cURL ハンドル間で、データを共有できるようにします。 @@ -28,10 +29,33 @@ &reftitle.returnvalues; - "cURL Share Handle" 型のリソースを返します。 + cURL の共有ハンドルを返します。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数は、CurlShareHandle クラスのインスタンスを返すようになりました。 + これより前のバージョンでは、resource を返していました。 + + + + + + + &reftitle.examples; @@ -62,13 +86,6 @@ curl_setopt($ch2, CURLOPT_SHARE, $sh); // 二番目の cURL ハンドルを実行します // $ch1 ハンドルのすべてのクッキーを、$ch2 ハンドルと共有します curl_exec($ch2); - -// cURL 共有ハンドルを閉じます -curl_share_close($sh); - -// cURL ハンドルを閉じます -curl_close($ch1); -curl_close($ch2); ?> ]]> @@ -81,13 +98,12 @@ curl_close($ch2); curl_share_setopt - curl_share_close + curl_share_init_persistent - - + @@ -13,7 +13,7 @@ &reftitle.description; boolcurl_share_setopt - resourcesh + CurlShareHandleshare_handle intoption mixedvalue @@ -26,42 +26,12 @@ &reftitle.parameters; - - sh - - - curl_share_init が返す cURL 共有ハンドル。 - - - + &curl.sh.description; option - - - - - オプション - 説明 - - - - - CURLSHOPT_SHARE - - 共有させるデータの種類を指定します。 - - - - CURLSHOPT_UNSHARE - - 共有させないデータの種類を指定します。 - - - - - + CURLSHOPT_* 定数のうちのいずれか。 @@ -69,38 +39,8 @@ value - - - - - - 説明 - - - - - CURL_LOCK_DATA_COOKIE - - クッキーのデータを共有する。 - - - - CURL_LOCK_DATA_DNS - - DNS キャッシュを共有する。cURL マルチハンドルを使うときには、 - 同じマルチハンドルに追加されたすべてのハンドルがデフォルトで DNS キャッシュを共有することに注意しましょう。 - - - - CURL_LOCK_DATA_SSL_SESSION - - SSL セッション ID を共有し、同一サーバーへの再接続時の SSL ハンドシェイクの所要時間を削減する。 - 同じハンドル内では、デフォルトで SSL セッション ID が再利用されることに注意しましょう。 - - - - - + CURL_LOCK_DATA_* + 定数のうちのいずれか。 @@ -114,7 +54,24 @@ - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.share-handle-param; + + + + + + &reftitle.examples; @@ -144,13 +101,6 @@ curl_setopt($ch2, CURLOPT_SHARE, $sh); // 二番目の cURL ハンドルを実行します // $ch1 ハンドルのすべてのクッキーを、$ch2 ハンドルと共有します curl_exec($ch2); - -// cURL 共有ハンドルを閉じます -curl_share_close($sh); - -// cURL ハンドルを閉じます -curl_close($ch1); -curl_close($ch2); ?> ]]> @@ -159,7 +109,6 @@ curl_close($ch2); - - + @@ -10,9 +10,9 @@ &reftitle.description; - - stringcurl_share_strerror - interrornum + + stringnullcurl_share_strerror + interror_code 与えられたエラーコードを説明する、テキストのエラーメッセージを返します。 @@ -23,7 +23,7 @@ &reftitle.parameters; - errornum + error_code cURL エラーコード のうちのひとつ。 @@ -50,7 +50,6 @@ - - + @@ -12,8 +12,8 @@ &reftitle.description; - stringcurl_strerror - interrornum + stringnullcurl_strerror + interror_code 指定したエラーコードに対応するエラーメッセージを返します。 @@ -25,7 +25,7 @@ &reftitle.parameters; - errornum + error_code cURL エラーコード 定数のいずれか。 @@ -61,9 +61,6 @@ if($errno = curl_errno($ch)) { $error_message = curl_strerror($errno); echo "cURL error ({$errno}):\n {$error_message}"; } - -// ハンドルを閉じます -curl_close($ch); ?> ]]> @@ -90,7 +87,6 @@ cURL error (1): - - + @@ -11,9 +11,9 @@ &reftitle.description; - stringcurl_unescape - resourcech - stringstr + stringfalsecurl_unescape + CurlHandlehandle + stringstring この関数は、URL エンコードされた文字列をデコードします。 @@ -25,7 +25,7 @@ &curl.ch.description; - str + string デコード対象の文字列。 @@ -42,6 +42,23 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &curl.changelog.handle-param; + + + + + &reftitle.examples; @@ -64,9 +81,6 @@ $effective_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); // URL をデコードします $effective_url_decoded = curl_unescape($ch, $effective_url); // "http://example.com/show_location.php?loc=München" - -// ハンドルを閉じます -curl_close($ch); ?> ]]> @@ -98,7 +112,6 @@ curl_close($ch); - + + + + curl_upkeep + 接続を維持するためのチェックを行う + + + + &reftitle.description; + + boolcurl_upkeep + CurlHandlehandle + + + この関数は、libcurl >= 7.62.0 でビルドした場合に利用可能です。 + + + プロトコルによっては、"接続を維持する" 仕組みを備えているものがあります。 + 通常、この仕組みは接続を維持するため、既存の接続に対して少量のトラフィックを送信します。 + たとえばこうすることで、熱心なファイアウォールが接続を閉じることを防ぐことができます。 + + + こうした接続を維持する仕組みは、現状 HTTP/2 の接続でのみ利用できます。 + 通常、少量のトラフィックが接続を維持するために送信されます。 + HTTP/2 プロトコルは、HTTP/2 PING フレームを送信することで、接続を維持します。 + + + + + &reftitle.parameters; + + + &curl.ch.description; + + + + + + &reftitle.returnvalues; + + &return.success; + + + + + &reftitle.examples; + + + <function>curl_upkeep</function> の例 + + +]]> + + + + + + + &reftitle.seealso; + + + curl_init + + + + + diff --git a/reference/curl/functions/curl-version.xml b/reference/curl/functions/curl-version.xml index be119e81bb..9170a8922e 100644 --- a/reference/curl/functions/curl-version.xml +++ b/reference/curl/functions/curl-version.xml @@ -1,6 +1,6 @@ - + @@ -11,8 +11,8 @@ &reftitle.description; - arraycurl_version - intageCURLVERSION_NOW + arrayfalsecurl_version + cURL のバージョンについての情報を返します。 @@ -21,17 +21,7 @@ &reftitle.parameters; - - - - age - - - - - - - + &no.function.parameters; @@ -73,22 +63,65 @@ age - + features - 定数 CURL_VERSION_XXX のビットマスク + 定数 CURL_VERSION_*のビットマスク protocols cURL がサポートするプロトコル名の配列 + + feature_list + + 全ての既知のcURL機能の連想配列と、それらがサポートされている(&true;) + もしくはサポートされていない(&false;) かどうかを示す値 + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + features_list が追加されました。 + + + + 8.0.0 + + オプションの引数 age が削除されました。 + + + + 7.4.0 + + オプションの引数 age + は推奨されなくなりました。 + 値を渡すことができますが、無視されます。 + + + + + + + &reftitle.examples; @@ -127,7 +160,6 @@ foreach($bitfields as $feature) - - +
&reftitle.runtime; &extension.runtime; @@ -16,12 +16,12 @@ &Changelog; - + curl.cainfo NULL - PHP_INI_SYSTEM - PHP 5.3.7 以降で利用可能 + INI_SYSTEM + diff --git a/reference/curl/setup.xml b/reference/curl/setup.xml index 9047539fbc..10373f1162 100644 --- a/reference/curl/setup.xml +++ b/reference/curl/setup.xml @@ -1,7 +1,6 @@ - - + &reftitle.setup; @@ -10,9 +9,14 @@
&reftitle.required; - PHP の cURL 関数を使用するためには、libcurl - パッケージをインストールしておく必要があります。PHP は、 - libcurl 7.10.5 以降を必要とします。 + PHP の cURL 関数を使用するためには、 + libcurl + パッケージをインストールしておく必要があります。 + libcurl 7.10.5 以降が必要です。 + PHP 7.3.0 以降では、7.15.5 以降が必要です。 + PHP 8.0.0 以降では、7.29.0 以降が必要です。 + PHP 8.4.0 以降では、7.61.0 以降が必要です。 +
@@ -29,8 +33,11 @@
&reftitle.resources; - この拡張モジュールで定義しているリソース型は - cURL ハンドルおよび cURL マルチハンドルのふたつです。 + PHP 8.0.0 より前のバージョンでは、 + この拡張モジュールは3つのリソース型を定義していました。 + curl ハンドル、 + curl_multi ハンドル、 + curl_share ハンドルの3つです。
@@ -57,4 +64,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> - diff --git a/reference/cyrus/book.xml b/reference/cyrus/book.xml deleted file mode 100644 index 469223babb..0000000000 --- a/reference/cyrus/book.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - Cyrus IMAP 管理 - Cyrus - - - - &reftitle.intro; - - ¬e.no-windows.extension; - - - - &pecl.moved-ver;5.0.0. - - - - - - &reference.cyrus.setup; - &reference.cyrus.constants; - &reference.cyrus.reference; - - - - - diff --git a/reference/cyrus/configure.xml b/reference/cyrus/configure.xml deleted file mode 100644 index 9f8c31b341..0000000000 --- a/reference/cyrus/configure.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - -
- &reftitle.install; - - Cyrus IMAP サポートを有効にしてこれらの関数を使用するには、 - オプションを指定して - PHP をコンパイルする必要があります。 - - - &warn.imaprecodeyaz; - -
- - diff --git a/reference/cyrus/constants.xml b/reference/cyrus/constants.xml deleted file mode 100644 index 68719d2c14..0000000000 --- a/reference/cyrus/constants.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - &reftitle.constants; - &extension.constants; - - - - CYRUS_CONN_NONSYNCLITERAL - (integer) - - - - - - - - - - CYRUS_CONN_INITIALRESPONSE - (integer) - - - - - - - - - - CYRUS_CALLBACK_NUMBERED - (integer) - - - - - - - - - - CYRUS_CALLBACK_NOLITERAL - (integer) - - - - - - - - - - - diff --git a/reference/cyrus/functions/cyrus-authenticate.xml b/reference/cyrus/functions/cyrus-authenticate.xml deleted file mode 100644 index 1ace742872..0000000000 --- a/reference/cyrus/functions/cyrus-authenticate.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - cyrus_authenticate - Cyrus IMAP サーバーに対する認証を行う - - - &reftitle.description; - - voidcyrus_authenticate - resourceconnection - stringmechlist - stringservice - stringuser - intminssf - intmaxssf - stringauthname - stringpassword - - &warn.undocumented.func; - - - &reftitle.returnvalues; - - &return.void; - - - - - diff --git a/reference/cyrus/functions/cyrus-bind.xml b/reference/cyrus/functions/cyrus-bind.xml deleted file mode 100644 index 525e817400..0000000000 --- a/reference/cyrus/functions/cyrus-bind.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - cyrus_bind - Cyrus IMAP 接続へのコールバックをバインドする - - - &reftitle.description; - - boolcyrus_bind - resourceconnection - arraycallbacks - - - Cyrus IMAP 接続へのコールバックをバインドします。 - - - - &reftitle.parameters; - - - - connection - - - 接続ハンドル。 - - - - - callbacks - - - コールバックの配列。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - diff --git a/reference/cyrus/functions/cyrus-close.xml b/reference/cyrus/functions/cyrus-close.xml deleted file mode 100644 index 5723e2a3bb..0000000000 --- a/reference/cyrus/functions/cyrus-close.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - cyrus_close - Cyrus IMAP サーバーへの接続を閉じる - - - &reftitle.description; - - boolcyrus_close - resourceconnection - - - Cyrus IMAP サーバーへの接続を閉じます。 - - - - &reftitle.parameters; - - - - connection - - - 接続ハンドル。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - diff --git a/reference/cyrus/functions/cyrus-connect.xml b/reference/cyrus/functions/cyrus-connect.xml deleted file mode 100644 index adb7a201c1..0000000000 --- a/reference/cyrus/functions/cyrus-connect.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - cyrus_connect - Cyrus IMAP サーバーに接続する - - - &reftitle.description; - - resourcecyrus_connect - stringhost - stringport - intflags - - - Cyrus IMAP サーバーに接続します。 - - - - &reftitle.parameters; - - - - host - - - Cyrus IMAP ホスト名。 - - - - - port - - - ポート番号。 - - - - - flags - - - - - - - - - - &reftitle.returnvalues; - - 成功した場合に接続ハンドラ、&return.falseforfailure;。 - - - - - diff --git a/reference/cyrus/functions/cyrus-query.xml b/reference/cyrus/functions/cyrus-query.xml deleted file mode 100644 index 901db70fe8..0000000000 --- a/reference/cyrus/functions/cyrus-query.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - cyrus_query - Cyrus IMAP サーバーへクエリを送信する - - - &reftitle.description; - - arraycyrus_query - resourceconnection - stringquery - - - Cyrus IMAP サーバーへクエリを送信します。 - - - - &reftitle.parameters; - - - - connection - - - 接続ハンドル。 - - - - - query - - - クエリ文字列。 - - - - - - - - &reftitle.returnvalues; - - textmsgno、 - そして keyword - のキーを持つ連想配列を返します。 - - - - - diff --git a/reference/cyrus/functions/cyrus-unbind.xml b/reference/cyrus/functions/cyrus-unbind.xml deleted file mode 100644 index 8f2225ecfc..0000000000 --- a/reference/cyrus/functions/cyrus-unbind.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - cyrus_unbind - アンバインドする ... - - - &reftitle.description; - - boolcyrus_unbind - resourceconnection - stringtrigger_name - - &warn.undocumented.func; - - - &reftitle.parameters; - - - - connection - - - 接続ハンドル。 - - - - - trigger_name - - - トリガ名。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - diff --git a/reference/cyrus/reference.xml b/reference/cyrus/reference.xml deleted file mode 100644 index b1ac8d0a60..0000000000 --- a/reference/cyrus/reference.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - Cyrus &Functions; - - &reference.cyrus.entities.functions; - - - - - diff --git a/reference/cyrus/setup.xml b/reference/cyrus/setup.xml deleted file mode 100644 index 7e804086b0..0000000000 --- a/reference/cyrus/setup.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - &reftitle.setup; - - -
- &reftitle.required; - &no.requirement; -
- - - - &reference.cyrus.configure; - - - -
- &reftitle.runtime; - &no.config; -
- - - -
- &reftitle.resources; - - この拡張モジュールでは、Cyrus IMAP 接続 ID を定義しています。これは - cyrus_connect が返すものです。 - -
- - -
- - - diff --git a/reference/datetime/book.xml b/reference/datetime/book.xml index 1c6189f085..a15dea9653 100644 --- a/reference/datetime/book.xml +++ b/reference/datetime/book.xml @@ -1,9 +1,9 @@ - + - + 日付・時刻 Date/Time @@ -12,26 +12,28 @@ &reftitle.intro; - 以下の関数により、PHP スクリプトを実行するサーバーから - 日付と時間を取得することが可能となります。 - 多くの異なる方法で日付や時間をフォーマットするために - これらの関数を使用することができます。 + DateTimeImmutable と、 + それに関連するクラスを使うと、日付/時刻 に関する情報を表現できます。 + このオブジェクトは、日付/時刻 の文字列表現か、 + 現在のシステム時刻から作成できます。 + + + この情報を変更したり、 + フォーマット化するために豊富なメソッドが提供されています。 + この情報には、タイムゾーンや夏時間の遷移情報も含まれます。 + + + PHP の日付/時刻 は ISO 8601 のカレンダー、つまり proleptic Gregorian calendar (先発グレゴリオ暦) を実装しています。 + これは、現在のうるう年のルールをグレゴリオ暦より前であっても実装し、 + -1 BCE1 CE の間を + 0 年として扱います。 + うるう秒はサポートされていません。 日付と時刻の情報は内部的には 64 ビット数値で保持されているので、 (負の年も含めて) 考え得る限りのあらゆる日付を扱うことができます。 扱える範囲は、過去およそ2920億年と未来の同じくらいの年です。 - - - これらの関数は、使用するサーバーのロケールの設定に依存していることに注意してください。 - これらの関数を使用する際にはサマータイム - (例えば、.$date += 7*24*60*60ではなく、 - $date = $date->modify('+7 days') - とする) - および閏年を必ず考慮に入れるようにしてください。 - - この節で参照しているタイムゾーンは、 @@ -40,22 +42,63 @@ - + &reference.datetime.setup; &reference.datetime.constants; &reference.datetime.examples; - + &reference.datetime.datetime; &reference.datetime.datetimeimmutable; &reference.datetime.datetimeinterface; &reference.datetime.datetimezone; &reference.datetime.dateinterval; &reference.datetime.dateperiod; - + &reference.datetime.reference; + +
+ 日付・時刻 に関するエラーと例外 + + + + DateError (extends Error) + + + DateObjectError + DateRangeError + + + + + DateException (extends Exception) + + + + DateInvalidOperationException + DateInvalidTimezoneException + DateMalformedIntervalStringException + DateMalformedPeriodStringException + DateMalformedStringException + + + + + +
+ &reference.datetime.formats; &reference.datetime.timezones; + &reference.datetime.dateerror; + &reference.datetime.dateobjecterror; + &reference.datetime.daterangeerror; + &reference.datetime.dateexception; + &reference.datetime.dateinvalidoperationexception; + &reference.datetime.dateinvalidtimezoneexception; + &reference.datetime.datemalformedintervalstringexception; + &reference.datetime.datemalformedperiodstringexception; + &reference.datetime.datemalformedstringexception; +
- +
&reftitle.install; @@ -16,18 +16,6 @@ - - PHP 5.1.x における実験的な DateTime サポート - - DateTime クラス (とそれに関連する関数) - がデフォルトで使用できるようになったのは PHP 5.2.0 からですが、 - PHP 5.1.x でも実験的な DateTime サポートを追加することができます。 - そのためには、configure/コンパイルの前に - CFLAGS=-DEXPERIMENTAL_DATE_SUPPORT=1 - フラグを使用します。 - - -
- + &reftitle.constants; - DATE_ - 定数 は PHP 5.1.1 以降で定義されており、標準的な日付の書式を表します。 + DATE_* + 定数は、標準的な日付の書式を表します。 日付フォーマット関数(date など)で使用します。 - - 以下の定数は PHP 5.1.2 以降に存在し、関数 - date_sunrise および - date_sunset が返す結果の書式を指定します。 - + + + <parameter>returnFormat</parameter> は + <function>date_sunrise</function> と + <function>date_sunset</function> で利用可能です。 + + + + + これらの定数は PHP 8.4.0 から非推奨となりました。 + 対応する date_sunrise と + date_sunset 関数は PHP 8.1.0 から非推奨となっています。 + + + SUNFUNCS_RET_TIMESTAMP - (integer) + (int) @@ -28,28 +38,221 @@ SUNFUNCS_RET_STRING - (integer) + (int) - 時:分 (例: 08:02) + 時:分 (例: 08:02) SUNFUNCS_RET_DOUBLE - (integer) + (int) - 時刻を表す浮動小数点値 (例 8.75) + 時刻を表す浮動小数点値 (例 8.75) - + + <constant>DATE_<replaceable>*</replaceable></constant> 定数 + + + DATE_ATOM + (string) + + + + Atom (例: 2005-08-15T15:52:01+00:00) + + + + + + + DATE_COOKIE + (string) + + + + HTTP Cookies (例: Monday, 15-Aug-2005 15:52:01 UTC) + + + + + + + DATE_ISO8601 + (string) + + + + ISO-8601 (例: 2005-08-15T15:52:01+0000) + + + + このフォーマットは、ISO-8601 と互換性がありません。 + しかし、後方互換性を保つために残されています。 + ISO-8601 と互換性を保つためには、 + DATE_ISO8601_EXPANDED, + DATE_ATOM を使うようにしてください。 + (ISO8601:2004 section 4.3.3 clause d も参照ください) + + + + + + + + DATE_ISO8601_EXPANDED + (string) + + + + ISO-8601 拡張形式 (例: +10191-07-26T08:59:52+01:00) + + + + 年に常に符号を含めることで、ISO-8601 の通常の範囲 + 0000-9999 以外の値が許されています。 + タイムゾーンの部分 (+01:00) については、 + ISO-8601 と互換性をとるようにもなっています。 + + + + + + + + DATE_RFC822 + (string) + + + + RFC 822 (例: Mon, 15 Aug 05 15:52:01 +0000) + + + + + + + DATE_RFC850 + (string) + + + + RFC 850 (例: Monday, 15-Aug-05 15:52:01 UTC) + + + + + + + DATE_RFC1036 + (string) + + + + RFC 1036 (例: Mon, 15 Aug 05 15:52:01 +0000) + + + + + + + DATE_RFC1123 + (string) + + + + RFC 1123 (例: Mon, 15 Aug 2005 15:52:01 +0000) + + + + + + + DATE_RFC7231 + (string) + + + + RFC 7231 (PHP 7.0.19 and 7.1.5 以降で利用可能) + (例: Sat, 30 Apr 2016 17:52:13 GMT) + + + + + + + DATE_RFC2822 + (string) + + + + RFC 2822 (例: Mon, 15 Aug 2005 15:52:01 +0000) + + + + + + + DATE_RFC3339 + (string) + + + + DATE_ATOM と同じです + + + + + + + DATE_RFC3339_EXTENDED + (string) + + + + RFC 3339 EXTENDED フォーマット + (例: 2005-08-15T15:52:01.000+00:00) + + + + + + + DATE_RSS + (string) + + + + RSS (例: Mon, 15 Aug 2005 15:52:01 +0000). + DATE_RFC1123 &Alias;. + + + + + + + DATE_W3C + (string) + + + + World Wide Web Consortium (例: 2005-08-15T15:52:01+00:00) + DATE_RFC3339 &Alias; + + + + + + + + + DateError クラス + DateError + + + + +
+ &reftitle.intro; + + タイムゾーンデータベースが見つからなかったり、不正なデータが含まれている場合にスローされます。 + + + このエラーは決して発生しないはずです。 + 発生する場合、ユーザーが書いたコード以外が原因です。 + このエラーには2つの子クラス(DateObjectError と + DateRangeError) + があり、それらはプログラマーの間違いや期間に関する問題が原因でスローされます。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + DateError + + + + extends + Error + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + +
+ +
+ &reftitle.seealso; + + DateObjectError + DateRangeError + +
+
+ +
+ diff --git a/reference/datetime/dateexception.xml b/reference/datetime/dateexception.xml new file mode 100644 index 0000000000..12df57cdb7 --- /dev/null +++ b/reference/datetime/dateexception.xml @@ -0,0 +1,83 @@ + + + + + DateException クラス + DateException + + + + +
+ &reftitle.intro; + + 日付/時刻に関する例外の親クラスです。 + ユーザーの入力や、パースが必要な自由入力のテキスト引数によって生じる問題に対応するものです。 + + + 以下の子クラスの例外がスローされます: + + DateInvalidOperationException + DateInvalidTimezoneException + DateMalformedIntervalStringException + DateMalformedPeriodStringException + DateMalformedStringException + + +
+ + +
+ &reftitle.classsynopsis; + + + + + DateException + + + + extends + Exception + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + +
+ +
+ +
+ diff --git a/reference/datetime/dateinterval.xml b/reference/datetime/dateinterval.xml index 1572f9d5dd..85face17e6 100644 --- a/reference/datetime/dateinterval.xml +++ b/reference/datetime/dateinterval.xml @@ -1,9 +1,8 @@ - + - - + DateInterval クラス DateInterval @@ -18,7 +17,8 @@ 格納方式は、固定値 (年、月、日、時など) - あるいは相対時刻 (DateTime のコンストラクタがサポートしている書式) + あるいは相対時刻 (DateTimeImmutable と + DateTime のコンストラクタがサポートしている書式) となります。 @@ -30,7 +30,13 @@ DateInterval オブジェクトを生成する一般的なやり方は、 2つの date/time オブジェクトの差分を - DateTimeInterface::diff 経由で計算することです。 + DateTimeInterface::diff 経由で計算することです。 + + + 日付の間隔を比較する良い方法は定義されていません。 + よって、DateInterval + のインスタンスは + 比較できません。
@@ -39,46 +45,40 @@ &reftitle.classsynopsis; - - DateInterval - - - - - DateInterval - - - + + + DateInterval + &Properties; public - integer + int y public - integer + int m public - integer + int d public - integer + int h public - integer + int i public - integer + int s @@ -88,7 +88,7 @@ public - integer + int invert @@ -96,20 +96,24 @@ mixed days + + public + bool + from_string + + + public + string + date_string + &Methods; - - + + - - - - - @@ -117,6 +121,13 @@
&reftitle.properties; + + + 以下に示すプロパティが使えるかどうかは、 + PHP のバージョンに依存します。 + そして、readonly と見なすべきです。 + + y @@ -188,13 +199,34 @@ days - DateTime::diff で作られた DateInterval - オブジェクトの場合は、開始日と終了日の間の日数。 + DateTimeImmutable::diff や + DateTime::diff で作られた DateInterval + オブジェクトの場合は、開始日と終了日の間の(丸一日、つまり0時から24時までの一日全体という意味での)日の数。 それ以外の場合は days は &false; となります。 + + + + from_string + + + DateInterval::createFromDateString + で作られた DateInterval オブジェクトの場合は、 + このプロパティの値は &true; になり、 + date_string の値が収集されます。 + そうでない場合、この値は &false; になり、 + y, + f, invert, + days の値が収集されます。 + + + + + date_string + - PHP 5.4.20/5.5.4 より前のバージョンでは、 - &false; ではなく -99999 となっていました。 + DateInterval::createFromDateString + の引数として使われる文字列。 @@ -213,6 +245,34 @@ + + 8.2.0 + + DateInterval::createFromDateString + で作られた DateInterval + のインスタンスのために、 + プロパティ from_string と + date_string が追加されました。 + + + + 8.2.0 + + プロパティ y から f, + invert, days + のみがアクセス可能になりました。 + + + + 7.4.0 + + DateInterval インスタンスは、 + 比較できなくなりました。 + これより前のバージョンでは、 + 全ての DateInterval + のインスタンスが等しいとみなされていました。 + + 7.1.0 f プロパティが追加されました @@ -227,8 +287,7 @@ &reference.datetime.entities.dateinterval; - - + - + - DateInterval::__construct @@ -11,7 +10,7 @@ &reftitle.description; - + public DateInterval::__construct stringduration @@ -65,8 +64,9 @@ W - 週。日付に変換されるので - D と組み合わせて使うことはできません。 + 週。日付に変換されます。 + PHP 8.0.0 より前のバージョンでは、 + D と組み合わせて使えませんでした。 @@ -121,45 +121,196 @@ &reftitle.errors; - duration を間隔としてパースできないときに - Exception をスローします。 + duration が間隔の値としてパースできない場合、 + DateMalformedIntervalStringException がスローされます。 + PHP 8.3 より前のバージョンでは、Exception がスローされていました。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + Exception の代わりに、 + DateMalformedIntervalStringException + がスローされるようになりました。 + + + + 8.2.0 + + アクセス可能なプロパティは + y から f, + invert, + days だけになりました。 + 新しい boolean プロパティ + from_string もアクセス可能です。 + + + + 8.0.0 + + W が、D と組み合わせて使えるようになりました。 + + + + + + + &reftitle.examples; + <classname>DateInterval</classname> + オブジェクトを作成して使う例 add($interval); -?> +// Convert interval to string +echo $interval->format("%d"); ]]> &example.outputs; + + + + + + + <classname>DateInterval</classname> の例 + + + + &example.outputs.82; + + - int(2) + int(0) ["m"]=> int(0) ["d"]=> - int(4) + int(9) ["h"]=> - int(6) + int(0) ["i"]=> - int(8) + int(0) ["s"]=> int(0) + ["f"]=> + float(0) ["invert"]=> int(0) ["days"]=> bool(false) + ["from_string"]=> + bool(false) +} +]]> + + &example.outputs.8; + + + int(0) + ["m"]=> + int(0) + ["d"]=> + int(9) + ["h"]=> + int(0) + ["i"]=> + int(0) + ["s"]=> + int(0) + ["f"]=> + float(0) + ["weekday"]=> + int(0) + ["weekday_behavior"]=> + int(0) + ["first_last_day_of"]=> + int(0) + ["invert"]=> + int(0) + ["days"]=> + bool(false) + ["special_type"]=> + int(0) + ["special_amount"]=> + int(0) + ["have_weekday_relative"]=> + int(0) + ["have_special_relative"]=> + int(0) +} +]]> + + &example.outputs.7; + + + int(0) + ["m"]=> + int(0) + ["d"]=> + int(2) + ["h"]=> + int(0) + ["i"]=> + int(0) + ["s"]=> + int(0) + ["f"]=> + float(0) + ["weekday"]=> + int(0) + ["weekday_behavior"]=> + int(0) + ["first_last_day_of"]=> + int(0) + ["invert"]=> + int(0) + ["days"]=> + bool(false) + ["special_type"]=> + int(0) + ["special_amount"]=> + int(0) + ["have_weekday_relative"]=> + int(0) + ["have_special_relative"]=> + int(0) } ]]> @@ -180,7 +331,6 @@ object(DateInterval)#1 (8) { - - + @@ -11,12 +11,20 @@ &reftitle.description; - + &style.oop; + public static DateIntervalDateInterval::createFromDateString stringdatetime + &style.procedural; + + DateIntervalfalsedate_interval_create_from_date_string + stringdatetime + - 通常の日付パーサを用いて、パースされた相対指定文字列から DateInterval を設定します。 + DateTimeImmutable + のコンストラクタで使われている日付パーサを用いて、パースされた相対指定文字列から + DateInterval を作成します。 @@ -30,22 +38,86 @@ 相対部分を含む日付。 特に、strtotime や + DateTimeImmutableDateTime が使うパーサーがサポートする 相対書式 を使って DateInterval を作ることができます。 + + P7D のような ISO-8601 + フォーマットの文字列を使うには、 + DateInterval::__construct + を使わなければいけません。 + + + &reftitle.returnvalues; + + DateInterval のインスタンスを返します。 + &return.falseforfailure.style.procedural; + + + + + &reftitle.errors; + + オブジェクト指向のAPIのみ、 + 無効な日付/時刻の文字列が渡された場合に + DateMalformedStringException + がスローされます。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + 無効な文字列が渡された場合、 + DateInterval::createFromDateString + は DateMalformedStringException + をスローするようになりました。 + これより前のバージョンでは、 + 警告が発生して false を返していました。 + date_interval_create_from_date_string + は変更されていません。 + + + + 8.2.0 + + このメソッドを使って + DateInterval を作った場合、 + アクセス可能なプロパティは + from_string と + date_string だけになりました。 + + + + + + + &reftitle.examples; 日付の間隔のパース - + ]]> - + + + パース処理の組み合わせと、負の間隔 + +format('%d %h %i'), "\n"; - - &reftitle.returnvalues; +$i = DateInterval::createFromDateString('1 year - 10 days'); +echo $i->format('%y %d'), "\n"; +]]> + + &example.outputs; + + + + + - 新しい DateInterval のインスタンスを返します。 + + 特別な相対書式の間隔をパースする + + + + &example.outputs.82; + + + bool(true) + ["date_string"]=> + string(22) "last day of next month" +} +object(DateInterval)#2 (2) { + ["from_string"]=> + bool(true) + ["date_string"]=> + string(12) "last weekday" +} +]]> + + &example.outputs.8.similar; + + + int(0) + ["m"]=> + int(1) + ["d"]=> + int(0) + ["h"]=> + int(0) + ["i"]=> + int(0) + ["s"]=> + int(0) + ["f"]=> + float(0) + ["weekday"]=> + int(0) + ["weekday_behavior"]=> + int(0) + ["first_last_day_of"]=> + int(2) + ["invert"]=> + int(0) + ["days"]=> + bool(false) + ["special_type"]=> + int(0) + ["special_amount"]=> + int(0) + ["have_weekday_relative"]=> + int(0) + ["have_special_relative"]=> + int(0) +} +object(DateInterval)#2 (16) { + ["y"]=> + int(0) + ["m"]=> + int(0) + ["d"]=> + int(0) + ["h"]=> + int(0) + ["i"]=> + int(0) + ["s"]=> + int(0) + ["f"]=> + float(0) + ["weekday"]=> + int(0) + ["weekday_behavior"]=> + int(0) + ["first_last_day_of"]=> + int(0) + ["invert"]=> + int(0) + ["days"]=> + bool(false) + ["special_type"]=> + int(1) + ["special_amount"]=> + int(-1) + ["have_weekday_relative"]=> + int(0) + ["have_special_relative"]=> + int(1) +} +]]> + + diff --git a/reference/datetime/dateinterval/format.xml b/reference/datetime/dateinterval/format.xml index e21fdfa684..16a92be058 100644 --- a/reference/datetime/dateinterval/format.xml +++ b/reference/datetime/dateinterval/format.xml @@ -1,6 +1,6 @@ - + @@ -11,7 +11,7 @@ &reftitle.description; - + public stringDateInterval::format stringformat @@ -133,7 +133,7 @@ r 負の値の場合は "-"、正の値の場合は空文字 - -, + -, @@ -152,20 +152,6 @@ - - &reftitle.notes; - - - DateInterval::format メソッドは、 - 時刻文字列や日付セグメントでの繰り越しを再計算しません。 - これは意図的な仕様です。なぜなら "32 days" - のようにオーバーフローした値は "1 month and 4 days" - から "1 month and 1 day" - までのどれとでも解釈可能だからです。 - - - - &reftitle.changelog; @@ -178,6 +164,11 @@ + + 7.2.12 + Ff + フォーマットの値は、常に正の数値になりました。 + 7.1.0 @@ -198,11 +189,8 @@ format('%d days'); - -?> ]]> &example.outputs; @@ -219,11 +207,8 @@ echo $interval->format('%d days'); format('%d days'); - -?> ]]> &example.outputs; @@ -243,7 +228,6 @@ echo $interval->format('%d days'); diff($january); @@ -253,8 +237,6 @@ echo $interval->format('%a total days')."\n"; // 一方 %d は、月数に含まれない日数のみを出力します echo $interval->format('%m month, %d days'); - -?> ]]> &example.outputs; @@ -268,6 +250,20 @@ echo $interval->format('%m month, %d days'); + + &reftitle.notes; + + + DateInterval::format メソッドは、 + 時刻文字列や日付セグメントでの繰り越しを再計算しません。 + これは意図的な仕様です。なぜなら "32 days" + のようにオーバーフローした値は "1 month and 4 days" + から "1 month and 1 day" + までのどれとでも解釈可能だからです。 + + + + &reftitle.seealso; @@ -278,7 +274,6 @@ echo $interval->format('%m month, %d days'); - + + + DateInvalidOperationException クラス + DateInvalidOperationException + + + + +
+ &reftitle.intro; + + サポートされていない操作が行われた場合に、 + DateTimeImmutable::sub と + DateTime::sub がスローします。 + + + サポートされていない操作の例として、 + next weekday のような相対時間を表現する + DateInterval を使った場合が挙げられます。 + サポートされない理由は、論理的に逆の式が構築できないからです。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + DateInvalidOperationException + + + + extends + DateException + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + +
+ +
+ +
+ diff --git a/reference/datetime/dateinvalidtimezoneexception.xml b/reference/datetime/dateinvalidtimezoneexception.xml new file mode 100644 index 0000000000..2718686662 --- /dev/null +++ b/reference/datetime/dateinvalidtimezoneexception.xml @@ -0,0 +1,72 @@ + + + + + DateInvalidTimeZoneException クラス + DateInvalidTimeZoneException + + + + +
+ &reftitle.intro; + + DateTimeZone::__construct に無効な値が渡された場合にスローされます。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + DateInvalidTimeZoneException + + + + extends + DateException + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + +
+ +
+ +
+ diff --git a/reference/datetime/datemalformedintervalstringexception.xml b/reference/datetime/datemalformedintervalstringexception.xml new file mode 100644 index 0000000000..c692e6b526 --- /dev/null +++ b/reference/datetime/datemalformedintervalstringexception.xml @@ -0,0 +1,72 @@ + + + + + DateMalformedIntervalStringException クラス + DateMalformedIntervalStringException + + + + +
+ &reftitle.intro; + + DateInterval::__construct に無効な duration が渡された場合にスローされます。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + DateMalformedIntervalStringException + + + + extends + DateException + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + +
+ +
+ +
+ diff --git a/reference/datetime/datemalformedperiodstringexception.xml b/reference/datetime/datemalformedperiodstringexception.xml new file mode 100644 index 0000000000..7c4017cf17 --- /dev/null +++ b/reference/datetime/datemalformedperiodstringexception.xml @@ -0,0 +1,72 @@ + + + + + DateMalformedPeriodStringException クラス + DateMalformedPeriodStringException + + + + +
+ &reftitle.intro; + + DatePeriod::__construct に無効な isostr が渡された場合にスローされます。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + DateMalformedPeriodStringException + + + + extends + DateException + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + +
+ +
+ +
+ diff --git a/reference/datetime/datemalformedstringexception.xml b/reference/datetime/datemalformedstringexception.xml new file mode 100644 index 0000000000..7a3976c1af --- /dev/null +++ b/reference/datetime/datemalformedstringexception.xml @@ -0,0 +1,79 @@ + + + + + DateMalformedStringException クラス + DateMalformedStringException + + + + +
+ &reftitle.intro; + + 無効な日付/時刻の文字列が検知された場合にスローされます。 + + + これをスローする可能性があるのは + DateTimeImmutable::__construct, + DateTimeImmutable::modify, + DateTime::__construct, + DateTime::modify です。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + DateMalformedStringException + + + + extends + DateException + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + +
+ +
+ +
+ diff --git a/reference/datetime/dateobjecterror.xml b/reference/datetime/dateobjecterror.xml new file mode 100644 index 0000000000..4703ed550a --- /dev/null +++ b/reference/datetime/dateobjecterror.xml @@ -0,0 +1,85 @@ + + + + + DateObjectError クラス + DateObjectError + + + + +
+ &reftitle.intro; + + 日付/時刻に関するクラスが、正しく初期化されていない場合にスローされます。 + + + 日付/時刻に関するクラスには final が指定されていないので、継承可能です。 + 親クラスのコンストラクタがコールされない場合、このエラーがスローされます。 + これは常に、プログラミング時の誤りです。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + DateObjectError + + + + extends + DateError + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + +
+ +
+ &reftitle.seealso; + + DateError + DateRangeError + +
+ +
+ +
+ diff --git a/reference/datetime/dateperiod.xml b/reference/datetime/dateperiod.xml index 015fa113ce..2304a32bca 100644 --- a/reference/datetime/dateperiod.xml +++ b/reference/datetime/dateperiod.xml @@ -1,8 +1,7 @@ - - - + + DatePeriod クラス DatePeriod @@ -25,89 +24,111 @@ &reftitle.classsynopsis; - - DatePeriod - - - - - DatePeriod - - - - Traversable - - - + + + DatePeriod + + + + implements + IteratorAggregate + + &Constants; + public const - integer + int DatePeriod::EXCLUDE_START_DATE - 1 + + + public + const + int + DatePeriod::INCLUDE_END_DATE &Properties; public - integer - recurrences + readonly + DateTimeInterfacenull + start public - boolean - include_start_date + readonly + DateTimeInterfacenull + current public - DateTimeInterface - start + readonly + DateTimeInterfacenull + end public - DateTimeInterface - current + readonly + DateIntervalnull + interval public - DateTimeInterface - end + readonly + int + recurrences public - DateInterval - interval + readonly + bool + include_start_date + + + public + readonly + bool + include_end_date &Methods; - - + + - - - - -
- +
&reftitle.constants; - DatePeriod::EXCLUDE_START_DATE + + DatePeriod::EXCLUDE_START_DATE + int + 開始日を含まない。DatePeriod::__construct で使用します。 + + + DatePeriod::INCLUDE_END_DATE + int + + + 終了日を含む。DatePeriod::__construct + で使用します。 + + +
@@ -119,13 +140,83 @@ recurrences - DatePeriod インスタンスが - $recurrences を明示的に渡すことによって作成された場合の反復回数 + イテレータが返す最小のインスタンスの数。 + + + DatePeriod のコンストラクタの + recurrences に繰り返しの回数を明示的に渡した場合、 + このプロパティにはその値が含まれます。 + DatePeriod::EXCLUDE_START_DATE + によって開始日が無効にされていない場合、 + このプロパティには それよりひとつ多い + 値が設定されます。 + DatePeriod::INCLUDE_END_DATE + で終了日が有効になっている場合、 + このプロパティには さらにひとつ多い + 値が設定されます。 + + + 繰り返しの回数を明示的に渡さなかった場合、 + このプロパティには返される最小のインスタンスの数が含まれます。 + この値は 0 になるはずですが、 + DatePeriod::EXCLUDE_START_DATE + によって開始日が無効にされていない場合、 + このプロパティには それよりひとつ多い + 値が設定されます。 + DatePeriod::INCLUDE_END_DATE + で終了日が有効になっている場合、 + このプロパティには さらにひとつ多い + 値が設定されます。 + + + + +recurrences, "\n"; +$period = new DatePeriod($start, $interval, $recurrences); +echo $period->recurrences, "\n"; +$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::INCLUDE_END_DATE); +echo $period->recurrences, "\n"; +// コンストラクタで繰り返し回数を設定しない場合 +$period = new DatePeriod($start, $interval, $end); +echo $period->recurrences, "\n"; +$period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE); +echo $period->recurrences, "\n"; +]]> + + &example.outputs; + + + + + + DatePeriod::getRecurrences もご覧ください。 - + + include_end_date + + + 終了日を反復日のセットに含めるかどうか。 + + + + include_start_date @@ -168,39 +259,49 @@
-
+
&reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.27, 5.4.17 - - public プロパティー recurrences、 - include_start_datestart、 - currentend および - interval が公開されました。 - - - - - - + + + + + &Version; + &Description; + + + + + 8.4.0 + + クラス定数が型付けされました。 + + + + 8.2.0 + + 定数 DatePeriod::INCLUDE_END_DATE と + プロパティ include_end_date が追加されました。 + + + + 8.0.0 + + DatePeriod は、 + IteratorAggregate を実装するようになりました。 + これより前のバージョンでは、 + Traversable を実装していました。 + + + + +
&reference.datetime.entities.dateperiod; - - + - + + @@ -10,28 +11,53 @@ &reftitle.description; - + public DatePeriod::__construct DateTimeInterfacestart DateIntervalinterval intrecurrences - intoptions + intoptions0 - + public DatePeriod::__construct DateTimeInterfacestart DateIntervalinterval DateTimeInterfaceend - intoptions - - - public DatePeriod::__construct - stringisostr - intoptions + intoptions0 + + + 以下のコンストラクタのバリエーションは、推奨されなくなりました。 + + + public DatePeriod::__construct + stringisostr + intoptions0 + + + 代わりに、static なファクトリメソッド + DatePeriod::createFromISO8601String + を使いましょう。 + + 新しい DatePeriod オブジェクトを作成します。 + + DatePeriod オブジェクトは、 + たくさんの DateTimeImmutable + や DateTime を生成するイテレータとして使えます。 + パラメータ start, + interval, + end, および recurrences + の数を指定できます。 + + + 返されるオブジェクトのクラスは、 + start の祖先になるオブジェクトで、 + DateTimeImmutable や + DateTime に等しくなります。 + @@ -42,7 +68,8 @@ start - 期間の開始日。 + 期間の開始日。デフォルトでは、 + 結果セットに含まれています。 @@ -59,6 +86,9 @@ 反復回数。 + 返される結果の数は、この値よりひとつ大きくなります。 + なぜなら、デフォルトでは結果セットに開始日が含まれているからです。 + 0 より大きな値でなければいけません。 @@ -67,6 +97,7 @@ 期間の終了日。 + デフォルトでは、結果セットから除外されています。 @@ -74,16 +105,40 @@ isostr - ISO 8601 による繰り返し間隔の指定。 + ISO 8601 repeating interval specification のサブセットを指定します。 + + + PHP がサポートしていない、サブセットの機能の例を以下に示します: + + + + 0回の繰り返し (R0/) + + + + + UTC 以外の時間のオフセット(Z)。 + たとえば +02:00 のようなものです。 + + + options - DatePeriod::EXCLUDE_START_DATE を指定すれば、 - 開始日を期間内の発生日から除外できます。 + 開始日と終了日に関する振る舞いを制御するビットフィールド + + + DatePeriod::EXCLUDE_START_DATE + を指定すると、開始日を期間の結果セットから除外できます。 + + + DatePeriod::INCLUDE_END_DATE + を指定すると、終了日を期間の結果セットに含めることができます。 @@ -91,6 +146,15 @@ + + &reftitle.errors; + + isostr が有効な ISO 8601 の期間としてパースできない場合、 + DateMalformedPeriodStringException をスローします。 + これより前のバージョンでは、Exception がスローされていました。 + + + &reftitle.changelog; @@ -104,19 +168,24 @@ - 5.5.8 + 8.3.0 - end の型が - DateTimeInterface に変わりました。 - これより前のバージョンでは DateTime でした。 + Exception ではなく、 + DateMalformedPeriodStringException + がスローされるようになりました。 - 5.5.0 + 8.2.0 - start の型が - DateTimeInterface に変わりました。 - これより前のバージョンでは、DateTime でした。 + 定数 DatePeriod::INCLUDE_END_DATE + が追加されました。 + + + + 7.2.19, 7.3.6, 7.4.0 + + recurrences は、0 より大きな値が必須になりました。 @@ -149,12 +218,12 @@ $period = new DatePeriod($iso); foreach ($period as $date) { echo $date->format('Y-m-d')."\n"; } -?> ]]> &example.outputs; format('Y-m-d')."\n"; } -?> ]]> &example.outputs; @@ -193,6 +261,42 @@ foreach ($period as $date) { 2012-07-15 2012-07-22 2012-07-29 +]]> + + + + + + 一年間に含まれる、月の最後の木曜日を全て表示する、DatePeriod の例 + +format('l Y-m-d'), "\n"; +} +]]> + + &example.outputs; + + diff --git a/reference/datetime/dateperiod/createfromiso8601string.xml b/reference/datetime/dateperiod/createfromiso8601string.xml new file mode 100644 index 0000000000..23efaaed16 --- /dev/null +++ b/reference/datetime/dateperiod/createfromiso8601string.xml @@ -0,0 +1,169 @@ + + + + + + DatePeriod::createFromISO8601String + ISO8601 形式の文字列から、新しい DatePeriod オブジェクトを作成する + + + + &reftitle.description; + + public static staticDatePeriod::createFromISO8601String + stringspecification + intoptions0 + + + ISO8601 形式の文字列から、specification + の指定に従い、新しい DatePeriod オブジェクトを作成します。 + + + + + &reftitle.parameters; + + + specification + + + ISO 8601 repeating + interval specification のサブセットを指定します。 + + + 有効な ISO8601 形式の期間指定のサンプルとして、 +  R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M + のようなものがあります。これは、以下を指定しています: + + + + + 5 回繰り返す (R5/) + + + + + 2008-03-01T13:00:00Z から開始 + + + + + それぞれの繰り返しは、 + 1 year, 2 months, 10 days, 2 hours, 30 minute の間隔を持つ。 + (/P1Y2M10DT2H30M). + + + + + + ISO8601 形式の期間指定によっては、PHP がサポートしていないものがあります。 + たとえば以下のようなものがあります: + + + + + 繰り返しが0回 (R0/) + + + + + UTC (Z) 以外のタイムオフセット。 + たとえば +02:00 のようなものです。 + + + + + + + options + + + 開始日と、終了日についての振る舞いを制御するのに使うビットフィールドです。 + + + DatePeriod::EXCLUDE_START_DATE + を指定すると、期間内に繰り返される集合から開始日を除外できます。 + + + DatePeriod::INCLUDE_END_DATE + を指定すると、期間内に繰り返される集合に終了日を含めることができます。 + + + + + + + + &reftitle.returnvalues; + + 新しい DatePeriod オブジェクトを作成します。 + + + このメソッドを使って作成された DatePeriod + オブジェクトは、多くの DateTimeImmutable + オブジェクトを生成するイテレータとして使えます。 + + + + + &reftitle.errors; + + specification が、有効な ISO8601 形式の期間として + パースできない場合、DateMalformedPeriodStringException + がスローされます。 + + + + + &reftitle.examples; + + + DatePeriod::createFromISO8601String の例 + +format('Y-m-d'), "\n"; +} +]]> + + &example.outputs; + + + + + + + + + diff --git a/reference/datetime/dateperiod/getdateinterval.xml b/reference/datetime/dateperiod/getdateinterval.xml index c72afee247..8b8a5409d2 100644 --- a/reference/datetime/dateperiod/getdateinterval.xml +++ b/reference/datetime/dateperiod/getdateinterval.xml @@ -1,8 +1,7 @@ - + - DatePeriod::getDateInterval @@ -14,9 +13,9 @@ &reftitle.description; &style.oop; - + public DateIntervalDatePeriod::getDateInterval - + 期間に適用される間隔を表す DateInterval @@ -43,10 +42,9 @@ getDateInterval(); echo $interval->format('%d day'); -?> ]]> &example.outputs; @@ -67,7 +65,6 @@ echo $interval->format('%d day'); - - + @@ -14,12 +14,12 @@ &reftitle.description; &style.oop; - - public DateTimeInterfaceDatePeriod::getEndDate - + + public DateTimeInterfacenullDatePeriod::getEndDate + - 期間の終了日を取得する。 + 期間の終了日を取得します。 @@ -31,20 +31,21 @@ &reftitle.returnvalues; - DatePeriod が終了日を持たない場合は &null; を返す。 + DatePeriod が終了日を持たない場合は &null; を返します。 たとえば、recurrences パラメータや、終了日のない isostr - パラメータを用いて初期化されている場合である。 + パラメータを用いて初期化されている場合です。 DatePeriodDateTimeImmutable - objectend - パラメータに用いて初期化されている場合は DateTimeImmutable - object を返す。 + オブジェクトを end + に指定して初期化されている場合は DateTimeImmutable + オブジェクト を返します。 - それ以外の場合は DateTime object - を返す。 + それ以外の場合は、 + 終了日を表す、コピーされた + DateTime オブジェクトを返します。 @@ -62,7 +63,6 @@ $period = new DatePeriod( ); $start = $period->getEndDate(); echo $start->format(DateTime::ISO8601); -?> ]]> &examples.outputs; @@ -83,7 +83,6 @@ $period = new DatePeriod( 7 ); var_dump($period->getEndDate()); -?> ]]> &example.outputs; @@ -104,7 +103,6 @@ NULL - - + @@ -12,9 +12,9 @@ &reftitle.description; &style.oop; - - public intDatePeriod::getRecurrences - + + public intnullDatePeriod::getRecurrences + 繰り返しの数を取得します。 @@ -29,7 +29,50 @@ &reftitle.returnvalues; - 繰り返しの数を返します。 + DatePeriod のコンストラクタの + $recurrences に明示的に渡すことで設定した + 繰り返しの数を返します。設定されていない場合、&null; を返します。 + + + + + &reftitle.examples; + + + <methodname>DatePeriod::getRecurrences</methodname> が異なる値を返す例 + +getRecurrences(), "\n"; +$period = new DatePeriod($start, $interval, $recurrences); +echo $period->getRecurrences(), "\n"; +$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::INCLUDE_END_DATE); +echo $period->getRecurrences(), "\n\n"; +// コンストラクタで繰り返し回数を設定しない場合 +$period = new DatePeriod($start, $interval, $end); +var_dump($period->getRecurrences()); +$period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE); +var_dump($period->getRecurrences()); +]]> + + &example.outputs; + + + + @@ -41,7 +84,6 @@ - - + - DatePeriod::getStartDate @@ -14,9 +13,9 @@ &reftitle.description; &style.oop; - + public DateTimeInterfaceDatePeriod::getStartDate - + 期間の開始日を取得する。 @@ -48,10 +47,9 @@ getStartDate(); echo $start->format(DateTime::ISO8601); -?> ]]> &example.outputs; @@ -72,7 +70,6 @@ echo $start->format(DateTime::ISO8601); - + + + DateRangeError クラス + DateRangeError + + + + +
+ &reftitle.intro; + + 32ビットプラットフォーム上で、 + 日付オブジェクトが符号付き32ビットの範囲外の日付を表していた場合にスローされます。 + このエラーをスローするのは、 + DateTime::getTimestamp, + DateTimeImmutable::getTimestamp, + date_timestamp_get です。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + DateRangeError + + + + extends + DateError + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + +
+ +
+ &reftitle.seealso; + + DateError + DateObjectError + +
+ +
+ +
+ diff --git a/reference/datetime/datetime.xml b/reference/datetime/datetime.xml index 33c97a8a10..2edb99dc45 100644 --- a/reference/datetime/datetime.xml +++ b/reference/datetime/datetime.xml @@ -1,9 +1,8 @@ - + - - + DateTime クラス DateTime @@ -13,12 +12,26 @@
&reftitle.intro; + + 日付と時刻を表現するクラスです。 + このクラスは、 DateTimeImmutable と同じ振る舞いをします。 但し、DateTime::modify のような、 オブジェクトそのものを変更するメソッドが呼び出された時を除きます。 + + + DateTime クラスのメソッドをコールすると、 + そのインスタンスにカプセル化された情報が変更されます。 + そうした変更を防ぎたい場合には、新しいオブジェクトを作るために + clone 演算子を使わなければいけません。 + オブジェクトの変更を防ぐ、望ましい挙動をデフォルトで実現するには、 + DateTime ではなく、 + DateTimeImmutable を使います。 + +
@@ -26,40 +39,32 @@ &reftitle.classsynopsis; - - DateTime + + + DateTime + + + + implements + DateTimeInterface + - - - - DateTime - - - DateTimeInterface - - - &InheritedConstants; - + &Methods; - - - - - - + + - - - - + + + +
@@ -77,40 +82,25 @@ - 7.2.0 - - DateTime クラスの定数は、 - DateTimeInterface で定義されるようになりました。 - - - - 7.0.0 + 8.4.0 - 定数 DATE_RFC3339_EXTENDED と - DateTime::RFC3339_EXTENDED が追加されました。 + クラス定数が型付けされました。 - 5.5.0 - - DateTimeInterface を実装するようになりました。 - - - - 5.4.24 + 7.2.0 - COOKIE 定数が、RFC 1036 に準拠するように (年を4桁で表すように) なりました。 - 以前のバージョンでは、RFC 850 に従って年を2桁で表していました。 + DateTime クラスの定数は、 + DateTimeInterface で定義されるようになりました。 - 5.2.2 + 7.1.0 - DateTime オブジェクトどうしの - 比較演算子 - による比較が、期待通りに動作するようになりました。 - これより前のバージョンでは、すべての DateTime オブジェクトは - (== による比較で) 等しいと見なされていました。 + DateTime のコンストラクタで構築される値に、 + 現在時刻のマイクロ秒が含まれるようになりました。 + これより前のバージョンでは、このマイクロ秒の情報は常に + 0 で初期化されていました。 @@ -124,8 +114,7 @@ &reference.datetime.entities.datetime; - - + - + DateTime::add date_add - 年月日時分秒の値を DateTime オブジェクトに加える + 年月日時分秒の値を加えることで、DateTime オブジェクトを変更する &reftitle.description; &style.oop; - + public DateTimeDateTime::add DateIntervalinterval &style.procedural; - + DateTimedate_add DateTimeobject DateIntervalinterval + + + 指定した DateInterval オブジェクトを、 指定した DateTime オブジェクトに加えます。 + + + DateTimeImmutable::add と似ていますが、 + DateTime オブジェクトを使って動作します。 + - 指定した DateInterval オブジェクトを、 - 指定した DateTime オブジェクトに加えます。 + 手続き型のバージョンは、 + DateTime + を最初の引数に取ります。 @@ -40,7 +49,7 @@ - DateInterval オブジェクト。 + DateInterval オブジェクト @@ -50,110 +59,18 @@ &reftitle.returnvalues; - &date.datetime.return.modifiedobjectorfalseforfailure; - - - - - &reftitle.examples; - - <function>DateTime::add</function> の例 - &style.oop; - -add(new DateInterval('P10D')); -echo $date->format('Y-m-d') . "\n"; -?> -]]> - - &style.procedural; - - -]]> - - &examples.outputs; - - - - - - <function>DateTime::add</function> の別の例 - -add(new DateInterval('PT10H30S')); -echo $date->format('Y-m-d H:i:s') . "\n"; - -$date = new DateTime('2000-01-01'); -$date->add(new DateInterval('P7Y5M4DT4H3M2S')); -echo $date->format('Y-m-d H:i:s') . "\n"; -?> -]]> - - &example.outputs; - - - - - - 月を加算するときの注意点 - -add($interval); -echo $date->format('Y-m-d') . "\n"; - -$date->add($interval); -echo $date->format('Y-m-d') . "\n"; -?> -]]> - - &example.outputs; - - - - - - - - &reftitle.notes; - - PHP 5.2 では、かわりに - DateTime::modify - を使うことができます。 + &date.datetime.return.modifiedobject; &reftitle.seealso; - DateTime::sub - DateTime::diff - DateTime::modify + DateTimeImmutable::add - - + DateTime::__construct - date_create 新しい DateTime オブジェクトを返す &reftitle.description; - &style.oop; - + public DateTime::__construct stringdatetime"now" - DateTimeZonetimezone&null; + DateTimeZonenulltimezone&null; - &style.procedural; - - DateTimedate_create - stringdatetime"now" - DateTimeZonetimezone&null; - + + DateTimeImmutable::__construct と似ていますが、 + DateTime を用いて動作します。 + DateTimeImmutable を代わりに使うことを検討して下さい。 + 新しい DateTime オブジェクトを返します。 - + &reftitle.parameters; @@ -50,7 +47,7 @@ DateTimeZone オブジェクト。 - $timezone を省略した場合は、 + $timezone を省略した場合、または &null; の場合、 現在のタイムゾーンを使います。 @@ -71,14 +68,16 @@ &reftitle.returnvalues; 新しい DateTime のインスタンスを返します。 - &return.falseforfailure.style.procedural; &reftitle.errors; - エラーがあった場合は Exception を発生させます。 + 無効な日付/時刻の文字列が渡された場合、 + DateMalformedStringException がスローされます。 + PHP 8.3 より前のバージョンでは、 + Exception がスローされていました。 @@ -95,16 +94,12 @@ - 7.1 - マイクロ秒が '00000' ではなく、実際の値で埋められるようになりました。 - - - 5.3.0 + 8.3.0 - datetime が - 日付と時刻の書式 - として無効な場合に、例外がスローされるようになりました。 - これまではエラーが発生していました。 + 無効な文字列が渡された場合、 + Exception ではなく + DateMalformedStringException + がスローされるようになりました。 @@ -113,109 +108,14 @@ - - &reftitle.examples; - - <function>DateTime::__construct</function> の例 - &style.oop; - -getMessage(); - exit(1); -} - -echo $date->format('Y-m-d'); -?> -]]> - - &style.procedural; - - -]]> - - &examples.outputs; - - - - - - <function>DateTime::__construct</function> の複雑な例 - -format('Y-m-d H:i:sP') . "\n"; - -// 指定したタイムゾーンでの日時の指定 -$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru')); -echo $date->format('Y-m-d H:i:sP') . "\n"; - -// そのコンピュータのタイムゾーンでの現在日時 -$date = new DateTime(); -echo $date->format('Y-m-d H:i:sP') . "\n"; - -// 指定したタイムゾーンでの現在日時 -$date = new DateTime(null, new DateTimeZone('Pacific/Nauru')); -echo $date->format('Y-m-d H:i:sP') . "\n"; - -// UNIX タイムスタンプの使用例。結果のタイムゾーンは UTC となることに注意しましょう。 -$date = new DateTime('@946684800'); -echo $date->format('Y-m-d H:i:sP') . "\n"; - -// 存在しない値は繰り上がります -$date = new DateTime('2000-02-30'); -echo $date->format('Y-m-d H:i:sP') . "\n"; -?> -]]> - - &example.outputs.similar; - - - - - - &reftitle.seealso; - DateTime::createFromFormat - DateTimeZone::__construct - 日付と時刻の書式 - date.timezone ini 設定 - date_default_timezone_set - DateTime::getLastErrors - checkdate + DateTimeImmutable::__construct - - + @@ -13,459 +13,97 @@ &reftitle.description; &style.oop; - - public static DateTimeDateTime::createFromFormat + + public static DateTimefalseDateTime::createFromFormat stringformat stringdatetime - DateTimeZonetimezone + DateTimeZonenulltimezone&null; &style.procedural; - - DateTimedate_create_from_format + + DateTimefalsedate_create_from_format stringformat stringdatetime - DateTimeZonetimezone + DateTimeZonenulltimezone&null; 新しい DateTime オブジェクトを返します。 このオブジェクトは、datetime で指定した文字列を format で指定した書式に沿って解釈した時刻を表します。 + + DateTimeImmutable::createFromFormatdate_create_immutable_from_format と似ていますが、 + DateTime オブジェクトを生成します。 + + + このメソッドドキュメントは、パラメータや使用例、注意点も含めて + DateTimeImmutable::createFromFormat のページにあります。 + &reftitle.parameters; - - - format - - - 書式を文字列で渡します。以下の書式オプションを参照ください。 - 大半は、date で使える文字と同じです。 - - - - <parameter>format</parameter> パラメータに渡せる文字 - - - - format 文字 - 説明 - 取りうる値の例 - - - - - - --- - --- - - - d および j - 2桁の日付。先頭のゼロを含むものと含まないもの - - 01 から 31 あるいは - 1 から 31 - - - - D および l - 曜日を表す文字列 - - Mon から Sun あるいは - Sunday から Saturday - - - - S - 日付の後につける英語の接尾辞。二文字。処理中には無視されます。 - - stndrd あるいは - th - - - - z - 年始からの通算日数 (最初は 0) - 0 から 365 - - - - --- - --- - - - F および M - 月を表す文字列。January あるいは Sept など - - January から December あるいは - Jan から Dec - - - - m および n - 月を表す数値。先頭のゼロを含むものと含まないもの - - 01 から 12 あるいは - 1 から 12 - - - - - --- - --- - - - Y - 4 桁の数値で表した年 - 例: 1999 あるいは 2003 - - - y - - 2 桁の数値で表した年 (1970年から2069年の間だとみなされます) - - - 例: - 99 あるいは 03 - (それぞれ、 1999 および - 2003 と見なされます) - - - - 時刻 - --- - --- - - - a および A - 午前および午後 - am あるいは pm - - - g および h - 12 時間制での時間。先頭のゼロを含むものと含まないもの - - 1 から 12 あるいは - 01 から 12 - - - - G and H - 24 時間制での時間。先頭のゼロを含むものと含まないもの - - 0 から 23 あるいは - 00 から 23 - - - - i - 分。先頭のゼロを含む - 00 から 59 - - - s - 秒。先頭のゼロを含む - 00 から 59 - - - v - ミリ秒。(最大 3桁) - 例: 12, 345 - - - u - マイクロ秒 (最大 6 桁) - 例: 45, 654321 - - - タイムゾーン - --- - --- - - - - eO、 - P および T - - タイムゾーン識別子、UTC からの時差 (時間単位)、 - UTC からの時差 (コロン区切りでの時間と分)、そしてタイムゾーンの短縮形 - 例: UTCGMT、 - Atlantic/Azores、 - +0200+02:00、 - ESTMDT - - - - 完全な日付/時刻 - --- - --- - - - U - Unix エポック (January 1 1970 00:00:00 GMT) からの経過秒数 - 例: 1292177455 - - - 空白および区切り - --- - --- - - - (空白) - 空白 1 文字あるいはタブ 1 文字 - 例: - - - # - - 次の区切り文字のいずれか: ;, - :, /, ., - ,, -, (, - ) - - 例: / - - - - ;, - :, /, ., - ,, -, (, - ) - - 指定した文字 - 例: - - - - ? - ランダムなバイト - 例: ^ (UTF-8 文字の場合は複数の - ? が必要になるでしょう。この場合、おそらく - * を使うと要望が満たせるはずです) - - - * - 次の区切り文字あるいは数字までのランダムなバイト列 - 例: Y-*-d の中の * - は、文字列 2009-aWord-08 の中の - aWord にマッチします - - - ! - すべてのフィールド (年、月、日、時、分、秒、マイクロ秒およびタイムゾーン情報) - を Unix エポックにリセットする - ! がなければ、すべてのフィールドは現在の日時に設定されます。 - - - | - まだパースされていないすべてのフィールド (年、月、日、時、分、秒、マイクロ秒およびタイムゾーン情報) - を Unix エポックにリセットする - Y-m-d| は、文字列をパースした結果から年月日を設定し - 時分秒には 0 を設定します。 - - - + - この文字があると、文字列のそれ以降のデータではエラーが発生せず、 - かわりに警告を発生させる - それ以降のデータが存在したかどうかを調べるには DateTime::getLastErrors - を使います。 - - - -
-
- - 書式文字列の中に解釈不能な文字が含まれていると処理は失敗し、 - 返り値にはエラーメッセージが付加されます。エラーメッセージを調べるには - DateTime::getLastErrors を使います。 - - - format にリテラル文字を含めるには、 - バックスラッシュ (\) でエスケープする必要があります。 - - - format に文字 - ! が含まれない場合は、作成した時刻値のうち - format で指定されていない部分を - 現在のシステム時刻で初期化します。 - - - format に文字 - ! が含まれる場合は、作成した時刻値のうち - format で指定されていない部分と - ! の左側の部分を - Unix エポックの対応する箇所の値で初期化します。 - - - Unix エポックは 1970-01-01 00:00:00 です。 - -
-
- - datetime - - - 時刻を表す文字列。 - - - - - timezone - - - 指定したいタイムゾーンを表す - DateTimeZone オブジェクト。 - - - timezone を省略し、かつ - datetime にタイムゾーンが含まれない場合は、 - 現在のタイムゾーンを使います。 - - - - datetime パラメータが UNIX タイムスタンプ - (例: 946684800) だったり、タイムゾーンを含んでいたり - (例: 2010-01-28T15:00:00+02:00) - する場合は、 - timezone パラメータや現在のタイムゾーンは無視します。 - - - - -
+ + DateTimeImmutable::createFromFormat も参照ください。 +
&reftitle.returnvalues; - 新しい DateTime のインスタンス、&return.falseforfailure;。 + 新しい DateTime のインスタンスを返します。&return.falseforfailure;。 - - &reftitle.changelog; + + &reftitle.errors; - - - - - &Version; - &Description; - - - - - 7.3.0 - - 書式文字列 v が追加されました。 - - - - 5.3.9 - - 書式文字列 + が追加されました。 - - - - - + datetime に NULLバイトが含まれている場合は、 + ValueError がスローされます。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.21, 8.1.8, 8.2.0 + + datetime に NULLバイトが含まれている場合は、 + ValueError がスローされるようになりました。 + これより前のバージョンでは、こうした値は静かに無視されていました。 + + + + + + + &reftitle.examples; - - <function>DateTime::createFromFormat</function> の例 - &style.oop; - -format('Y-m-d'); -?> -]]> - - &style.procedural; - - -]]> - - &examples.outputs; - - - - - - <function>DateTime::createFromFormat</function> の複雑な例 - -format('Y-m-d H:i:s') . "\n"; - -$format = 'Y-m-d H:i:s'; -$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17'); -echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n"; - -$format = 'Y-m-!d H:i:s'; -$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17'); -echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n"; - -$format = '!d'; -$date = DateTime::createFromFormat($format, '15'); -echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n"; -?> -]]> - - &example.outputs.similar; - - - - - - リテラル文字を含む書式文字列 - -format('H:i:s'); -?> -]]> - - &example.outputs.similar; - - - - + + 豊富な例が、DateTimeImmutable::createFromFormat のページにあるので参照ください。 + &reftitle.seealso; - DateTime::__construct - DateTime::getLastErrors - checkdate - strptime + DateTimeImmutable::createFromFormat
- - - + DateTime::createFromImmutable - 与えられた DateTimeImmutable オブジェクトをカプセル化した、新しい DateTime オブジェクトを返す + 与えられた DateTimeImmutable オブジェクトをカプセル化した、新しい DateTime のインスタンスを返す &reftitle.description; - - public static DateTimeDateTime::createFromImmutable + + public static staticDateTime::createFromImmutable DateTimeImmutableobject @@ -28,7 +27,7 @@ DateTimeImmutable オブジェクト。 このオブジェクトは変更されませんが、 代わりに同じ日付、時刻、タイムゾーンの情報を含んだ - 新しい DateTime オブジェクトが作られます。 + 新しい DateTime のインスタンスが作られます。 @@ -36,32 +35,56 @@ + + &reftitle.returnvalues; + + 新しい DateTime インスタンスを返します。 + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.0.0 + + このメソッドは、現在呼び出されたクラスのインスタンスを返すようになりました。 + これより前のバージョンでは、 + 新しい DateTime のインスタンスを生成していました。 + + + + + + + + &reftitle.examples; 変更可能な日付オブジェクトを作る - + ]]> - - &reftitle.returnvalues; - - 新しい DateTime インスタンスを返します。 - - - + + + + DateTime::createFromInterface + 指定された DateTimeInterface オブジェクトをカプセル化した、新しい DateTime オブジェクトを返す + + + + &reftitle.description; + + public static DateTimeDateTime::createFromInterface + DateTimeInterfaceobject + + + + + &reftitle.parameters; + + + + object + + + 変更可能なバージョンに変換する DateTimeInterface オブジェクト。 + このオブジェクトは変更されませんが、 + 同じ日付、時刻、タイムゾーンの情報が入った新しい + DateTime オブジェクトが作成されます。 + + + + + + + + + &reftitle.returnvalues; + + 新しいDateTime クラスのインスタンスを返します。 + + + + + &reftitle.examples; + + + 変更可能な DateTime オブジェクトを作る + + + + + + + + diff --git a/reference/datetime/datetime/getlasterrors.xml b/reference/datetime/datetime/getlasterrors.xml index 993385a9e3..23a4115a63 100644 --- a/reference/datetime/datetime/getlasterrors.xml +++ b/reference/datetime/datetime/getlasterrors.xml @@ -1,100 +1,20 @@ - - + DateTime::getLastErrors - date_get_last_errors - 警告およびエラーを返す + DateTimeImmutable::getLastErrors &Alias; &reftitle.description; - &style.oop; - - public static arrayDateTime::getLastErrors - - - &style.procedural; - - arraydate_get_last_errors - - - - 日付/時刻文字列のパース時に見つかった警告やエラーの配列を返します。 - - - - - &reftitle.parameters; - &no.function.parameters; - - - - &reftitle.returnvalues; - 警告やエラーに関する情報を含む配列を返します。 + &info.function.alias; DateTimeImmutable::getLastErrors - - - &reftitle.examples; - - <function>DateTime::getLastErrors</function> の例 - &style.oop; - -getMessage(); -} -?> -]]> - - &style.procedural; - - -]]> - - &example.outputs; - - 1 - [warnings] => Array - ( - [6] => Double timezone specification - ) - - [error_count] => 1 - [errors] => Array - ( - [0] => The timezone could not be found in the database - ) - -) -]]> - - - この出力のインデックス 6 と 0 は、エラーが発生した文字列内での文字の位置を表します。 - - - - + - - + @@ -13,13 +13,13 @@ &reftitle.description; &style.oop; - + public DateTimeDateTime::modify stringmodifier &style.procedural; - - DateTimedate_modify + + DateTimefalsedate_modify DateTimeobject stringmodifier @@ -45,7 +45,18 @@ &reftitle.returnvalues; - &date.datetime.return.modifiedobjectorfalseforfailure; + 成功した場合は DateTime を返します。 + &return.falseforfailure.style.procedural; + + + + + &reftitle.errors; + + オブジェクト指向のAPIのみ、 + 無効な日付/時刻の文字列が渡された場合に + DateMalformedStringException + がスローされます。 @@ -61,13 +72,17 @@ - 5.3.6 + 8.3.0 - 日付/時刻の絶対指定も効果を及ぼすようになりました。 - これまでは、相対指定部分だけを用いていました。 + 無効な文字列が渡された場合、 + DateInterval::createFromDateString + は DateMalformedStringException + をスローするようになりました。 + これより前のバージョンでは、 + 警告が発生して false を返していました。 + date_modify は変更されていません。 - &date.datetime.retval.changelog; @@ -84,9 +99,14 @@ $date = new DateTime('2006-12-12'); $date->modify('+1 day'); echo $date->format('Y-m-d'); -?> ]]> + &example.outputs; + + + &style.procedural; format('Y-m-d'); $date = date_create('2006-12-12'); date_modify($date, '+1 day'); echo date_format($date, 'Y-m-d'); -?> ]]> - &examples.outputs; + &example.outputs; format('Y-m-d') . "\n"; $date->modify('+1 month'); echo $date->format('Y-m-d') . "\n"; -?> ]]> &example.outputs; @@ -124,6 +142,32 @@ echo $date->format('Y-m-d') . "\n"; + + + + 全ての日付と時刻のフォーマットがサポートされています + +modify('July 1st, 2023'); +echo $date->format('Y-m-d H:i') . "\n"; + +$date->modify('Monday next week'); +echo $date->format('Y-m-d H:i') . "\n"; + +$date->modify('17:30'); +echo $date->format('Y-m-d H:i') . "\n"; +]]> + + &example.outputs; + + @@ -133,6 +177,7 @@ echo $date->format('Y-m-d') . "\n"; &reftitle.seealso; strtotime + DateTimeImmutable::modify DateTime::add DateTime::sub DateTime::setDate @@ -143,7 +188,6 @@ echo $date->format('Y-m-d') . "\n"; - - + @@ -10,12 +10,16 @@ &reftitle.description; - + public static DateTimeDateTime::__set_state arrayarray - __set_state() を処理します。 + __set_state() ハンドラを処理します。 + + + DateTimeImmutable::__set_state に似ていますが、 + DateTime を使って動作します。 @@ -41,7 +45,6 @@ - - + + @@ -12,14 +13,14 @@ &reftitle.description; &style.oop; - + public DateTimeDateTime::setDate intyear intmonth intday &style.procedural; - + DateTimedate_date_set DateTimeobject intyear @@ -29,6 +30,15 @@ DateTime オブジェクトの現在の日付をリセットし、別の日付にします。 + + DateTimeImmutable::setDate に似ていますが、 + DateTime を用いて動作し、 + 既存のオブジェクトを変更します。 + + + 手続き型のバージョンは、 + DateTime オブジェクトを最初の引数として取ります。 + @@ -65,97 +75,18 @@ &reftitle.returnvalues; - &date.datetime.return.modifiedobjectorfalseforfailure; + &date.datetime.return.modifiedobject; - - &reftitle.changelog; - - - - - &Version; - &Description; - - - - &date.datetime.retval.changelog; - - - - - - - &reftitle.examples; - - <function>DateTime::setDate</function> の例 - &style.oop; - -setDate(2001, 2, 3); -echo $date->format('Y-m-d'); -?> -]]> - - &style.procedural; - - -]]> - - &examples.outputs; - - - - - - 範囲を超えた値が親の値に加算される例 - -setDate(2001, 2, 28); -echo $date->format('Y-m-d') . "\n"; - -$date->setDate(2001, 2, 29); -echo $date->format('Y-m-d') . "\n"; - -$date->setDate(2001, 14, 3); -echo $date->format('Y-m-d') . "\n"; -?> -]]> - - &example.outputs; - - - - - - &reftitle.seealso; - DateTime::setISODate - DateTime::setTime + DateTimeImmutable::setDate - - + DateTime::setISODate date_isodate_set - ISO 日付を設定する + ISO 形式の日付を設定する &reftitle.description; &style.oop; - + public DateTimeDateTime::setISODate intyear intweek intdayOfWeek1 &style.procedural; - + DateTimedate_isodate_set DateTimeobject intyear @@ -28,7 +28,15 @@ intdayOfWeek1 - ISO 8601 標準形式、つまり週と日オフセットで日付を設定します。 + ISO 8601 標準形式、つまり特定の日付ではなく、週と日のオフセットで日付を設定します。 + + + DateTimeImmutable::setISODate に似ていますが、 + DateTime を使って動作します。 + + + 手続き型のバージョンは、 + DateTime オブジェクトを最初の引数に取ります。 @@ -66,124 +74,18 @@ &reftitle.returnvalues; - &date.datetime.return.modifiedobjectorfalseforfailure; + &date.datetime.return.modifiedobject; - - &reftitle.changelog; - - - - - &Version; - &Description; - - - - &date.datetime.retval.changelog; - - - - - - - &reftitle.examples; - - <function>DateTime::setISODate</function> の例 - &style.oop; - -setISODate(2008, 2); -echo $date->format('Y-m-d') . "\n"; - -$date->setISODate(2008, 2, 7); -echo $date->format('Y-m-d') . "\n"; -?> -]]> - - &style.procedural; - - -]]> - - &examples.outputs; - - - - - - 範囲を超えた値が親の値に加算される例 - -setISODate(2008, 2, 7); -echo $date->format('Y-m-d') . "\n"; - -$date->setISODate(2008, 2, 8); -echo $date->format('Y-m-d') . "\n"; - -$date->setISODate(2008, 53, 7); -echo $date->format('Y-m-d') . "\n"; -?> -]]> - - &example.outputs; - - - - - - その週が存在する月を探す例 - -setISODate(2008, 14); -echo $date->format('n'); -?> -]]> - - &examples.outputs; - - - - - - &reftitle.seealso; - DateTime::setDate - DateTime::setTime + DateTimeImmutable::setISODate - - + @@ -13,7 +13,7 @@ &reftitle.description; &style.oop; - + public DateTimeDateTime::setTime inthour intminute @@ -21,7 +21,7 @@ intmicrosecond0 &style.procedural; - + DateTimedate_time_set DateTimeobject inthour @@ -32,6 +32,14 @@ DateTime オブジェクトの現在時刻を別の時刻にリセットします。 + + DateTimeImmutable::setTime に似ていますが、 + DateTime を使って動作します。 + + + 手続き型のバージョンは、 + DateTime オブジェクトを最初の引数として取ります。 + @@ -76,7 +84,7 @@ &reftitle.returnvalues; - &date.datetime.return.modifiedobjectorfalseforfailure; + &date.datetime.return.modifiedobject; @@ -91,99 +99,32 @@ + + 8.1.0 + + (夏時間遷移のフォールバック期間中に) 二重に存在する hour + に関する振る舞いが変更されました。 + これより前のバージョンでは、 + (夏時間遷移が起こる前の)最初の hour ではなく、 + (夏時間遷移が起きた後の)二番目の hour を取得していました。 + + 7.1.0 - microsecond パラメータが追加されました。 + パラメータ microsecond が追加されました。 - &date.datetime.retval.changelog; - - &reftitle.examples; - - <function>DateTime::setTime</function> の例 - &style.oop; - -setTime(14, 55); -echo $date->format('Y-m-d H:i:s') . "\n"; - -$date->setTime(14, 55, 24); -echo $date->format('Y-m-d H:i:s') . "\n"; -?> -]]> - - &style.procedural; - - -]]> - - &examples.outputs.similar; - - - - - - 範囲を超えた値が親の値に加算される例 - -setTime(14, 55, 24); -echo $date->format('Y-m-d H:i:s') . "\n"; - -$date->setTime(14, 55, 65); -echo $date->format('Y-m-d H:i:s') . "\n"; - -$date->setTime(14, 65, 24); -echo $date->format('Y-m-d H:i:s') . "\n"; - -$date->setTime(25, 55, 24); -echo $date->format('Y-m-d H:i:s') . "\n"; -?> -]]> - - &example.outputs; - - - - - - &reftitle.seealso; - DateTime::setDate - DateTime::setISODate + DateTimeImmutable::setTime - - - + @@ -13,12 +13,12 @@ &reftitle.description; &style.oop; - + public DateTimeDateTime::setTimestamp inttimestamp &style.procedural; - + DateTimedate_timestamp_set DateTimeobject inttimestamp @@ -26,6 +26,14 @@ Unix タイムスタンプを用いて日付と時刻を設定します。 + + DateTimeImmutable::setTimestamp に似ていますが、 + DateTime を使って動作します。 + + + 手続き型のバージョンは、 + DateTime オブジェクトを最初の引数に取ります。 + @@ -36,7 +44,10 @@ timestamp - Unix タイムスタンプ。 + 日付を表す Unix タイムスタンプ。 + DateTimeImmutable::modify を + @ フォーマットと共に使うと、 + 数値型の範囲外のタイムスタンプを設定できます。 @@ -46,86 +57,17 @@ &reftitle.returnvalues; - &date.datetime.return.modifiedobjectorfalseforfailure; - - - - - &reftitle.examples; - - <function>DateTime::setTimestamp</function> の例 - &style.oop; - -format('U = Y-m-d H:i:s') . "\n"; - -$date->setTimestamp(1171502725); -echo $date->format('U = Y-m-d H:i:s') . "\n"; -?> -]]> - - &style.procedural; - - -]]> - - &examples.outputs.similar; - - - - - - - - &reftitle.notes; - - PHP 5.2 を使っている場合は、 - Unix タイムスタンプ形式を使って新しい DateTime オブジェクトを作る方法もあります。 - 以下の例を参照ください。 + &date.datetime.return.modifiedobject; - - - PHP 5.2 における <function>DateTime::setTimestamp</function> のもうひとつの方法 - - -format('U = Y-m-d H:i:s') . "\n"; -?> -]]> - - &example.outputs.similar; - - - - &reftitle.seealso; - DateTime::getTimestamp + DateTimeImmutable::setTimestamp - - - + + @@ -12,12 +13,12 @@ &reftitle.description; &style.oop; - + public DateTimeDateTime::setTimezone DateTimeZonetimezone &style.procedural; - + DateTimedate_timezone_set DateTimeobject DateTimeZonetimezone @@ -25,6 +26,15 @@ 新しいタイムゾーンを DateTime オブジェクトに設定します。 + + DateTimeImmutable::setTimezone に似ていますが、 + DateTime を使って動作します。 + + + 手続き型のバージョンは、 + DateTime + オブジェクトを最初の引数に取ります。 + @@ -46,27 +56,12 @@ &reftitle.returnvalues; - &date.datetime.return.modifiedobjectorfalseforfailure; + メソッドをチェインできるようにするため、 + DateTime オブジェクトを返します。 + このメソッドをコールした際に指していた時刻は変わりません。 - - &reftitle.changelog; - - - - - &Version; - &Description; - - - - &date.datetime.retval.changelog; - - - - - &reftitle.examples; @@ -80,9 +75,15 @@ echo $date->format('Y-m-d H:i:sP') . "\n"; $date->setTimezone(new DateTimeZone('Pacific/Chatham')); echo $date->format('Y-m-d H:i:sP') . "\n"; -?> ]]> + &example.outputs; + + + &style.procedural; ]]> - &examples.outputs; + &example.outputs; &reftitle.seealso; + DateTimeImmutable::setTimezone DateTime::getTimezone DateTimeZone::__construct - - - + DateTime::sub @@ -14,19 +13,27 @@ &reftitle.description; &style.oop; - + public DateTimeDateTime::sub DateIntervalinterval &style.procedural; - + DateTimedate_sub DateTimeobject DateIntervalinterval - 指定した DateInterval オブジェクトを、 - 指定した DateTime オブジェクトから引きます。 + 指定した DateInterval オブジェクトを引くことで、 + 指定した DateTime オブジェクトを変更します。 + + + DateTimeImmutable::sub に似ていますが、 + DateTime を使って動作します。 + + + 手続き型のバージョンは、 + DateTime オブジェクトを最初の引数に取ります。 @@ -50,110 +57,53 @@ &reftitle.returnvalues; - &date.datetime.return.modifiedobjectorfalseforfailure; + &date.datetime.return.modifiedobject; - - &reftitle.examples; - - <function>DateTime::sub</function> の例 - &style.oop; - -sub(new DateInterval('P10D')); -echo $date->format('Y-m-d') . "\n"; -?> -]]> - - &style.procedural; - - -]]> - - &examples.outputs; - - - - - - <function>DateTime::sub</function> の別の例 - -sub(new DateInterval('PT10H30S')); -echo $date->format('Y-m-d H:i:s') . "\n"; - -$date = new DateTime('2000-01-20'); -$date->sub(new DateInterval('P7Y5M4DT4H3M2S')); -echo $date->format('Y-m-d H:i:s') . "\n"; -?> -]]> - - &example.outputs; - - - - - - 月を減算するときの注意点 - -sub($interval); -echo $date->format('Y-m-d') . "\n"; - -$date->sub($interval); -echo $date->format('Y-m-d') . "\n"; -?> -]]> - - &example.outputs; - - - - - - - - &reftitle.notes; + + &reftitle.errors; - PHP 5.2 では、かわりに - DateTime::modify - を使うことができます。 + オブジェクト指向のAPIのみ、 + サポートされていない操作を試みた場合に + DateInvalidOperationException がスローされます。 + サポートされていない操作の例としては、 + next weekday のような相対時刻を表現する + DateInterval を使った場合が挙げられます。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + サポートされていない操作を試みた場合に、警告を発生させるのではなく、 + DateInvalidOperationException がスローされるようになりました。 + date_sub は変更されていません。 + + + + + + + &reftitle.seealso; - DateTime::add - DateTime::diff - DateTime::modify + DateTimeImmutable::sub - - - + - - + DateTimeImmutable クラス DateTimeImmutable @@ -16,6 +15,13 @@ 日付と時刻を表現します。 + + このクラスは + DateTime と同じ振る舞いをします。 + 但し、DateTime::modify + のような、 + 状態を変更して新しいオブジェクトを返すメソッドが呼び出された時を除きます。 +
@@ -23,40 +29,73 @@ &reftitle.classsynopsis; - - DateTimeImmutable + + + DateTimeImmutable + + + + implements + DateTimeInterface + - - - - DateTimeImmutable - - - - DateTimeInterface - - - &InheritedConstants; - + &Methods; - - - + + + + + + + + +
+
+ &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.4.0 + + クラス定数が型付けされました。 + + + + 7.1.0 + + DateTimeImmutable のコンストラクタで構築される値に、 + 現在時刻のマイクロ秒が含まれるようになりました。 + これより前のバージョンでは、このマイクロ秒の情報は常に + 0 で初期化されていました。 + + + + + + +
&reference.datetime.entities.datetimeimmutable; - - + - + DateTimeImmutable::add - 年月日時分秒の値を加える + 年月日時分秒の値を加え、新しいオブジェクトを返す &reftitle.description; - + + #[\NoDiscard] public DateTimeImmutableDateTimeImmutable::add DateIntervalinterval - DateTime::add と似ていますが、 - DateTimeImmutable で動作します。 + 新しい DateTimeImmutable オブジェクトを作成し、 + 指定された DateInterval をこれに加え、 + 新しい値を返します。 - + + &reftitle.parameters; + + + + interval + + + + DateInterval オブジェクト。 + + + + + + + + &reftitle.returnvalues; + + &date.datetimeimmutable.return.modifiedobject; + + + + + &reftitle.examples; + + <function>DateTimeImmutable::add</function> の例 + &style.oop; + +add(new DateInterval('P10D')); +echo $newDate->format('Y-m-d') . "\n"; +?> +]]> + + + + + <function>DateTimeImmutable::add</function> の高度な例 + +add(new DateInterval('PT10H30S')); +echo $newDate->format('Y-m-d H:i:s') . "\n"; +$date = new DateTimeImmutable('2000-01-01'); +$newDate = $date->add(new DateInterval('P7Y5M4DT4H3M2S')); +echo $newDate->format('Y-m-d H:i:s') . "\n"; +?> +]]> + + &example.outputs; + + + + + + + 月を足す場合は注意 + +add($interval); +echo $newDate1->format('Y-m-d') . "\n"; + +$newDate2 = $newDate1->add($interval); +echo $newDate2->format('Y-m-d') . "\n"; +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + DateTimeImmutable::sub + DateTimeImmutable::diff + DateTimeImmutable::modify + + + - + @@ -13,25 +13,252 @@ &reftitle.description; &style.oop; - + public DateTimeImmutable::__construct stringdatetime"now" - DateTimeZonetimezone&null; + DateTimeZonenulltimezone&null; &style.procedural; - - DateTimeImmutabledate_create_immutable + + DateTimeImmutablefalsedate_create_immutable stringdatetime"now" - DateTimeZonetimezone&null; + DateTimeZonenulltimezone&null; - DateTime::__construct と似ていますが、 - DateTimeImmutable で動作します。 + 新しい DateTimeImmutable オブジェクトを返します。 - + + &reftitle.parameters; + + + datetime + + &date.formats.parameter; + + ここに "now" を指定して + $timezone パラメータを使うと、現在時刻を取得できます。 + + + + + timezone + + + $datetime のタイムゾーンを表す + DateTimeZone オブジェクト。 + + + $timezone を省略した場合、 + または &null; の場合、 + 現在のタイムゾーンを使います。 + + + + $datetime パラメータが UNIX タイムスタンプ + (@946684800 など) + であったりタイムゾーン付きで指定した場合 + (2010-01-28T15:00:00+02:00 や + 2010-07-05T06:00:00Z など) は、 + $timezone パラメータや現在のタイムゾーンは無視されます。 + + + + + + + + + &reftitle.returnvalues; + + 新しい DateTimeImmutable のインスタンスを返します。 + + + + + &reftitle.errors; + + 無効な日付/時刻の文字列が渡された場合、 + DateMalformedStringException がスローされます。 + PHP 8.3 より前のバージョンでは、 + Exception がスローされていました。 + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.3.0 + + 無効な文字列が渡された場合、 + Exception ではなく + DateMalformedStringException + がスローされるようになりました。 + + + + 7.1.0 + + マイクロ秒が '00000' ではなく、実際の値で埋められるようになりました。 + + + + + + + + + + &reftitle.examples; + + <function>DateTimeImmutable::__construct</function> の例 + &style.oop; + +getMessage(); + exit(1); +} +echo $date->format('Y-m-d'); +]]> + + &example.outputs; + + + + &style.procedural; + + + + &example.outputs; + + + + + + <function>DateTimeImmutable::__construct</function> の複雑な例 + +format('Y-m-d H:i:sP') . "\n"; + +// 指定したタイムゾーンでの日時の指定 +$date = new DateTimeImmutable('2000-01-01', new DateTimeZone('Pacific/Nauru')); +echo $date->format('Y-m-d H:i:sP') . "\n"; + +// PHP のデフォルトのタイムゾーンでの現在日時 +$date = new DateTimeImmutable(); +echo $date->format('Y-m-d H:i:sP') . "\n"; + +// 指定したタイムゾーンでの現在日時 +$date = new DateTimeImmutable('now', new DateTimeZone('Pacific/Nauru')); +echo $date->format('Y-m-d H:i:sP') . "\n"; + +// UNIX タイムスタンプの使用例。結果のタイムゾーンは UTC となることに注意しましょう。 +$date = new DateTimeImmutable('@946684800'); +echo $date->format('Y-m-d H:i:sP') . "\n"; + +// 存在しない値は繰り上がります +$date = new DateTimeImmutable('2000-02-30'); +echo $date->format('Y-m-d H:i:sP') . "\n"; +]]> + + &example.outputs.similar; + + + + + + 繰り上がった日付は、 + DateTimeImmutable::getLastErrors + の警告をチェックすることで検知できます。 + + + + + + 関連付けられたタイムゾーンを変更する + +setTimezone($timeZone); + +echo $time->format('Y/m/d H:i:s e'), "\n"; +]]> + + &example.outputs.similar; + + + + + + + 相対日付/時刻 の文字列を使う + +format('Y/m/d H:i:s'), "\n"; +]]> + + &example.outputs.similar; + + + + + + + - + @@ -8,33 +8,786 @@ DateTimeImmutable::createFromFormat date_create_immutable_from_format 時刻の文字列を指定されたフォーマットに従ってパースする - &reftitle.description; &style.oop; - - public static DateTimeImmutableDateTimeImmutable::createFromFormat + + public static DateTimeImmutablefalseDateTimeImmutable::createFromFormat stringformat stringdatetime - DateTimeZonetimezone + DateTimeZonenulltimezone&null; &style.procedural; - - DateTimeImmutabledate_create_immutable_from_format + + DateTimeImmutablefalsedate_create_immutable_from_format stringformat stringdatetime - DateTimeZonetimezone + DateTimeZonenulltimezone&null; - DateTime::createFromFormat と似ていますが、 - DateTimeImmutable で動作します。 + 新しい DateTimeImmutable オブジェクトを返します。 + このオブジェクトは、datetime で指定した文字列を + format で指定した書式に沿って解釈した時刻を表します。 - + + &reftitle.parameters; + + + format + + + 書式を文字列で渡します。以下の書式オプションを参照ください。 + 大半は、date で使える文字と同じです。 + + + 全てのフィールドは現在の日付/時刻で初期化されます。 + ほとんどの場合、これらの値を "ゼロ" (Unix タイムのエポック + 1970-01-01 00:00:00 UTC) でリセットしたいはずです。 + これは、format の最初の文字に + ! を入れるか、 + 最後の文字に | を入れることで実現できます。 + 詳細な情報は、以下で示すそれぞれの文字に関するドキュメントを参照ください。 + + + フォーマットの解釈は左から右に行われます。 + これは、フォーマット文字が現れる順番が結果に影響する場合があるということです。 + たとえば z(1年における何番目の日か) の場合、 + Yy + を使って年が既にパースされた後に使わなければなりません。 + + + 数値の解釈に使われる文字については、広範な値が許されています。 + これには、論理的に許される範囲以上のものも含みます。 + たとえば、d (ある月における何番目の日か) の場合、 + 00 から 99 + までの値が許されています。これに対する唯一の制約は、桁数のみです。 + 範囲外の値が指定された場合、 + 日付/時刻のパーサーのオーバーフローの仕組みが使われます。 + オーバーフローのふるまいについては、 + 後にいくつかのサンプルを示します。 + + + データは、フォーマット文字に従って貪欲にパースされます。 + つまり、そのフォーマットが許している最大の長さまで読みこまれます。 + これによって、次のフォーマット文字に十分な文字数が datetime にもう残っていないことがありえます。 + このことが引き起こす問題については、このページのサンプルでも触れます。 + + + + <parameter>format</parameter> パラメータに渡せる文字 + + + + format 文字 + 説明 + 取りうる値の例 + + + + + + --- + --- + + + d および j + 2桁の日付。先頭のゼロを含むものと含まないもの + + 01 から 31 あるいは + 1 から 31 + (その月の日数分以上の2桁の数値も指定可能ですが、 + その月はオーバーフローします。 + たとえば January において 33 を指定した場合、 + February 2nd という意味になります) + + + + D および l + 曜日を表す文字列 + + Mon から Sun あるいは + Sunday から Saturday。 + 指定された曜日が、パースされた(またはデフォルトの)日付と異なっていた場合、 + 指定された曜日の 次の + 日にオーバーフローします。詳細は後に示すサンプルを参照ください。 + + + + S + 日付の後につける英語の接尾辞。二文字。処理中には無視されます。 + + stndrd あるいは + th + + + + z + + 年始からの通算日数 (最初は 0)。 + Y または y + の後に続けて置かなければいけません。 + + + 0 から 365 + (1年の日数分以上の3桁の数値も指定可能ですが、 + その年はオーバーフローします。 + たとえば 2022年において 366 + を指定した場合は、 + January 2nd, 2023 という意味になります) + + + + + --- + --- + + + F および M + 月を表す文字列。January あるいは Sept など + + January から December あるいは + Jan から Dec + + + + m および n + 月を表す数値。先頭のゼロを含むものと含まないもの + + 01 から 12 あるいは + 1 から 12 + (12 以上の2桁の数値も指定可能ですが、 + その年についてはオーバーフローします。 + たとえば 13 の場合は、 + 翌年の1月という意味になります) + + + + + --- + --- + + + X および x + 年の数値表現。19桁まで指定可能。オプションで +- を先頭に指定可能です。 + 例: 0055, 787, + 1999, -2003, + +10191 + + + Y + 4 桁までの数値で表した年 + 例: 25 (0025 と同じ), + 787, 1999, 2003 + + + y + + 2 桁の数値で表した年 (1970年から2069年の間だとみなされます) + + + 例: + 99 あるいは 03 + (それぞれ、 1999 および + 2003 と見なされます) + + + + 時刻 + --- + --- + + + a および A + 午前および午後 + am あるいは pm + + + g および h + 12 時間制での時間。先頭のゼロを含むものと含まないもの + + 1 から 12 あるいは + 01 から 12 + (12 以上の2桁の数値も指定可能ですが、 + 日の指定がオーバーフローします。 + たとえば 14 の場合は、 + 次の午前/午後の 02 時という意味になります) + + + + G および H + 24 時間制での時間。先頭のゼロを含むものと含まないもの + + 0 から 23、あるいは + 00 から 23 + (24 より大きな、2桁の値も指定可能ですが、 + この場合、日の指定がオーバーフローします。 + たとえば、26 は翌日の + 02:00 という意味になります) + + + + i + 分。先頭のゼロを含む + + 00 から 59 + (59 以上の2桁の数値も指定可能ですが、 + 次の1時間にオーバーフローします。 + たとえば 66 の場合は、 + 次の1時間の :06 という意味になります) + + + + s + 秒。先頭のゼロを含む + + 00 から 59 + (59 以上の2桁の数値も指定可能ですが、 + 次の分にオーバーフローします。 + たとえば 90 の場合は、 + 次の分の :30 という意味になります) + + + + v + ミリ秒 (最大 3桁) + 例: 12 (0.12 + 秒という意味), 345 (0.345 秒という意味) + + + u + マイクロ秒 (最大 6 桁) + 例: 45 (0.45 + 秒という意味), 654321 (0.654321 秒という意味) + + + タイムゾーン + --- + --- + + + + e, O, p, + P および T + + タイムゾーン識別子、UTC からの時差 (時間単位)、 + UTC からの時差 (コロン区切りでの時間と分)、そしてタイムゾーンの短縮形 + 例: UTCGMT、 + Atlantic/Azores、 + +0200+02:00、 + ESTMDT + + + + 完全な日付/時刻 + --- + --- + + + U + Unix エポック (January 1 1970 00:00:00 GMT) からの経過秒数 + 例: 1292177455 + + + 空白および区切り + --- + --- + + + (空白) + ゼロ文字以上のスペース、タブ、NBSP(U+A0)、NNBSP(U+202F) + 例: "\t", " " + + + # + + 次の区切り文字のいずれか: ;, + :, /, ., + ,, -, (, + ) + + 例: / + + + + ;, + :, /, ., + ,, -, (, + ) + + 指定した文字 + 例: - + + + ? + ランダムなバイト + 例: ^ (UTF-8 文字の場合は複数の + ? が必要になるでしょう。この場合、おそらく + * を使うと要望が満たせるはずです) + + + * + 次の区切り文字あるいは数字までのランダムなバイト列 + 例: Y-*-d の中の * + は、文字列 2009-aWord-08 の中の + aWord にマッチします + + + ! + + すべてのフィールド + (年、月、日、時、分、秒、マイクロ秒およびタイムゾーン情報) + を ゼロ相当の値 + (時、分、秒、マイクロ秒については 0。 + 月、日については 1。 + 年については 1970。 + タイムゾーンについては UTC) + にリセットします。 + + ! がなければ、すべてのフィールドは現在の日時に設定されます。 + + + | + まだパースされていないすべてのフィールド (年、月、日、時、分、秒、マイクロ秒およびタイムゾーン情報) + を ゼロ相当の値にリセットします。 + Y-m-d| は、文字列をパースした結果から年月日を設定し + 時分秒には 0 を設定します。 + + + + + この文字があると、文字列のそれ以降のデータではエラーが発生せず、 + かわりに警告を発生させる + それ以降のデータが存在したかどうかを調べるには DateTime::getLastErrors + を使います。 + + + +
+
+ + 書式文字列の中に解釈不能な文字が含まれていると処理は失敗し、 + 戻り値にはエラーメッセージが付加されます。エラーメッセージを調べるには + DateTime::getLastErrors を使います。 + + + format にリテラル文字を含めるには、 + バックスラッシュ (\) でエスケープする必要があります。 + + + format に文字 + ! が含まれない場合は、作成した時刻値のうち + format で指定されていない部分を + 現在のシステム時刻で初期化します。 + + + format に文字 + ! が含まれる場合は、作成した時刻値のうち + format で指定されていない部分と + ! の左側の部分を + Unix エポックの対応する箇所の値で初期化します。 + + + Unix エポックは 1970-01-01 00:00:00 です。 + +
+
+ + datetime + + + 時刻を表す文字列。 + + + + + timezone + + + 指定したいタイムゾーンを表す + DateTimeZone オブジェクト。 + + + timezone を省略されるか、または &null; の場合、 + かつ datetime にタイムゾーンが含まれない場合は、 + 現在のタイムゾーンを使います。 + + + + datetime パラメータが UNIX タイムスタンプ + (例: 946684800) だったり、タイムゾーンを含んでいたり + (例: 2010-01-28T15:00:00+02:00) + する場合は、 + timezone パラメータや現在のタイムゾーンは無視します。 + + + + +
+
+ + + &reftitle.returnvalues; + + 新しい DateTimeImmutable のインスタンスを返します。 + &return.falseforfailure;. + + + + + &reftitle.errors; + + datetime に NULLバイトが含まれている場合は、 + ValueError がスローされます。 + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.2.9 + + (空白) 文字は、 + 新たに NBSP(U+A0) と NNBSP(U+202F) をサポートするようになりました。 + + + + 8.2.0 + + format に指定できる文字に、 + Xx が追加されました。 + + + + 8.0.21, 8.1.8, 8.2.0 + + datetime に NULLバイトが含まれている場合は、 + ValueError がスローされるようになりました。 + これより前のバージョンでは、こうした値は静かに無視されていました。 + + + + 7.3.0 + + format に指定できる文字に、 + v が追加されました。 + + + + + + + + + + &reftitle.examples; + + <function>DateTimeImmutable::createFromFormat</function> の例 + &style.oop; + +format('Y-m-d'); +]]> + + + + + 定義済みのフォーマットの定数を <function>DateTimeImmutable::createFromFormat</function> で使う + &style.oop; + +format('c e') . "\n"; + +$date = DateTimeImmutable::createFromFormat( + DateTimeInterface::RFC3339_EXTENDED, + '2013-10-14T09:00:00.000+02:00' +); +echo $date->format('c e') . "\n"; +]]> + + + この例で使われている + 定義済みの定数 + は、DateTimeImmutable の + フォーマット 文字からなる文字列です。 + ほとんどの場合、それらのフォーマット文字は 上の パラメータ + で定義されている 日付/時刻 の要素とマッチしますが、 + カバーしている範囲は狭いです。 + + + + + <function>DateTimeImmutable::createFromFormat</function> の複雑な例 + +format('Y-m-d H:i:s') . "\n"; +$format = 'Y-m-d H:i:s'; +$date = DateTimeImmutable::createFromFormat($format, '2009-02-15 15:16:17'); +echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n"; + +$format = 'Y-m-!d H:i:s'; +$date = DateTimeImmutable::createFromFormat($format, '2009-02-15 15:16:17'); +echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n"; + +$format = '!d'; +$date = DateTimeImmutable::createFromFormat($format, '15'); +echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n"; + +$format = 'i'; +$date = DateTimeImmutable::createFromFormat($format, '15'); +echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n"; +]]> + + &example.outputs.similar; + + + + + + リテラル文字を含む書式文字列 + +format('H:i:s'); +]]> + + &example.outputs.similar; + + + + + + + オーバーフローした際のふるまい + +format(DateTimeImmutable::RFC2822); +]]> + + &example.outputs.similar; + + + + + 上の結果は奇妙に見えますが、正しい動作です。 + なぜなら、以下のようなオーバーフローが発生しているからです: + + + + + 97 秒は 1 分オーバーフローしており、37 秒が残ります。 + + + + + 61 分は 1 時間オーバーフローしており、1 分が残ります。 + + + + + 35 日は、1 ヶ月分オーバーフローしており、4 日が残ります。 + どれだけの日が残るかは月に依存します。 + なぜなら、すべての月が同じ日数を持つとは限らないからです。 + + + + + 18 ヶ月は、1 年分オーバーフローしており、6 ヶ月が残ります。 + + + + + + + 曜日がオーバーフローした場合のふるまい + +format(DateTime::RFC1123), "\n"; +]]> + + &example.outputs.similar; + + + + + 上の結果は奇妙に見えますが、正しい動作です。 + なぜなら、以下のようなオーバーフローが発生しているからです: + + + + + 3 Aug 2020 25:00:00 はオーバーフローしており、(Tue) 4 Aug + 2020 01:00 となります。 + + + + + Mon が適用されます。 + これは、日付が Mon, 10 Aug 2020 01:00:00 まで進むからです。 + Mon のような相対的なキーワード指定については、 + 相対的な書式 で説明されています。 + + + + + + + 日付のオーバーフローを検出するために、 + DateTimeImmutable::getLastErrors + が使えます。 + このメソッドの結果には、オーバーフローが発生した場合に警告が含まれます。 + + + オーバーフローした日付を検出する + +format(DateTimeImmutable::RFC2822), "\n\n"; + +var_dump(DateTimeImmutable::getLastErrors()); +]]> + + &example.outputs.similar; + + + int(2) + 'warnings' => + array(1) { + [19] => + string(27) "The parsed date was invalid" + } + 'error_count' => + int(0) + 'errors' => + array(0) { + } +} +]]> + + + + + 貪欲なパースの振る舞い + + + + &example.outputs.similar; + + + [month] => + [day] => + [hour] => 60 + [minute] => 10 + [second] => 0 + [fraction] => 0 + [warning_count] => 1 + [warnings] => Array + ( + [5] => The parsed time was invalid + ) + + [error_count] => 1 + [errors] => Array + ( + [4] => A two digit second could not be found + ) + + [is_localtime] => +) +]]> + + + フォーマット文字 G は、 + 24時間制での時間をパースします。 + 先頭のゼロを含んでいても、含まなくてもパースを行います。 + このフォーマットは、1桁か2桁の数値が必要ですが、 + 2桁の数値が存在するので、ここでは貪欲に 60 を読み込みます。 + + + その後に続く is + フォーマット文字は、両方2桁の数値が必要です。 + つまり、10 が (フォーマット文字 i の) 分として渡されるので、 + (フォーマット文字 s の) 秒としてパースする十分な桁数が残っていません。 + + + 配列の errors キーの内容が、 + この問題を説明しています。 + + + さらに、24時間制の時は、 + 0-24 の範囲であるため、 + 60 は範囲外の値です。 + よって、warnings キーに、 + 指定された時間が正しくない旨の警告が含まれています。 + + + + + + + &reftitle.seealso; + + DateTimeImmutable::__construct + DateTimeImmutable::getLastErrors + checkdate + strptime + + + + + + + + DateTimeImmutable::createFromInterface + 指定された DateTimeInterface オブジェクトをカプセル化した、新しい DateTimeImmutable オブジェクトを返す + + + + &reftitle.description; + + public static DateTimeImmutableDateTimeImmutable::createFromInterface + DateTimeInterfaceobject + + + + + &reftitle.parameters; + + + + object + + + 変更できないバージョンに変換する DateTimeInterface オブジェクト。 + このオブジェクトは変更されませんが、 + 同じ日付、時刻、タイムゾーンの情報が入った新しい + DateTimeImmutable オブジェクトが作成されます。 + + + + + + + + + &reftitle.returnvalues; + + 新しいDateTimeImmutable クラスのインスタンスを返します。 + + + + + &reftitle.examples; + + + DateTimeImmutable オブジェクトを作る + + + + + + + + diff --git a/reference/datetime/datetimeimmutable/createfrommutable.xml b/reference/datetime/datetimeimmutable/createfrommutable.xml index 91f722dd50..41a5100da6 100644 --- a/reference/datetime/datetimeimmutable/createfrommutable.xml +++ b/reference/datetime/datetimeimmutable/createfrommutable.xml @@ -1,17 +1,16 @@ - - + DateTimeImmutable::createFromMutable - 与えられた DateTime オブジェクトをカプセル化した、新しいDateTimeImmutable オブジェクトを返す + 与えられた DateTime オブジェクトをカプセル化した、新しいDateTimeImmutable のインスタンスを返す &reftitle.description; - - public static DateTimeImmutableDateTimeImmutable::createFromMutable + + public static staticDateTimeImmutable::createFromMutable DateTimeobject @@ -28,7 +27,7 @@ DateTime オブジェクト。 このオブジェクトは変更されませんが、 代わりに同じ日付、時刻、タイムゾーンの情報を含んだ - 新しい DateTimeImmutable オブジェクトが作られます。 + 新しい DateTimeImmutable のインスタンスが作られます。 @@ -36,32 +35,56 @@ + + &reftitle.returnvalues; + + 新しい DateTimeImmutable インスタンスを返します。 + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.0.0 + + このメソッドは、現在呼び出されたクラスのインスタンスを返すようになりました。 + これより前のバージョンでは、 + 新しい DateTimeImmutable のインスタンスを生成していました。 + + + + + + + + &reftitle.examples; 変更不能な日付オブジェクトを作る - + ]]> - - &reftitle.returnvalues; - - 新しい DateTimeImmutable インスタンスを返します。 - - - - + @@ -10,18 +10,128 @@ &reftitle.description; - - public static arrayDateTimeImmutable::getLastErrors - + + public static arrayfalseDateTimeImmutable::getLastErrors + - DateTime::getLastErrors と似ていますが、 - DateTimeImmutable で動作します。 + 日付/時刻文字列のパース時に見つかった警告やエラーの配列を返します。 - + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 警告やエラーに関する情報を含む配列を返します。 + 警告やエラーがない場合は &false; を返します。 + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.2.0 + + PHP 8.2.0 より前のバージョンでは、 + この関数は警告やエラーがない場合でも &false; を返しませんでした。 + 代わりに、例に示している、警告やエラーに関する情報を含む配列を常に返していました。 + + + + + + + + + + &reftitle.examples; + + <function>DateTimeImmutable::getLastErrors</function> の例 + +getMessage(); +} +?> +]]> + + &example.outputs; + + 1 + [warnings] => Array + ( + [6] => Double timezone specification + ) + [error_count] => 1 + [errors] => Array + ( + [0] => The timezone could not be found in the database + ) +) +Failed to parse time string (asdfasdf) at position 0 (a): The timezone could not be found in the database +]]> + + + この出力のインデックス 6 と 0 は、エラーが発生した文字列内での文字の位置を表します。 + + + + 繰り上がった日付を検知する + + + + &example.outputs; + + 1 + [warnings] => Array + ( + [10] => The parsed date was invalid + ) + + [error_count] => 0 + [errors] => Array + ( + ) +) +]]> + + + + + - + @@ -11,7 +11,8 @@ &reftitle.description; - + + #[\NoDiscard] public DateTimeImmutableDateTimeImmutable::modify stringmodifier @@ -24,7 +25,6 @@ &reftitle.parameters; - &date.datetime.description.modified; modifier @@ -37,13 +37,103 @@ &reftitle.returnvalues; - 新しく作ったオブジェクトを返します。 - &return.falseforfailure;。 + 成功時に DateTimeImmutable を返します。 + &return.falseforfailure.style.procedural; - + + &reftitle.errors; + + 不正な日付/時刻の文字列が渡された場合、 + DateMalformedStringException がスローされます。 + PHP 8.3.0 より前のバージョンでは、警告が発生していました。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + 無効な文字列が渡された場合、 + DateTimeImmutable::modify + は DateMalformedStringException + をスローするようになりました。 + これより前のバージョンでは、 + 警告が発生して false を返していました。 + + + + + + + + &reftitle.examples; + + <function>DateTimeImmutable::modify</function> の例 + &style.oop; + +modify('+1 day'); +echo $newDate->format('Y-m-d'); +]]> + + &example.outputs; + + + + + + 月の加減算には注意 + +modify('+1 month'); +echo $newDate1->format('Y-m-d') . "\n"; + +$newDate2 = $newDate1->modify('+1 month'); +echo $newDate2->format('Y-m-d') . "\n"; +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + DateTimeImmutable::add + DateTimeImmutable::sub + DateTimeImmutable::setDate + DateTimeImmutable::setISODate + DateTimeImmutable::setTime + DateTimeImmutable::setTimestamp + + + + - + @@ -10,18 +10,37 @@ &reftitle.description; - + public static DateTimeImmutableDateTimeImmutable::__set_state arrayarray - DateTime::__set_state と似ていますが、 - DateTimeImmutable で動作します。 + __set_state() ハンドラを処理します。 - + + &reftitle.parameters; + + + array + + + 初期化配列。 + + + + + + + &reftitle.returnvalues; + + 新しい DateTimeImmutable オブジェクトのインスタンスを返します。 + + + + - + @@ -10,20 +10,114 @@ &reftitle.description; - + + #[\NoDiscard] public DateTimeImmutableDateTimeImmutable::setDate intyear intmonth intday - DateTime::setDate と似ていますが、 - DateTimeImmutable で動作します。 + DateTimeImmutable オブジェクトの現在の日付を、指定された日付にします。 + 指定した日付を設定した、新しい DateTimeImmutable オブジェクトを返します。 - + + &reftitle.parameters; + + &date.datetime.description.modified; + + year + + + その日付の年。 + + + + + month + + + その日付の月。 + + + + + day + + + その日付の日。 + + + + + + + + &reftitle.returnvalues; + + &date.datetimeimmutable.return.modifiedobject; + + + + + &reftitle.examples; + + <function>DateTimeImmutable::setDate</function> の例 + &style.oop; + +setDate(2001, 2, 3); +echo $newDate->format('Y-m-d'); +]]> + + &example.outputs; + + + + + + 範囲を超えた値が親の値に加算される例 + +setDate(2001, 2, 28); +echo $newDate->format('Y-m-d') . "\n"; + +$newDate = $date->setDate(2001, 2, 29); +echo $newDate->format('Y-m-d') . "\n"; + +$newDate = $date->setDate(2001, 14, 3); +echo $newDate->format('Y-m-d') . "\n"; +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + DateTimeImmutable::setISODate + DateTimeImmutable::setTime + + + + - + @@ -10,20 +10,160 @@ &reftitle.description; - + + #[\NoDiscard] public DateTimeImmutableDateTimeImmutable::setISODate intyear intweek - intday1 + intdayOfWeek1 - DateTime::setISODate と似ていますが、 - DateTimeImmutable で動作します。 + ISO 8601 標準形式、 + つまり週と日オフセットで日付を設定する形式に従って日付を設定した、 + 新しい DateTimeImmutable オブジェクトを返します。 - + + &reftitle.parameters; + + + year + + + その日付の年。 + + + + + week + + + その日付の週。 + + + + + dayOfWeek + + + 週の最初の日からのオフセット。 + + + + + + + + &reftitle.returnvalues; + + &date.datetimeimmutable.return.modifiedobject; + + + + + &reftitle.examples; + + <function>DateTimeImmutable::setISODate</function> の例 + &style.oop; + +setISODate(2008, 2); +echo $newDate->format('Y-m-d') . "\n"; + +$newDate = $date->setISODate(2008, 2, 7); +echo $newDate->format('Y-m-d') . "\n"; +]]> + + &example.outputs; + + + + &style.procedural; + + + + &example.outputs; + + + + + + 範囲を超えた値が親の値に加算される例 + +setISODate(2008, 2, 7); +echo $newDate->format('Y-m-d') . "\n"; + +$newDate = $date->setISODate(2008, 2, 8); +echo $newDate->format('Y-m-d') . "\n"; + +$newDate = $date->setISODate(2008, 53, 7); +echo $newDate->format('Y-m-d') . "\n"; +]]> + + &example.outputs; + + + + + + その週が存在する月を探す例 + +setISODate(2008, 14); +echo $newDate->format('n'); +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + DateTimeImmutable::setDate + DateTimeImmutable::setTime + + + + - + @@ -11,7 +11,8 @@ &reftitle.description; - + + #[\NoDiscard] public DateTimeImmutableDateTimeImmutable::setTime inthour intminute @@ -19,13 +20,155 @@ intmicrosecond0 - DateTime::setTime と似ていますが、 - DateTimeImmutable で動作します。 + 指定された時刻を設定した、 + 新しい DateTimeImmutable オブジェクト を返します。 - + + &reftitle.parameters; + + + hour + + + その時刻の時。 + + + + + minute + + + その時刻の分。 + + + + + second + + + その時刻の秒。 + + + + + microsecond + + + その時刻のマイクロ秒。 + + + + + + + + &reftitle.returnvalues; + + &date.datetimeimmutable.return.modifiedobject; + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.1.0 + + (夏時間遷移のフォールバック期間中に) 二重に存在する hour + に関する振る舞いが変更されました。 + これより前のバージョンでは、 + (夏時間遷移が起こる前の)最初の hour ではなく、 + (夏時間遷移が起きた後の)二番目の hour を取得していました。 + + + + 7.1.0 + microsecond パラメータが追加されました。 + + + + + + + + &reftitle.examples; + + <function>DateTimeImmutable::setTime</function> の例 + &style.oop; + +setTime(14, 55); +echo $newDate->format('Y-m-d H:i:s') . "\n"; +$newDate = $date->setTime(14, 55, 24); +echo $newDate->format('Y-m-d H:i:s') . "\n"; +?> +]]> + + &example.outputs.similar; + + + + + + 範囲を超えた値が親の値に加算される例 + +setTime(14, 55, 24); +echo $newDate->format('Y-m-d H:i:s') . "\n"; + +$newDate = $date->setTime(14, 55, 65); +echo $newDate->format('Y-m-d H:i:s') . "\n"; + +$newDate = $date->setTime(14, 65, 24); +echo $newDate->format('Y-m-d H:i:s') . "\n"; + +$newDate = $date->setTime(25, 55, 24); +echo $newDate->format('Y-m-d H:i:s') . "\n"; +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + DateTimeImmutable::setDate + DateTimeImmutable::setISODate + + + + + - + @@ -11,18 +11,75 @@ &reftitle.description; - + + #[\NoDiscard] public DateTimeImmutableDateTimeImmutable::setTimestamp inttimestamp - DateTime::setTimestamp と似ていますが、 - DateTimeImmutable で動作します。 + Unix タイムスタンプを用いて日付と時刻を設定し、 + 古いものから新しい DateTimeImmutable オブジェクトを作成して返します。 - + + &reftitle.parameters; + + + timestamp + + + Unix タイムスタンプ。 + DateTimeImmutable::modify を + @ フォーマットと共に使うと、 + 数値型の範囲外のタイムスタンプを設定できます。 + + + + + + + + &reftitle.returnvalues; + + &date.datetimeimmutable.return.modifiedobject; + + + + + &reftitle.examples; + + <function>DateTimeImmutable::setTimestamp</function> の例 + &style.oop; + +format('U = Y-m-d H:i:s') . "\n"; +$newDate = $date->setTimestamp(1171502725); +echo $newDate->format('U = Y-m-d H:i:s') . "\n"; +]]> + + &example.outputs.similar; + + + + + + + + &reftitle.seealso; + + DateTimeImmutable::getTimestamp + + + + + - + @@ -10,18 +10,77 @@ &reftitle.description; - + + #[\NoDiscard] public DateTimeImmutableDateTimeImmutable::setTimezone DateTimeZonetimezone - DateTime::setTimezone と似ていますが、 - DateTimeImmutable で動作します。 + 新しいタイムゾーンを設定した、 + 新しい DateTimeImmutable オブジェクトを返します。 - + + &reftitle.parameters; + + + timezone + + + 指定したいタイムゾーンを表す + DateTimeZone オブジェクト。 + + + + + + + + &reftitle.returnvalues; + + メソッドをチェインできるようにするため、 + 変更された新しい DateTimeImmutable + オブジェクトを返します。 + このメソッドをコールした際に指していた時刻は変わりません。 + + + + &reftitle.examples; + + <function>DateTimeImmutable::setTimeZone</function> の例 + &style.oop; + +format('Y-m-d H:i:sP') . "\n"; + +$newDate = $date->setTimezone(new DateTimeZone('Pacific/Chatham')); +echo $newDate->format('Y-m-d H:i:sP') . "\n"; +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + DateTimeImmutable::getTimezone + DateTimeZone::__construct + + + + - + @@ -12,18 +12,155 @@ &reftitle.description; - + + #[\NoDiscard] public DateTimeImmutableDateTimeImmutable::sub DateIntervalinterval - DateTime::sub と似ていますが、 - DateTimeImmutable で動作します。 + 指定した DateInterval オブジェクトを、 + 指定した DateTimeImmutable オブジェクトから引き、 + 新しい DateTimeImmutable オブジェクトを返します。 - + + &reftitle.parameters; + + + + interval + + + + DateInterval オブジェクト。 + + + + + + + + &reftitle.returnvalues; + + &date.datetimeimmutable.return.modifiedobject; + + + + + &reftitle.errors; + + サポートされていない操作を試みた場合、 + DateInvalidOperationExceptionがスローされます。 + サポートされていない操作の例としては、 + next weekday のような相対時刻を表現する + DateInterval を使った場合が挙げられます。 + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + サポートされていない操作を試みた場合に、警告を発生させるのではなく、 + DateInvalidOperationException がスローされるようになりました。 + + + + + + + + + &reftitle.examples; + + <function>DateTimeImmutable::sub</function> の例 + &style.oop; + +sub(new DateInterval('P10D')); +echo $newDate->format('Y-m-d') . "\n"; +?> +]]> + + &example.outputs; + + + + + + <function>DateTimeImmutable::sub</function> の別な例 + +sub(new DateInterval('PT10H30S')); +echo $newDate->format('Y-m-d H:i:s') . "\n"; + +$date = new DateTimeImmutable('2000-01-20'); +$newDate = $date->sub(new DateInterval('P7Y5M4DT4H3M2S')); +echo $newDate->format('Y-m-d H:i:s') . "\n"; +?> +]]> + + &example.outputs; + + + + + + 月を減算する際は注意 + +sub($interval); +echo $newDate1->format('Y-m-d') . "\n"; + +$newDate2 = $newDate1->sub($interval); +echo $newDate2->format('Y-m-d') . "\n"; +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + DateTimeImmutable::add + DateTimeImmutable::diff + DateTimeImmutable::modify + + + + - + - - + DateTimeInterface インターフェイス DateTimeInterface @@ -14,120 +13,148 @@
&reftitle.intro; - DateTimeInterface は、DateTime および DateTimeImmutable をタイプヒントで使えるようにするためのインターフェイスです。 + DateTimeInterface は、 + DateTimeImmutableDateTime + を引数や戻り値、プロパティの型宣言で使えるようにするために作られたものです。 このインターフェイスを実装したクラスをユーザー側で作ることはできません。 + + DateTimeImmutable::format や + DateTime::format を通じて、 + DateTimeImmutable や + DateTime をフォーマットするための共通の定数も、 + このインターフェイスに定義されています。 +
- &reftitle.classsynopsis; + &reftitle.interfacesynopsis; - - DateTimeInterface - - - - - DateTimeInterface - - - + + + DateTimeInterface + &Constants; + public const string - DateTimeInterface::ATOM - "Y-m-d\TH:i:sP" + DateTimeInterface::ATOM + "Y-m-d\\TH:i:sP" + public const string - DateTimeInterface::COOKIE + DateTimeInterface::COOKIE "l, d-M-Y H:i:s T" + public const string - DateTimeInterface::ISO8601 - "Y-m-d\TH:i:sO" + DateTimeInterface::ISO8601 + "Y-m-d\\TH:i:sO" + public const string - DateTimeInterface::RFC822 + DateTimeInterface::ISO8601_EXPANDED + "X-m-d\\TH:i:sP" + + + public + const + string + DateTimeInterface::RFC822 "D, d M y H:i:s O" + public const string - DateTimeInterface::RFC850 + DateTimeInterface::RFC850 "l, d-M-y H:i:s T" + public const string - DateTimeInterface::RFC1036 + DateTimeInterface::RFC1036 "D, d M y H:i:s O" + public const string - DateTimeInterface::RFC1123 + DateTimeInterface::RFC1123 "D, d M Y H:i:s O" - const - string - DateTimeInterface::RFC7231 - "D, d M Y H:i:s \G\M\T" + public + const + string + DateTimeInterface::RFC7231 + "D, d M Y H:i:s \\G\\M\\T" + public const string - DateTimeInterface::RFC2822 + DateTimeInterface::RFC2822 "D, d M Y H:i:s O" + public const string - DateTimeInterface::RFC3339 - "Y-m-d\TH:i:sP" + DateTimeInterface::RFC3339 + "Y-m-d\\TH:i:sP" + public const string - DateTimeInterface::RFC3339_EXTENDED - "Y-m-d\TH:i:s.vP" + DateTimeInterface::RFC3339_EXTENDED + "Y-m-d\\TH:i:s.vP" + public const string - DateTimeInterface::RSS + DateTimeInterface::RSS "D, d M Y H:i:s O" + public const string - DateTimeInterface::W3C - "Y-m-d\TH:i:sP" + DateTimeInterface::W3C + "Y-m-d\\TH:i:sP" &Methods; - + + +
-
+
&reftitle.constants; - - DateTimeInterface::ATOM + + + DateTimeInterface::ATOM + string + DATE_ATOM @@ -136,8 +163,11 @@ - - DateTimeInterface::COOKIE + + + DateTimeInterface::COOKIE + string + DATE_COOKIE @@ -146,8 +176,11 @@ - - DateTimeInterface::ISO8601 + + + DateTimeInterface::ISO8601 + string + DATE_ISO8601 @@ -158,15 +191,40 @@ このフォーマットは、ISO-8601 と互換性がありません。 しかし、後方互換性を保つために残されています。 ISO-8601 と互換性を保つためには、 - DateTime::ATOM - または DATE_ATOM を使うようにしてください。 + DateTimeInterface::ISO8601_EXPANDED, + DateTimeInterface::ATOM を使うようにしてください。 + (ISO8601:2004 section 4.3.3 clause d も参照ください) + + + + + + + + DateTimeInterface::ISO8601_EXPANDED + string + + DATE_ISO8601_EXPANDED + + + ISO-8601 拡張形式 (例: +10191-07-26T08:59:52+01:00) + + + + 年に常に符号を含めることで、ISO-8601 の通常の範囲 + 0000-9999 以外の値が許されています。 + タイムゾーンの部分 (+01:00) については、 + ISO-8601 と互換性を保証するようにもなっています。 - - DateTimeInterface::RFC822 + + + DateTimeInterface::RFC822 + string + DATE_RFC822 @@ -175,8 +233,11 @@ - - DateTimeInterface::RFC850 + + + DateTimeInterface::RFC850 + string + DATE_RFC850 @@ -185,8 +246,11 @@ - - DateTimeInterface::RFC1036 + + + DateTimeInterface::RFC1036 + string + DATE_RFC1036 @@ -195,8 +259,11 @@ - - DateTimeInterface::RFC1123 + + + DateTimeInterface::RFC1123 + string + DATE_RFC1123 @@ -205,8 +272,11 @@ - - DateTimeInterface::RFC7231 + + + DateTimeInterface::RFC7231 + string + DATE_RFC7231 @@ -215,8 +285,11 @@ - - DateTimeInterface::RFC2822 + + + DateTimeInterface::RFC2822 + string + DATE_RFC2822 @@ -225,28 +298,37 @@ - - DateTimeInterface::RFC3339 + + + DateTimeInterface::RFC3339 + string + DATE_RFC3339 - DATE_ATOM と同じです (PHP 5.1.3 以降) + DATE_ATOM と同じです - - DateTimeInterface::RFC3339_EXTENDED + + + DateTimeInterface::RFC3339_EXTENDED + string + DATE_RFC3339_EXTENDED - RFC 3339 EXTENDED フォーマット (PHP 7.0.0 以降) (例: 2005-08-15T15:52:01.000+00:00) + RFC 3339 EXTENDED フォーマット (例: 2005-08-15T15:52:01.000+00:00) - - DateTimeInterface::RSS + + + DateTimeInterface::RSS + string + DATE_RSS @@ -255,8 +337,11 @@ - - DateTimeInterface::W3C + + + DateTimeInterface::W3C + string + DATE_W3C @@ -269,44 +354,48 @@
-
- &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.2.0 - - DateTime クラスの定数は、 - DateTimeInterface で定義されるようになりました。 - - - - 5.5.8 - - DateTimeInterface を実装しようとすると fatal error が発生するようになりました。 - それまでのバージョンではエラーは発生しませんでしたが、その挙動は間違ったものでした。 - - - - - - -
+
+ &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.4.0 + クラス定数が型付けされました。 + + + 8.2.0 + + 定数 + DateTimeInterface::ISO8601_EXPANDED + が追加されました。 + + + + 7.2.0 + + DateTime クラスの定数は、 + DateTimeInterface で定義されるようになりました。 + + + + + + +
&reference.datetime.entities.datetimeinterface; - - + - + - DateTime::diff + DateTimeInterface::diff DateTimeImmutable::diff DateTime::diff date_diff @@ -15,8 +15,8 @@ &reftitle.description; &style.oop; - - public DateIntervalDateTime::diff + + public DateIntervalDateTimeInterface::diff DateTimeInterfacetargetObject boolabsolute&false; @@ -25,15 +25,15 @@ DateTimeInterfacetargetObject boolabsolute&false; - - public DateIntervalDateTimeInterface::diff + + public DateIntervalDateTime::diff DateTimeInterfacetargetObject boolabsolute&false; &style.procedural; - + DateIntervaldate_diff - DateTimeInterfaceoriginObject + DateTimeInterfacebaseObject DateTimeInterfacetargetObject boolabsolute&false; @@ -68,32 +68,50 @@ &reftitle.returnvalues; ふたつの日付の差をあらわす DateInterval オブジェクトを返します。 - &return.falseforfailure; + + + absolute は、 + DateInterval オブジェクトの + invert プロパティにのみ影響します。 さらに厳密に言うと、戻り値はもともとのオブジェクト ($this または $originObject) を - $targetObject にするために適用すべき差分を示しています。 + $targetObject にするために適用すべき経過時間の差分を示しています。 このプロセスは可逆とは限りません。 + + このメソッドは夏時間の切り替えを認識するため、 + 24 hours and 30 minutes + という時間差を返す可能性があります。 + 以下で例示するサンプルコードでそれを示します。 + 完全な時間差を計算したい場合、 + $this/$baseObject と + $targetObject をUTC に変換する必要があります。 + &reftitle.examples; - <function>DateTime::diff</function> の例 + <function>DateTimeImmutable::diff</function> の例 &style.oop; diff($target); echo $interval->format('%R%a days'); -?> ]]> + &example.outputs; + + + &style.procedural; format('%R%a days'); -?> ]]> - &examples.outputs; + &example.outputs; + + + 夏時間の切り替え期間中の <methodname>DateTimeInterface::diff</methodname> の動き + +diff($targetTime); +echo $interval->format("%H:%I:%S (Full days: %a)"), "\n"; +]]> + + &example.outputs; + + + + + + + <methodname>DateTimeInterface::diff</methodname> range + + このメソッドが返す値は、 + $this から $targetObject + までの範囲から取得した正確な時間です。 + よって、(うるう年でない場合) 1月1日から12月31日までを比較すると、 + 365 ではなく、364 が返ってきます。 + + +diff($targetTime); +echo "Full days: ", $interval->format("%a"), "\n"; +]]> + + &example.outputs; + + + + + <classname>DateTime</classname> オブジェクトの比較 - PHP 5.2.2 以降では、DateTime オブジェクトを + DateTimeImmutable と + DateTime オブジェクトは、 比較演算子 - で比較できるようになりました。 + で比較することもできます。 @@ -130,7 +194,6 @@ $date2 = new DateTime("tomorrow"); var_dump($date1 == $date2); var_dump($date1 < $date2); var_dump($date1 > $date2); -?> ]]> &example.outputs; @@ -154,7 +217,6 @@ bool(false) - - + - DateTime::format - DateTimeImmutable::format DateTimeInterface::format + DateTimeImmutable::format + DateTime::format date_format 指定した書式でフォーマットした日付を返す @@ -15,22 +15,22 @@ &reftitle.description; &style.oop; - - public stringDateTime::format + + public stringDateTimeInterface::format stringformat public stringDateTimeImmutable::format stringformat - - public stringDateTimeInterface::format + + public stringDateTime::format stringformat &style.procedural; - + stringdate_format - DateTimeobject + DateTimeInterfaceobject stringformat @@ -47,7 +47,7 @@ 出力される日付文字列の書式。以下のオプションを参照ください。 - 定義済みの定数 + 定義済みの定数 も用意されており、たとえば DATE_RSS はフォーマット文字列 'D, d M Y H:i:s' と同じ意味になります。 @@ -91,8 +91,7 @@ N - ISO-8601 形式の、曜日の数値表現 - (PHP 5.1.0 で追加)。 + ISO 8601 形式の、曜日の数値表現 1(月曜日)から 7(日曜日) @@ -121,7 +120,7 @@ W - ISO-8601 月曜日に始まる年単位の週番号 + ISO 8601 月曜日に始まる年単位の週番号 例: 42 (年の第 42 週目) @@ -166,15 +165,30 @@ o - ISO-8601 形式の週番号による年。これは + ISO 8601 形式の週番号による年。これは Y ほぼ同じだが、ISO 週番号 - (W)が前年あるいは翌年に属する場合はそちらの年を使うという点が異なる(PHP 5.1.0 で追加)。 + (W)が前年あるいは翌年に属する場合はそちらの年を使うという点が異なる。 例: 1999 あるいは 2003 + + X + 拡張された年の数値表現。少なくとも4桁からなる数値。紀元前の場合は、- が付きます。西暦の場合は + が付きます。 + 例: -0055, +0787, + +1999, +10191 + + + x + 必要に応じて拡張された年の数値表現。 + 拡張する必要がない場合は、通常の年の数値 (Y と同じ)。 + 少なくとも4桁からなる数値。紀元前の場合は、- が付きます。10000 (10000を含みます) を超える場合は、+ が付きます。 + 例: -0055, 0787, + 1999, +10191 + Y - 年。4 桁の数字。 - 例: 1999または2003 + 年。少なくとも4桁からなる数値。紀元前の場合は、- が付きます。 + 例: -0055, 0787, + 1999, 2003, 10191 y @@ -234,19 +248,19 @@ u - マイクロ秒 (PHP 5.2.2 で追加)。 + マイクロ秒。 date の場合、これは常に 000000 となることに注意しましょう。というのも、 - この関数が受け取るパラメータは integer 型だからです。 - 一方 DateTime をマイクロ秒つきで作成した場合は、 - DateTime::format はマイクロ秒にも対応しています。 + この関数が受け取るパラメータは int 型だからです。 + 一方 DateTimeInterface 型のオブジェクトをマイクロ秒つきで作成した場合は、 + DateTimeInterface::format はマイクロ秒にも対応しています。 例: 654321 v - ミリ秒 (PHP 7.0.0 で追加) + ミリ秒。 uと同じ注釈が当てはまります。 例: 654 @@ -258,7 +272,7 @@ e - タイムゾーン識別子(PHP 5.1.0 で追加) + タイムゾーン識別子 例: UTC, GMT, Atlantic/Azores @@ -274,13 +288,21 @@ P - グリニッジ標準時 (GMT) との時差。時間と分をコロンで区切った形式 (PHP 5.1.3 で追加)。 - 例: +02:00 + グリニッジ標準時 (GMT) との時差。時間と分をコロンで区切った形式 + 例: +02:00 + + + p + + P と同じですが、+00:00 ではなく Z を返します。 + (PHP 8.0.0 以降で利用可能) + + 例: Z または +02:00 T - タイムゾーンの略称 - 例: EST, MDT ... + 既知のものについては、タイムゾーンの略称。そうでないものについては、GMT からのオフセット + 例: EST, MDT, +05 Z @@ -296,12 +318,12 @@ c - ISO 8601 日付 (PHP 5 で追加されました) + ISO 8601 日付。拡張されていないフォーマット(9999年まで)とだけ、互換性があります。それより未来の日付は無効な文字列になります。そうした日付と拡張フォーマットについては、xX を参照ください。 2004-02-12T15:19:21+00:00 r - RFC 2822 フォーマットされた日付 + RFC 2822/RFC 5322 形式でフォーマットされた日付 例: Thu, 21 Dec 2000 16:01:07 +0200 @@ -318,10 +340,10 @@ Z 形式は、 gmdate で使用した場合、常に 0 を返します。 - + - この関数が受け付けるのは integer + この関数が受け付けるのは int のタイムスタンプだけです。したがって、書式指定文字 u が有用となるのは date_create で作成したタイムスタンプを用いて @@ -336,39 +358,125 @@ &reftitle.returnvalues; - 成功した場合にフォーマット済みの日付文字列、&return.falseforfailure;。 + 成功した場合にフォーマット済みの日付文字列を返します。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.2.0 + + フォーマット文字に + Xx + が追加されました。 + + + + 8.0.0 + + フォーマット文字 p が追加されました。 + + + + + + + &reftitle.examples; - - <function>DateTime::format</function> の例 - &style.oop; - + + + <function>DateTimeInterface::format</function> の例 + &style.oop; + format('Y-m-d H:i:s'); ?> ]]> - - &style.procedural; - + + &example.outputs; + + + + &style.procedural; + ]]> - - &example.outputs; - + + &example.outputs; + - - + + + + + + + 例をもう少し + +format('l'), "\n"; +// Wednesday 19th of October 2022 08:40:48 AM のような値を出力 +echo $date->format('l jS \o\f F Y h:i:s A'), "\n"; +/* フォーマット文字で定数を使う */ +// Wed, 19 Oct 2022 08:40:48 +0000 のような値を出力 +echo $date->format(DateTimeInterface::RFC2822), "\n"; +?> +]]> + + + + + フォーマット文字列の中で既知の文字が展開されることを防ぐために、 + バックスラッシュでエスケープすることができます。 + バックスラッシュ付きの文字が既に特殊な意味を持つ場合は、 + バックスラッシュもエスケープする必要があるでしょう。 + + フォーマット中に文字をエスケープする + +format('l \t\h\e jS'); +?> +]]> + + + + + 他の言語で日付をフォーマットするには、 + DateTimeInterface::format + ではなく + IntlDateFormatter::format + を使います。 + @@ -381,12 +489,11 @@ echo date_format($date, 'Y-m-d H:i:s'); &reftitle.seealso; - date + IntlDateFormatter::format - - + + - DateTime::getOffset - DateTimeImmutable::getOffset DateTimeInterface::getOffset + DateTimeImmutable::getOffset + DateTime::getOffset date_offset_get タイムゾーンのオフセットを返す @@ -14,22 +15,22 @@ &reftitle.description; &style.oop; - - public intDateTime::getOffset - + + public intDateTimeInterface::getOffset + public intDateTimeImmutable::getOffset - + - - public intDateTimeInterface::getOffset - + + public intDateTime::getOffset + &style.procedural; - + intdate_offset_get - DateTimeobject + DateTimeInterfaceobject タイムゾーンのオフセットを返します。 @@ -47,7 +48,6 @@ &reftitle.returnvalues; 成功した場合には UTC からのタイムゾーンオフセット秒数、 - &return.falseforfailure;。 @@ -59,14 +59,20 @@ getOffset() . "\n"; echo $summer->getOffset() . "\n"; -?> ]]> + &example.outputs; + + + &style.procedural; ]]> - &examples.outputs; + &example.outputs; - - + + - DateTime::getTimestamp - DateTimeImmutable::getTimestamp DateTimeInterface::getTimestamp + DateTimeImmutable::getTimestamp + DateTime::getTimestamp date_timestamp_get Unix タイムスタンプを取得する @@ -14,22 +15,22 @@ &reftitle.description; &style.oop; - - public intDateTime::getTimestamp - + + public intDateTimeInterface::getTimestamp + public intDateTimeImmutable::getTimestamp - + - - public intDateTimeInterface::getTimestamp - + + public intDateTime::getTimestamp + &style.procedural; - + intdate_timestamp_get - DateTimeobject + DateTimeInterfaceobject Unix タイムスタンプを取得します。 @@ -48,6 +49,48 @@ + + &reftitle.errors; + + タイムスタンプが整数として表現できない場合、 + DateRangeError がスローされます。 + PHP 8.3.0 より前のバージョンでは、ValueError + がスローされていました。また、PHP 8.0.0 より前のバージョンでは同様の場合に + &false; を返していました。 + さらに、DateTimeInterface::format に + U を指定すると、タイムスタンプは文字列として取得できます。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + 範囲外の例外が + DateRangeError になりました。 + + + + 8.0.0 + + これらの関数は、失敗時に &false; を返さなくなりました。 + + + + + + + &reftitle.examples; @@ -56,48 +99,68 @@ getTimestamp(); -?> ]]> + &example.outputs.similar; + + + &style.procedural; ]]> - &examples.outputs.similar; + &example.outputs.similar; - - - - &reftitle.notes; - PHP 5.2 では、 - DateTime::format のパラメータに - U を使えば同じことができます。 + ミリ秒やマイクロ秒の精度でタイムスタンプを取得したい場合、 + DateTimeInterface::format が使えます。 + + ミリ秒とマイクロ秒の精度でタイムスタンプを取得する + &style.oop; + +format('Uv'); // タイムスタンプをミリ秒で取得 +$micro = (int) $date->format('Uu'); // タイムスタンプをマイクロ秒で取得 + +echo $milli, "\n", $micro, "\n"; +]]> + + &example.outputs.similar; + + + + &reftitle.seealso; DateTime::setTimestamp - DateTime::format + DateTimeImmutable::setTimestamp + DateTimeInterface::format - - + + - DateTime::getTimezone - DateTimeImmutable::getTimezone DateTimeInterface::getTimezone + DateTimeImmutable::getTimezone + DateTime::getTimezone date_timezone_get 指定した DateTime に関連するタイムゾーンを返す @@ -14,22 +15,22 @@ &reftitle.description; &style.oop; - - public DateTimeZoneDateTime::getTimezone + + public DateTimeZonefalseDateTimeInterface::getTimezone - public DateTimeZoneDateTimeImmutable::getTimezone + public DateTimeZonefalseDateTimeImmutable::getTimezone - - public DateTimeZoneDateTimeInterface::getTimezone + + public DateTimeZonefalseDateTime::getTimezone &style.procedural; - - DateTimeZonedate_timezone_get - DateTimeobject + + DateTimeZonefalsedate_timezone_get + DateTimeInterfaceobject 指定した DateTime に関連するタイムゾーンを返します。 @@ -58,23 +59,27 @@ getTimezone(); echo $tz->getName(); -?> ]]> + &example.outputs; + + + &style.procedural; ]]> - &examples.outputs; + &example.outputs; - + + + + DateTime::__serialize + DateTimeImmutable::__serialize + DateTimeInterface::__serialize + DateTime をシリアライズする + + + + &reftitle.description; + + public arrayDateTime::__serialize + + + + public arrayDateTimeImmutable::__serialize + + + + public arrayDateTimeInterface::__serialize + + + + The __serialize() handler. + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + DateTime の + シリアライズ表現を返します。 + + + + + &reftitle.examples; + + <function>DateTime::serialize</function> の例 + + + + &example.outputs; + + + + + + + + &reftitle.seealso; + + DateTime::__unserialize + + + + diff --git a/reference/datetime/datetimeinterface/unserialize.xml b/reference/datetime/datetimeinterface/unserialize.xml new file mode 100644 index 0000000000..7181852f62 --- /dev/null +++ b/reference/datetime/datetimeinterface/unserialize.xml @@ -0,0 +1,105 @@ + + + + + + DateTime::__unserialize + DateTimeImmutable::__unserialize + DateTimeInterface::__unserialize + Datetime をアンシリアライズする + + + + &reftitle.description; + + public voidDateTime::__unserialize + arraydata + + + public voidDateTimeImmutable::__unserialize + arraydata + + + public voidDateTimeInterface::__unserialize + arraydata + + + __unserialize() ハンドラです。 + + + + + &reftitle.parameters; + + + data + + + シリアライズされた DateTime + + + + + + + + &reftitle.returnvalues; + + DateTime オブジェクトを返します。 + + + + + &reftitle.examples; + + <function>DateTime::unserialize</function> の例 + + + + &example.outputs; + + + string(26) "2025-03-27 00:00:00.000000" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +]]> + + + + + + &reftitle.seealso; + + DateTime::__serialize + + + + diff --git a/reference/datetime/datetimeinterface/wakeup.xml b/reference/datetime/datetimeinterface/wakeup.xml index 3a76c47103..38a02f6b57 100644 --- a/reference/datetime/datetimeinterface/wakeup.xml +++ b/reference/datetime/datetimeinterface/wakeup.xml @@ -1,6 +1,6 @@ - + @@ -10,19 +10,26 @@ __wakeup ハンドラ + + &warn.deprecated.function-8-5-0; + + &reftitle.description; - - public DateTime::__wakeup - + + #[\Deprecated] + public voidDateTime::__wakeup + - public DateTimeImmutable::__wakeup - + #[\Deprecated] + public voidDateTimeImmutable::__wakeup + - public DateTimeInterface::__wakeup - + #[\Deprecated] + public voidDateTimeInterface::__wakeup + __wakeup() を処理します。 @@ -42,7 +49,6 @@ - - - - + + DateTimeZone クラス DateTimeZone @@ -22,115 +21,104 @@ &reftitle.classsynopsis; - - DateTimeZone + + + DateTimeZone + - - - - DateTimeZone - - - &Constants; + public const - integer + int DateTimeZone::AFRICA - 1 + public const - integer + int DateTimeZone::AMERICA - 2 + public const - integer + int DateTimeZone::ANTARCTICA - 4 + public const - integer + int DateTimeZone::ARCTIC - 8 + public const - integer + int DateTimeZone::ASIA - 16 + public const - integer + int DateTimeZone::ATLANTIC - 32 + public const - integer + int DateTimeZone::AUSTRALIA - 64 + public const - integer + int DateTimeZone::EUROPE - 128 + public const - integer + int DateTimeZone::INDIAN - 256 + public const - integer + int DateTimeZone::PACIFIC - 512 + public const - integer + int DateTimeZone::UTC - 1024 + public const - integer + int DateTimeZone::ALL - 2047 + public const - integer + int DateTimeZone::ALL_WITH_BC - 4095 + public const - integer + int DateTimeZone::PER_COUNTRY - 4096 - + &Methods; - - - - - - + + - @@ -141,98 +129,140 @@ &reftitle.constants; - DateTimeZone::AFRICA + + DateTimeZone::AFRICA + int + アフリカのタイムゾーン。 - DateTimeZone::AMERICA + + DateTimeZone::AMERICA + int + アメリカのタイムゾーン。 - DateTimeZone::ANTARCTICA + + DateTimeZone::ANTARCTICA + int + 南極のタイムゾーン。 - DateTimeZone::ARCTIC + + DateTimeZone::ARCTIC + int + 北極のタイムゾーン。 - DateTimeZone::ASIA + + DateTimeZone::ASIA + int + アジアのタイムゾーン。 - DateTimeZone::ATLANTIC + + DateTimeZone::ATLANTIC + int + 大西洋のタイムゾーン。 - DateTimeZone::AUSTRALIA + + DateTimeZone::AUSTRALIA + int + オーストラリアのタイムゾーン。 - DateTimeZone::EUROPE + + DateTimeZone::EUROPE + int + ヨーロッパのタイムゾーン。 - DateTimeZone::INDIAN + + DateTimeZone::INDIAN + int + インドのタイムゾーン。 - DateTimeZone::PACIFIC + + DateTimeZone::PACIFIC + int + 太平洋のタイムゾーン。 - DateTimeZone::UTC + + DateTimeZone::UTC + int + UTC タイムゾーン。 - DateTimeZone::ALL + + DateTimeZone::ALL + int + すべてのタイムゾーン。 - DateTimeZone::ALL_WITH_BC + + DateTimeZone::ALL_WITH_BC + int + 過去との互換性を保つものを含むすべてのタイムゾーン。 - DateTimeZone::PER_COUNTRY + + DateTimeZone::PER_COUNTRY + int + 国ごとのタイムゾーン。 @@ -241,14 +271,33 @@
- +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + クラス定数が型付けされました。 + + + + + +
&reference.datetime.entities.datetimezone; -
- + - + @@ -12,18 +12,37 @@ &reftitle.description; &style.oop; - + public DateTimeZone::__construct stringtimezone &style.procedural; - - DateTimeZonetimezone_open + + DateTimeZonefalsetimezone_open stringtimezone 新しい DateTimeZone オブジェクトを作成します。 + + DateTimeZone オブジェクトは、 + 3つの異なるタイムゾーンルールへのアクセスを提供します。 + ひとつは + UTC からのオフセット (type 1), + もうひとつはタイムゾーンの省略形 (type + 2), + そして IANA タイムゾーンデータベースで公開されている + タイムゾーン名 + (type 3) です。 + + + DateTimeZone オブジェクトは、 + DateTime や + DateTimeImmutable に設定できます。 + こうすることで、 + ローカルのタイムゾーンとしてカプセル化された、 + タイムゾーンを表示させることができます。 + @@ -34,8 +53,10 @@ timezone - サポートするタイムゾーン名のいずれか、 - またはオフセット値 (+0200)。 + サポートするタイムゾーン名 + のいずれかや、 + オフセット値 (+0200)、 + またはタイムゾーンの省略名(BST)。 @@ -54,11 +75,13 @@ &reftitle.errors; - このメソッドは、指定したタイムゾーンが無効な形式だった場合に - Exception をスローします。 + 指定されたタイムゾーンが有効なタイムゾーンとして認識できない場合、 + DateInvalidTimeZoneException + をスローします。PHP 8.3 より前のバージョンでは、 + Exception をスローしていました。 - + &reftitle.changelog; @@ -72,9 +95,12 @@ - 5.5.10 + 8.3.0 - timezone パラメータは、オフセット値を受け付けます。 + 無効な値を指定した場合、 + 一般的な Exception + ではなく、DateInvalidTimeZoneException + がスローされるようになりました。 @@ -85,6 +111,36 @@ &reftitle.examples; + + + DateTimeZone を作成し、DateTimeImmutable に設定する + +setTimezone($tzo); + echo $local->format(DateTimeInterface::RFC2822 . ' — e') . "\n"; +} +]]> + + &example.outputs; + + + + + + <classname>DateTimeZone</classname> のインスタンスを作成する際のエラー処理 @@ -97,16 +153,17 @@ $timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa'); foreach ($timezones as $tz) { try { $mars = new DateTimeZone($tz); + echo $mars->getName() . "\n"; } catch(Exception $e) { - echo $e->getMessage() . '
'; + echo $e->getMessage() . "\n"; } } -?> ]]> &example.outputs; @@ -116,7 +173,6 @@ DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone
- - + @@ -13,13 +13,13 @@ &reftitle.description; &style.oop; - - public arrayDateTimeZone::getLocation - + + public arrayfalseDateTimeZone::getLocation + &style.procedural; - - arraytimezone_location_get + + arrayfalsetimezone_location_get DateTimeZoneobject @@ -51,10 +51,9 @@ getLocation()); print_r(timezone_location_get($tz)); -?> ]]> &example.outputs; @@ -62,26 +61,41 @@ print_r(timezone_location_get($tz)); CZ - [latitude] => 50.08333 - [longitude] => 14.43333 - [comments] => + [country_code] => ID + [latitude] => -6.16667 + [longitude] => 106.8 + [comments] => Java, Sumatra ) Array ( - [country_code] => CZ - [latitude] => 50.08333 - [longitude] => 14.43333 - [comments] => + [country_code] => ID + [latitude] => -6.16667 + [longitude] => 106.8 + [comments] => Java, Sumatra ) ]]> + + country_code 要素には、ISO 3166-1 alpha-2 + で定められた国コードがそれぞれ入っています。 + latitudelongitude + 要素には、タイムゾーンの識別子に含まれる都市の座標が入ります。 + comments 要素には (&false; でない場合)、 + 指定された国でこのタイムゾーンが適用される場所のヒントが入ります。 + この情報はエンドユーザー向けの表現に適しています。 + - + + &reftitle.seealso; + + タイムゾーンの識別子を全て、または一部を取得する DateTimeZone::listIdentifiers + + + - + @@ -12,12 +12,12 @@ &reftitle.description; &style.oop; - + public stringDateTimeZone::getName - + &style.procedural; - + stringtimezone_name_get DateTimeZoneobject @@ -43,12 +43,18 @@ &reftitle.returnvalues; + タイムゾーンのタイプによって、異なる値を返します。 + UTC オフセット(type 1 の場合)、 + タイムゾーンの省略形(type 2 の場合)、 + および IANA タイムゾーンデータベースに登録されているタイムゾーン識別子(type + 3 の場合) です。これらは、同じオフセット かつ/または ルールで + DateTimeZone オブジェクトを作るための文字列です。 + たとえば 02:00CESTタイムゾーン一覧 のタイムゾーン名のひとつを返します。 - - + @@ -12,12 +12,12 @@ &reftitle.description; &style.oop; - + public intDateTimeZone::getOffset DateTimeInterfacedatetime &style.procedural; - + inttimezone_offset_get DateTimeZoneobject DateTimeInterfacedatetime @@ -49,33 +49,7 @@ &reftitle.returnvalues; - 成功した場合にタイムゾーンのオフセット秒数、&return.falseforfailure;。 - - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.5.19, 5.6.3 - - datetime パラメータの型が - DateTimeInterface に変わりました。 - これより前のバージョンでは、DateTime でした。 - - - - - + 成功した場合にタイムゾーンのオフセット秒数を返します。 @@ -104,15 +78,19 @@ $timeOffset = $dateTimeZoneJapan->getOffset($dateTimeTaipei); // これは int(32400) となります (Sat Sep 8 01:00:00 1951 JST 以降の日付の場合)。 var_dump($timeOffset); -?> ]]> + &example.outputs; + + + - - + @@ -12,14 +12,14 @@ &reftitle.description; &style.oop; - - public arrayDateTimeZone::getTransitions + + public arrayfalseDateTimeZone::getTransitions inttimestampBeginPHP_INT_MIN inttimestampEndPHP_INT_MAX &style.procedural; - - arraytimezone_transitions_get + + arrayfalsetimezone_transitions_get DateTimeZoneobject inttimestampBeginPHP_INT_MIN inttimestampEndPHP_INT_MAX @@ -54,33 +54,59 @@ &reftitle.returnvalues; - 成功した場合にタイムゾーンの遷移を表す連想配列の配列、 + 成功した場合にタイムゾーンの遷移を表す、数値インデックスの配列を返します。 &return.falseforfailure;。 + DateTimeZone オブジェクト の type 1 (UTC オフセット) + と、type 2 (タイムゾーンの省略形) の場合は、 + タイムゾーンの遷移情報は含まれません。 + その場合にこのメソッドをコールしても &false; を返します。 + + + timestampBegin を指定すると、 + 返される配列の最初のエントリに + timestampBegin の時点における遷移の情報が含まれるようになります。 - - - - &reftitle.changelog; - + + タイムゾーンの遷移を表す配列の構造 - &Version; - &Description; + キー + + 説明 - 5.3.0 - - オプションの timestampBegin および timestampEnd - が追加されました。 - + ts + int + Unixタイムスタンプ + + + time + string + DateTimeInterface::ISO8601_EXPANDED (PHP + 8.2 以降) または、DateTimeInterface::ISO8601 (PHP 8.1 以前) 形式の文字列 + + + offset + int + UTC からのオフセット(秒単位) + + + isdst + bool + 夏時間が有効かどうか + + + abbr + string + タイムゾーンの省略形 - +
@@ -105,31 +131,79 @@ Array ( [0] => Array ( - [ts] => -9223372036854775808 - [time] => -292277022657-01-27T08:29:52+0000 + [ts] => -2147483648 + [time] => 1901-12-13T20:45:52+00:00 + [offset] => -75 + [isdst] => + [abbr] => LMT + ) + + [1] => Array + ( + [ts] => 442304971 + [time] => 1847-12-01T00:01:15+00:00 + [offset] => 0 + [isdst] => + [abbr] => GMT + ) + + [2] => Array + ( + [ts] => -1691964000 + [time] => 1916-05-21T02:00:00+00:00 [offset] => 3600 [isdst] => 1 [abbr] => BST ) - [1] => Array +) +]]> + + + + + <parameter>timestampBegin</parameter> を設定して <function>timezone_transitions_get</function> を使う例 + +getTransitions(time()); +print_r(array_slice($transitions, 0, 3)); +?> +]]> + + &example.outputs.similar; + + Array ( - [ts] => -1691964000 - [time] => 1916-05-21T02:00:00+0000 + [ts] => 1759058251 + [time] => 2025-09-28T11:17:31+00:00 [offset] => 3600 [isdst] => 1 [abbr] => BST ) - [2] => Array + [1] => Array ( - [ts] => -1680472800 - [time] => 1916-10-01T02:00:00+0000 + [ts] => 1761440400 + [time] => 2025-10-26T01:00:00+00:00 [offset] => 0 [isdst] => [abbr] => GMT ) + [2] => Array + ( + [ts] => 1774746000 + [time] => 2026-03-29T01:00:00+00:00 + [offset] => 3600 + [isdst] => 1 + [abbr] => BST + ) + ) ]]> @@ -138,7 +212,6 @@ Array
- - + @@ -12,15 +12,25 @@ &reftitle.description; &style.oop; - + public static arrayDateTimeZone::listAbbreviations &style.procedural; - + arraytimezone_abbreviations_list + + この関数が返す省略形のリストは、 + 歴史的に使われてきた値を全て含んでいます。 + これは正しい値ではあるものの、混乱を招くものがあります。 + 値が衝突しているものもあります。たとえば PST はアメリカ合衆国(US)とフィリピンの双方で使われています。 + + + よって、この関数が返すリストは、ユーザーにタイムゾーンを選択させる表示オプションを構築する目的には適していません。 + + この関数で使われるデータは、パフォーマンス上の理由でプリコンパイルされています。 @@ -29,10 +39,15 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; - 成功した場合に配列、&return.falseforfailure;。 + 成功した場合に、タイムゾーンの情報を含んだ配列を返します。 @@ -46,7 +61,6 @@ ]]> &example.outputs.similar; @@ -56,30 +70,44 @@ Array ( [0] => Array ( - [dst] => 1 - [offset] => -14400 - [timezone_id] => America/Porto_Acre + [dst] => + [offset] => 34200 + [timezone_id] => Australia/Adelaide ) [1] => Array ( - [dst] => 1 - [offset] => -14400 - [timezone_id] => America/Eirunepe + [dst] => + [offset] => 34200 + [timezone_id] => Australia/Broken_Hill ) [2] => Array ( - [dst] => 1 - [offset] => -14400 - [timezone_id] => America/Rio_Branco + [dst] => + [offset] => 34200 + [timezone_id] => Australia/Darwin ) [3] => Array ( - [dst] => 1 - [offset] => -14400 - [timezone_id] => Brazil/Acre + [dst] => + [offset] => 34200 + [timezone_id] => Australia/North + ) + + [4] => Array + ( + [dst] => + [offset] => 34200 + [timezone_id] => Australia/South + ) + + [5] => Array + ( + [dst] => + [offset] => 34200 + [timezone_id] => Australia/Yancowinna ) ) @@ -99,7 +127,6 @@ Array - - + @@ -12,16 +12,16 @@ &reftitle.description; &style.oop; - + public static arrayDateTimeZone::listIdentifiers inttimezoneGroupDateTimeZone::ALL - stringcountryCode&null; + stringnullcountryCode&null; &style.procedural; - + arraytimezone_identifiers_list inttimezoneGroupDateTimeZone::ALL - stringcountryCode&null; + stringnullcountryCode&null; @@ -41,7 +41,7 @@ countryCode - 2 文字の ISO 3166-1 互換の国コード。 + 2 文字の (大文字の) ISO 3166-1 互換の国コード。 @@ -58,7 +58,11 @@ &reftitle.returnvalues; - 成功した場合に配列、&return.falseforfailure;。 + 成功した場合に、タイムゾーンの識別子を含んだ配列を返します。 + 期限切れになっていない識別子のみを返します。 + 期限切れになったものも含めて、全ての識別子を取得するには、 + timezoneGroup の値に + DateTimeZone::ALL_WITH_BC を指定します。 @@ -75,10 +79,15 @@ - 5.3.0 + 8.0.0 - オプションのパラメータ timezoneGroup および - countryCode が追加されました。 + これより前のバージョンでは、失敗時に &false; を返していました。 + + + + 7.1.0 + + countryCode は、nullable になりました。 @@ -86,12 +95,12 @@ - + &reftitle.examples; - <function>timezone_identifiers_list</function> の例 + <methodname>DateTimeZone::listIdentifiers</methodname> の例 + + + + + + + 特定の地域を指定して、識別子の一覧を取得する + + +]]> + + &example.outputs.similar; + + + + + + + + + 複数の地域を指定して、識別子の一覧を取得する + + +]]> + + &example.outputs.similar; + + + + + + + + + 特定の国をひとつ指定して、識別子の一覧を取得する + + +]]> + + &example.outputs.similar; + + @@ -126,7 +231,6 @@ Africa/Asmara - - + &reftitle.examples; @@ -15,8 +15,8 @@ DateTimeImmutable::add/sub は、経過時間を含む区間を足してしまう - DST (夏時間) への移行タイミングをまたいで 24時間を足してしまうと、 - (ほとんどのタイムゾーンでは) 23/25時間を足しているように見える + DST (夏時間) への移行タイミングをまたいで 24時間を足してしまうと、 + (ほとんどのタイムゾーンでは) 23/25時間を足しているように見える format("Y-m-d H:i:s P"), PHP_EOL; $dt = $dt->add(new DateInterval("PT3H")); echo "End: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL; -?> ]]> &example.outputs; @@ -52,7 +51,6 @@ $dt = new DateTimeImmutable("2015-11-01 00:00:00", new DateTimeZone("America/New echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL; $dt = $dt->modify("+24 hours"); echo "End: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL; -?> ]]> &example.outputs; @@ -85,7 +83,6 @@ $dt = new DateTimeImmutable("2016-01-31 00:00:00", new DateTimeZone("America/New echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL; $dt = $dt->modify("+1 month"); echo "End: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL; -?> ]]> &example.outputs; @@ -101,7 +98,7 @@ End: 2016-03-02 00:00:00 -05:00 次の月の最後の日を得るために(つまり、オーバーフローを避けるため)、 - last day of フォーマットが PHP 5.3.0 から利用できます。 + last day of フォーマットも利用できます。 format("Y-m-d H:i:s P"), PHP_EOL; $dt = $dt->modify("last day of next month"); echo "End: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL; -?> ]]> &example.outputs; diff --git a/reference/datetime/formats.xml b/reference/datetime/formats.xml index 025d98b11c..ba07c2c8f1 100644 --- a/reference/datetime/formats.xml +++ b/reference/datetime/formats.xml @@ -1,6 +1,6 @@ - + サポートする日付と時刻の書式 @@ -8,30 +8,153 @@ この節では DateTimeImmutable, DateTime, - date_create, date_create_immutable, - および strtotime が解釈可能な全ての書式について説明します。 + date_create_immutable, date_create, date_parse + および strtotime が解釈可能な、全てのBNFライクな書式について説明します。 これらの書式はセクションごとにグループ分けされています。 たいていの場合、一つの日付・時刻文字列の中でホワイトスペース、 コンマまたはドットで区切られた異なるセクションの書式を併用することができます。 それぞれの書式について、説明と一緒に1個以上の例を示してあります。 - シングルクォートで囲まれたフォーマットは大文字小文字を同一視します + シングルクォートで囲まれたフォーマットは大文字小文字を区別しません。 ('t't とも T とも書けます)。 - ダブルクォートで囲まれたフォーマットは大文字小文字を同一視しません + ダブルクォートで囲まれたフォーマットは大文字小文字を区別します。 ("T"T としか書けません)。 + + DateTimeImmutableDateTime + オブジェクトをフォーマットするには、 + DateTimeInterface::format のドキュメントを参照ください。 + + + + 以下の一般的なルールを考慮すべきです。 + + + + + 日付/時刻のパーサーは、 + 個別の単位(年月日時分秒)ごとに許される値の範囲を持っています。 + 年については4桁の数値、 + 月については 0-12。 + 日は 0-31、 + 時 は 0-24。分は 0-59 の範囲を持ちます。 + + + + + 秒に60を入れても構いません。 + なぜなら、うるう秒を含んだ日付の文字列が現れる場合があるからです。 + しかし、PHP は "60" を不正な秒として扱う UnixTime を実装しているため、 + 60 を入れるとオーバーフローします。 + + + + + strtotime は、 + いずれかの数値が範囲外の場合に &false; を返します。 + DateTimeImmutable::__construct + はその場合に例外をスローします。 + + + + + 文字列が日付の場合、時刻に関する全ての要素は 0 にリセットされます。 + + + + + 時刻の一部が指定された文字列に含まれている場合、 + 重要でない時刻の要素は全て0にリセットされます。 + + + + + 日付/時刻のパーサーはお馬鹿なので、 + 高速にするためのチェックは行いません + (そのため、より汎用的です)。 + + + + + 個別の時刻フォーマット以外にも、 + 日付/時刻のパーサーは + 複合的な書式 + を理解します。たとえば Unixタイムスタンプ + (@1690388256) や、ISO の週番号 + (2008-W28-3) などです。 + + + + + 不正な日付を渡していないかどうかについて、追加のチェックが行われます: + + + + + &example.outputs; + + + string(27) "The parsed date was invalid" +} +]]> + + + + + + + エッジケースも処理できます。 + ただ、処理するためには、 + DateTimeImmutable::createFromFormat + を使い、正しいフォーマットを指定する必要があります。 + + + + + &example.outputs; + + + string(26) "2015-10-04 17:24:43.000000" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" +} +]]> + + + + + - + 時刻の書式 - + このページでは、 DateTimeImmutable, DateTime, date_create, date_create_immutable, そして strtotime のパーサーが理解する、 - さまざまな時刻フォーマットを説明します。 + BNFライクな時刻フォーマットを説明します。 + + + DateTimeImmutableDateTime + オブジェクトをフォーマットするには、 + DateTimeInterface::format のドキュメントを参照ください。 @@ -121,7 +244,7 @@ "4:08:37 am", "7:19:19P.M." - MS SQL (時、分、秒、端数、午前/午後), PHP 5.3 以降で利用可能 + MS SQL (時、分、秒、端数、午前/午後) hh ":" MM ":" II [.:] [0-9]+ meridian "4:08:39:12313am" @@ -182,14 +305,22 @@ - + 日付の書式 このページでは、 - strtotimeDateTime そして - date_create のパーサーが理解する、 - さまざまな日付フォーマットを説明します。 + DateTimeImmutable, DateTime, + date_create, + date_create_immutable および + strtotime + のパーサーが理解する、 + BNFライクな日付フォーマットを説明します。 + + + DateTimeImmutableDateTime + オブジェクトをフォーマットするには、 + DateTimeInterface::format のドキュメントを参照ください。
@@ -258,6 +389,11 @@ [0-9]{4}"2000", "2008", "1978" + + YYY + [0-9]{5,19} + "81412", "20192" +
@@ -335,7 +471,7 @@ 日、月の文字表記 - d ([ .\t-])* m + dd ([ .\t-])* m "1 July", "17 Apr", "9.May" @@ -353,6 +489,11 @@ YY "1978", "2008" + + 年 (拡張表記、5-19 桁。符号付き) + [+-] YYY + "-81120", "+20192" + 月の文字表記 (月だけの指定) m @@ -361,7 +502,7 @@ - + ISO 8601 に準拠した表記法 @@ -393,6 +534,11 @@ [+-]? YY "-" MM "-" DD "-0002-07-26", "+1978-04-17", "1814-05-17" + + 符号が必須。5桁の年、月、日 + [+-] YYY "-" MM "-" DD + "-81120-02-26", "+20192-04-17" +
@@ -421,12 +567,19 @@ 書式「年 (年だけの指定)」は、時刻の指定が先に出現している場合のみ機能します。 - そうでない場合、指定された4桁は - HH MM とみなされます。 + そうでない場合、指定された4桁が + HH MM + にマッチした場合にこれらふたつの日付要素が代わりに設定されます。 + + + 年だけの指定を一貫してパースしたい場合は、 + Y を指定して + DateTimeImmutable::createFromFormat + を使ってください。 - + シンボル ddDD について、 オーバーフローやアンダーフローすることができます。 @@ -437,7 +590,7 @@ ( 6 月は 30 日までしかないので)。 - PHP 5.1.0 以降では「日」の範囲が 0 から 31 までに絞られたことに注意しましょう。 + 「日」の範囲が 0 から 31 までに絞られていることに注意しましょう。 先ほどの正規表現が示すとおりです。 したがって、たとえば "2008-06-32" は日付文字列として妥当な形式ではなくなります。 @@ -455,19 +608,26 @@ (ISO 8601 における -1 年は、予測的グレゴリオ暦 (proleptic Gregorian calendar) で言うところの紀元前 2 年になります。) - +
- + 複合的な書式 このページでは、 - strtotimeDateTime そして - date_create のパーサーが理解する、 - さまざまな日付/時刻 複合フォーマットを説明します。 + DateTimeImmutable, DateTime, + date_create, + date_create_immutable および + strtotime のパーサーが理解する、 + BNFライクな日付/時刻 複合フォーマットを説明します。 + + + DateTimeImmutableDateTime + オブジェクトをフォーマットするには、 + DateTimeInterface::format のドキュメントを参照ください。 @@ -513,7 +673,7 @@ ii - [0-5][0-9] + [0-5]?[0-9] "04", "8", "59" @@ -538,8 +698,8 @@ ss - [0-5][0-9] - "04", "8", "59" + ([0-5]?[0-9])|60 + "04", "8", "59", "60" (うるう秒) SS @@ -566,7 +726,73 @@
- 標準仕様/アプリケーションごとの表記法 + 標準のフォーマット + + + + 説明 + + + + + + ATOM + "2022-06-02T16:58:35+00:00" + + + COOKIE + "Thursday, 02-Jun-2022 16:58:35 UTC" + + + ISO8601 + "2022-06-02T16:58:35+0000" + + + RFC 822 + "Thu, 02 Jun 22 16:58:35 +0000" + + + RFC 850 + "Thursday, 02-Jun-22 16:58:35 UTC" + + + RFC 1036 + "Thu, 02 Jun 22 16:58:35 +0000" + + + RFC 1123 + "Thu, 02 Jun 2022 16:58:35 +0000" + + + RFC 2822 + "Thu, 02 Jun 2022 16:58:35 +0000" + + + RFC 3339 + "2022-06-02T16:58:35+00:00" + + + RFC 3339 Extended + "2022-06-02T16:58:35.698+00:00" + + + RFC 7231 + "Thu, 02 Jun 2022 16:58:35 GMT" + + + RSS + "Thu, 02 Jun 2022 16:58:35 +0000" + + + W3C + "2022-06-02T16:58:35+00:00" + + + +
+ + + ローカライズされた表記法 @@ -617,6 +843,11 @@ "@" "-"? [0-9]+ "@1215282385" + + マイクロ秒付きのUnix タイムスタンプ + "@" "-"? [0-9]+ "." [0-9]{0,6} + "@1607974647.503686" + XMLRPC YY MM DD "T" hh ":" II ":" SS @@ -640,11 +871,11 @@ 書式「 ISO の年、 ISO の週番号」と 「 ISO の年、 ISO の週番号、 ISO の曜日番号」で使われている - "W" は大文字小文字を同一視しません。大文字の "W" だけが利用できます。 + "W" は大文字小文字を区別します。大文字の "W" だけが利用できます。 - 「 SOAP 」、「 XMRPC 」および「 WDDX 」の各書式中の - "T" は大文字小文字を同一視しません。大文字の "T" だけが利用できます。 + 「 SOAP 」、「 XMLRPC 」および「 WDDX 」の各書式中の + "T" は大文字小文字を区別します。大文字の "T" だけが利用できます。 書式「 Unix タイムスタンプ 」は、タイムゾーンを UTC に設定します。 @@ -666,13 +897,21 @@ - + 相対的な書式 このページでは、 - strtotimeDateTime そして - date_create のパーサーが理解する、 - さまざまな相対日付/時刻フォーマットを説明します。 + DateTimeImmutable, + DateTime, + date_create, + date_create_immutable, そして + strtotime のパーサーが理解する、 + BNFライクな相対日付/時刻フォーマットを説明します。 + + + DateTimeImmutableDateTime + オブジェクトをフォーマットするには、 + DateTimeInterface::format のドキュメントを参照ください。
@@ -715,7 +954,8 @@ unit - (('sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' | + 'ms' | 'µs' | (( 'msec' | 'millisecond' | 'µsec' | 'microsecond' + | 'usec' | 'sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' | 'fortnight' | 'forthnight' | 'month' | 'year') 's'?) | 'weeks' | daytext @@ -777,13 +1017,15 @@ 'first day of' 現在月の最初の日にします。 - この書式に続けて月名を指定する使いかたが最適です。 + これは、現在月にしか影響しないため、 + 通常はこの書式に続けて月名を指定する使いかたが最適です。 "first day of January 2008" 'last day of' 現在月の最後の日にします。 - この書式に続いて月名を指定する使いかたが最適です。 + これは、現在月にしか影響しないため、 + 通常はこの書式に続けて月名を指定する使いかたが最適です。 "last day of next month" @@ -802,9 +1044,10 @@ "+5 weeks", "12 day", "-7 weekdays" - ordinal space unit - 値を英単語で指定するような、相対的な時間指定を処理します。 - "fifth day", "second month" + (ordinal | reltext) space unit + 値を英単語で指定するような、相対的な時間指定を処理します。 + lastprevious は、-1 に等しく、this に等しいものはありません。そして next+1 に等しいです。 + "fifth day", "second month", "last day", "previous year" 'ago' @@ -813,7 +1056,8 @@ dayname - 現在からみて次にやってくる、指定された曜日にします。 + 現在からみて次にやってくる、指定された曜日にします。(曜日指定についての注意 も参照ください) "Monday" @@ -840,10 +1084,20 @@ このような結果になる理由は、 これら5つの記述が現在時刻に直接影響するためです。 + + "first day of" のようなキーワードは、 + 相対的な書式文字列が使われるコンテクストに依存します。 + static メソッドや関数で使われた場合、 + 参照されるのは現在のタイムスタンプですが、 + DateTime::modify や + DateTimeImmutable::modify + で使われた場合、参照されるのは modify() + メソッドがコールされたオブジェクトです。 + - + 日付/時刻文字列中の曜日指定が現在の曜日と同じ場合は、 以下の点に注意してください。 この場合、日付文字列中の曜日は、曜日を明示的に指定しなかった場合に @@ -965,7 +1219,7 @@ '+1 5 hours' のようにパースされます。 - + &reftitle.changelog; @@ -979,17 +1233,27 @@ - 5.6.23, 7.0.8 + 8.4.0 - 週の始まりが常に月曜日となりました。 - これより前のバージョンでは、日曜日も週の始まりとみなされていました。 + number シンボルは、 + 再びプラス符号の後に、マイナス符号を受け入れるようになりました。 + たとえば、+-2 のようなフォーマットや、 + 他の複数の符号の組み合わせです。 - 5.3.3 + 8.2.0 - "first day" と "last day" が、それぞれ "+1 day" と "-1 day" - のように振る舞うようになりました。以前はそれぞれ "first day of" と "last day of" でした。 + number シンボルは、 + プラス符号の後に、マイナス符号を受け入れなくなりました。 + たとえば、+-2 のようなフォーマットです。 + + + + 7.0.8 + + 週の始まりが常に月曜日となりました。 + これより前のバージョンでは、日曜日も週の始まりとみなされていました。 diff --git a/reference/datetime/functions/checkdate.xml b/reference/datetime/functions/checkdate.xml index cc1d617987..32caae8677 100644 --- a/reference/datetime/functions/checkdate.xml +++ b/reference/datetime/functions/checkdate.xml @@ -1,6 +1,6 @@ - + @@ -73,7 +73,6 @@ ]]> &example.outputs; diff --git a/reference/datetime/functions/date-create-immutable.xml b/reference/datetime/functions/date-create-immutable.xml index 4ebd776e41..8ad606a97a 100644 --- a/reference/datetime/functions/date-create-immutable.xml +++ b/reference/datetime/functions/date-create-immutable.xml @@ -1,17 +1,50 @@ - + date_create_immutable - DateTimeImmutable::__construct &Alias; + 新しい DateTimeImmutable オブジェクトを作成する &reftitle.description; + + DateTimeImmutablefalsedate_create_immutable + stringdatetime"now" + DateTimeZonenulltimezone&null; + - &info.function.alias; DateTimeImmutable::__construct + これは + DateTimeImmutable::__construct + の手続き型バージョンです。 + + DateTimeImmutable のコンストラクタと異なり、 + datetime が不正な文字列だった場合には + 例外をスローする代わりに &false; を返します。 + + + + + &reftitle.parameters; + + DateTimeImmutable::__construct を参照ください。 + + + + + &reftitle.returnvalues; + + 新しい DateTimeImmutable のインスタンスを返します。&return.falseforfailure; + + + + + &reftitle.seealso; + + DateTimeImmutable::createFromFormat + diff --git a/reference/datetime/functions/date-create.xml b/reference/datetime/functions/date-create.xml index 9d8345b121..154037d326 100644 --- a/reference/datetime/functions/date-create.xml +++ b/reference/datetime/functions/date-create.xml @@ -1,21 +1,55 @@ - + + date_create - DateTime::__construct &Alias; + 新しい DateTime オブジェクトを作成する &reftitle.description; + + DateTimefalsedate_create + stringdatetime"now" + DateTimeZonenulltimezone&null; + + + DateTime::__construct + の手続き型バージョンです。 + - &info.function.alias; DateTime::__construct + DateTime のコンストラクタと異なり、 + datetime に渡された文字列が不正な場合には、 + 例外をスローする代わりに &false; を返します。 + + + + + &reftitle.parameters; + + DateTimeImmutable::__construct も参照ください。 - + + &reftitle.returnvalues; + + 新しい DateTime クラスのインスタンスを返します。&return.falseforfailure; + + + + &reftitle.seealso; + + DateTimeImmutable::__construct + DateTimeImmutable::createFromFormat + DateTime::__construct + + + + - + + date_default_timezone_get @@ -23,29 +24,12 @@ 設定したタイムゾーン (もし何か設定されていれば) を読み込む - - - PHP 5.4.0 より前のバージョンのみ: TZ 環境変数 (もし空白でなければ) を読み込む - - date.timezone ini オプション (設定されていれば) を読み込む - - - PHP 5.4.0 より前のバージョンのみ: - ホスト OS に問い合わせる (もし OS がそれに対応しており、許可されていれば)。 - これは、タイムゾーンを推測するアルゴリズムを使います。 - このアルゴリズムはあらゆる状況で正しく動作するとは限りません。 - この段階に到達したときには警告が表示されます。 - この推測が正しくなることに期待するのではなく、 - date.timezone - に正しいタイムゾーンを設定するようにしましょう。 - - @@ -54,6 +38,11 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; @@ -61,38 +50,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.4.0 - - タイムゾーンの判定時に環境変数 TZ - を使わなくなりました。 - - - - 5.4.0 - - タイムゾーンの判定時に、OS から得られる情報に頼らないようになりました。 - 推測に基づくタイムゾーンは信頼できないからです。 - - - - - - - - &reftitle.examples; @@ -104,14 +61,12 @@ date_default_timezone_set('Europe/London'); if (date_default_timezone_get()) { - echo 'date_default_timezone_set: ' . date_default_timezone_get() . '
'; + echo 'date_default_timezone_set: ' . date_default_timezone_get() . "\n"; } if (ini_get('date.timezone')) { echo 'date.timezone: ' . ini_get('date.timezone'); } - -?> ]]> &example.outputs.similar; @@ -131,7 +86,6 @@ date.timezone: Europe/London ' . date('e') . ' => ' . date('T'); -?> ]]> &example.outputs; diff --git a/reference/datetime/functions/date-default-timezone-set.xml b/reference/datetime/functions/date-default-timezone-set.xml index 1dbc99dffc..1703de3533 100644 --- a/reference/datetime/functions/date-default-timezone-set.xml +++ b/reference/datetime/functions/date-default-timezone-set.xml @@ -1,6 +1,6 @@ - + @@ -13,21 +13,12 @@ &reftitle.description; booldate_default_timezone_set - stringtimezoneID + stringtimezoneId date_default_timezone_set は、日付/時刻関数で 使用されるデフォルトタイムゾーンを設定します。 - - - PHP 5.1.0 以降(日付/時刻 関数が書き直されてから)、タイムゾーンを - 正しく設定せずに日付/時刻関数をコールすると E_NOTICE - が発生し、またシステムの設定や TZ 環境変数を - 使用すると E_WARNING - が発生するようになりました。 - - スクリプト内でこの関数を使用してデフォルトタイムゾーンを設定するかわりに、 INI 設定 date.timezone @@ -40,7 +31,7 @@ - timezoneID + timezoneId タイムゾーン ID 。例えば UTC, @@ -57,7 +48,7 @@ &reftitle.returnvalues; - この関数は、timezoneID が + この関数は、timezoneId が 無効なものである場合に &false;、それ以外の場合に &true; を返します。 @@ -74,62 +65,29 @@ date_default_timezone_set('America/Los_Angeles'); $script_tz = date_default_timezone_get(); +$ini_tz = ini_get('date.timezone'); -if (strcmp($script_tz, ini_get('date.timezone'))){ +if (strcmp($script_tz, $ini_tz)){ echo 'Script timezone differs from ini-set timezone.'; } else { echo 'Script timezone and ini-set timezone match.'; } -?> ]]>
- - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - E_STRICT ではなく - E_WARNING をスローするようになりました。 - - - - 5.1.2 - - timezoneID パラメータの内容を - 検証するようになりました。 - - - - - - - - &reftitle.seealso; date_default_timezone_get - + - - - + date_get_last_errors - DateTime::getLastErrors &Alias; + DateTimeImmutable::getLastErrors &Alias; &reftitle.description; - &info.function.alias; DateTime::getLastErrors + &info.function.alias; DateTimeImmutable::getLastErrors diff --git a/reference/datetime/functions/date-parse-from-format.xml b/reference/datetime/functions/date-parse-from-format.xml index a497c157a9..96078e4cc2 100644 --- a/reference/datetime/functions/date-parse-from-format.xml +++ b/reference/datetime/functions/date-parse-from-format.xml @@ -1,6 +1,6 @@ - + @@ -29,8 +29,9 @@ format - DateTime::createFromFormat - が理解できるフォーマット。 + format の使い方に関するドキュメントは、 + DateTimeImmutable::createFromFormat + のそれを参照ください。同じルールが適用されます。 @@ -52,6 +53,60 @@ 指定した日付/時刻についての詳細情報を連想配列で返します。 + + 返される配列は、 + year, + month, day, hour, + minute, second, + fraction, is_localtime というキーを持ちます。 + + + is_localtime が存在する場合、 + zone_type がタイムゾーンのタイプを示します。 + タイプ 1 (UTC オフセット) の場合、 + zoneis_dst + フィールドが追加されます。 + タイプ 2 (省略形) の場合、 + tz_abbris_dst + フィールドが追加されます。 + タイプ 3 (タイムゾーン識別子) の場合、 + tz_abbr, tz_id が追加されます。 + + + warning_countwarnings + が配列に含まれます。 + 最初のフィールドは、警告が何個発生したかを示します。 + warnings 配列は、 + 警告を説明する文字列と一緒に、指定された datetime + のどの場所で警告が発生したかの位置を示します。 + 下記の例で、警告の例を示します。 + + + error_count, + errors フィールドも配列に含まれます。 + 最初のフィールドは、エラーが何個発生したかを示します。 + errors 配列のキーは、 + 警告を説明する文字列と一緒に、指定された datetime + のどの場所でエラーが発生したかの位置を示します。 + 下記の例で、エラーの例を示します。 + + + + warnings と + errors に含まれる配列の要素数は、 + 同じ箇所でエラーや警告が発生した場合、 + warning_counterror_count + よりも少なくなる可能性があります。 + + + + + + &reftitle.errors; + + datetime に NULLバイトが含まれている場合は、 + ValueError がスローされます。 + @@ -65,6 +120,14 @@ + + 8.0.21, 8.1.8, 8.2.0 + + datetime に NULLバイトが含まれている場合は、 + ValueError がスローされるようになりました。 + これより前のバージョンでは、こうした値は静かに無視されていました。 + + 7.2.0 @@ -90,7 +153,6 @@ ]]> &example.outputs; @@ -104,7 +166,7 @@ Array [hour] => 13 [minute] => 0 [second] => 0 - [fraction] => + [fraction] => 0 [warning_count] => 0 [warnings] => Array ( @@ -118,18 +180,70 @@ Array [is_localtime] => 1 [zone_type] => 1 [zone] => 3600 - [is_dst] => + [is_dst] => ) +]]> + + + + + + + <function>date_parse_from_format</function> の結果に警告が含まれる例 + + $message) { + echo "\tOn position {$position}: {$message}\n"; +} +]]> + + &example.outputs; + + + + + + + + + <function>date_parse_from_format</function> の結果にエラーが含まれる例 + + $message) { + echo "\tOn position {$position}: {$message}\n"; +} +]]> + + &example.outputs; + + + &reftitle.seealso; - DateTime::createFromFormat + DateTimeImmutable::createFromFormat checkdate diff --git a/reference/datetime/functions/date-parse.xml b/reference/datetime/functions/date-parse.xml index 356bf98d6b..2bc617f75c 100644 --- a/reference/datetime/functions/date-parse.xml +++ b/reference/datetime/functions/date-parse.xml @@ -1,6 +1,6 @@ - + @@ -13,6 +13,28 @@ arraydate_parse stringdatetime + + date_parse は、 + strtotime や + DateTimeImmutable::__construct + と同じルールに従って + datetime をパースします。 + Unixタイムスタンプ (strtotime の場合) + や DateTimeImmutable + (DateTimeImmutable::__construct の場合) + を返す代わりに、指定した datetime + から検知できた情報を連想配列として返します。 + + + あるグループの要素に関する情報が見つからなかった場合、 + そうした情報は &false; に設定されたり、存在しない状態になります。 + datetime に指定する文字列から、 + 同等のタイムスタンプや DateTimeImmutable + オブジェクトを構築する必要がある場合、 + より多くのフィールドを &false; でない値に設定できます。 + そうしたことが起こる場合については、 + 以下に示す例を参照ください。 + @@ -34,8 +56,64 @@ &reftitle.returnvalues; - 成功した場合に日付/時刻情報を含む配列、&return.falseforfailure;。 + パースした日付/時刻情報を含む配列を返します。 + + + 返される配列は、 + year, + month, day, hour, + minute, second, + fraction, + is_localtime というキーを持ちます。 + + + is_localtime が存在する場合、 + zone_type がタイムゾーンのタイプを示します。 + タイプ 1 (UTC オフセット) の場合、 + zoneis_dst + フィールドが追加されます。 + タイプ 2 (省略形) の場合、 + tz_abbris_dst + フィールドが追加されます。 + タイプ 3 (タイムゾーン識別子) の場合、 + tz_abbr, tz_id が追加されます。 + + + +3 days のような、 + 相対時刻の文字列が datetime + に存在する場合、返される配列には、relative をキーとしたネストされた配列が含まれます。 + この配列には、year, month, + day, + hour, minute, + second が含まれ、 + 渡される文字列に応じて、必要があれば + weekday, weekdays も含まれます。 + + + warning_countwarnings + が配列に含まれます。 + 最初のフィールドは、警告が何個発生したかを示します。 + warnings 配列は、 + 警告を説明する文字列と一緒に、指定された datetime + のどの場所で警告が発生したかの位置を示します。 + + + error_count, + errors フィールドも配列に含まれます。 + 最初のフィールドは、エラーが何個発生したかを示します。 + errors 配列は、 + 警告を説明する文字列と一緒に、指定された datetime + のどの場所でエラーが発生したかの位置を示します。 + + + warnings と + errors に含まれる配列の要素数は、 + 同じ箇所でエラーや警告が発生した場合、 + warning_counterror_count + よりも少なくなる可能性があります。 + + @@ -76,83 +154,331 @@ &reftitle.examples; - <function>date_parse</function> の例 + <parameter>datetime</parameter> に包括的な情報を指定した <function>date_parse</function> の例 +var_dump(date_parse("2006-12-12 10:00:00.5")); ]]> &example.outputs; 2006 - [month] => 12 - [day] => 12 - [hour] => 10 - [minute] => 0 - [second] => 0 - [fraction] => 0.5 - [warning_count] => 0 - [warnings] => Array() - [error_count] => 0 - [errors] => Array() - [is_localtime] => -) +array(12) { + ["year"]=> + int(2006) + ["month"]=> + int(12) + ["day"]=> + int(12) + ["hour"]=> + int(10) + ["minute"]=> + int(0) + ["second"]=> + int(0) + ["fraction"]=> + float(0.5) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} ]]> + - 相対的な書式 は - 絶対的な書式のパース結果に影響を及ぼさず、別途 - "relative" 要素にまとめられます。 + 指定された datetime + にタイムゾーン情報が含まれた場合にのみ、 + タイムゾーンの要素が現れるようになります。 + この場合、zone_type 要素が常に存在し、 + 値によっては少し多くの要素が含まれます。 + + タイムゾーンの省略形を与えた場合の <function>date_parse</function> の例 + + + + &example.outputs; + + + int(2022) + ["month"]=> + int(6) + ["day"]=> + int(2) + ["hour"]=> + int(10) + ["minute"]=> + int(28) + ["second"]=> + int(17) + ["fraction"]=> + float(0) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(true) + ["zone_type"]=> + int(2) + ["zone"]=> + int(0) + ["is_dst"]=> + bool(true) + ["tz_abbr"]=> + string(3) "BST" +} +]]> + + - <function>date_parse</function> での相対的な書式の使用例 + タイムゾーン情報を与えた <function>date_parse</function> の例 +var_dump(date_parse("June 2nd, 2022, 10:28:17 Europe/London")); ]]> &example.outputs; 2006 - [month] => 12 - [day] => 12 - [hour] => 10 - [minute] => 0 - [second] => 0 - [fraction] => 0.5 - [warning_count] => 0 - [warnings] => Array - ( - ) +array(14) { + ["year"]=> + int(2022) + ["month"]=> + int(6) + ["day"]=> + int(2) + ["hour"]=> + int(10) + ["minute"]=> + int(28) + ["second"]=> + int(17) + ["fraction"]=> + float(0) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(true) + ["zone_type"]=> + int(3) + ["tz_id"]=> + string(13) "Europe/London" +} +]]> + + + - [error_count] => 0 - [errors] => Array - ( - ) + + さらに最低限の文字列を datetime + に与えてパースさせた場合、 + 情報量はさらに少なくなります。以下の例では、 + 全ての時刻に関する情報が &false; になります。 + + 最低限の文字列だけを与えた <function>date_parse</function> の例 + + + + &example.outputs; + + + int(2022) + ["month"]=> + int(6) + ["day"]=> + int(2) + ["hour"]=> + bool(false) + ["minute"]=> + bool(false) + ["second"]=> + bool(false) + ["fraction"]=> + bool(false) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) +} +]]> + + + - [is_localtime] => - [relative] => Array - ( - [year] => 0 - [month] => 0 - [day] => 7 - [hour] => 1 - [minute] => 0 - [second] => 0 - ) + + 相対的な書式 は + 絶対的な書式のパース結果に影響を及ぼさず、別途 + "relative" 要素にまとめられます。 + + "relative" フォーマットを使った <function>date_parse</function> の例 + + + + &example.outputs; + + + int(2006) + ["month"]=> + int(12) + ["day"]=> + int(12) + ["hour"]=> + int(10) + ["minute"]=> + int(0) + ["second"]=> + int(0) + ["fraction"]=> + float(0.5) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) + ["relative"]=> + array(6) { + ["year"]=> + int(0) + ["month"]=> + int(0) + ["day"]=> + int(7) + ["hour"]=> + int(1) + ["minute"]=> + int(0) + ["second"]=> + int(0) + } +} +]]> + + + -)]]> + + Thursday のように、 + 語句によっては、文字列の時刻の部分に 0 + を設定するものがあります。 + Thursday を + DateTimeImmutable::__construct + に与えた場合、hour, minute, second は + 0 に設定されます。 + 以下の例では、year の要素は &false; に設定されます。 + + <function>date_parse</function> の副作用 + + + + &example.outputs; + + + bool(false) + ["month"]=> + int(6) + ["day"]=> + int(2) + ["hour"]=> + int(0) + ["minute"]=> + int(0) + ["second"]=> + int(0) + ["fraction"]=> + float(0) + ["warning_count"]=> + int(0) + ["warnings"]=> + array(0) { + } + ["error_count"]=> + int(0) + ["errors"]=> + array(0) { + } + ["is_localtime"]=> + bool(false) + ["relative"]=> + array(7) { + ["year"]=> + int(0) + ["month"]=> + int(0) + ["day"]=> + int(0) + ["hour"]=> + int(0) + ["minute"]=> + int(0) + ["second"]=> + int(0) + ["weekday"]=> + int(4) + } +} +]]> @@ -162,6 +488,7 @@ Array &reftitle.seealso; + 指定されたフォーマットに従って datetime をパースする DateTimeImmutable::parseFromFormat checkdate getdate @@ -169,7 +496,6 @@ Array - - + date_sub @@ -14,6 +14,16 @@ + + &reftitle.seealso; + + + DateTimeImmutable::sub + DateTime::sub + + + + - + date_sun_info - 日の出/日の入り時刻と薄明かり (twilight) の開始/終了時刻の情報を含む配列を返す + 日の出/日の入り時刻と薄明 (twilight) の開始/終了時刻の情報を含む配列を返す &reftitle.description; @@ -52,8 +52,7 @@ &reftitle.returnvalues; - 成功した場合に配列、&return.falseforfailure;。 - 配列の構造の詳細は、以下のリストのとおりです + 配列を返します。配列の構造の詳細は、以下のリストのとおりです: @@ -77,8 +76,8 @@ transit - 太陽が天頂に達するタイムスタンプ。 - つまり、もっとも上部に達した時刻です。 + 太陽が天頂に達するときのタイムスタンプ。 + つまり、最高点に達する時刻です。 @@ -86,7 +85,7 @@ civil_twilight_begin - 夜明けの始まり(天頂角 = 96°) + 日の出側の市民薄明 (夜明) が始まる時刻 (天頂角 = 96°)。 sunrise の時刻に終了します。 @@ -95,7 +94,7 @@ civil_twilight_end - 夕暮れの終わり(天頂角 = 96°) + 日の入り側の市民薄明 (夕暮) が終わる時刻 (天頂角 = 96°)。 sunset の時刻に始まります。 @@ -104,8 +103,8 @@ nautical_twilight_begin - 航海上の夜明け (天頂角 = 102°) - civil_twilight_begin に終了します。 + 日の出側の航海薄明が始まる時刻 (天頂角 = 102°)。 + civil_twilight_begin の時刻に終了します。 @@ -113,7 +112,7 @@ nautical_twilight_end - 航海上の夕暮れ (天頂角 = 102°) + 日の入り側の航海薄明が終わる時刻 (天頂角 = 102°)。 civil_twilight_end の時刻に始まります。 @@ -122,8 +121,8 @@ astronomical_twilight_begin - 天文学上の夜明け (天頂角 = 108°) - nautical_twilight_begin に終了します。 + 日の出側の天文薄明が始まる時刻 (天頂角 = 108°)。 + nautical_twilight_begin の時刻に終了します。 @@ -131,7 +130,7 @@ astronomical_twilight_end - 天文学上の夕暮れ (天頂角 = 108°) + 日の入り側の天文薄明が終わる時刻 (天頂角 = 108°)。 nautical_twilight_end の時刻に始まります。 @@ -147,25 +146,28 @@ &reftitle.changelog; - - - - - &Version; - &Description; - - - - - 5.2.2 - - latitude と - longitude の順番が逆になりました。 - - - - - + + + + + + &Version; + &Description; + + + + + 7.2.0 + + ローカルの昼ではなく、 + 夜中に関する計算結果が修正されました。 + これによって、結果が少し変わります。 + + + + + + @@ -180,7 +182,6 @@ $sun_info = date_sun_info(strtotime("2006-12-12"), 31.7667, 35.2333); foreach ($sun_info as $key => $val) { echo "$key: " . date("H:i:s", $val) . "\n"; } -?> ]]> &example.outputs; @@ -198,91 +199,100 @@ astronomical_twilight_end: 17:12:00 ]]> + + + - Polar night + 極夜のデータに処理を少し行う例 +$tz = new \DateTimeZone('America/Anchorage'); + +$si = date_sun_info(strtotime("2022-12-21"), 70.21, -148.51); +foreach ($si as $key => $value) { + echo + match ($value) { + true => 'always', + false => 'never', + default => date_create("@{$value}")->setTimeZone($tz)->format( 'H:i:s T' ), + }, + ": {$key}", + "\n"; +} ]]> &example.outputs; - bool(false) - ["sunset"]=> - bool(false) - ["transit"]=> - int(1513857490) - ["civil_twilight_begin"]=> - bool(false) - ["civil_twilight_end"]=> - bool(false) - ["nautical_twilight_begin"]=> - bool(false) - ["nautical_twilight_end"]=> - bool(false) - ["astronomical_twilight_begin"]=> - bool(false) - ["astronomical_twilight_end"]=> - bool(false) -} +never: sunrise +never: sunset +12:52:18 AKST: transit +10:53:19 AKST: civil_twilight_begin +14:51:17 AKST: civil_twilight_end +09:01:47 AKST: nautical_twilight_begin +16:42:48 AKST: nautical_twilight_end +07:40:47 AKST: astronomical_twilight_begin +18:03:49 AKST: astronomical_twilight_end ]]> + + + - Midnight sun + 白夜の例(Tromsø, Norway) +$si = date_sun_info(strtotime("2022-06-26"), 69.68, 18.94); +print_r($si); ]]> &example.outputs; - bool(true) - ["sunset"]=> - bool(true) - ["transit"]=> - int(1498046510) - ["civil_twilight_begin"]=> - bool(true) - ["civil_twilight_end"]=> - bool(true) - ["nautical_twilight_begin"]=> - bool(true) - ["nautical_twilight_end"]=> - bool(true) - ["astronomical_twilight_begin"]=> - bool(true) - ["astronomical_twilight_end"]=> - bool(true) -} +Array +( + [sunrise] => 1 + [sunset] => 1 + [transit] => 1656240426 + [civil_twilight_begin] => 1 + [civil_twilight_end] => 1 + [nautical_twilight_begin] => 1 + [nautical_twilight_end] => 1 + [astronomical_twilight_begin] => 1 + [astronomical_twilight_end] => 1 +) ]]> - - - &reftitle.seealso; - - date_sunrise - date_sunset - + + 一日の長さを計算する例 (Kyiv) + + + + &example.outputs; + + + + - - + @@ -10,16 +10,27 @@ + + + + この関数は PHP 8.1.0 で 非推奨 になります。 + この機能に頼らないことを強く推奨します。 + 代わりに date_sun_info を使ってください。 + + + + &reftitle.description; - mixeddate_sunrise + #[\Deprecated] + stringintfloatfalsedate_sunrise inttimestamp - intreturnFormatSUNFUNCS_RET_STRING - floatlatitudeini_get("date.default_latitude") - floatlongitudeini_get("date.default_longitude") - floatzenithini_get("date.sunrise_zenith") - floatutcOffset0 + intreturnFormatSUNFUNCS_RET_STRING + floatnulllatitude&null; + floatnulllongitude&null; + floatnullzenith&null; + floatnullutcOffset&null; date_sunrise は、与えられた日付 @@ -68,7 +79,7 @@ SUNFUNCS_RET_TIMESTAMP - 結果を integer (タイムスタンプ) で返します。 + 結果を int (タイムスタンプ) で返します。 1095034606 @@ -117,15 +128,15 @@ 96° - 薄明かり: 夜明けの始まりを示すのに慣習的に使われます + 市民薄明: 夜明けの始まりを示すのに慣習的に使われます 102° - 航海上の薄明かり: 海の上で、水平線が見えはじめる点 + 航海薄明: 海の上で、水平線が見えはじめる点 108° - 天文学上の薄明かり: 太陽があらゆる明かりの光源になりはじめる点 + 天文薄明: 太陽があらゆる明かりの光源になりはじめる点 @@ -152,7 +163,7 @@ &reftitle.returnvalues; 日の出時刻を、指定した returnFormat で返します。 - &return.falseforfailure; + &return.falseforfailure;。 失敗する潜在的な可能性があります。太陽が全く昇らない場合です。 これは一年のある時期、極圏の中にある場合に起こります。 @@ -177,9 +188,20 @@ - - &date.timezone.errors.changelog; - + + 8.1.0 + + この関数は、推奨されなくなりました。 + date_sun_info を代わりに使って下さい。 + + + + 8.0.0 + + latitude, longitude, + zenith, utcOffset は、nullable になりました。 + + @@ -203,13 +225,13 @@ */ echo date("D M d Y"). ', sunrise time : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1); - -?> ]]> &example.outputs.similar; @@ -221,12 +243,13 @@ Mon Dec 20 2004, sunrise time : 08:54 ]]> &example.outputs; @@ -238,13 +261,11 @@ bool(false) &reftitle.seealso; - date_sunset date_sun_info - - + @@ -10,17 +10,28 @@ + + + + この関数は PHP 8.1.0 で 非推奨 になります。 + この機能に頼らないことを強く推奨します。 + 代わりに date_sun_info を使ってください。 + + + + &reftitle.description; - mixeddate_sunset + #[\Deprecated] + stringintfloatfalsedate_sunset inttimestamp - intreturnFormatSUNFUNCS_RET_STRING - floatlatitudeini_get("date.default_latitude") - floatlongitudeini_get("date.default_longitude") - floatzenithini_get("date.sunset_zenith") - floatutcOffset0 - + intreturnFormatSUNFUNCS_RET_STRING + floatnulllatitude&null; + floatnulllongitude&null; + floatnullzenith&null; + floatnullutcOffset&null; + date_sunset は、与えられた日付 (timestamp で指定する) @@ -68,7 +79,7 @@ SUNFUNCS_RET_TIMESTAMP - 結果を integer (タイムスタンプ) で返します。 + 結果を int (タイムスタンプ) で返します。 1095034606 @@ -117,15 +128,15 @@ 96° - 薄明かり: 夕暮れの終わりを示すのに慣習的に使われます + 市民薄明: 夕暮れの終わりを示すのに慣習的に使われます 102° - 航海上の薄明かり: 海の上で、水平線が見えなくなった点 + 航海薄明: 海の上で、水平線が見えなくなった点 108° - 天文学上の薄明かり: 太陽があらゆる明かりの光源ではなくなった点 + 天文薄明: 太陽があらゆる明かりの光源ではなくなった点 @@ -148,6 +159,16 @@ + + &reftitle.returnvalues; + + 日の入り時刻を、指定した returnFormat で返します。 + &return.falseforfailure;。 + 失敗する潜在的な可能性があります。太陽が全く昇らない場合です。 + これは一年のある時期、極圏の中にある場合に起こります。 + + + &reftitle.errors; @@ -167,25 +188,26 @@ - - &date.timezone.errors.changelog; - + + 8.1.0 + + この関数は、推奨されなくなりました。 + date_sun_info を使って下さい。 + + + + 8.0.0 + + latitude, longitude, + zenith, utcOffset は、nullable になりました。 + + - - &reftitle.returnvalues; - - 日の入り時刻を、指定した returnFormat で返します。 - &return.falseforfailure; - 失敗する潜在的な可能性があります。太陽が全く昇らない場合です。 - これは一年のある時期、極圏の中にある場合に起こります。 - - - &reftitle.examples; @@ -203,13 +225,13 @@ */ echo date("D M d Y"). ', sunset time : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1); - -?> ]]> &example.outputs.similar; @@ -221,12 +243,13 @@ Mon Dec 20 2004, sunset time : 18:13 ]]> &example.outputs; @@ -238,7 +261,6 @@ bool(false) &reftitle.seealso; - date_sunrise date_sun_info diff --git a/reference/datetime/functions/date.xml b/reference/datetime/functions/date.xml index d5a6590769..a2baea2454 100644 --- a/reference/datetime/functions/date.xml +++ b/reference/datetime/functions/date.xml @@ -1,11 +1,11 @@ - + date - ローカルの日付/時刻を書式化する + Unixタイムスタンプを書式化する @@ -13,15 +13,24 @@ stringdate stringformat - inttimestamptime() + intnulltimestamp&null; - 指定された引数 timestamp を、与えられた + 指定された引数 timestamp + (Unixタイムスタンプ) を、与えられた フォーマット文字列によりフォーマットし、日付文字列を返します。 タイムスタンプが与えられない場合は、現在の時刻が使われます。 つまり timestamp はオプションであり そのデフォルト値は time の値です。 + + + Unixタイムスタンプはタイムゾーンを処理しません。 + タイムゾーン情報が付加された日付/時刻の情報を書式化するには、 + DateTimeImmutable クラスや、 + DateTimeInterface::format を使って下さい。 + + @@ -31,8 +40,17 @@ format - DateTimeInterface::format が受け入れるフォーマット。 + DateTimeInterface::format が受け入れるフォーマット。 + + + date 関数は、マイクロ秒については常に + 000000 を生成します。 + というのも、この関数が受け取るパラメータは int 型だからです。 + 一方 DateTimeInterface 型のオブジェクトをマイクロ秒つきで作成した場合は、 + DateTimeInterface::format はマイクロ秒にも対応しています。 + + &date.timestamp.description; @@ -42,10 +60,7 @@ &reftitle.returnvalues; - 日付を表す文字列を返します。 - timestamp に数字以外が使用された場合は - &false; が返され、E_WARNING - レベルのエラーが発生します。 + フォーマットされた日付を表す文字列を返します。 @@ -69,28 +84,11 @@ - 5.1.1 + 8.0.0 - PHP 5.1.1 以降、format パラメータで標準的な - 日付/時刻フォーマットを指定する際に有用な 定数がいくつか追加されました。 + timestamp は、nullable になりました。 - - 5.1.0 - - 有効なタイムスタンプの範囲は、通常 Fri, 13 Dec 1901 - 20:45:54 GMT から Tue, 19 Jan 2038 03:14:07 GMT までです - (これらの日付は、32 ビット符号付き整数の最小および最大値に - 対応します)。 - しかし、PHP 5.1 より前のバージョンでは、システム環境によっては - (例: Windows) この範囲が 1970 年 1 月 1 日から 2038 年 1 月 19 日 - までに制限されます。 - - - - &date.timezone.errors.changelog; - @@ -105,26 +103,25 @@ ]]> @@ -141,32 +138,9 @@ echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000)); -]]> - - - - - datemktime - の両方を用いて、未来または過去の日付を知ることができます。 - - <function>date</function> と <function>mktime</function> の例 - - ]]> - - - サマータイムがあるため、日付や月の秒数を単純にタイムスタンプに - 可減算するよりもより信頼性があります。 - - date フォーマットのいくつかの例を示します。 @@ -180,28 +154,29 @@ $nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1); +// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the +// Mountain Standard Time (MST) Time Zone +date_default_timezone_set("America/Phoenix"); + +echo date("F j, Y, g:i a") . "\n"; // March 10, 2001, 5:16 pm +echo date("m.d.y") . "\n"; // 03.10.01 +echo date("j, n, Y") . "\n"; // 10, 3, 2001 +echo date("Ymd") . "\n"; // 20010310 +echo date('h-i-s, j-m-y, it is w Day') . "\n"; // 05-16-18, 10-03-01, 1631 1618 6 Satpm01 +echo date('\i\t \i\s \t\h\e jS \d\a\y.') . "\n"; // it is the 10th day. +echo date("D M j G:i:s T Y") . "\n"; // Sat Mar 10 17:16:18 MST 2001 +echo date('H:m:s \m \i\s\ \m\o\n\t\h') . "\n"; // 17:03:18 m is month +echo date("H:i:s") . "\n"; // 17:16:18 +echo date("Y-m-d H:i:s") . "\n"; // 2001-03-10 17:16:18 (the MySQL DATETIME format) ]]> - 他の言語で日付をフォーマットするためには、date のかわりに - setlocale および strftime - 関数を使用する必要があります。 + 他の言語で日付をフォーマットする用途には、 + date のかわりに + IntlDateFormatter::format + が使えます。 @@ -218,8 +193,8 @@ $today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (MySQL - PHP 5.1 以降、$_SERVER['REQUEST_TIME'] - によってリクエスト開始時のタイムスタンプが取得できるようになりました。 + $_SERVER['REQUEST_TIME'] + によって、リクエスト開始時のタイムスタンプが取得できます。 @@ -228,20 +203,20 @@ $today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (MySQL &reftitle.seealso; + DateTimeImmutable::__construct + DateTimeInterface::format gmdate idate getdate getlastmod mktime - strftime + IntlDateFormatter::format time - DateTimeImmutable::__construct - 定義済みの定数 + 定義済みの定数 - - + @@ -12,11 +12,11 @@ &reftitle.description; arraygetdate - inttimestamptime() + intnulltimestamp&null; timestamp に関する日付情報を有する連想配列を返します。 - timestamp が指定されない場合は、現在のローカルな時間に関する情報を返します。 + timestamp が省略されたり、&null; だった場合、現在のローカルな時間に関する情報を返します。 @@ -113,6 +113,30 @@ + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.0.0 + + timestamp は、nullable になりました。 + + + + + + + + &reftitle.examples; @@ -125,7 +149,6 @@ ]]> &example.outputs.similar; @@ -135,15 +158,15 @@ Array ( [seconds] => 40 [minutes] => 58 - [hours] => 21 - [mday] => 17 - [wday] => 2 - [mon] => 6 - [year] => 2003 - [yday] => 167 + [hours] => 21 + [mday] => 17 + [wday] => 2 + [mon] => 6 + [year] => 2003 + [yday] => 167 [weekday] => Tuesday - [month] => June - [0] => 1055901520 + [month] => June + [0] => 1055901520 ) ]]> @@ -164,7 +187,6 @@ Array - - + @@ -11,8 +11,8 @@ &reftitle.description; - mixedgettimeofday - boolreturnFloat&false; + arrayfloatgettimeofday + boolas_float&false; この関数は、gettimeofday(2) へのインターフェイスです。 @@ -25,7 +25,7 @@ - returnFloat + as_float &true; を指定すると、配列ではなく float で返します。 @@ -39,7 +39,7 @@ &reftitle.returnvalues; - デフォルトでは配列を返します。returnFloat + デフォルトでは配列を返します。as_float が設定されている場合は float を返します。 @@ -69,30 +69,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.1.0 - - returnFloat パラメータが追加されました。 - - - - - - - - &reftitle.examples; @@ -104,7 +80,6 @@ print_r(gettimeofday()); echo gettimeofday(true); -?> ]]> &example.outputs.similar; @@ -117,7 +92,6 @@ Array [minuteswest] => 0 [dsttime] => 1 ) - 1073504408.23910 ]]> @@ -125,7 +99,6 @@ Array - - + @@ -13,7 +13,7 @@ stringgmdate stringformat - inttimestamptime() + intnulltimestamp&null; date 関数と同じですが、返される時刻が @@ -45,9 +45,6 @@ &reftitle.returnvalues; 日付を表す文字列を返します。 - timestamp に数字以外が使用された場合は - &false; が返され、E_WARNING - レベルのエラーが発生します。 @@ -64,23 +61,9 @@ - 5.1.1 + 8.0.0 - PHP 5.1.1 以降、format パラメータで標準的な - 日付/時刻フォーマットを指定する際に有用な 定数がいくつか追加されました。 - - - - 5.1.0 - - 有効なタイムスタンプの範囲は、通常 Fri, 13 Dec 1901 - 20:45:54 GMT から Tue, 19 Jan 2038 03:14:07 GMT までです - (これらの日付は、32 ビット符号付き整数の最小および最大値に - 対応します)。 - しかし、PHP 5.1 より前のバージョンでは、システム環境によっては - (例: Windows) この範囲が 1970 年 1 月 1 日から 2038 年 1 月 19 日 - までに制限されます。 + timestamp は、nullable になりました。 @@ -94,18 +77,22 @@ <function>gmdate</function> の例 - - フィンランド (GMT +0200) で実行した場合、一行目の出力は "Jan 01 - 1998 00:00:00"、二行目の出力は "Dec 31 1997 22:00:00" となります。 - +date_default_timezone_set("Europe/Helsinki"); + +echo date("M d Y H:i:s e", mktime(0, 0, 0, 1, 1, 1998)) . "\n"; +echo gmdate("M d Y H:i:s e", mktime(0, 0, 0, 1, 1, 1998)); ]]> + &example.outputs; + + + @@ -114,15 +101,16 @@ echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998)); &reftitle.seealso; + DateTimeImmutable::__construct + DateTimeInterface::format date mktime gmmktime - strftime + IntlDateFormatter::format - - + @@ -11,14 +11,13 @@ &reftitle.description; - intgmmktime - inthourgmdate("H") - intminutegmdate("i") - intsecondgmdate("s") - intmonthgmdate("n") - intdaygmdate("j") - intyeargmdate("Y") - intisDST-1 + intfalsegmmktime + inthour + intnullminute&null; + intnullsecond&null; + intnullmonth&null; + intnullday&null; + intnullyear&null; 指定されるパラメータが GMT 日付を表すこと以外は @@ -28,9 +27,14 @@ mktime と同様に、 - 引数は右から順に省略することができます。 + オプションの引数は右から順に省略することができます。 省略された引数は、GMT の日付と時刻に従って、現在の値にセットされます。 + + 引数なしで gmmktime を呼び出すことはサポートされていません。 + 引数なしで呼び出すと、ArgumentCountError がスローされます。 + 現在のタイムスタンプを取得する目的には、time が使えます。 + @@ -97,20 +101,6 @@ - - isDST - - - 常に GMT 日付を表すので、isDST - は結果に影響を及ぼしません。 - - - - このパラメータは PHP 7.0.0 で削除されました。 - - - - @@ -118,7 +108,8 @@ &reftitle.returnvalues; - Unix タイムスタンプを integer で返します。 + 成功時に、Unix タイムスタンプを int で返します。 + タイムスタンプの値が PHP の整数型に合わない場合は、&false; を返します。 @@ -135,16 +126,18 @@ - 7.0.0 + 8.0.0 - isDST パラメータが削除されました。 + hour はオプションではなくなりました。 + Unixタイムスタンプ が必要な場合、time + 関数を使います。 - 5.1.0 + 8.0.0 - PHP 5.1.0 で、isDST パラメータは廃止されました。 - その代わりに、新しいタイムゾーン処理機能が使用されます。 + minute, second, month, + day, year は、nullable になりました。 @@ -161,11 +154,17 @@ ]]> + &example.outputs; + + + @@ -174,6 +173,7 @@ echo "July 1, 2000 is on a " . date("l", gmmktime(0, 0, 0, 7, 1, 2000)); &reftitle.seealso; + DateTimeImmutable mktime date time @@ -181,7 +181,6 @@ echo "July 1, 2000 is on a " . date("l", gmmktime(0, 0, 0, 7, 1, 2000)); - - + @@ -10,12 +10,21 @@ + + &warn.deprecated.function-8-1-0.alternatives; + + gmdate + IntlDateFormatter::format + + + &reftitle.description; - stringgmstrftime + #[\Deprecated] + stringfalsegmstrftime stringformat - inttimestamptime() + intnulltimestamp&null; グリニッジ標準時を返すこと以外は、 @@ -23,6 +32,14 @@ (GMT -0500) で実行した場合、以下の最初の行は "Dec 31 1998 20:00:00" を出力し、二行目は "Jan 01 1999 01:00:00" を出力します。 + + + この関数は、オペレーティングシステムのロケールの情報に依存しており、 + 情報が一貫していなかったり、全く利用できない可能性があります。 + 代わりに、IntlDateFormatter::format + を使いましょう。 + + @@ -50,6 +67,31 @@ 指定したフォーマット文字列に基づき文字列をフォーマットして返します。 月および曜日の名前、およびその他の言語依存の文字列は、 setlocale で設定された現在のロケールを尊重して表示されます。 + 失敗時には、&false; を返します。 + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.0.0 + + timestamp は、nullable になりました。 + + + + + @@ -64,7 +106,6 @@ setlocale(LC_TIME, 'en_US'); echo strftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n"; echo gmstrftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n"; -?> ]]> @@ -75,12 +116,13 @@ echo gmstrftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n"; &reftitle.seealso; + IntlDateFormatter::format + DateTimeInterface::format strftime - - - + + idate - ローカルな時刻/日付を整数として整形する + ローカルな時刻/日付の一部を整数として整形する &reftitle.description; - intidate + intfalseidate stringformat - inttimestamptime() + intnulltimestamp&null; 指定された引数 timestamp を、 @@ -77,6 +77,16 @@ 閏年なら 1、 そうでなければ 0 を返す + + N + ISO-8601 形式の曜日 + (1 は月曜日で、 + 7 が日曜日) + + + o + ISO-8601 形式の年 (4 桁の数値) + m 月数 @@ -135,9 +145,10 @@ &reftitle.returnvalues; 整数値を返します。 + &return.falseforfailure; - idate が返す値の型は常に integer であり、 + idate が返す値の型は常に int であり、 先頭に "0" がくることはありません。そのため、idate の返す結果が予想より少ない桁数になることもあります。以下の例を参照ください。 @@ -162,9 +173,20 @@ - - &date.timezone.errors.changelog; - + + 8.2.0 + + フォーマット文字 + N (ISO-8601 形式の曜日) と + o (ISO-8601 形式の年) が追加されました。 + + + + 8.0.0 + + timestamp は、nullable になりました。 + + @@ -179,15 +201,25 @@ ]]> + &example.outputs; + + + @@ -196,6 +228,7 @@ echo idate('y', $timestamp); &reftitle.seealso; + DateTimeInterface::format date getdate time @@ -203,7 +236,6 @@ echo idate('y', $timestamp); - - + @@ -12,7 +12,7 @@ &reftitle.description; arraylocaltime - inttimestamptime() + intnulltimestamp&null; boolassociative&false; @@ -32,64 +32,8 @@ associative - &false; に設定されるか省略された場合は、 - 配列は通常の数値を添字とした配列として返されます。 - &true; に設定された場合は、 - localtime は C 言語の関数 localtime - のコールにより返される構造体の全ての要素を有する連想配列を返します。 - この連想配列の各キーの名前は次のようになります。 - - - - - - "tm_sec" - 秒 (0 から 59) - - - - - "tm_min" - 分 (0 から 59) - - - - - "tm_hour" - 時 (0 から 23) - - - - - "tm_mday" - 月の日付 (1 から 31) - - - - - "tm_mon" - 月 (0 (1月) から 11 (12月)) - - - - - "tm_year" - 1900 年からの年数 - - - - - "tm_wday" - 曜日 (0 (日曜日) から 6 (土曜日)) - - - - - "tm_yday" - 年単位の日付 (0 から 365) - - - - - "tm_isdst" - 夏時間の適用中かどうか - - - 適用中なら正の数、そうでなければ 0、不明なら負の数。 - - - + この関数が数値のインデックスによる通常の配列を返すか、 + 連想配列を返すかを指定します。 @@ -97,6 +41,71 @@ + + &reftitle.returnvalues; + + associative が &false; + に設定されるか省略された場合は、 + 数値のインデックスにょる通常の配列を返します。 + associative が &true; に設定された場合は、 + localtime は C 言語の関数 localtime + のコールにより返される構造体の全ての要素を有する連想配列を返します。 + この連想配列の各キーの名前は次のようになります。 + + + + + + "tm_sec" - 秒 (0 から 59) + + + + + "tm_min" - 分 (0 から 59) + + + + + "tm_hour" - 時 (0 から 23) + + + + + "tm_mday" - 月の日付 (1 から 31) + + + + + "tm_mon" - 月 (0 (1月) から 11 (12月)) + + + + + "tm_year" - 1900 年からの年数 + + + + + "tm_wday" - 曜日 (0 (日曜日) から 6 (土曜日)) + + + + + "tm_yday" - 年単位の日付 (0 から 365) + + + + + "tm_isdst" - 夏時間の適用中かどうか + + + 適用中なら正の数、そうでなければ 0、不明なら負の数。 + + + + + + &reftitle.errors; @@ -116,9 +125,12 @@ - - &date.timezone.errors.changelog; - + + 8.0.0 + + timestamp は、nullable になりました。 + + @@ -137,7 +149,6 @@ $localtime = localtime(); $localtime_assoc = localtime(time(), true); print_r($localtime); print_r($localtime_assoc); -?> ]]> &example.outputs.similar; @@ -184,7 +195,6 @@ Array - - + @@ -13,8 +13,8 @@ &reftitle.description; - mixedmicrotime - boolgetAsFloat&false; + stringfloatmicrotime + boolas_float&false; microtime は、現在の @@ -32,11 +32,11 @@ - getAsFloat + as_float &true; を指定すると、microtime は文字列ではなく - float を返すようになります。詳細は、返り値の説明を参照ください。 + float を返すようになります。詳細は、戻り値の説明を参照ください。 @@ -50,10 +50,10 @@ デフォルトでは、microtime は "msec sec" 形式の文字列を返します。ただし、sec は Unix エポック (1970 年 1 月 1 日 0:00:00 GMT) からの経過秒数、msecsec - から経過したマイクロ秒数を秒単位で表したものです。 + から経過したマイクロ秒数を秒単位、つまり小数で表したものです。 - getAsFloat を + as_float を &true; に設定すると、microtime は Unixエポック からの経過秒数を マイクロ秒で正確になるように float で表したものを返します。 @@ -63,64 +63,35 @@ &reftitle.examples; - <function>microtime</function> でタイマスクリプト実行 - - -]]> - - - - PHP 5 におけるタイマスクリプト実行 + タイマスクリプト実行 +print "Did nothing in $time seconds\n"; ]]> - <function>microtime</function> と <literal>REQUEST_TIME_FLOAT</literal> の例 (PHP 5.4.0 以降) - + <function>microtime</function> と <literal>REQUEST_TIME_FLOAT</literal> の例 + ]]> @@ -137,7 +108,6 @@ echo "Did nothing in $time seconds\n"; - - + @@ -11,14 +11,13 @@ &reftitle.description; - intmktime - inthourdate("H") - intminutedate("i") - intseconddate("s") - intmonthdate("n") - intdaydate("j") - intyeardate("Y") - intisDST-1 + intfalsemktime + inthour + intnullminute&null; + intnullsecond&null; + intnullmonth&null; + intnullday&null; + intnullyear&null; 与えられた引数に従って UNIX のタイムスタンプを返します。 @@ -26,20 +25,23 @@ 指定された時刻までの通算秒を表す長整数です。 - 引数は右から順に省略することができます。省略された引数は、 + 省略されたり、&null; が指定されたオプションの引数は、 ローカルの日付と時刻に従って、現在の値にセットされます。 - - - - &reftitle.notes; - + - PHP 5.1 以降、引数なしでコールすると mktime - は E_STRICT notice を発行するようになりました。かわりに - time 関数を使用しましょう。 + 引数の順番が変なので注意して下さい: + month, day, + year の順になっており、 + 理にかなった year, month, + day の順になっていません。 - + + + 引数なしで mktime を呼び出すことはサポートされていません。 + 引数なしで呼び出すと、ArgumentCountError がスローされます。 + 現在のタイムスタンプを取得する目的には、time が使えます。 + @@ -106,41 +108,10 @@ 0-69 の間の値は 2000-2069 に、70-100 は 1970-2000 にマップされます。 今日最も一般的なシステム、すなわち time_t が 32 ビットの符号付き整数である システムでは year として有効な範囲は 1901 から - 2038 の間です。しかし、PHP 5.1.0 より前のバージョンではこの範囲が - 1970 から 2038 に制限されているシステム (たとえば Windows) もありました。 + 2038 の間です。 - - isDST - - - このパラメータはサマータイム (DST) の時に1にセットされ、 - そうでない時に0、サマータイムであるかどうかが不明である場合に-1 - にセットされます。 - 不明な場合、PHP はサマータイムかどうか推測しようとします。 - PHP を実行しているシステムで DST が有効になっている、もしくは - isDST が 1 にセットされている場合、 - 一部の時刻は有効になりません。 - もし DST が有効で例えば 2:00 の場合、2:00 から 3:00 までの全ての時刻は - 無効になり、mktime は不確定な値 (通常は負数) - を返します。いくつかのシステム (例えば Solaris 8) は真夜中に DST - を有効にしますので、DST が有効なときの 0:30 は前日の 23:30 - と評価されます。 - - - - PHP 5.1.0 以降、このパラメータは廃止されました。その結果、 - 新しいタイムゾーン処理機能がかわりに使用されます。 - - - - - このパラメータは PHP 7.0.0 で削除されました。 - - - - @@ -150,17 +121,11 @@ &reftitle.returnvalues; mktime は与えられた引数の Unix - タイムスタンプを返します。引数が不正な場合、 - この関数は &false; を返します(PHP 5.1 より前のバージョンでは - -1 を返していました)。 + タイムスタンプを返します。 + タイムスタンプの値が PHP の整数型に合わない場合は、&false; を返します。 - - &reftitle.errors; - &date.timezone.errors.description; - - &reftitle.changelog; @@ -174,39 +139,20 @@ - 7.0.0 - - isDST パラメータが削除されました。 - - - - 5.3.0 + 8.0.0 - mktime は、 - isDST パラメータを使用した場合に - E_DEPRECATED をスローするようになりました。 + hour は、オプションではなくなりました。 + Unixタイムスタンプ が必要な場合、time + を使います。 - 5.1.0 + 8.0.0 - isDST パラメータは廃止されました。 - エラー時には -1 ではなく &false; - を返すようになりました。 - 年月日がすべてゼロとすることが可能になりました。 + minute, second, month, + day, year は、nullable になりました。 - - 5.1.0 - - 引数なしでコールすると、mktime - は E_STRICT notice を発行するようになりました。かわりに - time 関数を使用しましょう。 - - - - &date.timezone.errors.changelog; - @@ -221,17 +167,23 @@ +echo date('c', mktime(1, 2, 3, 4, 5, 2006)) . "\n"; ]]> + &example.outputs.similar; + + + @@ -245,15 +197,61 @@ echo date('c', mktime(1, 2, 3, 4, 5, 2006)); +date_default_timezone_set('America/New_York'); + +echo date("c", mktime(0, 0, 0, 12, 32, 1997)) . "\n"; +echo date("c", mktime(0, 0, 0, 13, 1, 1997)) . "\n"; +echo date("c", mktime(0, 0, 0, 1, 1, 1998)) . "\n"; +echo date("c", mktime(0, 0, 0, 1, 1, 98)) . "\n"; ]]> + &example.outputs.similar; + + + + + + mktime 関数を、相対日付を検出するために使う + + + + + &example.outputs.similar; + + + + + + + 夏時間の影響により、 + 1日または1か月の秒数を加減算するより、 + このサンプルの方が信頼性が高い場合があります。 + + + 月の末日 @@ -265,32 +263,30 @@ echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98)); +echo 'Last day in Feb 2000 is: ', date('d', $lastday) . "\n"; ]]> + &example.outputs; + + + - - &reftitle.notes; - - - PHP 5.1.0 より前のバージョンでは、負の値のタイムスタンプは Windows の - どのバージョンにおいてもサポートされていませんでした。 - したがって、年の有効範囲は 1970 年から 2038 年の間のみに限定されていました。 - - - - &reftitle.seealso; + DateTimeImmutable checkdate gmmktime date @@ -299,7 +295,6 @@ echo strftime("Last day in Feb 2000 is: %d", $lastday); - - - + + strftime @@ -10,32 +10,45 @@ + + &warn.deprecated.function-8-1-0.alternatives; + + date + IntlDateFormatter::format + + + &reftitle.description; - stringstrftime + #[\Deprecated] + stringfalsestrftime stringformat - inttimestamptime() + intnulltimestamp&null; ローカルの時刻・日付を、ロケール設定にもとづいてフォーマットします。 月および曜日の名前、およびその他の言語依存の文字列は、 setlocale で設定された現在のロケールを尊重して表示されます。 - - 使用する C ライブラリで、すべての変換指定子がサポートされているとは限りません。 - そのような場合、該当する変換指定子は PHP の - strftime ではサポートされません。 - また、全てのプラットフォームが負のタイムスタンプをサポートしているわけではないため、 - Unix Epoch (1970 年 1 月 1 日)以前の日付を扱えないかもしれません。 - つまり、Windows や一部の Linux ディストリビューション、そしてその他のごく一部の - オペレーティングシステム上では - %e、%T、%R および %D (あるいはこれ以外も) が - Jan 1, 1970 より前の日付について動作しないということです。 - Windwos システム上でサポートされる変換指定子の概要については、 - MSDN - に掲載されています。 - + + + 使用する C ライブラリで、すべての変換指定子がサポートされているとは限りません。 + そのような場合、該当する変換指定子は PHP の + strftime ではサポートされません。 + また、全てのプラットフォームが負のタイムスタンプをサポートしているわけではないため、 + Unix Epoch (1970 年 1 月 1 日)以前の日付を扱えないかもしれません。 + つまり、Windows や一部の Linux ディストリビューション、そしてその他のごく一部の + オペレーティングシステム上では + %e、%T、%R および %D (あるいはこれ以外も) が + Jan 1, 1970 より前の日付について動作しないということです。 + Windwos システム上でサポートされる変換指定子の概要については、 + MSDN + に掲載されています。 + Instead use the + IntlDateFormatter::format method. + + @@ -53,7 +66,7 @@ format 説明 - 返り値の例 + 戻り値の例 @@ -210,12 +223,19 @@ %p 指定した時刻に応じた大文字の 'AM' あるいは 'PM' - 00:31 なら AM、22:23 なら PM + + 00:31 なら AM、22:23 なら PM。 + 正確な結果はオペレーティングシステムに依存します。 + (a.m. のような) 小文字やドット付きの結果を返すこともあります。 + %P 指定した時刻に応じた小文字の 'am' あるいは 'pm' - 00:31 なら am、22:23 なら pm + + 00:31 なら am、22:23 なら pm。 + 全てのオペレーティングシステムでサポートされているとは限りません。 + %r @@ -307,9 +327,6 @@
- - このパラメータの最大長は 1023 文字です。 - ISO-9889:1999 に反して、Sun Solaris は日曜日を 1 としています。 @@ -332,7 +349,7 @@ - macOS 限定: %P 修飾子は + macOS と musl 限定: %P 修飾子は macOS 版の実装ではサポートされていません。 @@ -353,6 +370,10 @@ 指定したフォーマット文字列に基づき文字列をフォーマットして返します。 月および曜日の名前、およびその他の言語依存の文字列は、 setlocale で設定された現在のロケールを尊重して表示されます。 + + この関数は、format が空だったり、 + サポートされていない変換指定子が含まれていたり、 + 返される文字列の長さが 4095 より大きい場合は、&false; を返します。 @@ -381,9 +402,12 @@ - - &date.timezone.errors.changelog; - + + 8.0.0 + + timestamp は、nullable になりました。 + + @@ -396,7 +420,7 @@ この例は、それぞれのロケールがシステムにインストールされている場合にのみ動作します。 <function>strftime</function> のロケールの例 - + ]]> @@ -461,8 +484,6 @@ echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n // Outputs: 1/3/2005 - %V,%G,%Y = 1,2005,2005 echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n"; - -?> ]]>
@@ -484,7 +505,6 @@ if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { } echo strftime($format); -?> ]]> @@ -495,6 +515,7 @@ echo strftime($format); 'A full textual representation of the day', @@ -556,8 +577,8 @@ $strftimeFormats = array( $strftimeValues = array(); // 書式を評価してエラーを抑制します -foreach($strftimeFormats as $format => $description){ - if (False !== ($value = @strftime("%{$format}"))){ +foreach ($strftimeFormats as $format => $description) { + if (false !== ($value = @strftime("%{$format}"))) { $strftimeValues[$format] = $value; } } @@ -566,15 +587,14 @@ foreach($strftimeFormats as $format => $description){ $maxValueLength = 2 + max(array_map('strlen', $strftimeValues)); // 既知の書式を表示します -foreach($strftimeValues as $format => $value){ +foreach ($strftimeValues as $format => $value) { echo "Known format : '{$format}' = ", str_pad("'{$value}'", $maxValueLength), " ( {$strftimeFormats[$format]} )\n"; } // 未知の書式を表示します -foreach(array_diff_key($strftimeFormats, $strftimeValues) as $format => $description){ +foreach (array_diff_key($strftimeFormats, $strftimeValues) as $format => $description) { echo "Unknown format : '{$format}' ", str_pad(' ', $maxValueLength), ($description ? " ( {$description} )" : ''), "\n"; } -?> ]]> &example.outputs.similar; @@ -655,6 +675,8 @@ Unknown format : 'v' &reftitle.seealso; + IntlDateFormatter::format + DateTimeInterface::format オンラインの strftime() 書式デザインツール setlocale mktime @@ -665,7 +687,6 @@ Unknown format : 'v' - - - + + strptime strftime が生成した日付/時刻をパースする + + + &warn.deprecated.function-8-1-0; + + &reftitle.description; - arraystrptime - stringdate - stringformat - + #[\Deprecated] + arrayfalsestrptime + stringtimestamp + stringformat + - strptimedate + strptimetimestamp をパースした結果を配列で返します。エラー時には &false; を返します。 @@ -31,10 +37,10 @@ - date (string) + timestamp (string) - パースする文字列(例: strftime の返り値)。 + パースする文字列(例: strftime の戻り値)。 @@ -42,7 +48,7 @@ format (string) - date で使用されているフォーマット + timestamp で使用されているフォーマット (例: strftime で使用されていたものと同じ)。 strftime で使えるオプションの中には、 strptime では何の影響を及ぼさないものがあることに注意しましょう。 @@ -110,7 +116,7 @@ "unparsed" - date の中で、指定された + timestamp の中で、指定された format で判断できなかった部分 @@ -120,9 +126,37 @@ - - &reftitle.examples; - + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.1.0 + + この関数は、推奨されなくなりました。 + date_parse_from_format (ロケールに依存しないパースを行う場合) + または、 + IntlDateFormatter::parse (ロケールに依存するパースを行う場合) + を使って下さい。 + + + + + + + + + + &reftitle.examples; + <function>strptime</function> の例 @@ -134,11 +168,10 @@ $strf = strftime($format); echo "$strf\n"; print_r(strptime($strf, $format)); -?> ]]> - - &example.outputs.similar; - + + &example.outputs.similar; + ) ]]> - - - - + + + + - - &reftitle.notes; - ¬e.no-windows; - - - 内部では、この関数はシステムの C ライブラリ関数 - strptime() をコールしています。 - このライブラリ関数は、OS によって挙動が異なることがあります。 - date_parse_from_format - はこの問題の影響を受けないので、PHP 5.3.0 - 以降ではこちらの関数を使うことを推奨します。 - - - - - "tm_sec" には、うるう秒も組み込まれています (現在は、年間 - 2 秒まで)。うるう秒についての詳細な情報は Wikipedia - の記事 を参照ください。 - - - - - PHP 5.2.0 より前のバージョンでは、この関数が未定義の挙動をすることがありました。 - 特に "tm_sec""tm_min" および "tm_hour" - が未定義の値になることがありました。 - - - - - - &reftitle.seealso; - - - checkdate - strftime - date_parse_from_format - DateTime::createFromFormat - - - - + + &reftitle.notes; + ¬e.no-windows; + + + 内部では、この関数はシステムの C ライブラリ関数 + strptime() をコールしています。 + このライブラリ関数は、OS によって挙動が異なることがあります。 + date_parse_from_format + はこの問題の影響を受けないので、 + date_parse_from_format を使うことを推奨します。 + + + + + "tm_sec" には、うるう秒も組み込まれています (現在は、年間 + 2 秒まで)。うるう秒についての詳細な情報は Wikipedia + の記事 を参照ください。 + + + + + &reftitle.seealso; + + + IntlDateFormatter::parse + DateTime::createFromFormat + checkdate + strftime + date_parse_from_format + + + + - + @@ -12,15 +12,18 @@ &reftitle.description; - intstrtotime + intfalsestrtotime stringdatetime - intnowtime() + intnullbaseTimestamp&null; この関数は英語の書式での日付を含む文字列が指定されることを期待しており、 - now で与えられたその形式から - Unix タイムスタンプ (1970 年 1 月 1 日 00:00:00 UTC からの経過秒数) への変換を試みます。 - now が指定されていない場合は現在日時に変換します。 + その書式を Unix タイムスタンプ (1970 年 1 月 1 日 00:00:00 UTC からの経過秒数) に変換しようとします。 + baseTimestamp が指定された場合は、そのタイムスタンプを基準とした相対時刻のタイムスタンプに変換します。 + baseTimestamp が指定されていない場合は、現在時刻を基準とした相対時刻のタイムスタンプに変換します。 + パースされる日付を含む文字列の書式は、 + サポートする日付と時刻の書式 で定義されており、考慮すべき微妙な点がいくつかあります。 + サポートする日付と時刻の書式について、読んでおくことを強く推奨します。 @@ -48,7 +51,7 @@ - now + baseTimestamp 返される値を計算するために使用されるタイムスタンプ。 @@ -63,7 +66,6 @@ &reftitle.returnvalues; 成功時はタイムスタンプ、そうでなければ &false; を返します。 - PHP 5.1.0 以前ではこの関数は失敗時に -1 を返します。 @@ -87,56 +89,9 @@ - 5.3.0 + 8.0.0 - PHP 5.3.0 より前のバージョンでは、 - strtotime の引数 datetime に - this weekprevious week、 - last weeknext week - を指定すると、現在日時から数えて 7 日単位という解釈になっていました。 - Monday から Sunday - までという単位は考慮していませんでした。 - - - - 5.3.0 - - PHP 5.3.0 より前のバージョンでは、24:00 - は無効なフォーマットとされており - strtotime は &false; を返していました。 - - - - 5.2.7 - - 5.2.7 より前の PHP 5 では、「ある月の何回目の何曜日」 - を取得するときにもしその月の初日がその曜日だった場合、 - タイムスタンプが間違って一週間追加されてしまっていました。 - これは 5.2.7 以降のバージョンでは修正されています。 - - - - 5.1.0 - - 失敗時に -1 の代わりに &false; - を返すようになりました。 - - - - &date.timezone.errors.changelog; - - - 5.0.2 - - 5.0.2 までの PHP 5 では、"now" - やその他の相対時刻は誤って当日の真夜中から計算されます。 - 他のバージョンでは、これは正しく現在時刻から計算されます。 - - - - 5.0.0 - - マイクロ秒も受け付けるようになりましたが、指定してもそれは無視されます。 + baseTimestamp は、nullable になりました。 @@ -149,7 +104,7 @@ &reftitle.examples; - A <function>strtotime</function> の例 + <function>strtotime</function> の例 ]]> @@ -173,13 +127,11 @@ echo strtotime("last Monday"), "\n"; ]]> @@ -188,6 +140,21 @@ if (($timestamp = strtotime($str)) === false) { &reftitle.notes; + + + "相対的な" 日付とは、 + 日付/時刻の一部の情報が与えられていないということでもあります。 + 与えられていない情報は baseTimestamp + から取得されます。 + つまり、2022年5月31日 (31st of May 2022) に + strtotime('February') を実行すると、 + 31 February 2022 と解釈されて日付がオーバーフローし、 + 3 March になります(うるう年の場合、2 March になります)。 + strtotime('1 February') や + strtotime('first day of February') + を使うことで、この問題は回避できます。 + + 年を 2 桁の数値で指定した場合、その値が 00-69 なら 2000-2069 に、 @@ -202,43 +169,16 @@ if (($timestamp = strtotime($str)) === false) { UTC から Tue, 19 Jan 2038 03:14:07 UTC までです (これらは、32 ビット符号付整数の最大及び最小に一致します)。 - - 全てのプラットフォームが負のタイムスタンプをサポートしている - わけではありませんので、PHP 5.1.0 より前のバージョンでは、日付の範囲が Unix - エポック以前にはならないかも知れません。 - これは、例えば Windows やいくつかの Linux ディストリビューション、 - いくつかの他のオペレーティングシステムでは - 1970 年 1 月 1 日以前の日付では動作しない事を意味しています。 - 64 ビット版の PHP では、タイムスタンプの有効範囲は事実上無制限です。 というのも、64 ビットでは過去側も未来側も約 2930 億年を表せるからです。 - - - m/d/y あるいは d-m-y - といった書式の曖昧さを解決する際には、区切り文字を利用します。スラッシュ - (/) で区切られている場合はアメリカ風の - m/d/y とみなし、ダッシュ - (-) あるいはドット (.) - で区切られている場合はヨーロッパ風の - d-m-y であるとみなします。 - しかし、年を二桁で表して区切り文字がダッシュ (-) である場合は、 - y-m-d であるとみなします。 - - - このような曖昧さを避けるためにも、ISO 8601 形式 - (YYYY-MM-DD) を使うか、可能であれば - DateTime::createFromFormat を使うことを推奨します。 - - この関数を使って日付の足し算や引き算を行うことはおすすめできません。 - PHP 5.3 以降なら DateTime::add や - DateTime::sub を、そして PHP 5.2 なら - DateTime::modify を使いましょう。 + DateTime::add や + DateTime::sub を使いましょう。 @@ -247,15 +187,15 @@ if (($timestamp = strtotime($str)) === false) { &reftitle.seealso; + DateTimeImmutable + DateTimeImmutable::createFromFormat 日付と時刻の書式 - DateTime::createFromFormat checkdate strptime - - + @@ -18,6 +18,26 @@ 現在時刻を Unix エポック (1970 年 1 月 1 日 00:00:00 GMT) からの通算秒として返します。 + + + Unixタイムスタンプは、ローカルタイムゾーンに関する情報を含んでいません。 + Unixタイムスタンプに付随する落とし穴を避けつつ、 + 日付/時刻に関する情報を扱うために + DateTimeImmutable を使うことを推奨します。 + + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 現在のタイムスタンプを返します。 + @@ -28,21 +48,13 @@ +echo 'Now: '. time(); ]]> &example.outputs.similar; @@ -53,8 +65,8 @@ Next Week: 2005-04-06 &reftitle.notes; - PHP 5.1 以降、$_SERVER['REQUEST_TIME'] - によってリクエスト開始時のタイムスタンプが取得できるようになりました。 + $_SERVER['REQUEST_TIME'] + によって、リクエスト開始時のタイムスタンプが取得できます。 @@ -63,6 +75,7 @@ Next Week: 2005-04-06 &reftitle.seealso; + DateTimeImmutable date microtime diff --git a/reference/datetime/functions/timezone-name-from-abbr.xml b/reference/datetime/functions/timezone-name-from-abbr.xml index a0510eee5e..6e359602c8 100644 --- a/reference/datetime/functions/timezone-name-from-abbr.xml +++ b/reference/datetime/functions/timezone-name-from-abbr.xml @@ -1,16 +1,16 @@ - + timezone_name_from_abbr - 略称からタイムゾーン名を返す + 略称とUTCオフセットから、タイムゾーン名を推測して返す &reftitle.description; - stringtimezone_name_from_abbr + stringfalsetimezone_name_from_abbr stringabbr intutcOffset-1 intisDST-1 @@ -79,7 +79,6 @@ ]]> &example.outputs.similar; diff --git a/reference/datetime/functions/timezone-version-get.xml b/reference/datetime/functions/timezone-version-get.xml index d0b4811b29..e894625c92 100644 --- a/reference/datetime/functions/timezone-version-get.xml +++ b/reference/datetime/functions/timezone-version-get.xml @@ -1,7 +1,7 @@ - - + + timezone_version_get @@ -19,10 +19,29 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; - 文字列を返します。 + 2022.2 のような、 + YYYY.increment のフォーマットを文字列で返します。 + + + 古いバージョンのタイムゾーンデータベースを持っている場合 + (たとえば、今年のバージョンが表示されない場合)、 + タイムゾーンの情報は PHP のバージョンを上げるか、 + PECL パッケージの timezonedb + をインストールすることで更新することができます。 + + + Linux ディストリビューションによっては、 + 他のタイムゾーンの情報ソースを使うように PHP の date/time サポートにパッチをあてているものがあります。その場合、この関数は 0.system という値を返します。 + この場合も、PECL パッケージの timezonedb をインストールすることをお勧めします。 @@ -35,13 +54,12 @@ ]]> &example.outputs.similar; diff --git a/reference/datetime/ini.xml b/reference/datetime/ini.xml index 976611a4d3..17007438c7 100644 --- a/reference/datetime/ini.xml +++ b/reference/datetime/ini.xml @@ -1,6 +1,6 @@ - +
&reftitle.runtime; @@ -17,36 +17,36 @@ &Changelog; - + date.default_latitude "31.7667" - PHP_INI_ALL + INI_ALL date.default_longitude "35.2333" - PHP_INI_ALL + INI_ALL date.sunrise_zenith - "90.583333" - PHP_INI_ALL - + "90.833333" + INI_ALL + PHP 8.0.0 より前のバージョンでは、デフォルト値は "90.583333" でした。 date.sunset_zenith - "90.583333" - PHP_INI_ALL - + "90.833333" + INI_ALL + PHP 8.0.0 より前のバージョンでは、デフォルト値は "90.583333" でした。 date.timezone - "GMT" - PHP_INI_ALL - PHP 5.1.0 以降で利用可能 + "UTC" + INI_ALL + PHP 8.2 以降では、この値に無効な値や空文字列を設定すると、警告が発生します。 @@ -65,7 +65,10 @@ - デフォルトの緯度 + デフォルトの緯度。 + 赤道にあたる 0 から、 + 北緯は +90 まで、 + 南緯は -90 までの値をとります。 @@ -77,7 +80,10 @@ - デフォルトの経度 + デフォルトの経度。 + グリニッジ子午線にあたる 0 から、 + 東経は +180 まで、 + 西経は −180 までの値をとります。 @@ -91,6 +97,12 @@ デフォルトの日出点 + + デフォルト値は 90°50' です。 + 50' の値は、2つの要素からなります。 + ひとつは太陽の視半径 16' です。 + もうひとつは大気差の値で、34' です。 + @@ -114,8 +126,6 @@ 全ての日付/時刻関数で使用されるデフォルトのタイムゾーン。 - PHP 5.4.0 より前のバージョンでは、これは環境変数 - TZ の値が設定されていない場合にのみ機能していました。 明示的に指定しなかったときにどのタイムゾーンを利用するのかについての優先順位は date_default_timezone_get のページで解説されています。サポートしているタイムゾーンについては diff --git a/reference/datetime/setup.xml b/reference/datetime/setup.xml index 7faf7858f5..de14bdce95 100644 --- a/reference/datetime/setup.xml +++ b/reference/datetime/setup.xml @@ -1,18 +1,11 @@ - + &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- - &reference.datetime.configure; @@ -21,13 +14,6 @@ &reference.datetime.ini; - -
- &reftitle.resources; - &no.resource; -
- -
- + - データベース (dbm 形式) 抽象化レイヤ DBA - + &reftitle.intro; @@ -22,14 +21,17 @@
- + &reference.dba.setup; &reference.dba.constants; &reference.dba.examples; + + + &reference.dba.dba.connection; + &reference.dba.reference; - - +
&reftitle.install; @@ -39,6 +39,7 @@ dbm + dbm のサポートを有効にするには、 を追加します。 @@ -48,12 +49,14 @@ dbm を使用するようにすべきです。 + ndbm + ndbm のサポートを有効にするには、 を追加します。 @@ -63,6 +66,7 @@ ndbm を使用するようにすべきです。 + @@ -77,6 +81,7 @@ db2 + Oracle Berkeley DB のサポートを有効にするには、 を追加します。 @@ -84,12 +89,14 @@ db2 は db3 および db4 とは同時に使えません。 + db3 + Oracle Berkeley DB 3 のサポートを有効にするには、 を追加します。 @@ -97,12 +104,14 @@ db3 は db2 および db4 とは同時に使えません。 + db4 + Oracle Berkeley DB 4 あるいは 5 のサポートを有効にするには、 を追加します。 @@ -119,12 +128,14 @@ BDB 5 のサポートは PHP 5.3.3 で追加されました。 + cdb + cdb のサポートを有効にするには、 を追加します。 @@ -135,12 +146,14 @@ ネットワーク上の cdb ファイルにアクセスできるようになります。 + flatfile + flatfile のサポートを有効にするには、 を追加します。 PHP 5.2.1 以前では、 @@ -154,12 +167,14 @@ ハンドラを使用することができない場合にのみ使用してください。 + inifile + inifile のサポートを有効にするには、 を追加します。 PHP 5.2.1 以前では、 @@ -171,12 +186,14 @@ 読み書きできるようにするために追加されました。 + qdbm + qdbm のサポートを有効にするには、 を追加します。 @@ -191,6 +208,7 @@ からダウンロードできます。 + @@ -202,7 +220,7 @@ を追加します。 - これは PHP 5.4.0 で追加されました。Tokyo Cabinet ライブラリは + Tokyo Cabinet ライブラリは からダウンロードできます。 diff --git a/reference/dba/constants.xml b/reference/dba/constants.xml index 43c23df3f3..a276155a54 100644 --- a/reference/dba/constants.xml +++ b/reference/dba/constants.xml @@ -1,13 +1,40 @@ - + &reftitle.constants; - &no.constants; + &extension.constants; + + + + DBA_LMDB_USE_SUB_DIR + (int) + + + + LMDB ドライバ用のフラグです。 + サブディレクトリを作ることを許可します。 + PHP 8.2.0 以降で利用可能です。 + + + + + + DBA_LMDB_NO_SUB_DIR + (int) + + + + LMDB ドライバ用のフラグです。 + サブディレクトリを作ることを許可しません。 + PHP 8.2.0 以降で利用可能です。 + + + + - + + + + + Dba\Connection クラス + Dba\Connection + + + + +
+ &reftitle.intro; + + PHP 8.4.0 以降、 dba リソースを置き換える完全不透明クラスです。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + Dba\Connection + + + + +
+ +
+ +
+ diff --git a/reference/dba/functions/dba-close.xml b/reference/dba/functions/dba-close.xml index 4e17def6b9..510b24da4e 100644 --- a/reference/dba/functions/dba-close.xml +++ b/reference/dba/functions/dba-close.xml @@ -1,7 +1,6 @@ - - + @@ -12,11 +11,11 @@ &reftitle.description; voiddba_close - resourcehandle + Dba\Connectiondba dba_close は確立されたデータベースを閉じ、 - により指定したデータベースハンドルの全てのリソースを開放します。 + 指定したデータベースハンドルの全てのリソースを開放します。 @@ -24,11 +23,10 @@ - handle + dba - dba_open あるいは dba_popen - によって返されたデータベースハンドル。 + &dba.parameter.dba; @@ -41,6 +39,24 @@ &return.void; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &dba.changelog.dba-object; + + + + + &reftitle.seealso; @@ -51,7 +67,6 @@ - - + @@ -12,8 +11,8 @@ &reftitle.description; booldba_delete - stringkey - resourcehandle + stringarraykey + Dba\Connectiondba dba_delete は、指定されたエントリを @@ -33,11 +32,10 @@ - handle + dba - dba_open あるいは dba_popen - によって返されたデータベースハンドル。 + &dba.parameter.dba; @@ -50,6 +48,24 @@ &return.success; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &dba.changelog.dba-object; + + + + + &reftitle.seealso; @@ -62,7 +78,6 @@ - - + @@ -12,8 +11,8 @@ &reftitle.description; booldba_exists - stringkey - resourcehandle + stringarraykey + Dba\Connectiondba dba_exists は、指定した key @@ -33,11 +32,10 @@ - handle + dba - dba_open あるいは dba_popen - によって返されたデータベースハンドル。 + &dba.parameter.dba; @@ -50,6 +48,24 @@ キーが存在する場合に &true; 、それ以外の場合に &false; を返します。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &dba.changelog.dba-object; + + + + + &reftitle.seealso; @@ -62,7 +78,6 @@ - - - + @@ -10,19 +8,23 @@ &reftitle.description; + + stringfalsedba_fetch + stringarraykey + Dba\Connectiondba + intskip0 + + + 以下はオーバーロードされているが、PHP 8.3.0 以降では推奨されないシグネチャです: + stringdba_fetch - stringkey - resourcehandle + stringarraykey + intskip + resourcedba - - stringdba_fetch - stringkey - intskip - resourcehandle - - dba_fetch は、handle + dba_fetch は、dba が指すデータベースから key が指すデータを 取得します。 @@ -47,27 +49,27 @@ - skip + dba - dba データベースを使用する際に無視する キー / 値 の組み合わせ数。 - 複数のキーに同じ名前をつけることがサポートされていないデータベースです、 - この値は無視されます。 + &dba.parameter.dba; - handle + skip - dba_open あるいは dba_popen - によって返されたデータベースハンドル。 + cdb データベースを使用する際に無視する キー / 値 の組み合わせ数。 + 複数のキーに同じ名前をつけることがサポートされていないデータベースです、 + この値は無視されます。 + &reftitle.returnvalues; @@ -76,6 +78,40 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &dba.changelog.dba-object; + + 8.3.0 + + dba を第3引数に渡して dba_fetch をコールすることは、推奨されなくなりました。 + + + + 8.2.0 + + dba_fetch + 関数のオプションの skip 引数は、 + PHP でユーザーが使える関数のセマンティクスに従い、 + 最後に置かれるようになりました。 + 以前のオーバーロードされたシグネチャも引き続き許可されますが、 + 使わないことをお勧めします。 + + + + + + + &reftitle.seealso; @@ -89,7 +125,6 @@ - - + @@ -10,8 +9,8 @@ &reftitle.description; - stringdba_firstkey - resourcehandle + stringfalsedba_firstkey + Dba\Connectiondba dba_firstkey はデータベースの最初のキーを返し、 @@ -24,11 +23,10 @@ - handle + dba - dba_open あるいは dba_popen - によって返されたデータベースハンドル。 + &dba.parameter.dba; @@ -41,6 +39,24 @@ 成功した場合にキー、&return.falseforfailure;。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &dba.changelog.dba-object; + + + + + &reftitle.seealso; @@ -52,7 +68,6 @@ - - + @@ -12,9 +11,9 @@ &reftitle.description; booldba_insert - stringkey + stringarraykey stringvalue - resourcehandle + Dba\Connectiondba dba_insert は、 @@ -45,11 +44,10 @@ - handle + dba - dba_open あるいは dba_popen - によって返されたデータベースハンドル。 + &dba.parameter.dba; @@ -62,6 +60,24 @@ &return.success; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &dba.changelog.dba-object; + + + + + &reftitle.seealso; @@ -74,7 +90,6 @@ - - + dba_key_split @@ -11,8 +11,8 @@ &reftitle.description; - mixeddba_key_split - mixedkey + arrayfalsedba_key_split + stringfalsenullkey dba_key_split は、キー(文字列形式) @@ -43,6 +43,30 @@ この関数は &false; を返します。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + key に &null; または + &false; を渡すことは、非推奨となりました。 + + + + + + + &reftitle.seealso; @@ -54,7 +78,6 @@ - - + @@ -19,6 +19,12 @@ データベースファイルの一覧を返します。 + + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; diff --git a/reference/dba/functions/dba-nextkey.xml b/reference/dba/functions/dba-nextkey.xml index ae53ead9d0..98ef095e00 100644 --- a/reference/dba/functions/dba-nextkey.xml +++ b/reference/dba/functions/dba-nextkey.xml @@ -1,6 +1,5 @@ - - + @@ -10,8 +9,8 @@ &reftitle.description; - stringdba_nextkey - resourcehandle + stringfalsedba_nextkey + Dba\Connectiondba dba_nextkey は、 @@ -23,11 +22,10 @@ - handle + dba - dba_open あるいは dba_popen - によって返されたデータベースハンドル。 + &dba.parameter.dba; @@ -40,6 +38,24 @@ 成功した場合にキー、&return.falseforfailure;。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &dba.changelog.dba-object; + + + + + &reftitle.seealso; @@ -51,7 +67,6 @@ - - - + dba_open @@ -10,11 +9,13 @@ &reftitle.description; - resourcedba_open + Dba\Connectionfalsedba_open stringpath stringmode - stringhandler - string... + stringnullhandler&null; + intpermission0644 + intmap_size0 + intnullflags&null; dba_open は、handler を用いて @@ -22,6 +23,7 @@ にデータベースインスタンスを生成します。 + &reftitle.parameters; @@ -65,7 +67,7 @@ 行う必要がある場合、他の書き込みが終わってからでないと次の書き込みを 行うことができません。また、書き込み中に読み込むことはできません。 dba 拡張モジュールは、このようなことを防止するためにロックを使用します。 - 以下の表を参照してください: + 以下の表を参照ください: DBA のロック処理 @@ -157,46 +159,76 @@ path にアクセスする際に使用する ハンドラの名前。 - dba_open に指定したすべてのオプションが - 渡され、その機能を用いることができます。 + dba_open に指定したすべてのオプションが渡され、 + その機能を用いることができます。 + handler が &null; の場合、 + デフォルトのハンドラが使われます。 - ... + permission - ドライバに渡すオプションの &string; パラメータ + ドライバに渡されるオプションの整数パラメータ。 + chmod の + permissions を同じ意味です。 + デフォルトは 0644 です。 - cdb, cdb_make, flatfile, - inifile, qdbm。 - そして tcadb ドライバは追加のパラメータをサポートしていません。 + db1, db2, db3, + db4, dbm, gdbm, + ndbm, lmdb ドライバが + permission パラメータをサポートしています。 + + + + map_size + - db1, db2, db3, - db4, dbm, gdbm。 - そして、 ndbm ドライバは追加パラメータ - $filemode をサポートしています。 - これは chmod のパラメータ $mode と同じ意味を持ち、 - デフォルトは 0644 です。 + ドライバに渡されるオプションの整数パラメータ。 + OS のページサイズの倍数を指定すべきです。 + ゼロを指定すると、デフォルトのマップサイズが使われます。 - lmdb ドライバは追加パラメータをふたつサポートします。 - ひとつめは $filemode (説明は上を参照してください) で、 - ふたつめは OS のページサイズを複数指定する $mapsize です。 - $mapsize に 0 を指定した場合は、デフォルトの値が使われます。 - $mapsize パラメータは PHP 7.3.14 と 7.4.2 以降でサポートされています。 + lmdb ドライバだけが + map_size パラメータを受け入れます。 + + + + + flags + + + データベースドライバに渡すフラグ。 + &null; の場合、 + デフォルトのフラグが渡されます。 + 現状、LMDB ドライバだけが + DBA_LMDB_USE_SUB_DIR と + DBA_LMDB_NO_SUB_DIR をサポートしています。 + &reftitle.returnvalues; - 成功した場合に正のハンドル、&return.falseforfailure;。 + 成功した場合に Dba\Connection インスタンスを返します。 + &return.falseforfailure;。 + + + + + &reftitle.errors; + + handler + に &null; が指定されているのにデフォルトのハンドラが存在しない場合、 + E_WARNING レベルのエラーが発生し、 + &false; が返されます。 @@ -211,10 +243,30 @@ + + 8.4.0 + + Dba\Connection インスタンスを返すようになりました。 + これより前のバージョンでは、&resource; を返していました。 + + + + 8.2.0 + + flags が追加されました。 + + + + 8.2.0 + + handler は、nullable になりました。 + + 7.3.14, 7.4.2 - lmdb ドライバは $mapsize パラメータを追加でサポートしました。 + lmdb ドライバは、 + map_size パラメータを追加でサポートしました。 @@ -232,7 +284,6 @@ - - + @@ -12,7 +11,7 @@ &reftitle.description; booldba_optimize - resourcehandle + Dba\Connectiondba dba_optimize は、指定されたデータベースを最適化します。 @@ -23,11 +22,10 @@ - handle + dba - dba_open あるいは dba_popen - によって返されたデータベースハンドル。 + &dba.parameter.dba; @@ -40,6 +38,24 @@ &return.success; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &dba.changelog.dba-object; + + + + + &reftitle.seealso; @@ -49,7 +65,6 @@ - - - + dba_popen @@ -10,11 +9,13 @@ &reftitle.description; - resourcedba_popen + Dba\Connectionfalsedba_popen stringpath stringmode - stringhandler - mixed... + stringnullhandler&null; + intpermission0644 + intmap_size0 + intnullflags&null; dba_popen は、handler @@ -22,6 +23,7 @@ に持続的なデータベースインスタンスを確立します。 + &reftitle.parameters; @@ -54,18 +56,117 @@ ハンドラの名前。 dba_popen に指定したすべてのオプションが 渡され、その機能を用いることができます。 + handler が &null; の場合、 + デフォルトのハンドラが使われます。 + + + + + permission + + + ドライバに渡されるオプションの整数パラメータ。 + chmod の + permissions を同じ意味です。 + デフォルトは 0644 です。 + + + db1, db2, db3, + db4, dbm, gdbm, + ndbm, lmdbドライバが + permission パラメータをサポートしています。 + + + + + map_size + + + ドライバに渡されるオプションの整数パラメータ。 + OS のページサイズの倍数を指定すべきです。 + ゼロを指定すると、デフォルトのマップサイズが使われます。 + + + lmdb ドライバだけが + map_size パラメータを受け入れます。 + + + + + flags + + + データベースドライバに渡すフラグ。 + 現状、LMDB ドライバだけが + DBA_LMDB_USE_SUB_DIR と + DBA_LMDB_NO_SUB_DIR をサポートしています。 + &reftitle.returnvalues; - 成功した場合に正のハンドル、&return.falseforfailure;。 + 成功した場合に Dba\Connection インスタンスを返します。 + &return.falseforfailure;。 + + + &reftitle.errors; + + handler + に &null; が指定されているのにデフォルトのハンドラが存在しない場合、 + E_WARNING レベルのエラーが発生し、 + &false; が返されます。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + Dba\Connection インスタンスを返すようになりました。 + これより前のバージョンでは、&resource; を返していました。 + + + + 8.2.0 + + flags が追加されました。 + + + + 8.1.0 + + handler は、nullable になりました。 + + + + 7.3.14, 7.4.2 + + lmdb ドライバは、 + map_size パラメータを追加でサポートしました。 + + + + + + + &reftitle.seealso; @@ -76,7 +177,6 @@ - - + @@ -12,12 +11,12 @@ &reftitle.description; booldba_replace - stringkey + stringarraykey stringvalue - resourcehandle + Dba\Connectiondba - dba_replace は、handle で + dba_replace は、dba で 指定したデータベースに key および value で記述されるエントリを 置換または挿入します。 @@ -44,11 +43,10 @@ - handle + dba - dba_open あるいは dba_popen - によって返されたデータベースハンドル。 + &dba.parameter.dba; @@ -61,6 +59,24 @@ &return.success; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &dba.changelog.dba-object; + + + + + &reftitle.seealso; @@ -73,7 +89,6 @@ - - + @@ -12,7 +11,7 @@ &reftitle.description; booldba_sync - resourcehandle + Dba\Connectiondba dba_sync は @@ -25,11 +24,10 @@ - handle + dba - dba_open あるいは dba_popen - によって返されたデータベースハンドル。 + &dba.parameter.dba; @@ -42,6 +40,24 @@ &return.success; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &dba.changelog.dba-object; + + + + + &reftitle.seealso; @@ -51,7 +67,6 @@ - - + @@ -137,7 +137,7 @@ tcadb - これは PHP 5.4.0 以降で有効です。Tokyo Cabinet ライブラリは + Tokyo Cabinet ライブラリは からダウンロードできます。 @@ -186,13 +186,13 @@ &Changelog; - + dba.default_handler DBA_DEFAULT - PHP_INI_ALL + INI_ALL @@ -225,10 +225,11 @@
&reftitle.resources; - 関数 dba_open および - dba_popen は、指定したデータベースファイルに - アクセスするためのハンドルを返します。このハンドルは、他の全ての - dba 関数コールで使用されます。 + PHP 8.4.0 より前のバージョンでは、 + ほとんどの dba 関数はリソースを返していました。 + (たとえば dba_open + は、ほとんどの dba 関数で必須の DBA リンクの識別子を、 + 正の整数として返していました)
diff --git a/reference/dbplus/book.xml b/reference/dbplus/book.xml deleted file mode 100644 index 5db4510501..0000000000 --- a/reference/dbplus/book.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - DB++ - - - - &reftitle.intro; - - db++ は、ドイツの企業 Concept - asa により作成された高性能でかつメモリ使用量とディスク使用量が - 小さいことを特徴とするリレーショナルデータベースシステムです。 - db++ では、SQL は補助的なインターフェイス原語として提供されており、 - 元来の SQL データベースであるわけではありませんが、SQL よりも - 関係代数にはるかに強く影響された固有の AQL クエリ言語が提供されています。 - - - Concept asa は、常にオープンソース言語のサポートに関心を持って来ており、 - db++ は Perl、Tcl コールのインターフェイスを何年も前から有し、 - Tcl を内部的なストアドプロシージャ言語として使用しています。 - - - - &pecl.moved-ver;4.3.0 - - - &warn.experimental; - - - - &reference.dbplus.setup; - &reference.dbplus.constants; - &reference.dbplus.reference; - - - - - diff --git a/reference/dbplus/configure.xml b/reference/dbplus/configure.xml deleted file mode 100644 index d45df9cc59..0000000000 --- a/reference/dbplus/configure.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - -
- &reftitle.install; - - &pecl.moved-ver;4.3.0 - - - &pecl.info; - &url.pecl.package;dbplus. - - - この拡張モジュールをビルドするためには、db++ クライアントライブラリおよび - ヘッダファイルがシステムにインストールされていることが必要です - (db++ のインストールアーカイブには、これらがデフォルトで含まれています)。 - この拡張モジュールをビルドするためには、configure - の際にオプション を設定する必要があります。 - - - configure は、クライアントライブラリおよびヘッダファイルを - デフォルトのパス /usr/dbplus、 - /usr/local/dbplus および /opt/dblus - から探します。もし db++ を別の場所にインストールしている場合、 - 以下のようにしてインストール場所を configure オプションに - 指定する必要があります。 - - -
- - diff --git a/reference/dbplus/constants.xml b/reference/dbplus/constants.xml deleted file mode 100644 index 0a17d2315e..0000000000 --- a/reference/dbplus/constants.xml +++ /dev/null @@ -1,366 +0,0 @@ - - - - - &reftitle.constants; - &extension.constants; -
- db++ エラーコード - -
- DB++ エラーコード - - - - PHP 定数 - db++ 定数 - 意味 - - - - - - DBPLUS_ERR_NOERR - (integer) - - ERR_NOERR - Null エラー条件 - - - - DBPLUS_ERR_DUPLICATE - (integer) - - ERR_DUPLICATE - 重複するタプルを挿入した - - - - DBPLUS_ERR_EOSCAN - (integer) - - ERR_EOSCAN - rget() からスキャン終了 - - - - DBPLUS_ERR_EMPTY - (integer) - - ERR_EMPTY - 関係が空(サーバー) - - - - DBPLUS_ERR_CLOSE - (integer) - - ERR_CLOSE - サーバーをクローズできない - - - - DBPLUS_ERR_WLOCKED - (integer) - - ERR_WLOCKED - レコードは書き込みロックされている - - - - DBPLUS_ERR_LOCKED - (integer) - - ERR_LOCKED - 関係は既にロックされている - - - - DBPLUS_ERR_NOLOCK - (integer) - - ERR_NOLOCK - 関係をロックできない - - - - DBPLUS_ERR_READ - (integer) - - ERR_READ - 関係の読み込みエラー - - - - DBPLUS_ERR_WRITE - (integer) - - ERR_WRITE - 関係の書き込みエラー - - - - DBPLUS_ERR_CREATE - (integer) - - ERR_CREATE - create() システムコールが失敗 - - - - DBPLUS_ERR_LSEEK - (integer) - - ERR_LSEEK - lseek() システムコールが失敗 - - - - DBPLUS_ERR_LENGTH - (integer) - - ERR_LENGTH - 最大長を越えるタプル - - - - DBPLUS_ERR_OPEN - (integer) - - ERR_OPEN - open() システムコールが失敗 - - - - DBPLUS_ERR_WOPEN - (integer) - - ERR_WOPEN - 関係は既に書き込みオープンされている - - - - DBPLUS_ERR_MAGIC - (integer) - - ERR_MAGIC - ファイルは関係でない - - - - DBPLUS_ERR_VERSION - (integer) - - ERR_VERSION - ファイルは非常に古い関係である - - - - DBPLUS_ERR_PGSIZE - (integer) - - ERR_PGSIZE - 関係は異なったページサイズを使用している - - - - DBPLUS_ERR_CRC - (integer) - - ERR_CRC - 不正な CRC がスーパーページにある - - - - DBPLUS_ERR_PIPE - (integer) - - ERR_PIPE - パイプ上の関係は lseek() を要求している - - - - DBPLUS_ERR_NIDX - (integer) - - ERR_NIDX - セカンダリインデックスが多すぎる - - - - DBPLUS_ERR_MALLOC - (integer) - - ERR_MALLOC - malloc() コールが失敗した - - - - DBPLUS_ERR_NUSERS - (integer) - - ERR_NUSERS - 最大ユーザー数エラー - - - - DBPLUS_ERR_PREEXIT - (integer) - - ERR_PREEXIT - 無効な使用法により発生 - - - - DBPLUS_ERR_ONTRAP - (integer) - - ERR_ONTRAP - シグナルにより発生 - - - - DBPLUS_ERR_PREPROC - (integer) - - ERR_PREPROC - プリプロセッサにおけるエラー - - - - DBPLUS_ERR_DBPARSE - (integer) - - ERR_DBPARSE - パーサ上のエラー - - - - DBPLUS_ERR_DBRUNERR - (integer) - - ERR_DBRUNERR - dbにおける実行エラー - - - - DBPLUS_ERR_DBPREEXIT - (integer) - - ERR_DBPREEXIT - prexit() * プロシージャにより発生した終了条件 - - - - DBPLUS_ERR_WAIT - (integer) - - ERR_WAIT - 少し待つ(simple のみ) - - - - DBPLUS_ERR_CORRUPT_TUPLE - (integer) - - ERR_CORRUPT_TUPLE - クライアントが壊れたタプルを送信した - - - - DBPLUS_ERR_WARNING0 - (integer) - - ERR_WARNING0 - - simple ルーチンが、修正済みの致命的でないエラーを発見した - - - - - DBPLUS_ERR_PANIC - (integer) - - ERR_PANIC - - サーバーは実際に実行中断していないが、全てのクライアントに - ERR_PANIC が送信された - - - - - DBPLUS_ERR_FIFO - (integer) - - ERR_FIFO - fifo を作成できない - - - - DBPLUS_ERR_PERM - (integer) - - ERR_PERM - 不許可 - - - - DBPLUS_ERR_TCL - (integer) - - ERR_TCL - TCL_error - - - - DBPLUS_ERR_RESTRICTED - (integer) - - ERR_RESTRICTED - ユーザー二人のみ - - - - DBPLUS_ERR_USER - (integer) - - ERR_USER - - アプリケーションプログラマによるライブラリの使用エラー - - - - - DBPLUS_ERR_UNKNOWN - (integer) - - ERR_UNKNOWN - - - - -
-
-
- - - diff --git a/reference/dbplus/functions/dbplus-add.xml b/reference/dbplus/functions/dbplus-add.xml deleted file mode 100644 index 9d6ff45b94..0000000000 --- a/reference/dbplus/functions/dbplus-add.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - dbplus_add - リレーションにタプルを追加する - - - - &reftitle.description; - - - intdbplus_add - resourcerelation - arraytuple - - - タプルをリレーション relation に追加します。 - - - - - &reftitle.parameters; - - - - relation - - - - - - - tuple - - - 属性/値の組の配列であり、 - 指定した relation に挿入されます。 - - - 実行に成功すると tuple 配列には新規に生成されたタプルの - 完全なデータが含まれ、そこにはシーケンスのような暗黙の内に設定 - される全てのドメインが含まれます。 - - - - - - - - - &reftitle.returnvalues; - - この関数は、成功した場合に DBPLUS_ERR_NOERR、 - 失敗した場合に db++ エラーコードを返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_errcode - - - - - - - diff --git a/reference/dbplus/functions/dbplus-aql.xml b/reference/dbplus/functions/dbplus-aql.xml deleted file mode 100644 index 702997dd00..0000000000 --- a/reference/dbplus/functions/dbplus-aql.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - dbplus_aql - AQL クエリを実行する - - - - &reftitle.description; - - resourcedbplus_aql - stringquery - stringserver - stringdbpath - - - AQL query を、指定した - server および - dbpath で実行します。 - - - - - &reftitle.parameters; - - - - query - - - AQL (Algebraic Query Language) に関するより詳細な情報については、 - オリジナルの db++ マニュアルで提供されています。 - - - - - server - - - - - - - dbpath - - - - - - - - - - - &reftitle.returnvalues; - - 成功時に関係ハンドルを返します。結果データは、 - dbplus_next および - dbplus_curr をコールすることにより、このリレーションから取得可能です。 - 他のリレーションアクセス関数は結果のリレーションで動作しません。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-chdir.xml b/reference/dbplus/functions/dbplus-chdir.xml deleted file mode 100644 index f7092468d2..0000000000 --- a/reference/dbplus/functions/dbplus-chdir.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - dbplus_chdir - データベース仮想カレントディレクトリを設定/取得する - - - - &reftitle.description; - - stringdbplus_chdir - stringnewdir - - - dbplus_open でリレーションファイルを探す際の - 仮想カレントディレクトリを変更します。 - - - - - &reftitle.parameters; - - - - newdir - - - リレーションファイルの新しいディレクトリ。このパラメータを省略すると、 - 現在の作業ディレクトリで探します。 - - - - - - - - - &reftitle.returnvalues; - - カレントディレクトリの絶対パスを返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-close.xml b/reference/dbplus/functions/dbplus-close.xml deleted file mode 100644 index e1984eb1e3..0000000000 --- a/reference/dbplus/functions/dbplus-close.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - dbplus_close - リレーションを閉じる - - - - &reftitle.description; - - mixeddbplus_close - resourcerelation - - - dbplus_open でオープンしたリレーションを閉じます。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - - - - - &reftitle.returnvalues; - - 成功した場合に &true;、失敗した場合に DBPLUS_ERR_UNKNOWN - を返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-curr.xml b/reference/dbplus/functions/dbplus-curr.xml deleted file mode 100644 index 358b499729..0000000000 --- a/reference/dbplus/functions/dbplus-curr.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - dbplus_curr - リレーションからカレントタプルを取得する - - - - &reftitle.description; - - intdbplus_curr - resourcerelation - arraytuple - - - 指定した relation - について、カレントタプルに関するデータを読み込みます。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - tuple - - - データがこのパラメータに連想配列として返されます。 - - - - - - - - - &reftitle.returnvalues; - - この関数は、成功時にゼロ (すなわち DBPLUS_ERR_NOERR)、失敗時に db++ - エラーコードを返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_first - dbplus_prev - dbplus_next - dbplus_last - dbplus_errcode - - - - - - - diff --git a/reference/dbplus/functions/dbplus-errcode.xml b/reference/dbplus/functions/dbplus-errcode.xml deleted file mode 100644 index b384144c97..0000000000 --- a/reference/dbplus/functions/dbplus-errcode.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - dbplus_errcode - 指定したエラーコードまたは直近のエラーに関するエラー文字列を取得する - - - - &reftitle.description; - - stringdbplus_errcode - interrno - - - 指定したエラーコードに対応するエラー文字列を返します。 - - - - - &reftitle.parameters; - - - - errno - - - エラーコード。指定しなかった場合は、直近の db++ - 操作の結果コードを使用します。 - - - - - - - - - &reftitle.returnvalues; - - エラーメッセージを返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-errno.xml b/reference/dbplus/functions/dbplus-errno.xml deleted file mode 100644 index 50dfc27889..0000000000 --- a/reference/dbplus/functions/dbplus-errno.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - dbplus_errno - 直近の操作に関するエラーコードを取得する - - - - &reftitle.description; - - intdbplus_errno - - - - 直近の db++ 操作からのエラーコードを返します。 - - - - - &reftitle.returnvalues; - - エラーコードを表す整数値を返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_errcode - - - - - - - diff --git a/reference/dbplus/functions/dbplus-find.xml b/reference/dbplus/functions/dbplus-find.xml deleted file mode 100644 index 9c13c83fa4..0000000000 --- a/reference/dbplus/functions/dbplus-find.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - dbplus_find - リレーションに拘束を設定する - - - - &reftitle.description; - - intdbplus_find - resourcerelation - arrayconstraints - mixedtuple - - - 指定したリレーション relation - に拘束を設定します。 - - - この後、dbplus_curr または - dbplus_next のような関数をコールすると、 - 指定した拘束にマッチするタプルのみが取得されます。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - constraints - - - 拘束は、ドメイン名、比較演算子、比較値を含む複合文字列です。 - パラメータ配列 constraints は文字列の配列で、 - この各要素は、ドメイン、演算子、値を含むか、 - 複数の三要素からなる文字列の配列です。 - - - 比較演算子は、以下の文字列のどれかとなります。 - 正規表現による検索には、'==', '>', '>=', '<', '<=', - '!=', '~'、ビット演算には 'BAND' または 'BOR' を使用します。 - - - - - tuple - - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_unselect - - - - - - - diff --git a/reference/dbplus/functions/dbplus-first.xml b/reference/dbplus/functions/dbplus-first.xml deleted file mode 100644 index 988ac3e31f..0000000000 --- a/reference/dbplus/functions/dbplus-first.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - dbplus_first - リレーションから最初のタプルを取得する - - - - &reftitle.description; - - intdbplus_first - resourcerelation - arraytuple - - - 指定したリレーション - relation の最初のタプルのデータを読み込み、 - 連想配列として tuple に返します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - tuple - - - - - - - - - - - &reftitle.returnvalues; - - 成功した場合に DBPLUS_ERR_NOERR、 - 失敗した場合に db++ エラーコードを返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_curr - dbplus_prev - dbplus_next - dbplus_last - dbplus_errcode - - - - - - - diff --git a/reference/dbplus/functions/dbplus-flush.xml b/reference/dbplus/functions/dbplus-flush.xml deleted file mode 100644 index 4947fadb42..0000000000 --- a/reference/dbplus/functions/dbplus-flush.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - dbplus_flush - リレーションに行った全ての変更をフラッシュする - - - - &reftitle.description; - - intdbplus_flush - resourcerelation - - - 直近のフラッシュ以降にリレーション relation - に適用されたすべての変更をディスクに書き込みます。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - - - - - &reftitle.returnvalues; - - 成功した場合に DBPLUS_ERR_NOERR、 - 失敗した場合に db++ エラーコードを返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_errcode - - - - - - - diff --git a/reference/dbplus/functions/dbplus-freealllocks.xml b/reference/dbplus/functions/dbplus-freealllocks.xml deleted file mode 100644 index a9c126af26..0000000000 --- a/reference/dbplus/functions/dbplus-freealllocks.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - dbplus_freealllocks - このクライアントにより保持された全てのロックを解放する - - - - &reftitle.description; - - intdbplus_freealllocks - - - - このクライアントによりロックされたタプルを全て解放します。 - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_getlock - dbplus_freelock - dbplus_freerlocks - - - - - - - diff --git a/reference/dbplus/functions/dbplus-freelock.xml b/reference/dbplus/functions/dbplus-freelock.xml deleted file mode 100644 index 9058d577ae..0000000000 --- a/reference/dbplus/functions/dbplus-freelock.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - dbplus_freelock - タプルの書き込みロックを解放する - - - - &reftitle.description; - - intdbplus_freelock - resourcerelation - stringtuple - - - dbplus_getlock より以前に得た指定 - tuple の書き込みロックを解放します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - tuple - - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_getlock - dbplus_freerlocks - dbplus_freealllocks - - - - - - - diff --git a/reference/dbplus/functions/dbplus-freerlocks.xml b/reference/dbplus/functions/dbplus-freerlocks.xml deleted file mode 100644 index b173bf5bdb..0000000000 --- a/reference/dbplus/functions/dbplus-freerlocks.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - dbplus_freerlocks - 指定したリレーションに関する全てのタプルロックを解放する - - - - &reftitle.description; - - intdbplus_freerlocks - resourcerelation - - - 指定した relation で保持されている全てのタプルロックを解放します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_getlock - dbplus_freelock - dbplus_freealllocks - - - - - - - diff --git a/reference/dbplus/functions/dbplus-getlock.xml b/reference/dbplus/functions/dbplus-getlock.xml deleted file mode 100644 index da7721f4c8..0000000000 --- a/reference/dbplus/functions/dbplus-getlock.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - dbplus_getlock - タプルの書き込みロックを取得する - - - - &reftitle.description; - - intdbplus_getlock - resourcerelation - stringtuple - - - 指定した tuple へ書き込みロックを要求します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - tuple - - - - - - - - - - - &reftitle.returnvalues; - - 成功時にゼロ、失敗時にゼロでないコード、特に - DBPLUS_ERR_WLOCKED を返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_freelock - dbplus_freerlocks - dbplus_freealllocks - - - - - - - diff --git a/reference/dbplus/functions/dbplus-getunique.xml b/reference/dbplus/functions/dbplus-getunique.xml deleted file mode 100644 index 48551aa949..0000000000 --- a/reference/dbplus/functions/dbplus-getunique.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - dbplus_getunique - あるリレーションのユニークな ID 番号を取得する - - - - &reftitle.description; - - intdbplus_getunique - resourcerelation - intuniqueid - - - 指定した - relation に関してユニークであることが保証 - された数を取得し、uniqueid - で指定した変数にその数を代入します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - uniqueid - - - - - - - - - - - &reftitle.returnvalues; - - 成功した場合に DBPLUS_ERR_NOERR、 - 失敗した場合に db++ エラーコードを返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-info.xml b/reference/dbplus/functions/dbplus-info.xml deleted file mode 100644 index e4032b4bda..0000000000 --- a/reference/dbplus/functions/dbplus-info.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - dbplus_info - リレーションについての情報を取得する - - - - &reftitle.description; - - intdbplus_info - resourcerelation - stringkey - arrayresult - - &warn.undocumented.func; - - - - &reftitle.parameters; - - - - relation - - - dbplus_open が返すリレーション。 - - - - - key - - - - - - - result - - - - - - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-last.xml b/reference/dbplus/functions/dbplus-last.xml deleted file mode 100644 index 4eac338713..0000000000 --- a/reference/dbplus/functions/dbplus-last.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - dbplus_last - リレーションから直近のタプルを取得する - - - - &reftitle.description; - - intdbplus_last - resourcerelation - arraytuple - - - 指定した - relation から直近のタプルに関するデータを読み込み、 - tuple に連想配列として代入します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - tuple - - - - - - - - - - - &reftitle.returnvalues; - - 成功した場合に DBPLUS_ERR_NOERR、 - 失敗した場合に db++ エラーコードを返します。 - code on failure. - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_first - dbplus_curr - dbplus_prev - dbplus_next - - - - - - - diff --git a/reference/dbplus/functions/dbplus-lockrel.xml b/reference/dbplus/functions/dbplus-lockrel.xml deleted file mode 100644 index 2e7174dc6d..0000000000 --- a/reference/dbplus/functions/dbplus-lockrel.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - dbplus_lockrel - リレーションに書き込みロックを要求する - - - - &reftitle.description; - - intdbplus_lockrel - resourcerelation - - - 指定した relation に書き込みロックを要求します。 - - - 他のクライアントからリレーションに対してクエリを実行することはできますが、 - ロックされている間は更新できません。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-next.xml b/reference/dbplus/functions/dbplus-next.xml deleted file mode 100644 index 5367912f83..0000000000 --- a/reference/dbplus/functions/dbplus-next.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - dbplus_next - リレーションから次のタプルを取得する - - - - &reftitle.description; - - intdbplus_next - resourcerelation - arraytuple - - - 指定した relation の次のタプルからデータを読み込み、 - tuple に連想配列として返します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - tuple - - - - - - - - - - - &reftitle.returnvalues; - - 成功した場合に DBPLUS_ERR_NOERR、 - 失敗した場合に db++ エラーコードを返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_first - dbplus_curr - dbplus_prev - dbplus_last - - - - - - - diff --git a/reference/dbplus/functions/dbplus-open.xml b/reference/dbplus/functions/dbplus-open.xml deleted file mode 100644 index 9bc6283e47..0000000000 --- a/reference/dbplus/functions/dbplus-open.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - dbplus_open - リレーションファイルをオープンする - - - - &reftitle.description; - - resourcedbplus_open - stringname - - - 指定したリレーションファイルをオープンします。 - - - - - &reftitle.parameters; - - - - name - - - ファイル名またはリレーション、絶対パス名とします。 - これは、指定したパス名及びサーバー上の絶対リレーションファイル - パス名を常にマップします。 - - - - - - - - - &reftitle.returnvalues; - - 成功時にリレーションファイルリソース(カーソル)が返されます。これは、 - このリレーションを参照する以降の全てのコマンドで使用されます。 - 失敗時にはゼロが返されます。実際のエラーコードは、 - dbplus_errno により取得可能です。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-prev.xml b/reference/dbplus/functions/dbplus-prev.xml deleted file mode 100644 index 299839e9bc..0000000000 --- a/reference/dbplus/functions/dbplus-prev.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - dbplus_prev - リレーションから前のタプルを取得する - - - - &reftitle.description; - - intdbplus_prev - resourcerelation - arraytuple - - - 指定した relation から前のタプルのデータを読み込み、 - tuple に連想配列として返します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - tuple - - - - - - - - - - - &reftitle.returnvalues; - - 成功した場合に DBPLUS_ERR_NOERR、 - 失敗した場合に db++ エラーコードを返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_first - dbplus_curr - dbplus_next - dbplus_last - - - - - - - diff --git a/reference/dbplus/functions/dbplus-rchperm.xml b/reference/dbplus/functions/dbplus-rchperm.xml deleted file mode 100644 index e0f3c034ca..0000000000 --- a/reference/dbplus/functions/dbplus-rchperm.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - dbplus_rchperm - リレーションの許可属性を変更する - - - - &reftitle.description; - - intdbplus_rchperm - resourcerelation - intmask - stringuser - stringgroup - - - mask, - user,group で - 指定した許可属性に変更します。これらの値はオペレーティングシステムに依存します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - mask - - - - - - - user - - - - - - - group - - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-rcreate.xml b/reference/dbplus/functions/dbplus-rcreate.xml deleted file mode 100644 index 791a4fb6ca..0000000000 --- a/reference/dbplus/functions/dbplus-rcreate.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - dbplus_rcreate - 新しい DB++ リレーションを作成する - - - - &reftitle.description; - - resourcedbplus_rcreate - stringname - mixeddomlist - booloverwrite - - - 新しいリレーションを作成します。同名の既存のリレーションは、 - そのリレーションが現在使用されておらず、 - overwrite に TRUE - が設定されている場合にのみ上書きされます。 - - - - - &reftitle.parameters; - - - - name - - - - - - - domlist - - - ドメインの組み合わせ。単一のドメイン名を表す文字列か、 - ドメイン名の配列となります。 - - - このパラメータにはドメインを示す文字列の配列で - 新規リレーションのドメインを指定する必要があります。 - ドメイン指定文字列は、このリレーションへのユニークなドメイン名、スラッシュ、 - 型指定文字からなります。利用可能な型指定子及びその意味については、 - db++ のドキュメント、特に dbcreate(1) のマニュアルを参照ください。 - - - - この関数には、複数のドメインを空白で区切った文字列を指定することもできます。 - しかし、配列を使用することを推奨します。 - - - - - - overwrite - - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-rcrtexact.xml b/reference/dbplus/functions/dbplus-rcrtexact.xml deleted file mode 100644 index 17fb08573b..0000000000 --- a/reference/dbplus/functions/dbplus-rcrtexact.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - dbplus_rcrtexact - インデックスを含む、リレーションの空のコピーを作成する - - - - &reftitle.description; - - mixeddbplus_rcrtexact - stringname - resourcerelation - booloverwrite - - - dbplus_rcrtexact は、 - 指定した relation の空のコピーを - name という名前で作成します。 - - - - - &reftitle.parameters; - - - - name - - - - - - - relation - - - コピーするリレーション。dbplus_open でオープンしたもの。 - - - - - overwrite - - - このパラメータが &true; であり - 他のプロセスがそのリレーションを使用していない場合にのみ、 - 同じ名前の既存のリレーションが上書きされます。 - - - - - - - - - &reftitle.returnvalues; - - 成功した場合にリソース、失敗した場合に DBPLUS_ERR_UNKNOWN - を返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-rcrtlike.xml b/reference/dbplus/functions/dbplus-rcrtlike.xml deleted file mode 100644 index 5aebcc50b8..0000000000 --- a/reference/dbplus/functions/dbplus-rcrtlike.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - dbplus_rcrtlike - デフォルトのインデックスで、リレーションの空のコピーを作成する - - - - &reftitle.description; - - mixeddbplus_rcrtlike - stringname - resourcerelation - intoverwrite - - - dbplus_rcrtlike は、 - 指定した relation の空のコピーを - name という名前で作成しますが、デフォルトの - インデックスを使用します。 - - - - - &reftitle.parameters; - - - - name - - - - - - - relation - - - コピーするリレーション。dbplus_open でオープンしたもの。 - - - - - overwrite - - - このパラメータが &true; であり - 他のプロセスがそのリレーションを使用していない場合にのみ、 - 同じ名前の既存のリレーションが上書きされます。 - - - - - - - - - &reftitle.returnvalues; - - 成功した場合にリソース、失敗した場合に DBPLUS_ERR_UNKNOWN - を返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-resolve.xml b/reference/dbplus/functions/dbplus-resolve.xml deleted file mode 100644 index 3d5d3e24fc..0000000000 --- a/reference/dbplus/functions/dbplus-resolve.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - dbplus_resolve - リレーションのホスト情報を取得する - - - - &reftitle.description; - - arraydbplus_resolve - stringrelation_name - - - dbplus_resolve は指定された - relation_name を解決し、内部サーバー ID・ - 実際のホスト名およびホスト上のデータベースのパスを取得します。 - - - - - &reftitle.parameters; - - - - relation_name - - - リレーション名。 - - - - - - - - - &reftitle.returnvalues; - - キー - sidhost および - host_path を含む配列、あるいはエラー時に &false; を返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_tcl - - - - - - - diff --git a/reference/dbplus/functions/dbplus-restorepos.xml b/reference/dbplus/functions/dbplus-restorepos.xml deleted file mode 100644 index 670ded9077..0000000000 --- a/reference/dbplus/functions/dbplus-restorepos.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - dbplus_restorepos - 位置を復元する - - - - &reftitle.description; - - intdbplus_restorepos - resourcerelation - arraytuple - - &warn.undocumented.func; - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - tuple - - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-rkeys.xml b/reference/dbplus/functions/dbplus-rkeys.xml deleted file mode 100644 index 8171daa40d..0000000000 --- a/reference/dbplus/functions/dbplus-rkeys.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - dbplus_rkeys - リレーションの主キーを新規に指定する - - - - &reftitle.description; - - mixeddbplus_rkeys - resourcerelation - mixeddomlist - - - dbplus_rkeys は、 - relation に指定された現在の主キーを、 - domlist で指定されたドメインに変更します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - domlist - - - ドメインの組み合わせ。ドメイン名を含む文字列あるいは - 複数のドメイン名を含む配列を渡します。 - - - - - - - - - &reftitle.returnvalues; - - 成功した場合にリソース、失敗した場合に DBPLUS_ERR_UNKNOWN - を返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-ropen.xml b/reference/dbplus/functions/dbplus-ropen.xml deleted file mode 100644 index 4bce852d09..0000000000 --- a/reference/dbplus/functions/dbplus-ropen.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - dbplus_ropen - リレーションファイルをローカルにオープンする - - - - &reftitle.description; - - resourcedbplus_ropen - stringname - - - dbplus_ropen は、クライアント/サーバー間の - オーバーヘッドを防いですばやくアクセスするために、リレーション - file をローカルにオープンします。 - アクセスは読み込み専用となり、返されるリレーションを利用できるのは - dbplus_curr および - dbplus_next のみとなります。 - - - - - &reftitle.parameters; - - - - name - - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-rquery.xml b/reference/dbplus/functions/dbplus-rquery.xml deleted file mode 100644 index 94ec34d6f4..0000000000 --- a/reference/dbplus/functions/dbplus-rquery.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - dbplus_rquery - ローカル (raw) AQL クエリを実行する - - - - &reftitle.description; - - resourcedbplus_rquery - stringquery - stringdbpath - - - dbplus_rquery は、db++ クライアントライブラリに組み込まれた - AQL インタプリタを使用してローカル(raw) AQL クエリを実行します。 - dbplus_rquery は - dbplus_aql より高速ですが、 - ローカルのデータについてのみしか実行できません。 - - - - - &reftitle.parameters; - - - - query - - - - - - - dbpath - - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-rrename.xml b/reference/dbplus/functions/dbplus-rrename.xml deleted file mode 100644 index e26a325620..0000000000 --- a/reference/dbplus/functions/dbplus-rrename.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - dbplus_rrename - リレーションの名前を変更する - - - - &reftitle.description; - - intdbplus_rrename - resourcerelation - stringname - - - dbplus_rrename は、 - relation の名前を name - に変更します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - name - - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-rsecindex.xml b/reference/dbplus/functions/dbplus-rsecindex.xml deleted file mode 100644 index 550e932aff..0000000000 --- a/reference/dbplus/functions/dbplus-rsecindex.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - dbplus_rsecindex - リレーションに新規セカンダリインデックスを作成する - - - - &reftitle.description; - - mixeddbplus_rsecindex - resourcerelation - mixeddomlist - inttype - - - dbplus_rsecindex は、 - relation に新しいセカンダリインデックスを作成します。 - このインデックスには domlist - で指定したドメインが含まれ、型は type です。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - domlist - - - ドメイン名の組み合わせ。単一のドメイン名を含む文字列あるいは - 複数のドメイン名を含む配列を渡します。 - - - - - type - - - - - - - - - - - &reftitle.returnvalues; - - 成功した場合にリソース、失敗した場合に DBPLUS_ERR_UNKNOWN - を返します。 - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-runlink.xml b/reference/dbplus/functions/dbplus-runlink.xml deleted file mode 100644 index ce330202a5..0000000000 --- a/reference/dbplus/functions/dbplus-runlink.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - dbplus_runlink - ファイルシステムからリレーションを削除する - - - - &reftitle.description; - - intdbplus_runlink - resourcerelation - - - dbplus_runlink は、 - relation を閉じて削除します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-rzap.xml b/reference/dbplus/functions/dbplus-rzap.xml deleted file mode 100644 index 109da09513..0000000000 --- a/reference/dbplus/functions/dbplus-rzap.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - dbplus_rzap - リレーションから全てのタプルを削除する - - - - &reftitle.description; - - intdbplus_rzap - resourcerelation - - - dbplus_rzap は、 - relation からタプルをすべて削除します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-savepos.xml b/reference/dbplus/functions/dbplus-savepos.xml deleted file mode 100644 index d5deee828e..0000000000 --- a/reference/dbplus/functions/dbplus-savepos.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - dbplus_savepos - 位置を保存する - - - - &reftitle.description; - - intdbplus_savepos - resourcerelation - - &warn.undocumented.func; - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-setindex.xml b/reference/dbplus/functions/dbplus-setindex.xml deleted file mode 100644 index 881401fec8..0000000000 --- a/reference/dbplus/functions/dbplus-setindex.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - dbplus_setindex - インデックスを設定する - - - - &reftitle.description; - - intdbplus_setindex - resourcerelation - stringidx_name - - &warn.undocumented.func; - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - idx_name - - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-setindexbynumber.xml b/reference/dbplus/functions/dbplus-setindexbynumber.xml deleted file mode 100644 index 71c4a00cea..0000000000 --- a/reference/dbplus/functions/dbplus-setindexbynumber.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - dbplus_setindexbynumber - インデックスを数字で設定する - - - - &reftitle.description; - - intdbplus_setindexbynumber - resourcerelation - intidx_number - - &warn.undocumented.func; - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - idx_number - - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-sql.xml b/reference/dbplus/functions/dbplus-sql.xml deleted file mode 100644 index a905a45245..0000000000 --- a/reference/dbplus/functions/dbplus-sql.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - dbplus_sql - SQL クエリを実行する - - - - &reftitle.description; - - resourcedbplus_sql - stringquery - stringserver - stringdbpath - - &warn.undocumented.func; - - - - &reftitle.parameters; - - - - query - - - - - - - server - - - - - - - dbpath - - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-tcl.xml b/reference/dbplus/functions/dbplus-tcl.xml deleted file mode 100644 index aa526dbb12..0000000000 --- a/reference/dbplus/functions/dbplus-tcl.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - dbplus_tcl - サーバー側で TCL コードを実行する - - - - &reftitle.description; - - stringdbplus_tcl - intsid - stringscript - - - db++ サーバーは、各クライアント接続について TCL インタプリタを準備します。 - このインタプリタは、ある種のストアドプロシージャとしてクライアントに - 指定された TCL コードをサーバーで実行するもので、 - クライアント/サーバー間のデータ伝送及びコンテキスト切替を回避し、 - データベース処理性能を改善するために使用されます。 - - - dbplus_tcl は、TCL - script コードが実行される、クライアント接続 - ID を必要とします。dbplus_resolve が、この接続 - ID を返します。この関数は、TCL コードの返り値または TCL コードが失敗 - した場合には、TCL エラーメッセージを返します。 - - - - - &reftitle.parameters; - - - - sid - - - - - - - script - - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_resolve - - - - - - - diff --git a/reference/dbplus/functions/dbplus-tremove.xml b/reference/dbplus/functions/dbplus-tremove.xml deleted file mode 100644 index 656737b923..0000000000 --- a/reference/dbplus/functions/dbplus-tremove.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - dbplus_tremove - タプルを削除し、新規カレントタプルを返す - - - - &reftitle.description; - - intdbplus_tremove - resourcerelation - arraytuple - arraycurrent - - - dbplus_tremove は、関係の中のタプルに完全に - 一致する場合、tuple を削除します。 - current が指定された場合、 - dbplus_tremove をコールした後、新規のカレントの - タプルのデータが代入されます。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - tuple - - - - - - - current - - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-undo.xml b/reference/dbplus/functions/dbplus-undo.xml deleted file mode 100644 index a44fb71330..0000000000 --- a/reference/dbplus/functions/dbplus-undo.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - dbplus_undo - 元に戻す - - - - &reftitle.description; - - intdbplus_undo - resourcerelation - - &warn.undocumented.func; - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-undoprepare.xml b/reference/dbplus/functions/dbplus-undoprepare.xml deleted file mode 100644 index a74d30a731..0000000000 --- a/reference/dbplus/functions/dbplus-undoprepare.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - dbplus_undoprepare - 元に戻す準備をする - - - - &reftitle.description; - - intdbplus_undoprepare - resourcerelation - - &warn.undocumented.func; - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-unlockrel.xml b/reference/dbplus/functions/dbplus-unlockrel.xml deleted file mode 100644 index 89ba4b1b29..0000000000 --- a/reference/dbplus/functions/dbplus-unlockrel.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - dbplus_unlockrel - リレーションの書き込みロックを中断する - - - - &reftitle.description; - - intdbplus_unlockrel - resourcerelation - - - 以前 dbplus_lockrel - により得られた書き込みロックを開放します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-unselect.xml b/reference/dbplus/functions/dbplus-unselect.xml deleted file mode 100644 index 203e1498e5..0000000000 --- a/reference/dbplus/functions/dbplus-unselect.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - dbplus_unselect - リレーションから制約を削除する - - - - &reftitle.description; - - intdbplus_unselect - resourcerelation - - - dbplus_unselect をコールすると、 - dbplus_find により - relation に設定された制約が削除されます。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-update.xml b/reference/dbplus/functions/dbplus-update.xml deleted file mode 100644 index 639284e162..0000000000 --- a/reference/dbplus/functions/dbplus-update.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - dbplus_update - リレーション内の指定したタプルを更新する - - - - &reftitle.description; - - intdbplus_update - resourcerelation - arrayold - arraynew - - - dbplus_update は、old - で指定したタプル new からのデータで置換します。 - 置換が行われるのは、old が - relation の中のタプルに完全に一致する場合のみです。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - old - - - 古いタプルの内容。 - - - - - new - - - 新しいタプルの内容。 - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/functions/dbplus-xlockrel.xml b/reference/dbplus/functions/dbplus-xlockrel.xml deleted file mode 100644 index a01ee92af7..0000000000 --- a/reference/dbplus/functions/dbplus-xlockrel.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - dbplus_xlockrel - リレーションの排他的ロックを要求する - - - - &reftitle.description; - - intdbplus_xlockrel - resourcerelation - - - relation に他のクライアントからの読み込み - アクセスさえ拒否する排他的ロックを要求します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - &reftitle.seealso; - - - dbplus_xunlockrel - - - - - - - diff --git a/reference/dbplus/functions/dbplus-xunlockrel.xml b/reference/dbplus/functions/dbplus-xunlockrel.xml deleted file mode 100644 index 9afdf01ee4..0000000000 --- a/reference/dbplus/functions/dbplus-xunlockrel.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - dbplus_xunlockrel - リレーションの排他的ロックを解放する - - - - &reftitle.description; - - intdbplus_xunlockrel - resourcerelation - - - 以前に dbplus_xlockrel - で取得した排他的ロックを開放します。 - - - - - &reftitle.parameters; - - - - relation - - - dbplus_open でオープンしたリレーション。 - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.notes; - &warn.experimental.func; - - - - - diff --git a/reference/dbplus/reference.xml b/reference/dbplus/reference.xml deleted file mode 100644 index 701a962794..0000000000 --- a/reference/dbplus/reference.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - DB++ &Functions; - - &reference.dbplus.entities.functions; - - - - diff --git a/reference/dbplus/setup.xml b/reference/dbplus/setup.xml deleted file mode 100644 index 0d140b064e..0000000000 --- a/reference/dbplus/setup.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - &reftitle.setup; - - -
- &reftitle.required; - - この拡張モジュールは外部クライアントライブラリに依存しており、 - この拡張モジュールを使用したいシステム上に - db++ クライアントがインストールされている必要があります。 - - - Concept asa が、 - Linux および他のいくつかの Unix 版の - db++ デモ版 および - ドキュメント - を提供しています。また、Windows 版の db++ もありますが、 - この拡張モジュールでは(まだ)サポートしていません。 - -
- - - - &reference.dbplus.configure; - - - -
- &reftitle.runtime; - &no.config; -
- - - -
- &reftitle.resources; -
- dbplus_relation - - 多くの db++ 関数は、dbplus_relation - リソースを操作または返します。 - dbplus_relation は、 - 保存された関係またはクエリの結果として生成された関係へのハンドルです。 - -
-
- - -
- - - diff --git a/reference/dbx/book.xml b/reference/dbx/book.xml deleted file mode 100644 index c16b9fc713..0000000000 --- a/reference/dbx/book.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - dbx - - - - &reftitle.intro; - - dbx モジュールは、データベース抽象化レイヤ(db 'X' の 'X' は、 - サポートされるデータベースの一つを意味します)のことです。dbx 関数 - により、サポートされる全てのデータベースを単一の呼出表記により - アクセスすることが可能になります。dbx 関数自体は、データベースへの - 直接のインターフェイスを有しませんが、それらのデータベースをサポート - するために使用されるモジュールへのインターフェイスを有します。 - - - - &pecl.moved-ver;5.1.0. - - - - - - &reference.dbx.setup; - &reference.dbx.constants; - &reference.dbx.reference; - - - - - diff --git a/reference/dbx/configure.xml b/reference/dbx/configure.xml deleted file mode 100644 index 63a50e2fb4..0000000000 --- a/reference/dbx/configure.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - -
- &reftitle.install; - - &pecl.moved-ver;5.1.0 - - - &pecl.info; - &url.pecl.package;dbx. - - - これらの関数を利用可能にするには、 - オプションを使用して - dbx サポートを有効にし、また、使用するデータベースに関するオプション、 - 例えば MySQL の場合は - - も指定して PHP をコンパイルする必要があります。 - 他のサポートされるデータベースを dbx モジュールで動作させるには、 - 個別のドキュメントを参照してください。 - -
- - diff --git a/reference/dbx/functions/dbx-close.xml b/reference/dbx/functions/dbx-close.xml deleted file mode 100644 index b3f3e713e7..0000000000 --- a/reference/dbx/functions/dbx-close.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - dbx_close - オープンされた接続/データベースを閉じる - - - &reftitle.description; - - intdbx_close - objectlink_identifier - - - - &reftitle.parameters; - - - - link_identifier - - - 閉じたい DBX リンクオブジェクト。 - - - - - - - - &reftitle.returnvalues; - - 成功した場合に 1、エラーの場合に 0 を返します。 - - - - &reftitle.examples; - - - <function>dbx_close</function> の例 - - -]]> - - - - - - &reftitle.notes; - - - モジュール固有のドキュメントも参照ください。 - - - - - &reftitle.seealso; - - - dbx_connect - - - - - - diff --git a/reference/dbx/functions/dbx-compare.xml b/reference/dbx/functions/dbx-compare.xml deleted file mode 100644 index 29edd735b8..0000000000 --- a/reference/dbx/functions/dbx-compare.xml +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - dbx_compare - ソートするために二つのレコードを比較する - - - &reftitle.description; - - intdbx_compare - arrayrow_a - arrayrow_b - stringcolumn_key - intflagsDBX_CMP_ASC | DBX_CMP_NATIVE - - - dbx_compare は - dbx_sort のヘルパ関数で、 - 独自のソート関数を作成しやすくします。 - - - - &reftitle.parameters; - - - - row_a - - - 最初の行。 - - - - - row_b - - - 二番目の行。 - - - - - column_key - - - 比較するカラム。 - - - - - flags - - - flags によって比較の方向を指定します。 - - - - DBX_CMP_ASC - 昇順 - - - - - DBX_CMP_DESC - 降順 - - - - また、比較の型についても指定します。 - - - - DBX_CMP_NATIVE - 型の変換を行いません - - - - - DBX_CMP_TEXT - 文字列として比較します - - - - - DBX_CMP_NUMBER - 数値として比較します - - - - 方向からひとつ、型の定数からひとつを選び、ビット OR 演算子 (|) で - 組み合わせます。 - - - - - - - - &reftitle.returnvalues; - - row_a[$column_key] が - row_b[$column_key] に等しい場合に 0、 - 前者が後者より大きいかあるいは小さい場合にそれぞれ - 1 あるいは -1、 - もし DBX_CMP_DESC が設定されていればその逆を返します。 - - - - &reftitle.examples; - - - <function>dbx_compare</function> の例 - - -]]> - - - - - - &reftitle.seealso; - - - dbx_sort - - - - - - diff --git a/reference/dbx/functions/dbx-connect.xml b/reference/dbx/functions/dbx-connect.xml deleted file mode 100644 index 89dc498774..0000000000 --- a/reference/dbx/functions/dbx-connect.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - dbx_connect - 接続/データベースをオープンする - - - &reftitle.description; - - objectdbx_connect - mixedmodule - stringhost - stringdatabase - stringusername - stringpassword - intpersistent - - - データベースへの接続をオープンします。 - - - - &reftitle.parameters; - - - - module - - - module パラメータには文字列または定数を設定します。 - 定数の使用が推奨されます。指定可能な値を以下に示しますが、これは - 該当するモジュールが実際にロードされている場合のみ動作することに注意してください。 - - - - - - DBX_MYSQL あるいは "mysql" - - - - - DBX_ODBC あるいは "odbc" - - - - - DBX_PGSQL あるいは "pgsql" - - - - - DBX_MSSQL あるいは "mssql" - - - - - DBX_FBSQL あるいは "fbsql" - - - - - DBX_SYBASECT あるいは "sybase_ct" - - - - - DBX_OCI8 あるいは "oci8" - - - - - DBX_SQLITE あるいは "sqlite" - - - - - - - - host - - - SQL サーバーのホスト。 - - - - - database - - - データベース名。 - - - - - username - - - ユーザー名。 - - - - - password - - - パスワード。 - - - - - persistent - - - persistent パラメータに - DBX_PERSISTENT を設定すると、持続的接続が作成されます。 - - - - - - - hostdatabase、 - username および password - のパラメータを受け付けますが、抽象化されたモジュールの接続関数によっては - これらがすべて使われるわけではないこともあります。 - - - - &reftitle.returnvalues; - - dbx_connect は成功時にオブジェクト、エラー時に &false; - を返します。接続は確立したもののデータベースが選択できなかった場合には、 - 接続はクローズされて &false; を返します。 - - - 返される object は 3 つのプロパティを有します。 - - - - database - - - - 現在選択されているデータベースの名前。 - - - - - - handle - - - - 接続されたデータベースの有効なハンドルで、モジュール固有の関数に - (必要に応じて)使用されます。 - - -handle); // dbx_close($link) の方が良いかもしれません -?> -]]> - - - - - - - - module - - - - dbx の内部でのみ使用され、上で述べたモジュール番号を表します。 - - - - - - - - - &reftitle.examples; - - - <function>dbx_connect</function> example - - -]]> - - - - - - &reftitle.notes; - - - モジュール固有のドキュメントも参照ください。 - - - - - &reftitle.seealso; - - - dbx_close - - - - - - diff --git a/reference/dbx/functions/dbx-error.xml b/reference/dbx/functions/dbx-error.xml deleted file mode 100644 index 16f8c1ea6c..0000000000 --- a/reference/dbx/functions/dbx-error.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - dbx_error - - 使用するモジュールの最新の関数コールにおけるエラーメッセージを出力する - - - - &reftitle.description; - - stringdbx_error - objectlink_identifier - - - dbx_error は、直近のエラーメッセージを返します。 - - - - &reftitle.parameters; - - - - link_identifier - - - dbx_connect が返す DBX リンクオブジェクト。 - - - - - - - - &reftitle.returnvalues; - - 抽象化されたモジュール(例えば mysql - モジュール)の直近の関数コールからエラーメッセージを有する文字列を返します。 - 同じモジュールに複数の接続がある場合、 - 最後のエラーのみが取得されます。別のモジュールに接続がある場合、 - (link_identifier パラメータで)指定した - モジュールに関する直近のエラーのみが返されます。 - - - - &reftitle.examples; - - - <function>dbx_error</function> の例 - - -]]> - - - - - - &reftitle.notes; - - - モジュール固有のドキュメントも参照ください。 - - - Microsoft SQL Server に関するエラーメッセージは、実際には - mssql_get_last_message 関数の結果となります。 - - - Oracle (oci8) に関するエラーメッセージは、(まだ)実装されていません。 - - - - - - diff --git a/reference/dbx/functions/dbx-escape-string.xml b/reference/dbx/functions/dbx-escape-string.xml deleted file mode 100644 index d27f551551..0000000000 --- a/reference/dbx/functions/dbx-escape-string.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - dbx_escape_string - - SQL ステートメントで安全に使用できるように文字列をエスケープする - - - - &reftitle.description; - - stringdbx_escape_string - objectlink_identifier - stringtext - - - 指定した文字列をエスケープし、SQL ステートメントで安全に使用できるようにします。 - - - - &reftitle.parameters; - - - - link_identifier - - - dbx_connect が返す DBX リンクオブジェクト。 - - - - - text - - - エスケープする文字列。 - - - - - - - - &reftitle.returnvalues; - - テキストを返します。 - 必要なら(クォートやバックスラッシュなど)エスケープ処理を行います。 - エラー時には &null; を返します。 - - - - &reftitle.examples; - - - <function>dbx_escape_string</function> の例 - - -]]> - - - - - - &reftitle.seealso; - - - dbx_query - - - - - - diff --git a/reference/dbx/functions/dbx-fetch-row.xml b/reference/dbx/functions/dbx-fetch-row.xml deleted file mode 100644 index 33ca216e0b..0000000000 --- a/reference/dbx/functions/dbx-fetch-row.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - dbx_fetch_row - DBX_RESULT_UNBUFFERED フラグを指定した - クエリ結果から、行を取得する - - - &reftitle.description; - - mixeddbx_fetch_row - objectresult_identifier - - - dbx_fetch_row は、 - DBX_RESULT_UNBUFFERED - フラグを指定したクエリ結果から、行を取得します。 - - - クエリで DBX_RESULT_UNBUFFERED が指定されていない場合、 - dbx_fetch_row は失敗します。なぜなら、すでにすべての - 行は取得されて data プロパティに格納されているからです。 - - - 副作用として、dbx_fetch_row のコールのたびに - クエリ結果オブジェクトの rows プロパティの - 値が加算されます。 - - - - &reftitle.parameters; - - - - result_identifier - - - dbx_query が返す結果セット。 - - - - - - - - &reftitle.returnvalues; - - 成功した場合にオブジェクトを返します。このオブジェクトには、 - dbx_query の結果における data - プロパティの内容と同じ情報が含まれ、dbx_query - で設定した内容に応じてインデックスあるいはフィールド名でアクセスが可能です。 - - - 失敗した場合 (例: 行がもうない場合) - には 0 を返します。 - - - - &reftitle.examples; - - - 返り値を処理する方法 - -\n"; -while ($row = dbx_fetch_row($result)) { - echo "\n"; - foreach ($row as $field) { - echo "$field"; - } - echo "\n"; -} -echo "\n"; -?> -]]> - - - - - - &reftitle.seealso; - - - dbx_query - - - - - - diff --git a/reference/dbx/functions/dbx-query.xml b/reference/dbx/functions/dbx-query.xml deleted file mode 100644 index 3ad7839d94..0000000000 --- a/reference/dbx/functions/dbx-query.xml +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - dbx_query - クエリを送信し、(ある場合には)結果を全て取得する - - - &reftitle.description; - - mixeddbx_query - objectlink_identifier - stringsql_statement - intflags - - - クエリを送信し、すべての結果を取得します。 - - - - &reftitle.parameters; - - - - link_identifier - - - dbx_connect が返す DBX リンクオブジェクト。 - - - - - sql_statement - - - SQL 文。 - - - クエリ内のデータは 適切にエスケープ - しておかなければなりません。 - - - - - flags - - - flags パラメータは、返される情報の量を制御する - ために使用されます。以下の定数の組み合わせを、論理 OR 演算子 - (|) で連結したものとなります。DBX_COLNAMES_* フラグは &php.ini; - の dbx.colnames_case 設定を上書きします。 - - - - DBX_RESULT_INDEX - - - - これは常に設定され、結果に二次元配列の - data プロパティを含めます。たとえば - data[2][3] では 2 が行番号 - (レコード番号)を表し、3 がカラム番号 - (フィールド番号)を表します。最初の行やカラムの番号は 0 です。 - - - DBX_RESULT_ASSOC が指定された場合、返される - オブジェクトには DBX_RESULT_INFO に関連する - 情報が(指定していなくても)含まれます。 - - - - - - DBX_RESULT_INFO - - - - カラムに関する情報、つまりフィールド名とフィールドの型を含めます。 - - - - - - DBX_RESULT_ASSOC - - - - 返されるオブジェクトの data プロパティの - キーとして、関連するカラム名の値がアクセスされます。 - - - 関連付けられた結果は数値添字となっているので、 - data[0][0] を変更すると - data[0]['最初のカラムのフィールド名'] も同様に - 変更されます。 - - - - - - DBX_RESULT_UNBUFFERED - - - - このフラグは data プロパティを作成せず、 - rows プロパティの初期値を 0 に設定します。 - 結果セットが大きくなる場合にこのフラグを使用し、 - dbx_fetch_row を使用して結果を 1 行ごとに - 取得してください。 - - - dbx_fetch_row 関数は、このクエリで設定した - フラグの内容を反映じた行を返します。また、この関数がコールされる - たびに rows が更新されます。 - - - - - - DBX_COLNAMES_UNCHANGED - - - - 返されるカラム名の大文字小文字を変更しません。 - - - - - - DBX_COLNAMES_UPPERCASE - - - - 返されるカラム名を大文字に変更します。 - - - - - - DBX_COLNAMES_LOWERCASE - - - - 返されるカラム名を小文字に変更します。 - - - - - flags パラメータの実際の値にかかわらず、常に - DBX_RESULT_INDEX が有効となることに注意しましょう。 - つまり、結果的に使用可能なのは以下の組み合わせだけであるということです。 - - - - DBX_RESULT_INDEX - - - - - DBX_RESULT_INDEX | - DBX_RESULT_INFO - - - - - DBX_RESULT_INDEX | - DBX_RESULT_INFO | - DBX_RESULT_ASSOC - - flags を指定しなかった場合、これがデフォルトです。 - - - - - - - - - - - &reftitle.returnvalues; - - dbx_query は、成功した場合に オブジェクトあるいは - 1、失敗した場合に 0 を返します。 - 結果オブジェクトが返されるのは、sql_statement - で指定されたクエリが結果セットを生成する場合(例: SELECT クエリ。結果が - 0 件の場合も含む)のみです。 - - - 返されるオブジェクトは、flags - の設定により 4 つまたは 5 つのプロパティを保持します。 - - - - handle - - - - 接続したデータベースの有効なハンドルで、モジュール専用関数で - (必要ならば)使用されます。 - - -handle, 0); -?> -]]> - - - - - - - - cols および rows - - - - これらは、それぞれカラム数(フィールド数)および行数(レコード数) - を表します。 - - -rows; // レコード数 -echo $result->cols; // フィールド数 -?> -]]> - - - - - - - - info (オプション) - - - - flags パラメータに - DBX_RESULT_INFO あるいは - DBX_RESULT_ASSOC が指定されている場合のみ - 返されます。2 次元の配列で、2 つのキー(name - および type)を持ち、カラムの情報を取得するために - 使用します。 - - - 各フィールドの名前と型を一覧表示する - -cols; $i++ ) { - echo $result->info['name'][$i] . "\n"; - echo $result->info['type'][$i] . "\n"; -} -?> -]]> - - - - - - - data - - - - このプロパティには結果のデータが含まれます。flags - の設定によってはこのデータはカラム名と関連付けられているでしょう。 - DBX_RESULT_ASSOC が設定されていた場合、 - $result->data[2]["field_name"] のように使用可能です。 - - - data プロパティの内容を HTML テーブルで表示する - -\n"; -foreach ($result->data as $row) { - echo "\n"; - foreach ($row as $field) { - echo "$field"; - } - echo "\n"; -} -echo "\n"; -?> -]]> - - - - UNBUFFERED クエリの処理法 - -\n"; -while ($row = dbx_fetch_row($result)) { - echo "\n"; - foreach ($row as $field) { - echo "$field"; - } - echo "\n"; -} -echo "\n"; - -?> -]]> - - - - - - - - - - &reftitle.examples; - - - 返り値を処理する方法 - - -]]> - - - - - - &reftitle.notes; - - - モジュール固有のドキュメントも参照ください。 - - - Oracle データベースでは、クエリ結果のカラム名は小文字で返されます。 - - - - - &reftitle.seealso; - - - dbx_escape_string - dbx_fetch_row - dbx_connect - - - - - - diff --git a/reference/dbx/functions/dbx-sort.xml b/reference/dbx/functions/dbx-sort.xml deleted file mode 100644 index a0ff805b8d..0000000000 --- a/reference/dbx/functions/dbx-sort.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - dbx_sort - - カスタマイズされたソート関数により、dbx_query から結果をソートする - - - - &reftitle.description; - - booldbx_sort - objectresult - stringuser_compare_function - - - dbx_query のコール結果を、 - 独自のソート関数で並べ替えます。 - - - - &reftitle.parameters; - - - - result - - - dbx_query が返す結果セット。 - - - - - user_compare_function - - - ユーザー定義の比較関数。二つの引数を受け取り、 - 第一引数が第二引数より小さい場合に負の数、等しい場合にゼロ、 - 大きい場合に正の数を返すものでなければなりません。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - &reftitle.examples; - - - <function>dbx_sort</function> の例 - - -]]> - - - - - - &reftitle.notes; - - - 可能ならば、dbx_sort を使用するよりも - SQLORDER BY - 句を使用することを推奨します。 - - - - - &reftitle.seealso; - - - dbx_compare - - - - - - diff --git a/reference/dbx/ini.xml b/reference/dbx/ini.xml deleted file mode 100644 index 5d7c9a1ce1..0000000000 --- a/reference/dbx/ini.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - -
- &reftitle.runtime; - &extension.runtime; - - - DBX 設定オプション - - - - &Name; - &Default; - &Changeable; - &Changelog; - - - - - dbx.colnames_case - "unchanged" - PHP_INI_SYSTEM - PHP 5.1.0 で削除されました。 - - - -
- &ini.php.constants; -
- -&ini.descriptions.title; - - - - - - dbx.colnames_case - string - - - - カラム名は、変更されず("unchanged"の場合)に返すか、大文字 - ("uppercase"の場合)または小文字("lowercase"の場合)に変換すること - ができます。このディレクティブは、dbx_query - のフラグで上書きすることが可能です。 - - - - - - -
- - - diff --git a/reference/dbx/reference.xml b/reference/dbx/reference.xml deleted file mode 100644 index 3b95d652eb..0000000000 --- a/reference/dbx/reference.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - dbx &Functions; - - &reference.dbx.entities.functions; - - - - diff --git a/reference/dbx/setup.xml b/reference/dbx/setup.xml deleted file mode 100644 index 58b6855e26..0000000000 --- a/reference/dbx/setup.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - &reftitle.setup; - - -
- &reftitle.required; - - dbx モジュールでデータベースを使用可能とするには、そのモジュールが - PHP にリンクされるかロードされる必要があり、そのデータベースを - dbx モジュールがサポートされている必要があります。現在 - 以下のデータベースがサポートされていますが、他のデータベースも - 追加される予定です。 - - - - FrontBase - - - - - Microsoft SQL Server - - - - - MySQL - - - - - ODBC - - - - - PostgreSQL - - - - - Sybase-CT - - - - - Oracle (oci8) - - - - - SQLite - - - - - - dbx にデータベースのサポートを追加するためのドキュメントは、 - &url.dbx.docs; にあります。 - -
- - - - &reference.dbx.configure; - - - - &reference.dbx.ini; - - - -
- &reftitle.resources; - - dbx モジュールでは2種類のリソース型があります。最初のリソースは、 - データベース接続用のリンク object で、2 番目はクエリ結果を - 結果 object です。 - -
- - -
- - - diff --git a/reference/dio/book.xml b/reference/dio/book.xml index 61ad752f56..8c873a6290 100644 --- a/reference/dio/book.xml +++ b/reference/dio/book.xml @@ -1,9 +1,10 @@ - + + ダイレクト IO @@ -18,11 +19,6 @@ その他の場合は、標準の ファイルシステム関数の方が適切です。 - - - &pecl.moved-ver;5.1.0. - - diff --git a/reference/dio/configure.xml b/reference/dio/configure.xml index 645b2040ff..92eb92d554 100644 --- a/reference/dio/configure.xml +++ b/reference/dio/configure.xml @@ -1,6 +1,6 @@ - +
&reftitle.install; @@ -10,9 +10,6 @@ &pecl.info; &url.pecl.package;dio. - - &pecl.windows.download; -
- + &reftitle.constants; &extension.constants; @@ -8,7 +8,7 @@ F_DUPFD - (integer) + (int) @@ -17,7 +17,7 @@ F_GETFD - (integer) + (int) @@ -26,7 +26,7 @@ F_GETFL - (integer) + (int) @@ -35,7 +35,7 @@ F_GETLK - (integer) + (int) @@ -44,7 +44,7 @@ F_GETOWN - (integer) + (int) @@ -53,7 +53,7 @@ F_RDLCK - (integer) + (int) @@ -62,7 +62,7 @@ F_SETFL - (integer) + (int) @@ -71,7 +71,7 @@ F_SETLK - (integer) + (int) @@ -80,7 +80,7 @@ F_SETLKW - (integer) + (int) @@ -89,7 +89,7 @@ F_SETOWN - (integer) + (int) @@ -98,7 +98,7 @@ F_UNLCK - (integer) + (int) @@ -107,7 +107,7 @@ F_WRLCK - (integer) + (int) @@ -116,7 +116,7 @@ O_APPEND - (integer) + (int) @@ -125,7 +125,7 @@ O_ASYNC - (integer) + (int) @@ -134,7 +134,7 @@ O_CREAT - (integer) + (int) @@ -143,7 +143,7 @@ O_EXCL - (integer) + (int) @@ -152,7 +152,7 @@ O_NDELAY - (integer) + (int) @@ -161,7 +161,7 @@ O_NOCTTY - (integer) + (int) @@ -170,7 +170,7 @@ O_NONBLOCK - (integer) + (int) @@ -179,7 +179,7 @@ O_RDONLY - (integer) + (int) @@ -188,7 +188,7 @@ O_RDWR - (integer) + (int) @@ -197,7 +197,7 @@ O_SYNC - (integer) + (int) @@ -206,7 +206,7 @@ O_TRUNC - (integer) + (int) @@ -215,7 +215,7 @@ O_WRONLY - (integer) + (int) @@ -224,7 +224,7 @@ S_IRGRP - (integer) + (int) @@ -233,7 +233,7 @@ S_IROTH - (integer) + (int) @@ -242,7 +242,7 @@ S_IRUSR - (integer) + (int) @@ -251,7 +251,7 @@ S_IRWXG - (integer) + (int) @@ -260,7 +260,7 @@ S_IRWXO - (integer) + (int) @@ -269,7 +269,7 @@ S_IRWXU - (integer) + (int) @@ -278,7 +278,7 @@ S_IWGRP - (integer) + (int) @@ -287,7 +287,7 @@ S_IWOTH - (integer) + (int) @@ -296,7 +296,7 @@ S_IWUSR - (integer) + (int) @@ -305,7 +305,7 @@ S_IXGRP - (integer) + (int) @@ -314,7 +314,7 @@ S_IXOTH - (integer) + (int) @@ -323,7 +323,7 @@ S_IXUSR - (integer) + (int) diff --git a/reference/dio/functions/dio-open.xml b/reference/dio/functions/dio-open.xml index 3dc159bf95..d35043f1a5 100644 --- a/reference/dio/functions/dio-open.xml +++ b/reference/dio/functions/dio-open.xml @@ -1,6 +1,6 @@ - + diff --git a/reference/dio/functions/dio-stat.xml b/reference/dio/functions/dio-stat.xml index b5bc9c69dd..03a84bfb74 100644 --- a/reference/dio/functions/dio-stat.xml +++ b/reference/dio/functions/dio-stat.xml @@ -1,6 +1,6 @@ - + diff --git a/reference/dio/functions/dio-tcsetattr.xml b/reference/dio/functions/dio-tcsetattr.xml index 46e19fda24..659b8f0225 100644 --- a/reference/dio/functions/dio-tcsetattr.xml +++ b/reference/dio/functions/dio-tcsetattr.xml @@ -1,6 +1,6 @@ - + @@ -75,10 +75,9 @@ &reftitle.examples; - - - シリアルポートのボーレートを設定する - + + シリアルポートのボーレートを設定する + 9600, - 'bits' => 8, - 'stop' => 1, - 'parity' => 0 + 'baud' => 9600, + 'bits' => 8, + 'stop' => 1, + 'parity' => 0 )); -while (1) { - - $data = dio_read($fd, 256); - - if ($data) { - echo $data; - } +while (true) { + $data = dio_read($fd, 256); + if ($data !== null && $date !== '') { + echo $data; + } } ?> ]]> - - - + + diff --git a/reference/dio/setup.xml b/reference/dio/setup.xml index dc9e3fdbe3..bee73f3266 100644 --- a/reference/dio/setup.xml +++ b/reference/dio/setup.xml @@ -1,29 +1,15 @@ - + &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- - &reference.dio.configure; - -
- &reftitle.runtime; - &no.config; -
- -
&reftitle.resources; diff --git a/reference/dir/book.xml b/reference/dir/book.xml index ff0ee475b7..9c83a04801 100644 --- a/reference/dir/book.xml +++ b/reference/dir/book.xml @@ -1,6 +1,6 @@ - + @@ -15,8 +15,7 @@ }}} --> - - &reference.dir.setup; + &reference.dir.constants; &reference.dir.directory; &reference.dir.reference; diff --git a/reference/dir/constants.xml b/reference/dir/constants.xml index d016d1410b..b0a585f7f5 100644 --- a/reference/dir/constants.xml +++ b/reference/dir/constants.xml @@ -1,6 +1,6 @@ - + &reftitle.constants; @@ -30,33 +30,33 @@ SCANDIR_SORT_ASCENDING - (integer) + (int) - PHP 5.4.0 以降で使用可能です。 + SCANDIR_SORT_DESCENDING - (integer) + (int) - PHP 5.4.0 以降で使用可能です。 + SCANDIR_SORT_NONE - (integer) + (int) - PHP 5.4.0 以降で使用可能です。 + diff --git a/reference/dir/directory.xml b/reference/dir/directory.xml index a1073eccb5..0a70ef03a0 100644 --- a/reference/dir/directory.xml +++ b/reference/dir/directory.xml @@ -1,8 +1,7 @@ - - - + + Directory クラス Directory @@ -24,31 +23,29 @@ &reftitle.classsynopsis; - - Directory + + + Directory + - - - - Directory - - - - &Properties; public + readonly string path public + readonly resource handle - + &Methods; - + + + @@ -77,14 +74,35 @@
+ +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.1.0 + + The path and handle properties are now readonly. + + + + + +
&reference.dir.entities.directory; - - + - - + Directory::close @@ -10,14 +9,34 @@ &reftitle.description; - + public voidDirectory::close - resourcedir_handle + - - closedir と同じですが、 - dir_handle のデフォルトが $this->handle になります。 - + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + 引数を取らなくなりました。 + これより前のバージョンでは、 + ディレクトリハンドルを引数に渡すことができました。 + + + + + diff --git a/reference/dir/directory/read.xml b/reference/dir/directory/read.xml index 143b9351f1..d3aba77fe3 100644 --- a/reference/dir/directory/read.xml +++ b/reference/dir/directory/read.xml @@ -1,7 +1,6 @@ - - + Directory::read @@ -10,14 +9,34 @@ &reftitle.description; - - public stringDirectory::read - resourcedir_handle + + public stringfalseDirectory::read + - - readdir と同じですが、 - dir_handle のデフォルトが $this->handle になります。 - + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + 引数を取らなくなりました。 + これより前のバージョンでは、 + ディレクトリハンドルを引数に渡すことができました。 + + + + + diff --git a/reference/dir/directory/rewind.xml b/reference/dir/directory/rewind.xml index c2622a7370..8bd7933fb0 100644 --- a/reference/dir/directory/rewind.xml +++ b/reference/dir/directory/rewind.xml @@ -1,6 +1,6 @@ - + @@ -10,14 +10,34 @@ &reftitle.description; - + public voidDirectory::rewind - resourcedir_handle + - - rewinddir と同じですが、 - dir_handle のデフォルトが $this->handle になります。 - + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + 引数を取らなくなりました。 + これより前のバージョンでは、 + ディレクトリハンドルを引数に渡すことができました。 + + + + + diff --git a/reference/dir/functions/chdir.xml b/reference/dir/functions/chdir.xml index 55a345c34b..be05b58222 100644 --- a/reference/dir/functions/chdir.xml +++ b/reference/dir/functions/chdir.xml @@ -1,7 +1,7 @@ - + @@ -84,7 +84,6 @@ echo getcwd() . "\n"; &reftitle.notes; - ¬e.sm.uidcheck.dir; PHP インタプリタが ZTS (Zend Thread Safety) を有効にしてビルドされている場合、 diff --git a/reference/dir/functions/chroot.xml b/reference/dir/functions/chroot.xml index 31cf96cdb3..40b84eff10 100644 --- a/reference/dir/functions/chroot.xml +++ b/reference/dir/functions/chroot.xml @@ -1,6 +1,6 @@ - + @@ -22,6 +22,11 @@ この関数が使えるのは GNU および BSD システムのみで、 かつ CLI, CGI, Embed SAPI を使用している場合のみです。 + + この関数をコールしても、マジック定数 + __DIR__ と + __FILE__ の値は変更されません。 + diff --git a/reference/dir/functions/closedir.xml b/reference/dir/functions/closedir.xml index aacf8c8388..5d74100445 100644 --- a/reference/dir/functions/closedir.xml +++ b/reference/dir/functions/closedir.xml @@ -1,73 +1,99 @@ - - - + closedir ディレクトリハンドルをクローズする - &reftitle.description; voidclosedir - resourcedir_handle + resourcenulldir_handle&null; - + dir_handle - で指定したディレクトリのストリームをクローズします。このストリームは、 - opendirにより事前にオープンされていなければ - なりません。 - + で指定したディレクトリのストリームをクローズします。 + &reftitle.parameters; - - - - dir_handle - - - opendir が事前にオープンした - ディレクトリハンドルリソース。 - ディレクトリハンドルを指定しなかった場合は、 - opendir が最後にオープンしたものを使用します。 - - - - - + + + dir_handle + + + opendir が事前にオープンした + ディレクトリハンドルを示す resource。 + dir_handle が &null; の場合は、 + opendir が最後にオープンしたものを使用します。 + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.5.0 + + dir_handle + に &null; を指定することは、推奨されなくなりました。 + 代わりに、最後にオープンしたディレクトリハンドルを明示的に指定すべきです。 + + + + 8.0.0 + + dir_handle は、nullable になりました。 + + + + + &reftitle.examples; - - - <function>closedir</function> の例 - - + 完全なサンプルコードは、 + opendir のドキュメントを参照ください。 + + -// 既知のディレクトリをオープンし、変数にディレクトリを読み込んで閉じる -if (is_dir($dir)) { - if ($dh = opendir($dir)) { - $directory = readdir($dh); - closedir($dh); - } -} -?> -]]> - - - + + &reftitle.seealso; + + opendir + readdir + rewinddir + dir + is_dir + glob + scandir + - - + @@ -12,9 +12,9 @@ &reftitle.description; - Directorydir + Directoryfalsedir stringdirectory - resourcecontext + resourcenullcontext&null; @@ -37,9 +37,7 @@ context - - ¬e.context-support; - + ¬e.context-support; @@ -49,19 +47,40 @@ &reftitle.returnvalues; Directory のインスタンスを返します。 - パラメータが間違っている場合は &null;、それ以外のエラーの場合は - &false; を返します。 + エラーの場合は &false; を返します。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + context は、nullable になりました。 + + + + + + + &reftitle.examples; <function>dir</function> の例 - 以下の例で、Directory::read の返り値をどのように調べているかに - 注目してください。返り値が &false; と一致することを、明示的に + 以下の例で、Directory::read の戻り値をどのように調べているかに + 注目してください。戻り値が &false; と一致することを、明示的に (値が等しく、かつ型も等しい - 詳細は 比較演算子 を参照ください)調べています。なぜなら、そうしないと &false; と評価されてしまうディレクトリエントリがあった場合にループが @@ -105,7 +124,6 @@ cli - - + @@ -11,7 +11,7 @@ &reftitle.description; - stringgetcwd + stringfalsegetcwd @@ -19,6 +19,11 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; @@ -33,18 +38,6 @@ - - - - PHP インタプリタが ZTS (Zend Thread Safety) を有効にしてビルドされていると、 - getcwd 関数が返した現在のカレントディレクトリは、 - オペレーティングシステムが返すそれとは異なる可能性があります。 - この振る舞いは、カレントディレクトリに依存した - (FFI を通じて呼び出される) 外部ライブラリが影響を受けます。 - - - - &reftitle.examples; @@ -76,6 +69,19 @@ echo getcwd() . "\n"; + + &reftitle.notes; + + + PHP インタプリタが ZTS (Zend Thread Safety) を有効にしてビルドされていると、 + getcwd 関数が返した現在のカレントディレクトリは、 + オペレーティングシステムが返すそれとは異なる可能性があります。 + この振る舞いは、カレントディレクトリに依存した + (FFI を通じて呼び出される) 外部ライブラリが影響を受けます。 + + + + &reftitle.seealso; diff --git a/reference/dir/functions/opendir.xml b/reference/dir/functions/opendir.xml index def66473c1..3c7ce6fdf1 100644 --- a/reference/dir/functions/opendir.xml +++ b/reference/dir/functions/opendir.xml @@ -1,8 +1,6 @@ - - - + opendir @@ -12,109 +10,148 @@ &reftitle.description; - resourceopendir - stringpath - resourcecontext + resourcefalseopendir + stringdirectory + resourcenullcontext&null; - + ディレクトリハンドルをオープンします。このハンドルは、この後 closedir, readdir, rewinddir 関数コールで使用されます。 - + &reftitle.parameters; - - - - path - - - オープンするディレクトリのパス。 - - - - - context - - - context パラメータの詳細については - マニュアルのストリーム - を参照ください。 - - - - - + + + directory + + + オープンするディレクトリのパス。 + + + + + context + + + context パラメータの詳細については + マニュアルのストリーム + を参照ください。 + + + + &reftitle.returnvalues; - - 成功した場合にディレクトリハンドルの resource 、 + + 成功した場合にディレクトリハンドルを返します。 &return.falseforfailure; - + &reftitle.errors; &fs.emits.warning.on.failure; - - path が有効なディレクトリでない場合、 + + directory が有効なディレクトリでない場合、 権限の制限によりディレクトリがオープンできない場合、 またはファイルシステムのエラー時に起こりえます。 - - + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + context は、nullable になりました。 + + + + + + &reftitle.examples; - - - <function>opendir</function> の例 - + + + ディレクトリ中の全てのエントリを表示します。 + ただし、特別な <literal>.</literal> と + <literal>..</literal> ディレクトリはスキップします。 + + + ファイル名やディレクトリ名は、 + PHP が &false; と見なす文字列 + (例: "0" という名前のディレクトリ) + の可能性があり、かつ readdir + は全てのディレクトリエントリを読み取ったあとに &false; を返します。 + そのため、PHP が &false; + とみなすディレクトリ名と、 + 全てのディレクトリエントリを読み取ったことを適切に区別するためには、 + 比較演算子 === + を使う必要があります。 + + ]]> - - &example.outputs.similar; - + + &example.outputs.similar; + - - - + + &reftitle.seealso; - - - is_dir - readdir - dir - - + + readdir + rewinddir + closedir + dir + is_dir + glob + scandir + - - - - + readdir @@ -12,118 +10,91 @@ &reftitle.description; - stringreaddir - resourcedir_handle + stringfalsereaddir + resourcenulldir_handle&null; - + ディレクトリから次のエントリの名前を返します。 エントリ名はファイルシステム上に格納されている順番で返されます。 - + &reftitle.parameters; - - - - dir_handle - - - opendir が事前にオープンした - ディレクトリハンドルリソース。 - ディレクトリハンドルを指定しなかった場合は、 - opendir が最後にオープンしたものを使用します。 - - - - - + + + dir_handle + + + opendir が事前にオープンした + ディレクトリハンドルを示す resource。 + dir_handle が &null; の場合は、 + opendir が最後にオープンしたものを使用します。 + + + + &reftitle.returnvalues; - + 成功した場合にエントリ名、&return.falseforfailure;。 - + &return.falseproblem; + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.5.0 + + dir_handle + に &null; を指定することは、推奨されなくなりました。 + 代わりに、最後にオープンしたディレクトリハンドルを明示的に指定すべきです。 + + + + 8.0.0 + + dir_handle は、nullable になりました + + + + + + + &reftitle.examples; - - - ディレクトリ内の全てのエントリのリストを得る - - 以下の例で、readdir の返り値をどのように調べているかに - 注目してください。返り値が &false; と一致することを、明示的に - (値が等しく、かつ型も等しい - 詳細は - 比較演算子 を参照ください)調べています。なぜなら、そうしないと - &false; と評価されてしまうディレクトリエントリ - (例: "0" という名前のディレクトリ)があった場合にループが - とまってしまうからです。 - - - -]]> - - - - - - - カレントディレクトリの全てのエントリを一覧する。ただし <literal>.</literal> - および <literal>..</literal> は取り除く - - - -]]> - - - + + 完全なサンプルコードは、 + opendir のドキュメントを参照ください。 + &reftitle.seealso; - - - is_dir - glob - opendir - scandir - - + + opendir + rewinddir + closedir + dir + is_dir + glob + scandir + - - - + rewinddir @@ -13,42 +11,89 @@ &reftitle.description; voidrewinddir - resourcedir_handle + resourcenulldir_handle&null; - + dir_handle で指定されたディレクトリの ストリームをディレクトリの先頭にリセットします。 - + &reftitle.parameters; - - - - dir_handle - - - opendir が事前にオープンした - ディレクトリハンドルリソース。 - ディレクトリハンドルを指定しなかった場合は、 - opendir が最後にオープンしたものを使用します。 - - - - - + + + dir_handle + + + opendir が事前にオープンした + ディレクトリハンドルを示す resource。 + dir_handle が &null; の場合は、 + opendir が最後にオープンしたものを使用します。 + + + + &reftitle.returnvalues; - - &return.nullorfalse; - + + &return.void; + - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.5.0 + + dir_handle + に &null; を指定することは、推奨されなくなりました。 + 代わりに、最後にオープンしたディレクトリハンドルを明示的に指定すべきです。 + + + + 8.0.0 + + dir_handle は、nullable になりました。 + + + + + + + + + &reftitle.examples; + + 完全なサンプルコードは、 + opendir のドキュメントを参照ください。 + + + + &reftitle.seealso; + + opendir + readdir + closedir + dir + is_dir + glob + scandir + + +
- - + + scandir @@ -13,10 +13,10 @@ &reftitle.description; - arrayscandir + arrayfalsescandir stringdirectory - intsorting_orderSCANDIR_SORT_ASCENDING - resourcecontext + intsorting_orderSCANDIR_SORT_ASCENDING + resourcenullcontext&null; directory 内のファイルおよびディレクトリを @@ -76,32 +76,27 @@ &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.4.0 - - sorting_order 定数 - が追加されました。これまでのバージョンでは、非ゼロの値を指定するとすべて降順となっていました。 - つまり、PHP のバージョンにかかわらず、次のようになります。 - 0 を指定すれば昇順、1 を指定すれば降順。 - SCANDIR_SORT_NONE に対応する設定は、PHP 5.4.0 より前のバージョンにはありません。 - - - - - - + + + + + &Version; + &Description; + + + + + 8.0.0 + + context は、nullable になりました。 + + + + + + &reftitle.examples; @@ -112,7 +107,7 @@ - - - - - - &reftitle.setup; - - -
- &reftitle.required; - &no.requirement; -
- - - -
- &reftitle.install; - &no.install; -
- - - -
- &reftitle.runtime; - &no.config; -
- - - -
- &reftitle.resources; - &no.resource; -
- - -
- - - diff --git a/reference/dom/book.xml b/reference/dom/book.xml index 254ff2367b..2febc50375 100644 --- a/reference/dom/book.xml +++ b/reference/dom/book.xml @@ -1,9 +1,9 @@ - + - + Document Object Model DOM @@ -12,11 +12,11 @@ &reftitle.intro; DOM 拡張モジュールを使用すると、DOM API - を使用した XML ドキュメントの操作を PHP で行えます。 + を使用した XML や HTML ドキュメントの操作を PHP で行えます。 &dom.note.utf8; - + &reference.dom.setup; &reference.dom.constants; &reference.dom.examples; @@ -24,6 +24,7 @@ &reference.dom.domattr; &reference.dom.domcdatasection; &reference.dom.domcharacterdata; + &reference.dom.domchildnode; &reference.dom.domcomment; &reference.dom.domdocument; &reference.dom.domdocumentfragment; @@ -34,18 +35,49 @@ &reference.dom.domexception; &reference.dom.domimplementation; &reference.dom.domnamednodemap; + &reference.dom.domnamespacenode; &reference.dom.domnode; &reference.dom.domnodelist; &reference.dom.domnotation; + &reference.dom.domparentnode; &reference.dom.domprocessinginstruction; &reference.dom.domtext; &reference.dom.domxpath; - + + &reference.dom.dom.dom-adjacentposition; + &reference.dom.dom.dom-attr; + &reference.dom.dom.dom-cdatasection; + &reference.dom.dom.dom-characterdata; + &reference.dom.dom.dom-childnode; + &reference.dom.dom.dom-comment; + &reference.dom.dom.dom-document; + &reference.dom.dom.dom-documentfragment; + &reference.dom.dom.dom-documenttype; + &reference.dom.dom.dom-dtdnamednodemap; + &reference.dom.dom.dom-element; + &reference.dom.dom.dom-entity; + &reference.dom.dom.dom-entityreference; + &reference.dom.dom.dom-htmlcollection; + &reference.dom.dom.dom-htmldocument; + &reference.dom.dom.dom-htmlelement; + &reference.dom.dom.dom-implementation; + &reference.dom.dom.dom-namednodemap; + &reference.dom.dom.dom-namespaceinfo; + &reference.dom.dom.dom-node; + &reference.dom.dom.dom-nodelist; + &reference.dom.dom.dom-notation; + &reference.dom.dom.dom-parentnode; + &reference.dom.dom.dom-processinginstruction; + &reference.dom.dom.dom-text; + &reference.dom.dom.dom-tokenlist; + &reference.dom.dom.dom-xmldocument; + &reference.dom.dom.dom-xpath; + @@ -92,7 +124,7 @@ DOM &Functions; &reference.dom.entities.functions; - + - + &reftitle.constants; &extension.constants; @@ -9,256 +9,301 @@ - 定数 + &Constants; - 説明 + &Description; XML_ELEMENT_NODE - (integer) + (int) 1 - ノードは DOMElement です。 + ノードは DOMElement / Dom\Element です。 - XML_ATTRIBUTE_NODE - (integer) + XML_ATTRIBUTE_NODE + (int) 2 - ノードは DOMAttr です。 + ノードは DOMAttr / Dom\Attr です。 XML_TEXT_NODE - (integer) + (int) 3 - ノードは DOMText です。 + ノードは DOMText / Dom\Text です。 XML_CDATA_SECTION_NODE - (integer) + (int) 4 - ノードは DOMCharacterData です。 + ノードは DOMCharacterData / Dom\CharacterData です。 XML_ENTITY_REF_NODE - (integer) + (int) 5 - ノードは DOMEntityReference です。 + ノードは DOMEntityReference / Dom\EntityReference です。 XML_ENTITY_NODE - (integer) + (int) 6 - ノードは DOMEntity です。 + ノードは DOMEntity / Dom\Entity です。 XML_PI_NODE - (integer) + (int) 7 - ノードは DOMProcessingInstruction です。 + ノードは DOMProcessingInstruction / Dom\ProcessingInstruction です。 XML_COMMENT_NODE - (integer) + (int) 8 - ノードは DOMComment です。 + ノードは DOMComment / Dom\Commentです。 XML_DOCUMENT_NODE - (integer) + (int) 9 - ノードは DOMDocument です。 + ノードは DOMDocument / Dom\Document です。 XML_DOCUMENT_TYPE_NODE - (integer) + (int) 10 - ノードは DOMDocumentType です。 + ノードは DOMDocumentType / Dom\DocumentType です。 XML_DOCUMENT_FRAG_NODE - (integer) + (int) 11 - ノードは DOMDocumentFragment です。 + ノードは DOMDocumentFragment / Dom\DocumentFragment です。 XML_NOTATION_NODE - (integer) + (int) 12 - ノードは DOMNotation です。 + ノードは DOMNotation / Dom\Notation です。 XML_HTML_DOCUMENT_NODE - (integer) + (int) 13 - + XML_DTD_NODE - (integer) + (int) 14 - + XML_ELEMENT_DECL_NODE - (integer) + (int) 15 - + XML_ATTRIBUTE_DECL_NODE - (integer) + (int) 16 - + XML_ENTITY_DECL_NODE - (integer) + (int) 17 - + XML_NAMESPACE_DECL_NODE - (integer) + (int) 18 - + XML_ATTRIBUTE_CDATA - (integer) + (int) 1 - + XML_ATTRIBUTE_ID - (integer) + (int) 2 - + XML_ATTRIBUTE_IDREF - (integer) + (int) 3 - + XML_ATTRIBUTE_IDREFS - (integer) + (int) 4 - + XML_ATTRIBUTE_ENTITY - (integer) + (int) 5 - + XML_ATTRIBUTE_NMTOKEN - (integer) + (int) 7 - + XML_ATTRIBUTE_NMTOKENS - (integer) + (int) 8 - + XML_ATTRIBUTE_ENUMERATION - (integer) + (int) 9 - + XML_ATTRIBUTE_NOTATION - (integer) + (int) 10 + + + + + XML_LOCAL_NAMESPACE + (int) + + 名前空間を宣言したノード + + + + + + HTML 定数 + + + + &Constants; + &Description; + + + + + + Dom\HTML_NO_DEFAULT_NS + (int) + + + + Dom\HTMLDocument を使ってパースする際に、 + 要素の名前空間を設定する振る舞いを無効にします。 + これは、DOMDocument + と後方互換性を取るために存在しています。 + + + + DOM メソッドによっては、HTML + 名前空間が設定されているものがあります。 + このパーサーオプションを使うと、 + これらのメソッドの振る舞いに影響します。 + + +
- DOMException 定数 + <classname>DOMException</classname> / <classname>Dom\Exception</classname> の定数 - 定数 + &Constants; - 説明 + &Description; DOM_PHP_ERR - (integer) + (int) 0 DOM の仕様にないエラーコードです。PHP のエラーを意味します。 + 今後使用されないため、非推奨となりました。 + PHP8.4.0 より前では、メモリ不足を示すために一貫性がなく使用されてきました。 - DOM_INDEX_SIZE_ERR - (integer) + DOM_INDEX_SIZE_ERR / Dom\INDEX_SIZE_ERR + (int) 1 @@ -267,27 +312,26 @@ - DOMSTRING_SIZE_ERR - (integer) + DOMSTRING_SIZE_ERR / / Dom\STRING_SIZE_ERR + (int) 2 - 指定したテキストは - DOMString 内に収まりません。 + 指定したテキストは、文字列内に収まりません。 - DOM_HIERARCHY_REQUEST_ERR - (integer) + DOM_HIERARCHY_REQUEST_ERR / Dom\HIERARCHY_REQUEST_ERR + (int) 3 そのノードが所属できない場所に挿入されました。 - DOM_WRONG_DOCUMENT_ERR - (integer) + DOM_WRONG_DOCUMENT_ERR / Dom\WRONG_DOCUMENT_ERR + (int) 4 @@ -296,8 +340,8 @@ - DOM_INVALID_CHARACTER_ERR - (integer) + DOM_INVALID_CHARACTER_ERR / Dom\INVALID_CHARACTER_ERR + (int) 5 @@ -306,8 +350,8 @@ - DOM_NO_DATA_ALLOWED_ERR - (integer) + DOM_NO_DATA_ALLOWED_ERR / Dom\NO_DATA_ALLOWED_ERR + (int) 6 @@ -316,8 +360,8 @@ - DOM_NO_MODIFICATION_ALLOWED_ERR - (integer) + DOM_NO_MODIFICATION_ALLOWED_ERR / Dom\NO_MODIFICATION_ALLOWED_ERR + (int) 7 @@ -326,8 +370,8 @@ - DOM_NOT_FOUND_ERR - (integer) + DOM_NOT_FOUND_ERR / Dom\NOT_FOUND_ERR + (int) 8 @@ -336,8 +380,8 @@ - DOM_NOT_SUPPORTED_ERR - (integer) + DOM_NOT_SUPPORTED_ERR / Dom\NOT_SUPPORTED_ERR + (int) 9 @@ -346,8 +390,8 @@ - DOM_INUSE_ATTRIBUTE_ERR - (integer) + DOM_INUSE_ATTRIBUTE_ERR / Dom\INUSE_ATTRIBUTE_ERR + (int) 10 @@ -356,8 +400,8 @@ - DOM_INVALID_STATE_ERR - (integer) + DOM_INVALID_STATE_ERR / Dom\INVALID_STATE_ERR + (int) 11 @@ -367,16 +411,16 @@ - DOM_SYNTAX_ERR - (integer) + DOM_SYNTAX_ERR / Dom\SYNTAX_ERR + (int) 12 不正な文字列が指定されました。 - DOM_INVALID_MODIFICATION_ERR - (integer) + DOM_INVALID_MODIFICATION_ERR / Dom\INVALID_MODIFICATION_ERR + (int) 13 基底オブジェクトの型を変更しようとしました。 @@ -384,7 +428,7 @@ DOM_NAMESPACE_ERR - (integer) + (int) 14 @@ -393,8 +437,8 @@ - DOM_INVALID_ACCESS_ERR - (integer) + DOM_INVALID_ACCESS_ERR / Dom\INVALID_ACCESS_ERR + (int) 15 @@ -403,8 +447,8 @@ - DOM_VALIDATION_ERR - (integer) + DOM_VALIDATION_ERR / Dom\VALIDATION_ERR + (int) 16 @@ -417,8 +461,7 @@
- - - diff --git a/reference/dom/dom/attr/isid.xml b/reference/dom/dom/attr/isid.xml new file mode 100644 index 0000000000..7da830d430 --- /dev/null +++ b/reference/dom/dom/attr/isid.xml @@ -0,0 +1,77 @@ + + + + + + Dom\Attr::isId + + + + + &reftitle.description; + + public boolDom\Attr::isId + + + + + DOM 標準によると、属性ID を ID型 として定義する DTD が必要です。 + このメソッドを利用するには、 + オプションとしてLIBXML_DTDVALIDを渡して、 + 解析時にドキュメントを検証しなければいけません。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + + + + + + + &reftitle.examples; + + Dom\Attr::isId() の例 + +getElementsByTagName('chapter')->item(0)->getAttributeNode('id'); + +var_dump($attr->isId()); // bool(true) + +?> +]]> + + + + + diff --git a/reference/dom/dom/attr/rename.xml b/reference/dom/dom/attr/rename.xml new file mode 100644 index 0000000000..7bbfa044ec --- /dev/null +++ b/reference/dom/dom/attr/rename.xml @@ -0,0 +1,173 @@ + + + + + + Dom\Attr::rename + 属性の名前空間または、修飾名を変更する + + + + &reftitle.description; + + public voidDom\Attr::rename + stringnullnamespaceURI + stringqualifiedName + + + このメソッドは、属性の名前空間または、修飾名を変更します。 + + + + + &reftitle.parameters; + + + namespaceURI + + + 属性の新しい名前空間 URI + + + + + qualifiedName + + + 属性の新しい修飾名 + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.errors; + + + Dom\NAMESPACE_ERR 付きで DOMException が発生する場合 + + + qualifiedName によって決まる名前空間にエラーがあった場合に発生します。 + + + + + Dom\INVALID_MODIFICATION_ERR 付きで DOMException が発生する場合 + + + 同じ修飾名を持つ要素中に、属性が存在すると発生します。 + + + + + + + + &reftitle.examples; + + 名前空間と修飾名を両方変更する <methodname>Dom\Attr::rename</methodname> の例 + + この例では、my-attr の修飾名を + my-new-attr に変更します。 + その名前空間も urn:my-ns に変更します。 + + +'); + +$root = $doc->documentElement; +$attribute = $root->attributes['my-attr']; +$attribute->rename('urn:my-ns', 'my-new-attr'); + +echo $doc->saveXml(); + +?> +]]> + + &example.outputs; + + + +]]> + + + + 修飾名だけを変更する <methodname>Dom\Attr::rename</methodname> の例 + + この例では、my-attr の修飾名だけを変更します。 + 名前空間 URI は元のままです。 + + +'); + +$root = $doc->documentElement; +$attribute = $root->attributes['my-attr']; +$attribute->rename($attribute->namespaceURI, 'my-new-attr'); + +echo $doc->saveXml(); + +?> +]]> + + &example.outputs; + + + +]]> + + + + + + &reftitle.notes; + + + 修飾名と名前空間 URI を一度にまとめて変更する必要がある場合があります。 + これは、名前空間の規則を壊さないようにするためです。 + + + + + + &reftitle.seealso; + + Dom\Element::rename + + + + + diff --git a/reference/dom/dom/characterdata/after.xml b/reference/dom/dom/characterdata/after.xml new file mode 100644 index 0000000000..d4026544fd --- /dev/null +++ b/reference/dom/dom/characterdata/after.xml @@ -0,0 +1,80 @@ + + + + + + Dom\CharacterData::after + + + + + &reftitle.description; + + public voidDom\CharacterData::after + Dom\Nodestringnodes + + + + + + + + + + &reftitle.examples; + + <methodname>Dom\CharacterData::after</methodname> の例 + + 文字データの後ろにノードを追加します。 + + +"); +$cdata = $doc->documentElement->firstChild; + +$cdata->after("beautiful", $doc->createElement("world")); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + +beautiful +]]> + + + + + + &reftitle.seealso; + + Dom\ChildNode::after + Dom\CharacterData::before + + + + + diff --git a/reference/dom/dom/characterdata/appenddata.xml b/reference/dom/dom/characterdata/appenddata.xml new file mode 100644 index 0000000000..1dddf7da7b --- /dev/null +++ b/reference/dom/dom/characterdata/appenddata.xml @@ -0,0 +1,52 @@ + + + + + + Dom\CharacterData::appendData + + + + + &reftitle.description; + + public voidDom\CharacterData::appendData + stringdata + + + + + + + + + &reftitle.seealso; + + Dom\CharacterData::deleteData + Dom\CharacterData::insertData + Dom\CharacterData::replaceData + Dom\CharacterData::substringData + + + + + diff --git a/reference/dom/dom/characterdata/before.xml b/reference/dom/dom/characterdata/before.xml new file mode 100644 index 0000000000..751b8248b1 --- /dev/null +++ b/reference/dom/dom/characterdata/before.xml @@ -0,0 +1,80 @@ + + + + + + Dom\CharacterData::before + + + + + &reftitle.description; + + public voidDom\CharacterData::before + Dom\Nodestringnodes + + + + + + + + + + &reftitle.examples; + + <methodname>Dom\CharacterData::before</methodname> の例 + + 文字データの前にノードを追加します。 + + +"); +$cdata = $doc->documentElement->firstChild; + +$cdata->before("hello", $doc->createElement("beautiful")); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + +hello +]]> + + + + + + &reftitle.seealso; + + Dom\ChildNode::before + Dom\CharacterData::after + + + + + diff --git a/reference/dom/dom/characterdata/deletedata.xml b/reference/dom/dom/characterdata/deletedata.xml new file mode 100644 index 0000000000..a896c333a4 --- /dev/null +++ b/reference/dom/dom/characterdata/deletedata.xml @@ -0,0 +1,54 @@ + + + + + + Dom\CharacterData::deleteData + + + + + &reftitle.description; + + public voidDom\CharacterData::deleteData + intoffset + intcount + + + + + + + + + + &reftitle.seealso; + + Dom\CharacterData::appendData + Dom\CharacterData::insertData + Dom\CharacterData::replaceData + Dom\CharacterData::substringData + + + + + diff --git a/reference/dom/dom/characterdata/insertdata.xml b/reference/dom/dom/characterdata/insertdata.xml new file mode 100644 index 0000000000..d4579a5ca4 --- /dev/null +++ b/reference/dom/dom/characterdata/insertdata.xml @@ -0,0 +1,54 @@ + + + + + + Dom\CharacterData::insertData + + + + + &reftitle.description; + + public voidDom\CharacterData::insertData + intoffset + stringdata + + + + + + + + + + &reftitle.seealso; + + Dom\CharacterData::appendData + Dom\CharacterData::deleteData + Dom\CharacterData::replaceData + Dom\CharacterData::substringData + + + + + diff --git a/reference/dom/dom/characterdata/remove.xml b/reference/dom/dom/characterdata/remove.xml new file mode 100644 index 0000000000..4d73697f7c --- /dev/null +++ b/reference/dom/dom/characterdata/remove.xml @@ -0,0 +1,82 @@ + + + + + + Dom\CharacterData::remove + + + + + &reftitle.description; + + public voidDom\CharacterData::remove + + + + + + + + + + &reftitle.examples; + + <methodname>Dom\CharacterData::remove</methodname> の例 + + 文字データを削除します。 + + +"); +$cdata = $doc->documentElement->firstChild; + +$cdata->remove(); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + + +]]> + + + + + + &reftitle.seealso; + + Dom\ChildNode::remove + Dom\CharacterData::after + Dom\CharacterData::before + Dom\CharacterData::replaceWith + Dom\Node::removeChild + + + + + diff --git a/reference/dom/dom/characterdata/replacedata.xml b/reference/dom/dom/characterdata/replacedata.xml new file mode 100644 index 0000000000..403240e179 --- /dev/null +++ b/reference/dom/dom/characterdata/replacedata.xml @@ -0,0 +1,55 @@ + + + + + + Dom\CharacterData::replaceData + + + + + &reftitle.description; + + public voidDom\CharacterData::replaceData + intoffset + intcount + stringdata + + + + + + + + + + &reftitle.seealso; + + Dom\CharacterData::appendData + Dom\CharacterData::deleteData + Dom\CharacterData::insertData + Dom\CharacterData::substringData + + + + + diff --git a/reference/dom/dom/characterdata/replacewith.xml b/reference/dom/dom/characterdata/replacewith.xml new file mode 100644 index 0000000000..f6476b4434 --- /dev/null +++ b/reference/dom/dom/characterdata/replacewith.xml @@ -0,0 +1,82 @@ + + + + + + Dom\CharacterData::replaceWith + + + + + &reftitle.description; + + public voidDom\CharacterData::replaceWith + Dom\Nodestringnodes + + + + + + + + + + &reftitle.examples; + + <methodname>Dom\CharacterData::replaceWith</methodname> の例 + + 文字データを新しいノードで置きかえます。 + + +"); +$cdata = $doc->documentElement->firstChild; + +$cdata->replaceWith("beautiful", $doc->createElement("world")); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + +beautiful +]]> + + + + + + &reftitle.seealso; + + Dom\ChildNode::replaceWith + Dom\CharacterData::after + Dom\CharacterData::before + Dom\CharacterData::remove + + + + + diff --git a/reference/dom/dom/characterdata/substringdata.xml b/reference/dom/dom/characterdata/substringdata.xml new file mode 100644 index 0000000000..ca76f75977 --- /dev/null +++ b/reference/dom/dom/characterdata/substringdata.xml @@ -0,0 +1,54 @@ + + + + + + Dom\CharacterData::substringData + + + + + &reftitle.description; + + public stringDom\CharacterData::substringData + intoffset + intcount + + + + + + + + + + &reftitle.seealso; + + Dom\CharacterData::appendData + Dom\CharacterData::deleteData + Dom\CharacterData::insertData + Dom\CharacterData::replaceData + + + + + diff --git a/reference/dom/dom/childnode/after.xml b/reference/dom/dom/childnode/after.xml new file mode 100644 index 0000000000..3a61ca3fa0 --- /dev/null +++ b/reference/dom/dom/childnode/after.xml @@ -0,0 +1,53 @@ + + + + + + Dom\ChildNode::after + + + + + &reftitle.description; + + public voidDom\ChildNode::after + Dom\Nodestringnodes + + + + + + + + + + &reftitle.seealso; + + Dom\ChildNode::before + Dom\ChildNode::remove + Dom\ChildNode::replaceWith + Dom\Node::appendChild + + + + + diff --git a/reference/dom/dom/childnode/before.xml b/reference/dom/dom/childnode/before.xml new file mode 100644 index 0000000000..fb2661850c --- /dev/null +++ b/reference/dom/dom/childnode/before.xml @@ -0,0 +1,52 @@ + + + + + + Dom\ChildNode::before + + + + + &reftitle.description; + + public voidDom\ChildNode::before + Dom\Nodestringnodes + + + + + + + + + + &reftitle.seealso; + + Dom\ChildNode::after + Dom\ChildNode::remove + Dom\ChildNode::replaceWith + + + + + diff --git a/reference/dom/dom/childnode/remove.xml b/reference/dom/dom/childnode/remove.xml new file mode 100644 index 0000000000..58546de70b --- /dev/null +++ b/reference/dom/dom/childnode/remove.xml @@ -0,0 +1,52 @@ + + + + + + Dom\ChildNode::remove + + + + + &reftitle.description; + + public voidDom\ChildNode::remove + + + + + + + + + + &reftitle.seealso; + + Dom\ChildNode::after + Dom\ChildNode::before + Dom\ChildNode::replaceWith + Dom\Node::removeChild + + + + + diff --git a/reference/dom/dom/childnode/replacewith.xml b/reference/dom/dom/childnode/replacewith.xml new file mode 100644 index 0000000000..ef5b2f56ec --- /dev/null +++ b/reference/dom/dom/childnode/replacewith.xml @@ -0,0 +1,53 @@ + + + + + + Dom\ChildNode::replaceWith + + + + + &reftitle.description; + + public voidDom\ChildNode::replaceWith + Dom\Nodestringnodes + + + + + + + + + + &reftitle.seealso; + + Dom\ChildNode::after + Dom\ChildNode::before + Dom\ChildNode::remove + Dom\Node::replaceChild + + + + + diff --git a/reference/dom/dom/dom-adjacentposition.xml b/reference/dom/dom/dom-adjacentposition.xml new file mode 100644 index 0000000000..1d91c8daff --- /dev/null +++ b/reference/dom/dom/dom-adjacentposition.xml @@ -0,0 +1,78 @@ + + + + + Dom\AdjacentPosition Enum + Dom\AdjacentPosition + + +
+ &reftitle.intro; + + AdjacentPosition enum は、 + Dom\Element::insertAdjacentElement や + Dom\Element::insertAdjacentText を使って、 + コンテキスト要素の相対位置として、どの位置に挿入を実行するかを指定するのに使います。 + +
+ +
+ &reftitle.enumsynopsis; + + + AdjacentPosition + + + BeforeBegin + + コンテキスト要素の前に挿入します。 + これは要素がドキュメントであり、存在する場合に限って使えます。 + + + + + AfterBegin + + コンテキスト要素の最初の子の前に挿入します。 + + + + + BeforeEnd + + コンテキスト要素の最後の子の後に挿入します。 + + + + + AfterEnd + + コンテキスト要素の後に挿入します。 + これは要素がドキュメントであり、存在する場合に限って使えます。 + + + + +
+
+
+ diff --git a/reference/dom/dom/dom-attr.xml b/reference/dom/dom/dom-attr.xml new file mode 100644 index 0000000000..56c2b33f35 --- /dev/null +++ b/reference/dom/dom/dom-attr.xml @@ -0,0 +1,165 @@ + + + + + <classname>Dom\Attr</classname> クラス + Dom\Attr + + + +
+ &reftitle.intro; + + Dom\Attr は、 + Dom\Element 中の属性を表します。 + + + このクラスは、DOMAttr と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + Dom\Attr + + + + extends + Dom\Node + + + &InheritedConstants; + + + + + &Properties; + + public + readonly + stringnull + namespaceURI + + + public + readonly + stringnull + prefix + + + public + readonly + string + localName + + + public + readonly + string + name + + + public + string + value + + + public + readonly + Dom\Elementnull + ownerElement + + + public + readonly + bool + specified + + + &InheritedProperties; + + + + + &Methods; + + + + + &InheritedMethods; + Not documented yet + + +
+ +
+ &reftitle.properties; + + + namespaceURI + + 属性の名前空間 URI + + + + prefix + + 属性の名前空間プレフィックス + + + + localName + + 属性のローカル名 + + + + name + + 属性の修飾名 + + + + value + + 属性の値 + + + DOMAttr の同名のプロパティと異なり、 + この値はエンティティを置換しません。 + + + + + + ownerElement + + 属性を含む要素。または &null; + + + + specified + + レガシーオプション。常に &true; + + + +
+ +
+ &reftitle.seealso; + + WHATWG specification of Attr + +
+ +
+ + &reference.dom.dom.entities.attr; + +
diff --git a/reference/dom/dom/dom-cdatasection.xml b/reference/dom/dom/dom-cdatasection.xml new file mode 100644 index 0000000000..91645c0c3b --- /dev/null +++ b/reference/dom/dom/dom-cdatasection.xml @@ -0,0 +1,68 @@ + + + + + + Dom\CDATASection クラス + Dom\CDATASection + + + +
+ &reftitle.intro; + + Dom\CDATASection クラスは、 + CData のテキスト表現向けに Dom\Text + を継承したものです。 + + + このクラスは、DOMCdataSection と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + Dom\CDATASection + + + + extends + Dom\Text + + + &InheritedConstants; + + + + + &InheritedProperties; + + + + + + + + + + + &InheritedMethods; + + + + + + + Not documented yet + + + +
+
+ +
diff --git a/reference/dom/dom/dom-characterdata.xml b/reference/dom/dom/dom-characterdata.xml new file mode 100644 index 0000000000..5b733f7c4d --- /dev/null +++ b/reference/dom/dom/dom-characterdata.xml @@ -0,0 +1,121 @@ + + + + + Dom\CharacterData クラス + Dom\CharacterData + + +
+ + + + + このクラスは、DOMCharacterData と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + Dom\CharacterData + + + + extends + Dom\Node + + + + implements + Dom\ChildNode + + + &InheritedConstants; + + + + + &Properties; + + public + readonly + Dom\Elementnull + previousElementSibling + + + public + readonly + Dom\Elementnull + nextElementSibling + + + public + string + data + + + public + readonly + int + length + + + &InheritedProperties; + + + + + &Methods; + + + + + &InheritedMethods; + Not documented yet + + +
+ +
+ &reftitle.properties; + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ &reftitle.seealso; + + WHATWG specification of CharacterData + +
+ +
+ + &reference.dom.dom.entities.characterdata; + +
diff --git a/reference/dom/dom/dom-childnode.xml b/reference/dom/dom/dom-childnode.xml new file mode 100644 index 0000000000..305c74d8ac --- /dev/null +++ b/reference/dom/dom/dom-childnode.xml @@ -0,0 +1,37 @@ + + + + + Dom\ChildNode インターフェイス + Dom\ChildNode + + + +
+ &reftitle.intro; + + このクラスは、DOMChildNode と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.interfacesynopsis; + + + + Dom\ChildNode + + + &Methods; + + + + +
+ +
+ + &reference.dom.dom.entities.childnode; + +
diff --git a/reference/dom/dom/dom-comment.xml b/reference/dom/dom/dom-comment.xml new file mode 100644 index 0000000000..dadea5a1fc --- /dev/null +++ b/reference/dom/dom/dom-comment.xml @@ -0,0 +1,66 @@ + + + + + Dom\Comment クラス + Dom\Comment + + + +
+ + + + + このクラスは、DOMComment と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + + Dom\Comment + + + + extends + Dom\CharacterData + + + &InheritedConstants; + + + + + &InheritedProperties; + + + + + + + + &InheritedMethods; + + + + Not documented yet + + +
+ +
+ &reftitle.seealso; + + WHATWG specification of Comment + +
+ +
+ +
diff --git a/reference/dom/dom/dom-document.xml b/reference/dom/dom/dom-document.xml new file mode 100644 index 0000000000..911a2409ba --- /dev/null +++ b/reference/dom/dom/dom-document.xml @@ -0,0 +1,253 @@ + + + + + Dom\Document クラス + Dom\Document + + + +
+ + + + + このクラスは、DOMDocument と同等ですが、 + モダンかつ仕様に準拠しています。 + このクラスは、Dom\XMLDocument と + Dom\HTMLDocument の基底クラスです。 + +
+ +
+ &reftitle.classsynopsis; + + + + abstract + Dom\Document + + + + extends + Dom\Node + + + + implements + Dom\ParentNode + + + &InheritedConstants; + + + + + &Properties; + + public + readonly + Dom\Implementation + implementation + + + public + string + URL + + + public + string + documentURI + + + public + string + characterSet + + + public + string + charset + + + public + string + inputEncoding + + + public + readonly + Dom\DocumentTypenull + doctype + + + public + readonly + Dom\Elementnull + documentElement + + + public + readonly + Dom\Elementnull + firstElementChild + + + public + readonly + Dom\Elementnull + lastElementChild + + + public + readonly + int + childElementCount + + + public + Dom\HTMLElementnull + body + + + public + readonly + Dom\HTMLElementnull + head + + + public + string + title + + + &InheritedProperties; + + + + + &Methods; + Not documented yet + + + &InheritedMethods; + Not documented yet + + +
+ +
+ &reftitle.properties; + + + + + + + + + + + + + URL + + documentURI と同じです + + + + characterSet + + + シリアライズに使うドキュメントのエンコーディング。 + ドキュメントをパースする際、このドキュメントの入力エンコーディングにせっていされます。 + + + + + inputEncoding + + characterSet のレガシーエイリアス + + + + charset + + characterSet のレガシーエイリアス + + + + + + + + + documentElement + + + ドキュメント要素に対応する Dom\Element。 + 要素がないドキュメントの場合 &null; になります。 + + + + + + + + + + + + + + + + + + + + body + + + html 要素の最初の子要素。 + body タグか、 + frameset タグになります。 + HTML 名前空間の内部にある必要はありません。 + どの要素もマッチしない場合は、&null; になります。 + + + + + head + + + html 要素の子としての、 + 最初の head 要素。 + HTML 名前空間の内部にある必要はありません。 + どの要素もマッチしない場合は、&null; になります。 + + + + + title + + + HTML や SVG の title + 要素に設定されるドキュメントのタイトル。 + タイトルがない場合、空文字列に評価されます。 + + + + +
+ +
+ + + +
diff --git a/reference/dom/dom/dom-documentfragment.xml b/reference/dom/dom/dom-documentfragment.xml new file mode 100644 index 0000000000..6fd8110ff9 --- /dev/null +++ b/reference/dom/dom/dom-documentfragment.xml @@ -0,0 +1,109 @@ + + + + + Dom\DocumentFragment クラス + Dom\DocumentFragment + + + +
+ &reftitle.intro; + + このクラスは、ドキュメントのフラグメントを表します。 + フラグメントは、他のノードのコンテナとして使えます。 + + + このクラスは、DOMDocumentFragment と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + + Dom\DocumentFragment + + + + extends + Dom\Node + + + + implements + Dom\ParentNode + + + &InheritedConstants; + + + + + &Properties; + + public + readonly + Dom\Elementnull + firstElementChild + + + public + readonly + Dom\Elementnull + lastElementChild + + + public + readonly + int + childElementCount + + + &InheritedProperties; + + + + + &Methods; + Not documented yet + + + &InheritedMethods; + Not documented yet + + +
+ +
+ &reftitle.properties; + + + + + + + + + + + + + + + + + +
+ +
+ + + +
diff --git a/reference/dom/dom/dom-documenttype.xml b/reference/dom/dom/dom-documenttype.xml new file mode 100644 index 0000000000..97222fc546 --- /dev/null +++ b/reference/dom/dom/dom-documenttype.xml @@ -0,0 +1,149 @@ + + + + + Dom\DocumentType クラス + Dom\DocumentType + + +
+ &reftitle.intro; + + 個々の Dom\Document は + doctype 属性を持ちます。 + この属性の値は、&null; か + Dom\DocumentType + のどちらかになります。 + + + このクラスは、DOMImplementation と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + Dom\DocumentType + + + + extends + Dom\Node + + + + implements + Dom\ChildNode + + + &InheritedConstants; + + + + + &Properties; + + public + readonly + string + name + + + public + readonly + Dom\DtdNamedNodeMap + entities + + + public + readonly + Dom\DtdNamedNodeMap + notations + + + public + readonly + string + publicId + + + public + readonly + string + systemId + + + public + readonly + stringnull + internalSubset + + + &InheritedProperties; + + + + + &Methods; + Not documented yet + + + &InheritedMethods; + Not documented yet + + +
+ +
+ &reftitle.properties; + + + + + + + + + + + + + + + + + + entities + + + DTD で宣言された一般エンティティを含む + Dom\DtdNamedNodeMap。 + 外部と内部のエンティティを両方含みます。 + + + + + notations + + + DTD で宣言された記法を含む + Dom\DtdNamedNodeMap + + + + + + + + + +
+
+ +
diff --git a/reference/dom/dom/dom-dtdnamednodemap.xml b/reference/dom/dom/dom-dtdnamednodemap.xml new file mode 100644 index 0000000000..fcaa8f72fd --- /dev/null +++ b/reference/dom/dom/dom-dtdnamednodemap.xml @@ -0,0 +1,69 @@ + + + + + Dom\DtdNamedNodeMap クラス + Dom\DtdNamedNodeMap + + + +
+ &reftitle.intro; + + DTD の記法ノードとエンティティノードの、 + 名前付きノードマップを表します。 + +
+ +
+ &reftitle.classsynopsis; + + + + Dom\DtdNamedNodeMap + + + + implements + IteratorAggregate + + + + Countable + + + &Properties; + + public + readonly + int + length + + + &Methods; + Not documented yet + + +
+ +
+ &reftitle.properties; + + + length + + + エンティティと記法ノードの合計数 + + + + +
+ +
+ + + +
diff --git a/reference/dom/dom/dom-element.xml b/reference/dom/dom/dom-element.xml new file mode 100644 index 0000000000..458662f974 --- /dev/null +++ b/reference/dom/dom/dom-element.xml @@ -0,0 +1,259 @@ + + + + + Dom\Element クラス + Dom\Element + + + +
+ &reftitle.intro; + + 要素を表します。 + + + このクラスは、DOMElement と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + + Dom\Element + + + + extends + Dom\Node + + + + implements + Dom\ParentNode + + + + Dom\ChildNode + + + &InheritedConstants; + + + + + &Properties; + + public + readonly + stringnull + namespaceURI + + + public + readonly + stringnull + prefix + + + public + readonly + string + localName + + + public + readonly + string + tagName + + + public + string + id + + + public + string + className + + + public + readonly + Dom\TokenList + classList + + + public + readonly + Dom\NamedNodeMap + attributes + + + public + readonly + Dom\Elementnull + firstElementChild + + + public + readonly + Dom\Elementnull + lastElementChild + + + public + readonly + int + childElementCount + + + public + readonly + Dom\Elementnull + previousElementSibling + + + public + readonly + Dom\Elementnull + nextElementSibling + + + public + string + innerHTML + + + public + string + substitutedNodeValue + + + &InheritedProperties; + + + + + &Methods; + Not documented yet + + + &InheritedMethods; + Not documented yet + + +
+ +
+ &reftitle.properties; + + + namespaceURI + + 要素の名前空間 URI + + + + prefix + + 要素の名前空間プレフィックス + + + + localName + + 要素のローカル名 + + + + tagName + + 要素の大文字化されたHTML修飾名 + + + + + + + + + classList + + + この要素のクラスを簡単に管理するための、 + Dom\TokenList を返します。 + + + + + attributes + + + この要素の属性を表す + Dom\NamedNodeMap のインスタンスを返します + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + innerHTML + + 要素の inner HTML (またはXML文書のXML) + + + + substitutedNodeValue + + エンティティ置換が有効になったノードの値 + + + +
+ +
+ &reftitle.notes; + &dom.note.modern.utf8; +
+ +
+ + + +
diff --git a/reference/dom/dom/dom-entity.xml b/reference/dom/dom/dom-entity.xml new file mode 100644 index 0000000000..d6d8f3eed3 --- /dev/null +++ b/reference/dom/dom/dom-entity.xml @@ -0,0 +1,92 @@ + + + + + + Dom\Entity クラス + Dom\Entity + + +
+ + + + + このクラスは、DOMEntity と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + Dom\Entity + + + + extends + Dom\Node + + + &InheritedConstants; + + + + + &Properties; + + public + readonly + stringnull + publicId + + + public + readonly + stringnull + systemId + + + public + readonly + stringnull + notationName + + + &InheritedProperties; + + + + + &InheritedMethods; + Not documented yet + + +
+ +
+ &reftitle.properties; + + + + + + + + + + + + + + + + + +
+
+ +
diff --git a/reference/dom/dom/dom-entityreference.xml b/reference/dom/dom/dom-entityreference.xml new file mode 100644 index 0000000000..e2a9c8d3ff --- /dev/null +++ b/reference/dom/dom/dom-entityreference.xml @@ -0,0 +1,51 @@ + + + + + Dom\EntityReference クラス + Dom\EntityReference + + + +
+ &reftitle.intro; + + このクラスは、DOMEntityReference と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + + Dom\EntityReference + + + + extends + Dom\Node + + + &InheritedConstants; + + + + + &InheritedProperties; + + + + + &InheritedMethods; + Not documented yet + + +
+ +
+ +
diff --git a/reference/dom/dom/dom-htmlcollection.xml b/reference/dom/dom/dom-htmlcollection.xml new file mode 100644 index 0000000000..51425eefff --- /dev/null +++ b/reference/dom/dom/dom-htmlcollection.xml @@ -0,0 +1,71 @@ + + + + + Dom\HTMLCollection クラス + Dom\HTMLCollection + + + +
+ &reftitle.intro; + + 要素の静的な集合を表します。 + +
+ +
+ &reftitle.classsynopsis; + + + + Dom\HTMLCollection + + + + implements + IteratorAggregate + + + + Countable + + + &Properties; + + public + readonly + int + length + + + &Methods; + Not documented yet + + +
+ +
+ &reftitle.properties; + + + length + + 要素の数 + + + +
+ +
+ &reftitle.notes; + &dom.note.modern.utf8; +
+ +
+ + + +
diff --git a/reference/dom/dom/dom-htmldocument.xml b/reference/dom/dom/dom-htmldocument.xml new file mode 100644 index 0000000000..9d83d0bfeb --- /dev/null +++ b/reference/dom/dom/dom-htmldocument.xml @@ -0,0 +1,69 @@ + + + + + Dom\HTMLDocument クラス + Dom\HTMLDocument + + + +
+ &reftitle.intro; + + HTML ドキュメントを表します。 + +
+ +
+ &reftitle.classsynopsis; + + + + final + Dom\HTMLDocument + + + + extends + Dom\Document + + + &InheritedConstants; + + + + + &InheritedProperties; + + + + + + + + &Methods; + + + + + &InheritedMethods; + Not documented yet + + + +
+ +
+ &reftitle.notes; + &dom.note.modern.utf8; +
+ +
+ + &reference.dom.dom.entities.htmldocument; + +
diff --git a/reference/dom/dom/dom-htmlelement.xml b/reference/dom/dom/dom-htmlelement.xml new file mode 100644 index 0000000000..d91a1e9bdb --- /dev/null +++ b/reference/dom/dom/dom-htmlelement.xml @@ -0,0 +1,61 @@ + + + + + Dom\HTMLElement クラス + Dom\HTMLElement + + + +
+ &reftitle.intro; + + HTML 名前空間内の要素を表します。 + +
+ +
+ &reftitle.classsynopsis; + + + + Dom\HTMLElement + + + + extends + Dom\Element + + + &InheritedConstants; + + + + + &InheritedProperties; + + + + + + + + &InheritedMethods; + Not documented yet + + + +
+ +
+ &reftitle.notes; + &dom.note.modern.utf8; +
+ +
+ +
diff --git a/reference/dom/dom/dom-implementation.xml b/reference/dom/dom/dom-implementation.xml new file mode 100644 index 0000000000..b0f56358e5 --- /dev/null +++ b/reference/dom/dom/dom-implementation.xml @@ -0,0 +1,43 @@ + + + + + Dom\Implementation クラス + Dom\Implementation + + + +
+ &reftitle.intro; + + + + + + + このクラスは、DOMImplementation と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + Dom\Implementation + + + &Methods; + Not documented yet + + + +
+ +
+ + + +
diff --git a/reference/dom/dom/dom-namednodemap.xml b/reference/dom/dom/dom-namednodemap.xml new file mode 100644 index 0000000000..374a417657 --- /dev/null +++ b/reference/dom/dom/dom-namednodemap.xml @@ -0,0 +1,71 @@ + + + + + Dom\NamedNodeMap クラス + Dom\NamedNodeMap + + + +
+ &reftitle.intro; + + 要素が持つ属性の集合を表します。 + +
+ +
+ &reftitle.classsynopsis; + + + + Dom\NamedNodeMap + + + + implements + IteratorAggregate + + + + Countable + + + &Properties; + + public + readonly + int + length + + + &Methods; + Not documented yet + + +
+ +
+ &reftitle.properties; + + + length + + 属性の数 + + + +
+ +
+ &reftitle.notes; + &dom.note.modern.utf8; +
+ +
+ + + +
diff --git a/reference/dom/dom/dom-namespaceinfo.xml b/reference/dom/dom/dom-namespaceinfo.xml new file mode 100644 index 0000000000..e89939a57a --- /dev/null +++ b/reference/dom/dom/dom-namespaceinfo.xml @@ -0,0 +1,76 @@ + + + + + Dom\NamespaceInfo クラス + Dom\NamespaceInfo + + +
+ &reftitle.intro; + + 要素の名前空間に関する、変更不能の情報を表します。 + これによって、属性から名前空間を分離します。 + 古い DOM クラスでは、これらが誤って絡み合っていました。 + +
+ +
+ &reftitle.classsynopsis; + + + final + readonly + Dom\NamespaceInfo + + + &Properties; + + public + stringnull + prefix + + + public + stringnull + namespaceURI + + + public + Dom\Element + element + + + + +
+ +
+ &reftitle.properties; + + + prefix + + 属性の名前空間プレフィックス + + + + namespaceURI + + 属性の名前空間 URI + + + + element + + 名前空間の情報を示す要素 + + + +
+
+ +
diff --git a/reference/dom/dom/dom-node.xml b/reference/dom/dom/dom-node.xml new file mode 100644 index 0000000000..3d0f167121 --- /dev/null +++ b/reference/dom/dom/dom-node.xml @@ -0,0 +1,308 @@ + + + + + The Dom\Node class + Dom\Node + + + +
+ &reftitle.intro; + + このクラスは、DOMNode と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + Dom\Node + + + &Constants; + + public + const + int + Dom\Node::DOCUMENT_POSITION_DISCONNECTED + 0x1 + + + public + const + int + Dom\Node::DOCUMENT_POSITION_PRECEDING + 0x2 + + + public + const + int + Dom\Node::DOCUMENT_POSITION_FOLLOWING + 0x4 + + + public + const + int + Dom\Node::DOCUMENT_POSITION_CONTAINS + 0x8 + + + public + const + int + Dom\Node::DOCUMENT_POSITION_CONTAINED_BY + 0x10 + + + public + const + int + Dom\Node::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC + 0x20 + + + &Properties; + + public + readonly + int + nodeType + + + public + readonly + string + nodeName + + + public + readonly + string + baseURI + + + public + readonly + bool + isConnected + + + public + readonly + Dom\Documentnull + ownerDocument + + + public + readonly + Dom\Nodenull + parentNode + + + public + readonly + Dom\Elementnull + parentElement + + + public + readonly + Dom\NodeList + childNodes + + + public + readonly + Dom\Nodenull + firstChild + + + public + readonly + Dom\Nodenull + lastChild + + + public + readonly + Dom\Nodenull + previousSibling + + + public + readonly + Dom\Nodenull + nextSibling + + + public + stringnull + nodeValue + + + public + stringnull + textContent + + + &Methods; + Not documented yet + + + +
+ +
+ &reftitle.constants; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ &reftitle.properties; + + + + + + + + nodeName + + 現在のノードタイプに対応した、もっとも適切な名前を返します + + 要素の場合、これは大文字のHTML修飾名です。 + 属性の場合、これは修飾名です。 + 処理命令の場合、これはターゲットです。 + ドキュメントタイプノードの場合、これは名前です。 + + + + + + + + + + + + + + + ownerDocument + + + このノードに関連付けられた Dom\Document。 + このノードがドキュメントではない場合、&null; になります。 + + + + + + + + + + + + + + + childNodes + + + このノードの全ての子を含む Dom\NodeList。 + 子が存在しない場合は、空の Dom\NodeList になります。 + + + + + + + + + + + + + + + + + + + + + + + + + nodeValue + + + このノードの値。タイプによって変わります。 + + + + + + + + + +
+ +
+ &reftitle.notes; + &dom.note.modern.utf8; +
+ +
+ &reftitle.seealso; + + WHATWG specification of Node + +
+ +
+ + + +
diff --git a/reference/dom/dom/dom-nodelist.xml b/reference/dom/dom/dom-nodelist.xml new file mode 100644 index 0000000000..852ad40163 --- /dev/null +++ b/reference/dom/dom/dom-nodelist.xml @@ -0,0 +1,66 @@ + + + + + <classname>Dom\NodeList</classname> クラス + Dom\NodeList + + + +
+ + + + + このクラスは、DOMNodeList と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + Dom\NodeList + + + + implements + IteratorAggregate + + + + Countable + + + &Properties; + + public + readonly + int + length + + + &Methods; + Not documented yet + + +
+ +
+ &reftitle.properties; + + + + + + + +
+
+ + + +
diff --git a/reference/dom/dom/dom-notation.xml b/reference/dom/dom/dom-notation.xml new file mode 100644 index 0000000000..646d8b7b81 --- /dev/null +++ b/reference/dom/dom/dom-notation.xml @@ -0,0 +1,72 @@ + + + + + Dom\Notation クラス + Dom\Notation + + + +
+ &reftitle.classsynopsis; + + + Dom\Notation + + + + extends + Dom\Node + + + &InheritedConstants; + + + + + &Properties; + + public + readonly + string + publicId + + + public + readonly + string + systemId + + + &InheritedProperties; + + + + + &InheritedMethods; + Not documented yet + + +
+ +
+ &reftitle.properties; + + + + + + + + + + + + +
+ +
+ +
diff --git a/reference/dom/dom/dom-parentnode.xml b/reference/dom/dom/dom-parentnode.xml new file mode 100644 index 0000000000..f5d19eae1e --- /dev/null +++ b/reference/dom/dom/dom-parentnode.xml @@ -0,0 +1,38 @@ + + + + + Dom\ParentNode インターフェイス + Dom\ParentNode + + + +
+ &reftitle.intro; + + このクラスは、DOMParentNode と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.interfacesynopsis; + + + + Dom\ParentNode + + + &Methods; + + + + + +
+ +
+ + &reference.dom.dom.entities.parentnode; + +
diff --git a/reference/dom/dom/dom-processinginstruction.xml b/reference/dom/dom/dom-processinginstruction.xml new file mode 100644 index 0000000000..ed6d2d4173 --- /dev/null +++ b/reference/dom/dom/dom-processinginstruction.xml @@ -0,0 +1,78 @@ + + + + + Dom\ProcessingInstruction クラス + Dom\ProcessingInstruction + + + +
+ + + + + このクラスは、DOMProcessingInstruction と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + + Dom\ProcessingInstruction + + + + extends + Dom\CharacterData + + + &InheritedConstants; + + + + + &Properties; + + public + readonly + string + target + + + &InheritedProperties; + + + + + + + + &InheritedMethods; + + + + Not documented yet + + +
+ +
+ &reftitle.properties; + + + + + + + +
+ +
+ +
diff --git a/reference/dom/dom/dom-text.xml b/reference/dom/dom/dom-text.xml new file mode 100644 index 0000000000..6ce024d0d6 --- /dev/null +++ b/reference/dom/dom/dom-text.xml @@ -0,0 +1,87 @@ + + + + + Dom\Text クラス + Dom\Text + + + +
+ &reftitle.intro; + + Dom\Text クラスは、 + Dom\CharacterData を継承し、テキストノードを表します。 + + + このクラスは、DOMText と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + + Dom\Text + + + + extends + Dom\CharacterData + + + &InheritedConstants; + + + + + &Properties; + + public + readonly + string + wholeText + + + &InheritedProperties; + + + + + + + + &Methods; + + + + + &InheritedMethods; + + + + Not documented yet + + +
+ +
+ &reftitle.properties; + + + + + + + +
+ +
+ + &reference.dom.dom.entities.text; + +
diff --git a/reference/dom/dom/dom-tokenlist.xml b/reference/dom/dom/dom-tokenlist.xml new file mode 100644 index 0000000000..128d26a9af --- /dev/null +++ b/reference/dom/dom/dom-tokenlist.xml @@ -0,0 +1,87 @@ + + + + + Dom\TokenList クラス + Dom\TokenList + + + +
+ &reftitle.intro; + + 属性 (例: クラス名) 中のトークンの集合の表します。 + +
+ +
+ &reftitle.classsynopsis; + + + + final + Dom\TokenList + + + + implements + IteratorAggregate + + + + Countable + + + &Properties; + + public + readonly + int + length + + + public + string + value + + + &Methods; + + + + +
+ +
+ &reftitle.properties; + + + length + + トークンの数 + + + + value + + このオブジェクトにリンクされた属性の値 + + + +
+ +
+ &reftitle.notes; + &dom.note.modern.utf8; + + + リスト中のトークンは、配列の記法でアクセスできます + + +
+ +
+ + &reference.dom.dom.entities.tokenlist; + +
diff --git a/reference/dom/dom/dom-xmldocument.xml b/reference/dom/dom/dom-xmldocument.xml new file mode 100644 index 0000000000..3d761a45da --- /dev/null +++ b/reference/dom/dom/dom-xmldocument.xml @@ -0,0 +1,128 @@ + + + + + Dom\XMLDocument クラス + Dom\XMLDocument + + + +
+ &reftitle.intro; + + XML ドキュメントを表します。 + +
+ +
+ &reftitle.classsynopsis; + + + + final + Dom\XMLDocument + + + + extends + Dom\Document + + + &InheritedConstants; + + + + + &Properties; + + public + readonly + string + xmlEncoding + + + public + bool + xmlStandalone + + + public + string + xmlVersion + + + public + bool + formatOutput + + + &InheritedProperties; + + + + + + + + &Methods; + Not documented yet + + + &InheritedMethods; + Not documented yet + + + +
+ +
+ &reftitle.properties; + + + DOMDocument クラスは、 + パーサーの振る舞いに影響を与えるために特定のプロパティを設定できますが、 + このクラスはパーサーの設定に + LIBXML_* 定数のみを使用します + + + + + + + + + + + + + + + + + + + + formatOutput + + インデントと追加のスペースで、綺麗にフォーマットします + + + +
+ +
+ &reftitle.notes; + &dom.note.modern.utf8; +
+ +
+ + + +
diff --git a/reference/dom/dom/dom-xpath.xml b/reference/dom/dom/dom-xpath.xml new file mode 100644 index 0000000000..8fd1c669a2 --- /dev/null +++ b/reference/dom/dom/dom-xpath.xml @@ -0,0 +1,73 @@ + + + + + Dom\XPath クラス + Dom\XPath + + + +
+ + + + + このクラスは、DOMXPath と同等ですが、 + モダンかつ仕様に準拠しています。 + +
+ +
+ &reftitle.classsynopsis; + + + + final + Dom\XPath + + + &Properties; + + public + readonly + Dom\Document + document + + + public + bool + registerNodeNamespaces + + + &Methods; + Not documented yet + + +
+ +
+ &reftitle.properties; + + + + + + + + + + + + +
+ +
+ + + +
diff --git a/reference/dom/dom/htmldocument/createempty.xml b/reference/dom/dom/htmldocument/createempty.xml new file mode 100644 index 0000000000..1139f4c8e6 --- /dev/null +++ b/reference/dom/dom/htmldocument/createempty.xml @@ -0,0 +1,95 @@ + + + + + + Dom\HTMLDocument::createEmpty + 空の HTML ドキュメントを作成する + + + + &reftitle.description; + + public static Dom\HTMLDocumentDom\HTMLDocument::createEmpty + stringencoding"UTF-8" + + + 空の要素がない HTML ドキュメントを作成します。 + + + + + &reftitle.parameters; + + + encoding + + + ドキュメントの文字エンコーディング。 + save メソッドをコールした際のシリアライズに使います。 + + + + + + + + &reftitle.returnvalues; + + 空の HTML ドキュメントを返します。 + + + + + &reftitle.examples; + + <methodname>Dom\HTMLDocument::createEmpty</methodname> の例 + + 空のドキュメントを作成し、シリアライズします。 + + +saveHtml()); +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + Dom\HTMLDocument::createFromString + Dom\HTMLDocument::createFromFile + + + + + diff --git a/reference/dom/dom/htmldocument/createfromfile.xml b/reference/dom/dom/htmldocument/createfromfile.xml new file mode 100644 index 0000000000..1af3f7939d --- /dev/null +++ b/reference/dom/dom/htmldocument/createfromfile.xml @@ -0,0 +1,107 @@ + + + + + + Dom\HTMLDocument::createFromFile + ファイルから取得した HTML ファイルをパースする + + + + &reftitle.description; + + public static Dom\HTMLDocumentDom\HTMLDocument::createFromFile + stringpath + intoptions0 + stringnulloverrideEncoding&null; + + + ファイルから取得した HTML ファイルを、Living Standard に従ってパースします。 + + + + + &reftitle.parameters; + + + path + + + パースするファイルのパス + + + + + options + + &dom.parameter.compliant.options; + + + + overrideEncoding + + &dom.parameter.compliant.encoding; + + + + + + + &reftitle.returnvalues; + + パース済みのドキュメントを、Dom\HTMLDocument + のインスタンスとして返します。 + + + + + &reftitle.errors; + + + + path にヌルバイトや "%00" + が含まれていた場合、 + ValueError がスローされます。 + + + &dom.errors.compliant.common; + + + ファイルが開けなかった場合は、 + Exception がスローされます。 + + + + + + &dom.parser.compliant.note.whitespace; + + + &reftitle.seealso; + + Dom\HTMLDocument::createEmpty + Dom\HTMLDocument::createFromString + + + + + diff --git a/reference/dom/dom/htmldocument/createfromstring.xml b/reference/dom/dom/htmldocument/createfromstring.xml new file mode 100644 index 0000000000..c415ebf417 --- /dev/null +++ b/reference/dom/dom/htmldocument/createfromstring.xml @@ -0,0 +1,128 @@ + + + + + + Dom\HTMLDocument::createFromString + 文字列の HTML ドキュメントをパースする + + + + &reftitle.description; + + public static Dom\HTMLDocumentDom\HTMLDocument::createFromString + stringsource + intoptions0 + stringnulloverrideEncoding&null; + + + 文字列の HTML ドキュメントを、Living Standard に従ってパースします。 + + + + + &reftitle.parameters; + + + source + + + パースする HTML の文字列 + + + + + options + + &dom.parameter.compliant.options; + + + + overrideEncoding + + &dom.parameter.compliant.encoding; + + + + + + + &reftitle.returnvalues; + + パース済みのドキュメントを、Dom\HTMLDocument + のインスタンスとして返します。 + + + + + &reftitle.errors; + + &dom.errors.compliant.common; + + + + + &reftitle.examples; + + <methodname>Dom\HTMLDocument::createFromString</methodname> の例 + + サンプルのドキュメントをパースします。 + + + + + +

Hello, world!

+ + +HTML); +echo $dom->saveHtml(); +?> +]]> +
+ &example.outputs; + + +

Hello, world!

+ + +]]> +
+
+
+ + &dom.parser.compliant.note.whitespace; + + + &reftitle.seealso; + + Dom\HTMLDocument::createEmpty + Dom\HTMLDocument::createFromFile + + + +
+ diff --git a/reference/dom/dom/htmldocument/savehtml.xml b/reference/dom/dom/htmldocument/savehtml.xml new file mode 100644 index 0000000000..9fa1f5cebb --- /dev/null +++ b/reference/dom/dom/htmldocument/savehtml.xml @@ -0,0 +1,79 @@ + + + + + + Dom\HTMLDocument::saveHtml + HTML 文字列としてドキュメントをシリアライズする + + + + &reftitle.description; + + public stringDom\HTMLDocument::saveHtml + Dom\Nodenullnode&null; + + + ドキュメントを HTML 文字列としてシリアライズします。 + + + + + &reftitle.parameters; + + + node + + + シリアライズするノード。 + 指定しない場合、ドキュメント全体がシリアライズされます。 + + + + + + + + &reftitle.returnvalues; + + 現在のドキュメントのエンコーディングでシリアライズされた、 + HTML を返します。 + + + + + &reftitle.errors; + + &dom.errors.compliant.wrong_document; + + + + + &reftitle.seealso; + + Dom\HTMLDocument::saveHtmlFile + Dom\HTMLDocument::saveXml + + + + + diff --git a/reference/dom/dom/htmldocument/savehtmlfile.xml b/reference/dom/dom/htmldocument/savehtmlfile.xml new file mode 100644 index 0000000000..7570e12cfb --- /dev/null +++ b/reference/dom/dom/htmldocument/savehtmlfile.xml @@ -0,0 +1,84 @@ + + + + + + Dom\HTMLDocument::saveHtmlFile + ドキュメントを HTML ファイルとしてシリアライズする + + + + &reftitle.description; + + public intfalseDom\HTMLDocument::saveHtmlFile + stringfilename + + + ドキュメントを HTML ファイルとしてシリアライズします。 + + + + + &reftitle.parameters; + + + filename + + + 保存先のファイルパス + + + + + + + + &reftitle.returnvalues; + + 成功した場合は、書き出されたバイト数を返します。 + 失敗した場合は、&false; を返します。 + + + + + &reftitle.errors; + + + + filename が空文字列だったり、 + ヌルバイトが含まれていた場合、 + ValueError がスローされます。 + + + + + + + &reftitle.seealso; + + Dom\HTMLDocument::saveHtml + Dom\HTMLDocument::saveXmlFile + + + + + diff --git a/reference/dom/dom/htmldocument/savexml.xml b/reference/dom/dom/htmldocument/savexml.xml new file mode 100644 index 0000000000..c536082870 --- /dev/null +++ b/reference/dom/dom/htmldocument/savexml.xml @@ -0,0 +1,87 @@ + + + + + + Dom\HTMLDocument::saveXml + XML 文字列としてドキュメントをシリアライズする + + + + &reftitle.description; + + public stringfalseDom\HTMLDocument::saveXml + Dom\Nodenullnode&null; + intoptions0 + + + ドキュメントを XML 文字列としてシリアライズします。 + + + + + &reftitle.parameters; + + + node + + + シリアライズするノード。 + 指定しない場合、ドキュメント全体がシリアライズされます。 + + + + + options + + &dom.parameters.serialize.options; + + + + + + + &reftitle.returnvalues; + + 現在のドキュメントのエンコーディングでシリアライズされた、 + XML を返します。 + 失敗した場合は、&false; を返します。 + + + + + &reftitle.errors; + + &dom.errors.compliant.wrong_document; + + + + + &reftitle.seealso; + + Dom\HTMLDocument::saveXmlFile + Dom\XMLDocument::saveHtml + + + + + diff --git a/reference/dom/dom/htmldocument/savexmlfile.xml b/reference/dom/dom/htmldocument/savexmlfile.xml new file mode 100644 index 0000000000..2515d98318 --- /dev/null +++ b/reference/dom/dom/htmldocument/savexmlfile.xml @@ -0,0 +1,91 @@ + + + + + + Dom\HTMLDocument::saveXmlFile + ドキュメントを XML ファイルとしてシリアライズする + + + + &reftitle.description; + + public intfalseDom\HTMLDocument::saveXmlFile + stringfilename + intoptions0 + + + ドキュメントを XML ファイルとしてシリアライズします。 + + + + + &reftitle.parameters; + + + filename + + + 保存先のファイルパス + + + + + options + + &dom.parameters.serialize.options; + + + + + + + &reftitle.returnvalues; + + 成功した場合は、書き出されたバイト数を返します。 + 失敗した場合は、&false; を返します。 + + + + + &reftitle.errors; + + + + filename が空文字列だったり、 + ヌルバイトが含まれていた場合、 + ValueError がスローされます。 + + + + + + + &reftitle.seealso; + + Dom\HTMLDocument::saveXml + Dom\HTMLDocument::saveHtmlFile + + + + + diff --git a/reference/dom/dom/parentnode/append.xml b/reference/dom/dom/parentnode/append.xml new file mode 100644 index 0000000000..12debd265d --- /dev/null +++ b/reference/dom/dom/parentnode/append.xml @@ -0,0 +1,50 @@ + + + + + + Dom\ParentNode::append + + + + + &reftitle.description; + + public voidDom\ParentNode::append + Dom\Nodestringnodes + + + + + + + + + + &reftitle.seealso; + + Dom\ParentNode::prepend + + + + + diff --git a/reference/dom/dom/parentnode/prepend.xml b/reference/dom/dom/parentnode/prepend.xml new file mode 100644 index 0000000000..f877877ee9 --- /dev/null +++ b/reference/dom/dom/parentnode/prepend.xml @@ -0,0 +1,50 @@ + + + + + + Dom\ParentNode::prepend + + + + + &reftitle.description; + + public voidDom\ParentNode::prepend + Dom\Nodestringnodes + + + + + + + + + + &reftitle.seealso; + + Dom\ParentNode::append + + + + + diff --git a/reference/dom/dom/parentnode/queryselector.xml b/reference/dom/dom/parentnode/queryselector.xml new file mode 100644 index 0000000000..6baf827088 --- /dev/null +++ b/reference/dom/dom/parentnode/queryselector.xml @@ -0,0 +1,82 @@ + + + + + + Dom\ParentNode::querySelector + CSS セレクタにマッチする最初の要素を返す + + + + &reftitle.description; + + public Dom\ElementnullDom\ParentNode::querySelector + stringselectors + + + selectors + で指定された CSS セレクタにマッチする、最初の要素を返します。 + + + + + &reftitle.parameters; + + + selectors + + + ひとつ以上の CSS セレクタを含む文字列 + + + + + + + + &reftitle.returnvalues; + + selectors にマッチする最初の + Dom\Element を返します。 + マッチする要素がない場合は、&null; を返します。 + + + + + &reftitle.errors; + + selectors + が有効な CSS セレクタの文字列でない場合、 + Dom\SYNTAX_ERR を指定した + DOMException がスローされます。 + + + + + &reftitle.seealso; + + Dom\ParentNode::querySelectorAll + + + + + diff --git a/reference/dom/dom/parentnode/queryselectorall.xml b/reference/dom/dom/parentnode/queryselectorall.xml new file mode 100644 index 0000000000..e17cab29f9 --- /dev/null +++ b/reference/dom/dom/parentnode/queryselectorall.xml @@ -0,0 +1,61 @@ + + + + + + Dom\ParentNode::querySelectorAll + CSS セレクタにマッチする要素の集合を返す + + + + &reftitle.description; + + public Dom\NodeListDom\ParentNode::querySelectorAll + stringselectors + + + selectors + で指定された CSS セレクタにマッチする、要素の集合を返します。 + + + + + + + &reftitle.returnvalues; + + selectors で指定された CSS セレクタにマッチする、 + 静的な要素の集合を返します。 + + + + + + + &reftitle.seealso; + + Dom\ParentNode::querySelector + + + + + diff --git a/reference/dom/dom/parentnode/replacechildren.xml b/reference/dom/dom/parentnode/replacechildren.xml new file mode 100644 index 0000000000..7b12afd793 --- /dev/null +++ b/reference/dom/dom/parentnode/replacechildren.xml @@ -0,0 +1,66 @@ + + + + + + Dom\ParentNode::replaceChildren + + + + + &reftitle.description; + + public voidDom\ParentNode::replaceChildren + Dom\Nodestringnodes + + + + + + + + + + &reftitle.examples; + + <methodname>Dom\ParentNode::replaceChildren</methodname> example + +

hi

test

hi2

'); + +$dom->documentElement->replaceChildren('foo', $dom->createElement('p'), 'bar'); +echo $dom->saveHtml(); +?> +]]> +
+ &example.outputs; + +foo

bar +]]> +
+
+
+ +
+ diff --git a/reference/dom/dom/text/splittext.xml b/reference/dom/dom/text/splittext.xml new file mode 100644 index 0000000000..8bd192ec98 --- /dev/null +++ b/reference/dom/dom/text/splittext.xml @@ -0,0 +1,41 @@ + + + + + + Dom\Text::splitText + + + + + &reftitle.description; + + public Dom\TextDom\Text::splitText + intoffset + + + + + + + + diff --git a/reference/dom/dom/tokenlist/add.xml b/reference/dom/dom/tokenlist/add.xml new file mode 100644 index 0000000000..0963dfddea --- /dev/null +++ b/reference/dom/dom/tokenlist/add.xml @@ -0,0 +1,96 @@ + + + + + + Dom\TokenList::add + 指定されたトークンをリストに追加する + + + + &reftitle.description; + + public voidDom\TokenList::add + stringtokens + + + 指定された tokens をリストに追加しますが、 + 既に存在しないものに限ります。 + + + + + &reftitle.parameters; + + + tokens + + + 追加するトークン + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.errors; + &dom.tokenlist.errors; + + + + &reftitle.examples; + + <methodname>Dom\TokenList::add</methodname> の例 + + 新しく作成したパラグラフ要素に、クラスを2つ追加します。 + + +createElement('p'); + +$classList = $p->classList; +$classList->add('font-bold', 'important'); + +echo $dom->saveHtml($p); +?> +]]> + + &example.outputs; + +

+]]> +
+
+
+
+ diff --git a/reference/dom/dom/tokenlist/contains.xml b/reference/dom/dom/tokenlist/contains.xml new file mode 100644 index 0000000000..f9ab966666 --- /dev/null +++ b/reference/dom/dom/tokenlist/contains.xml @@ -0,0 +1,93 @@ + + + + + + Dom\TokenList::contains + 指定されたトークンがリストに含まれるかを返す + + + + &reftitle.description; + + public boolDom\TokenList::contains + stringtoken + + + token がリストに含まれるかを返します。 + + + + + &reftitle.parameters; + + + token + + + トークン + + + + + + + + &reftitle.returnvalues; + + token がリストに含まれる場合、&true; を返します。 + 含まれない場合、&false; を返します。 + + + + + &reftitle.examples; + + <methodname>Dom\TokenList::contains</methodname> の例 + + 2つのクラスが、パラグラフに含まれるかを調べます + + +

', LIBXML_NOERROR); +$p = $dom->body->firstChild; + +$classList = $p->classList; +var_dump( + $classList->contains('important'), + $classList->contains('font-small'), +); +?> +]]> +
+ &example.outputs; + + + +
+
+
+ diff --git a/reference/dom/dom/tokenlist/count.xml b/reference/dom/dom/tokenlist/count.xml new file mode 100644 index 0000000000..697592fd94 --- /dev/null +++ b/reference/dom/dom/tokenlist/count.xml @@ -0,0 +1,52 @@ + + + + + + Dom\TokenList::count + リスト中のトークンの数を返す + + + + &reftitle.description; + + public intDom\TokenList::count + + + + リスト中のトークンの数を返します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + リスト中のトークンの数を返します。 + + + + diff --git a/reference/dom/dom/tokenlist/getiterator.xml b/reference/dom/dom/tokenlist/getiterator.xml new file mode 100644 index 0000000000..badd9f9e7c --- /dev/null +++ b/reference/dom/dom/tokenlist/getiterator.xml @@ -0,0 +1,52 @@ + + + + + + Dom\TokenList::getIterator + トークンリストを反復するイテレータを返す + + + + &reftitle.description; + + public IteratorDom\TokenList::getIterator + + + + トークンリストを反復するイテレータを返します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + トークンリストを反復するイテレータを返します。 + + + + diff --git a/reference/dom/dom/tokenlist/item.xml b/reference/dom/dom/tokenlist/item.xml new file mode 100644 index 0000000000..cd89f368bc --- /dev/null +++ b/reference/dom/dom/tokenlist/item.xml @@ -0,0 +1,102 @@ + + + + + + Dom\TokenList::item + リストからトークンを返す + + + + &reftitle.description; + + public stringnullDom\TokenList::item + intindex + + + リストの index に存在するトークンを返します。 + + + + + &reftitle.parameters; + + + index + + + トークンのインデックス + + + + + + + + &reftitle.returnvalues; + + index に存在するトークンを返します。 + インデックスが範囲外の場合は &null; を返します。 + + + + + &reftitle.examples; + + <methodname>Dom\TokenList::item</methodname> の例 + + 有効なインデックスと無効なインデックスにアクセスします + + +

', LIBXML_NOERROR); +$p = $dom->body->firstChild; + +$classList = $p->classList; +var_dump( + $classList->item(0), + $classList->item(100), +); +?> +]]> +
+ &example.outputs; + + + +
+
+ + + &reftitle.notes; + + + このメソッドは、配列にアクセスする記法を使うことと同等です。 + + + +
+ diff --git a/reference/dom/dom/tokenlist/remove.xml b/reference/dom/dom/tokenlist/remove.xml new file mode 100644 index 0000000000..95b4b4bc0e --- /dev/null +++ b/reference/dom/dom/tokenlist/remove.xml @@ -0,0 +1,95 @@ + + + + + + Dom\TokenList::remove + リストから、指定されたトークンを削除する + + + + &reftitle.description; + + public voidDom\TokenList::remove + stringtokens + + + リストから、指定された tokens を削除しますが、 + 存在しない場合は無視されます。 + + + + + &reftitle.parameters; + + + tokens + + + 削除するトークン + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.errors; + &dom.tokenlist.errors; + + + + &reftitle.examples; + + <methodname>Dom\TokenList::remove</methodname> の例 + + パラグラフからクラスを2つ削除します。 + + +

', LIBXML_NOERROR); +$p = $dom->body->firstChild; + +$p->classList->remove('font-bold', 'important'); + +echo $dom->saveHtml($p); +?> +]]> +
+ &example.outputs; + +

+]]> +
+
+
+
+ diff --git a/reference/dom/dom/tokenlist/replace.xml b/reference/dom/dom/tokenlist/replace.xml new file mode 100644 index 0000000000..c239b0954b --- /dev/null +++ b/reference/dom/dom/tokenlist/replace.xml @@ -0,0 +1,104 @@ + + + + + + Dom\TokenList::replace + リスト中のトークンを別のものに置き換える + + + + &reftitle.description; + + public boolDom\TokenList::replace + stringtoken + stringnewToken + + + リスト中のトークンを別のものに置き換えます。 + + + + + &reftitle.parameters; + + + token + + + 置き換えるトークン + + + + + newToken + + + 新しいトークン + + + + + + + + &reftitle.returnvalues; + + token がリスト中に存在した場合は &true; を返します。 + 存在しない場合は、&false; を返します。 + + + + + &reftitle.errors; + &dom.tokenlist.errors; + + + + &reftitle.examples; + + <methodname>Dom\TokenList::replace</methodname> の例 + + パラグラフ中のトークンを別のものに置き換えます + + +

', LIBXML_NOERROR); +$p = $dom->body->firstChild; + +$p->classList->replace('font-bold', 'font-small'); + +echo $dom->saveHtml($p); +?> +]]> +
+ &example.outputs; + +

+]]> +
+
+
+
+ diff --git a/reference/dom/dom/tokenlist/supports.xml b/reference/dom/dom/tokenlist/supports.xml new file mode 100644 index 0000000000..e1278347c7 --- /dev/null +++ b/reference/dom/dom/tokenlist/supports.xml @@ -0,0 +1,70 @@ + + + + + + Dom\TokenList::supports + 指定されたトークンをサポートしているかを返す + + + + &reftitle.description; + + public boolDom\TokenList::supports + stringtoken + + + token を、 + 関連した属性がサポートしているかを返します。 + + + + + &reftitle.parameters; + + + token + + + トークン + + + + + + + + &reftitle.returnvalues; + + &return.success; + + + + + &reftitle.errors; + + 属性がサポート済みのトークンリストを定義していない場合は、 + TypeError がスローされます。 + + + + diff --git a/reference/dom/dom/tokenlist/toggle.xml b/reference/dom/dom/tokenlist/toggle.xml new file mode 100644 index 0000000000..48ab29d612 --- /dev/null +++ b/reference/dom/dom/tokenlist/toggle.xml @@ -0,0 +1,111 @@ + + + + + + Dom\TokenList::toggle + リスト中のトークンの存否を切り換える + + + + &reftitle.description; + + public boolDom\TokenList::toggle + stringtoken + boolnullforce&null; + + + リスト中の token の存否を切り換えます。 + + + + + &reftitle.parameters; + + + token + + + 切り替えるトークン + + + + + force + + + force を &true; に指定すると、 + トークンを追加します。&false; に指定すると、 + トークンを削除します。 + + + + + + + + &reftitle.returnvalues; + + このメソッドをコールした後、 + トークンがリスト中に存在していれば &true; を返します。 + 存在しない場合は、&false; を返します。 + + + + + &reftitle.errors; + &dom.tokenlist.errors; + + + + &reftitle.examples; + + <methodname>Dom\TokenList::toggle</methodname> の例 + + 3つのクラスを切り替えます。 + 2つは force を指定せず、 + 1つは指定します + + +

', LIBXML_NOERROR); +$p = $dom->body->firstChild; + +$classList = $p->classList; +$classList->toggle('font-bold', 'font-small'); +$classList->toggle('important', force: true); + +echo $dom->saveHtml($p); +?> +]]> +
+ &example.outputs; + +

+]]> +
+
+
+
+ diff --git a/reference/dom/domattr.xml b/reference/dom/domattr.xml index 0583dff7f7..9f434b7950 100644 --- a/reference/dom/domattr.xml +++ b/reference/dom/domattr.xml @@ -1,8 +1,8 @@ - + - + <classname>DOMAttr</classname> クラス DOMAttr @@ -22,26 +22,22 @@ &reftitle.classsynopsis; - - DOMAttr - - - - - DOMAttr - - - - - extends - DOMNode - - - - - + + + DOMAttr + + + + extends + DOMNode + + + &InheritedConstants; + + + + &Properties; - public readonly @@ -51,39 +47,44 @@ public readonly - DOMElement - ownerElement + bool + specified public - readonly - bool - schemaTypeInfo + string + value public readonly - bool - specified + DOMElementnull + ownerElement public - string - value + readonly + mixed + schemaTypeInfo &InheritedProperties; - + &Methods; - - - + + + + + + + &InheritedMethods; - - + + + @@ -102,7 +103,7 @@ ownerElement - 属性を保持する要素 + 属性を保持する要素。存在しない場合は &null; になります。 @@ -114,13 +115,24 @@ specified - 未実装です。常に &null; を返します。 + 未実装です。常に &true; を返します。 value 属性の値 + + + 値を設定する際には、XML のエンティティが展開されるので注意してください。 + つまり、& 文字は特別な意味を持ちます。 + value& + が含まれている場合、それを直接設定すると処理が失敗します。 + エンティティの展開を避けるためには、 + DOMElement::setAttribute + を代わりに使います。 + + @@ -142,8 +154,7 @@ &reference.dom.entities.domattr; - - + - diff --git a/reference/dom/domattr/construct.xml b/reference/dom/domattr/construct.xml index 8a13ade959..0a91737afc 100644 --- a/reference/dom/domattr/construct.xml +++ b/reference/dom/domattr/construct.xml @@ -1,25 +1,25 @@ - - + + DOMAttr::__construct 新しい DOMAttr オブジェクトを作成する &reftitle.description; - + public DOMAttr::__construct stringname - stringvalue - + stringvalue"" + 新しい DOMAttr オブジェクトを作成します。 このオブジェクトは読み込み専用です。このオブジェクトはドキュメントに 追加することができますが、さらに追加のノードを付け加えるためには ノードをドキュメントに関連付ける必要があります。書き込み可能な ノードを作成するには、 - + を使用します。 @@ -55,7 +55,7 @@ appendChild(new DOMElement('root')); $attr = $element->setAttributeNode(new DOMAttr('attr', 'attrvalue')); echo $dom->saveXML(); @@ -67,7 +67,7 @@ echo $dom->saveXML(); - + ]]> @@ -82,7 +82,6 @@ echo $dom->saveXML(); - - + - + DOMAttr::isId @@ -11,7 +11,7 @@ &reftitle.description; - + public boolDOMAttr::isId @@ -21,16 +21,23 @@ DOM 標準規格によると、DTD では ID 型の属性 ID が定義されていなければ なりません。この関数を使用する前には、 - - あるいは DOMDocument::validateOnParse を使用して + + あるいは DOMDocument::$validateOnParse を使用して ドキュメントを検証する必要があります。 + + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; - - &return.success; - + + この属性が定義済みのIDであれば、&true; を返します。 + それ以外の場合、&false; を返します。 + &reftitle.examples; @@ -41,11 +48,11 @@ validateOnParse = true; -$doc->Load('book.xml'); +$doc->load('examples/book-docbook.xml'); // chapter 要素から、id という名前の属性を取得します $attr = $doc->getElementsByTagName('chapter')->item(0)->getAttributeNode('id'); @@ -59,7 +66,6 @@ var_dump($attr->isId()); // bool(true) - - + - - + DOMCdataSection クラス DOMCdataSection @@ -25,50 +24,47 @@ &reftitle.classsynopsis; - - DOMCdataSection - - - - - DOMCdataSection - - - - extends - DOMText - - - + + + DOMCdataSection + + + + extends + DOMText + + + &InheritedConstants; + + + &InheritedProperties; - + - + - + - メソッド - - + &Methods; + + - - 継承したメソッド - - + &InheritedMethods; + + + + + + + + - - - @@ -77,8 +73,7 @@ &reference.dom.entities.domcdatasection; - - + - + @@ -10,9 +10,9 @@ &reftitle.description; - + public DOMCdataSection::__construct - stringvalue + stringdata 新しい CDATA ノードを作成します。これは、DOMText @@ -24,7 +24,7 @@ &reftitle.parameters; - value + data CDATA ノードの値。省略した場合は、空の CDATA ノードを作成します。 @@ -74,7 +74,6 @@ echo $dom->saveXML(); - - + - + DOMCharacterData クラス DOMCharacterData @@ -22,26 +22,27 @@ &reftitle.classsynopsis; - - DOMCharacterData - - - - - DOMCharacterData - - - - - extends - DOMNode - - - - - + + + DOMCharacterData + + + + extends + DOMNode + + + + implements + DOMChildNode + + + &InheritedConstants; + + + + &Properties; - public string @@ -53,19 +54,34 @@ int length + + public + readonly + DOMElementnull + previousElementSibling + + + public + readonly + DOMElementnull + nextElementSibling + + &InheritedProperties; - + &Methods; - - - - &InheritedMethods; - + + + + &InheritedMethods; + + + @@ -87,10 +103,52 @@ 内容の長さ。
+ + nextElementSibling + + 次の兄弟要素。存在しない場合は &null; になります。 + + + + previousElementSibling + + 前の兄弟要素。存在しない場合は &null; になります。 + +
- + +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + プロパティ nextElementSibling と + previousElementSibling が追加されました。 + + + + 8.0.0 + + DOMCharacterData は、 + DOMChildNode を実装しました。 + + + + + +
+
&reftitle.seealso; @@ -104,8 +162,7 @@ &reference.dom.entities.domcharacterdata; - - + - diff --git a/reference/dom/domcharacterdata/after.xml b/reference/dom/domcharacterdata/after.xml new file mode 100644 index 0000000000..c6fc6260cc --- /dev/null +++ b/reference/dom/domcharacterdata/after.xml @@ -0,0 +1,84 @@ + + + + + + DOMCharacterData::after + 文字データの後ろにノードを追加する + + + + &reftitle.description; + + public voidDOMCharacterData::after + DOMNodestringnodes + + + 渡された nodes を文字データの後ろに追加します。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMCharacterData::after</methodname> の例 + + 文字データの後ろにノードを追加します。 + + +loadXML(""); +$cdata = $doc->documentElement->firstChild; + +$cdata->after("beautiful", $doc->createElement("world")); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + +beautiful +]]> + + + + + + &reftitle.seealso; + + DOMChildNode::after + DOMCharacterData::before + + + + + diff --git a/reference/dom/domcharacterdata/appenddata.xml b/reference/dom/domcharacterdata/appenddata.xml index 1355158a52..5f879e7230 100644 --- a/reference/dom/domcharacterdata/appenddata.xml +++ b/reference/dom/domcharacterdata/appenddata.xml @@ -1,8 +1,8 @@ - + - + DOMCharacterData::appendData @@ -11,8 +11,8 @@ &reftitle.description; - - public voidDOMCharacterData::appendData + + public trueDOMCharacterData::appendData stringdata @@ -37,9 +37,30 @@ &reftitle.returnvalues; - &return.void; + &return.true.always; + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + この関数の仮の戻り値の型が、true になりました。 + + + + + + &reftitle.seealso; @@ -52,7 +73,6 @@ - + + + + DOMCharacterData::before + 文字データの前にノードを追加する + + + + &reftitle.description; + + public voidDOMCharacterData::before + DOMNodestringnodes + + + 渡された nodes を文字データの前に追加します。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMCharacterData::before</methodname> の例 + + 文字データの前にノードを追加します。 + + +loadXML(""); +$cdata = $doc->documentElement->firstChild; + +$cdata->before("hello", $doc->createElement("beautiful")); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + +hello +]]> + + + + + + &reftitle.seealso; + + DOMChildNode::before + DOMCharacterData::after + + + + + diff --git a/reference/dom/domcharacterdata/deletedata.xml b/reference/dom/domcharacterdata/deletedata.xml index fb2895af7e..ce0900cd15 100644 --- a/reference/dom/domcharacterdata/deletedata.xml +++ b/reference/dom/domcharacterdata/deletedata.xml @@ -1,18 +1,18 @@ - + - + DOMCharacterData::deleteData - 指定した範囲の文字列をノードから削除する + 指定した範囲の文字列を文字列データから削除する &reftitle.description; - - public voidDOMCharacterData::deleteData + + public boolDOMCharacterData::deleteData intoffset intcount @@ -50,7 +50,7 @@ &reftitle.returnvalues; - &return.void; + &return.success; @@ -61,9 +61,9 @@ DOM_INDEX_SIZE_ERR - offset が負、あるいは 16 ビット単位の - データ長より大きい場合、または count が - 負の場合に発生します。 + offset が負、 + あるいはデータ中の UTF-8 コードポイントの数より大きい場合、 + または count が負の場合に発生します。 @@ -82,7 +82,6 @@ - - + - + DOMCharacterData::insertData - 指定した 16 ビット単位のオフセットに、文字列を挿入する + 指定した UTF-8 コードポイントのオフセットに、文字列を挿入する &reftitle.description; - - public voidDOMCharacterData::insertData + + public boolDOMCharacterData::insertData intoffset stringdata @@ -47,7 +47,7 @@ &reftitle.returnvalues; - &return.void; + &return.success; @@ -58,8 +58,8 @@ DOM_INDEX_SIZE_ERR - offset が負であるか、あるいは 16 ビット単位の - データ長より大きい場合に発生します。 + offset が負であるか、 + データ中の UTF-8 コードポイントの数より大きい場合に発生します。 @@ -78,7 +78,6 @@ - + + + + DOMCharacterData::remove + CDATAノードを削除する + + + + &reftitle.description; + + public voidDOMCharacterData::remove + + + + CDATA ノードを削除します。 + + + + + + + + &reftitle.examples; + + <methodname>DOMCharacterData::remove</methodname> の例 + + 文字データを削除します。 + + +loadXML(""); +$cdata = $doc->documentElement->firstChild; + +$cdata->remove(); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + + +]]> + + + + + + &reftitle.seealso; + + DOMChildNode::remove + DOMCharacterData::after + DOMCharacterData::before + DOMCharacterData::replaceWith + DOMNode::removeChild + + + + + diff --git a/reference/dom/domcharacterdata/replacedata.xml b/reference/dom/domcharacterdata/replacedata.xml index 178bab89ff..0cccf8c3eb 100644 --- a/reference/dom/domcharacterdata/replacedata.xml +++ b/reference/dom/domcharacterdata/replacedata.xml @@ -1,18 +1,18 @@ - + - + DOMCharacterData::replaceData - DOMCharacterData ノードの文字列の一部を置換する + 文字データの文字列の一部を置換する &reftitle.description; - - public voidDOMCharacterData::replaceData + + public boolDOMCharacterData::replaceData intoffset intcount stringdata @@ -59,7 +59,7 @@ &reftitle.returnvalues; - &return.void; + &return.success; @@ -70,9 +70,9 @@ DOM_INDEX_SIZE_ERR - offset が負、あるいは 16 ビット単位の - データ長より大きい場合、または count が - 負の場合に発生します。 + offset が負、 + あるいは データ中の UTF-8 コードポイントの数より大きい場合、 + または count が負の場合に発生します。 @@ -91,7 +91,6 @@ - + + + + DOMCharacterData::replaceWith + 文字データを新しいノードで置き換える + + + + &reftitle.description; + + public voidDOMCharacterData::replaceWith + DOMNodestringnodes + + + 文字データを新しい nodes で置き換えます。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMCharacterData::replaceWith</methodname> の例 + + 文字データを新しいノードで置き換えます。 + + +loadXML(""); +$cdata = $doc->documentElement->firstChild; + +$cdata->replaceWith("beautiful", $doc->createElement("world")); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + +beautiful +]]> + + + + + + &reftitle.seealso; + + DOMChildNode::replaceWith + DOMCharacterData::after + DOMCharacterData::before + DOMCharacterData::remove + + + + + diff --git a/reference/dom/domcharacterdata/substringdata.xml b/reference/dom/domcharacterdata/substringdata.xml index 10c6a110f1..c4fe888fda 100644 --- a/reference/dom/domcharacterdata/substringdata.xml +++ b/reference/dom/domcharacterdata/substringdata.xml @@ -1,18 +1,18 @@ - + - + DOMCharacterData::substringData - ノードから指定した範囲のデータを抽出する + 文字データから指定した範囲のデータを抽出する &reftitle.description; - - public stringDOMCharacterData::substringData + + public stringfalseDOMCharacterData::substringData intoffset intcount @@ -49,7 +49,7 @@ 指定された部分文字列を返します。 offsetcount の和が文字列の長さをこえている場合、データの末尾までのすべての - 16 ビット単位が返されます。 + UTF-8 コードポイントが返されます。 @@ -60,9 +60,9 @@ DOM_INDEX_SIZE_ERR - offset が負、あるいは 16 ビット単位の - データ長より大きい場合、または count が - 負の場合に発生します。 + offset が負、 + あるいはデータ中の UTF-8 コードポイントの数より大きい場合、 + または count が負の場合に発生します。 @@ -81,7 +81,6 @@ - + + + DOMChildNode インターフェイス + DOMChildNode + + + +
+ &reftitle.interfacesynopsis; + + + + + DOMChildNode + + + &Methods; + + + + + + +
+ +
+ + &reference.dom.entities.domchildnode; + +
+ diff --git a/reference/dom/domchildnode/after.xml b/reference/dom/domchildnode/after.xml new file mode 100644 index 0000000000..efa773bc3d --- /dev/null +++ b/reference/dom/domchildnode/after.xml @@ -0,0 +1,118 @@ + + + + + + DOMChildNode::after + ノードの後ろにノードを追加する + + + + &reftitle.description; + + public voidDOMChildNode::after + DOMNodestringnodes + + + 渡された nodes をノードの後ろに追加します。 + + + + + &reftitle.parameters; + + + + nodes + + + ノードの後ろに追加されるノード。 + 文字列は自動的にテキストノードに変換されます。 + + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.errors; + + &dom.errors.hierarchy.parent; + &dom.errors.wrong_document; + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + 親がないノードに対して、 + このメソッドをコールしても何もしなくなりました。 + これは DOM の仕様が要求する振る舞いに合わせるためです。 + &dom.changelog.previous_hierarchy_exception; + + + + 8.3.0 + + オーナーとなるドキュメントがないノードに対して、 + このメソッドをコールしても動作するようになりました。 + &dom.changelog.previous_hierarchy_exception; + + + + + + + + + &reftitle.seealso; + + + DOMChildNode::before + DOMChildNode::remove + DOMChildNode::replaceWith + DOMNode::appendChild + + + + + + diff --git a/reference/dom/domchildnode/before.xml b/reference/dom/domchildnode/before.xml new file mode 100644 index 0000000000..2ff2e0f289 --- /dev/null +++ b/reference/dom/domchildnode/before.xml @@ -0,0 +1,109 @@ + + + + + + DOMChildNode::before + ノードの前にノードを追加する + + + + &reftitle.description; + + public voidDOMChildNode::before + DOMNodestringnodes + + + 渡された nodes をノードの前に追加します。 + + + + + &reftitle.parameters; + + + + nodes + + + ノードの前に追加されるノード。 + 文字列は自動的にテキストノードに変換されます。 + + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.errors; + + &dom.errors.hierarchy.parent; + &dom.errors.wrong_document; + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + 親がないノードに対して、 + このメソッドをコールしても何もしなくなりました。 + これは DOM の仕様が要求する振る舞いに合わせるためです。 + &dom.changelog.previous_hierarchy_exception; + + + + + + + + + &reftitle.seealso; + + + DOMChildNode::after + DOMChildNode::remove + DOMChildNode::replaceWith + + + + + + diff --git a/reference/dom/domchildnode/remove.xml b/reference/dom/domchildnode/remove.xml new file mode 100644 index 0000000000..2f70975502 --- /dev/null +++ b/reference/dom/domchildnode/remove.xml @@ -0,0 +1,65 @@ + + + + + + DOMChildNode::remove + ノードを削除する + + + + &reftitle.description; + + public voidDOMChildNode::remove + + + + ノードを削除します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.seealso; + + + DOMChildNode::after + DOMChildNode::before + DOMChildNode::replaceWith + DOMNode::removeChild + + + + + + diff --git a/reference/dom/domchildnode/replacewith.xml b/reference/dom/domchildnode/replacewith.xml new file mode 100644 index 0000000000..c86b4e64de --- /dev/null +++ b/reference/dom/domchildnode/replacewith.xml @@ -0,0 +1,110 @@ + + + + + + DOMChildNode::replaceWith + ノードを新しいノードで置き換える + + + + &reftitle.description; + + public voidDOMChildNode::replaceWith + DOMNodestringnodes + + + ノードを新しい nodes で置き換えます。 + + + + + &reftitle.parameters; + + + + nodes + + + 置き換えるノード。 + 文字列は自動的にテキストノードに変換されます。 + + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.errors; + + &dom.errors.hierarchy.parent; + &dom.errors.wrong_document; + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + 親がないノードに対して、 + このメソッドをコールしても何もしなくなりました。 + これは DOM の仕様が要求する振る舞いに合わせるためです。 + &dom.changelog.previous_hierarchy_exception; + + + + + + + + + &reftitle.seealso; + + + DOMChildNode::after + DOMChildNode::before + DOMChildNode::remove + DOMNode::replaceChild + + + + + + diff --git a/reference/dom/domcomment.xml b/reference/dom/domcomment.xml index 8eb3f96789..f2a6eaa895 100644 --- a/reference/dom/domcomment.xml +++ b/reference/dom/domcomment.xml @@ -1,8 +1,8 @@ - + - + DOMComment クラス DOMComment @@ -22,40 +22,41 @@ &reftitle.classsynopsis; - - DOMComment - - - - - DOMComment - - - - - extends - DOMCharacterData - - - - + + + DOMComment + + + + extends + DOMCharacterData + + + &InheritedConstants; + + + &InheritedProperties; - + - + - + &Methods; - - - - &InheritedMethods; - - + + + + &InheritedMethods; + + + + + + @@ -74,8 +75,7 @@ &reference.dom.entities.domcomment; - - + - diff --git a/reference/dom/domcomment/construct.xml b/reference/dom/domcomment/construct.xml index 04e4b4f012..5c6cb91635 100644 --- a/reference/dom/domcomment/construct.xml +++ b/reference/dom/domcomment/construct.xml @@ -1,7 +1,7 @@ - - + + DOMComment::__construct @@ -10,16 +10,16 @@ &reftitle.description; - + public DOMComment::__construct - stringvalue - + stringdata"" + 新しい DOMComment オブジェクトを作成します。 このオブジェクトは読み込み専用です。このオブジェクトをドキュメントに 追加することが可能ですが、ノードがドキュメントと関連付けられるまでは ノードを追加することはできません。書き込み可能なノードを作成するには、 - を使用します。 + を使用します。 @@ -27,7 +27,7 @@ - value + data コメントの値。 @@ -66,7 +66,6 @@ echo $dom->saveXML(); /* - + - + DOMDocument クラス DOMDocument @@ -22,143 +22,164 @@ &reftitle.classsynopsis; - - DOMDocument - - - - - DOMDocument - - - - - extends - DOMNode - - - - - + + + DOMDocument + + + + extends + DOMNode + + + + implements + DOMParentNode + + + &InheritedConstants; + + + + &Properties; - public readonly - string - actualEncoding + DOMDocumentTypenull + doctype public readonly - DOMConfiguration - config + DOMImplementation + implementation public readonly - DOMDocumentType - doctype + DOMElementnull + documentElement public readonly - DOMElement - documentElement + stringnull + actualEncoding public - string - documentURI + stringnull + encoding public - string - encoding + readonly + stringnull + xmlEncoding public bool - formatOutput + standalone public - readonly - DOMImplementation - implementation + bool + xmlStandalone public - bool - preserveWhiteSpace - &true; + stringnull + version + + + public + stringnull + xmlVersion public bool - recover + strictErrorChecking + + + public + stringnull + documentURI + + + public + readonly + mixed + config public bool - resolveExternals + formatOutput public bool - standalone + validateOnParse public bool - strictErrorChecking - &true; + resolveExternals public bool - substituteEntities + preserveWhiteSpace public bool - validateOnParse - &false; + recover public - string - version + bool + substituteEntities public readonly - string - xmlEncoding + DOMElementnull + firstElementChild public - bool - xmlStandalone + readonly + DOMElementnull + lastElementChild public - string - xmlVersion + readonly + int + childElementCount &InheritedProperties; - + &Methods; - - - - &InheritedMethods; - + + + + + + + &InheritedMethods; + + + @@ -172,18 +193,24 @@ actualEncoding - 非推奨。ドキュメントの実際のエンコーディング。 + PHP8.4.0より非推奨。ドキュメントの実際のエンコーディング。 読み込み専用で、 encoding と同等の内容です。 + + childElementCount + + 子要素の数 + + config - 非推奨。 + PHP8.4.0より非推奨DOMDocument::normalizeDocument を実行する際に使用する設定。 @@ -199,8 +226,8 @@ documentElement - ドキュメントの子ノードであるドキュメント要素に対し、 - 直接アクセスするために便利な属性 + 最初のドキュメント要素を示す DOMElement オブジェクト。 + 存在しない場合は &null; になります。 @@ -220,10 +247,21 @@ + + firstElementChild + + 最初の子要素。存在しない場合は &null; になります。 + + formatOutput - 字下げや空白を考慮してきれいに整形した出力を行う。 + + 字下げや空白を考慮してきれいに整形した出力を行う。 + これは、ドキュメントを + preserveWhitespace + を有効にして読み込んだ場合は効果がありません。 + @@ -235,19 +273,30 @@ + + lastElementChild + + 最後の子要素。存在しない場合は &null; になります。 + + preserveWhiteSpace - 余分な空白を取り除かない。デフォルトは &true; + + 余分な空白を取り除かない。デフォルトは &true; + &false; に設定すると、 + DOMDocument::loadoption + に LIBXML_NOBLANKS を渡すのと同じ効果があります。 + recover - プロプライエタリ。 + 非標準。 リカバリーモードを有効にし、整形式でないドキュメントのパースを試みます。 - この属性は DOM の仕様にはなく、libxml に固有のものです。 + この属性は DOM の仕様にはなく、libxml 固有の独自仕様です。 @@ -281,9 +330,10 @@ substituteEntities - プロプライエタリ。 + 非標準。 エンティティの置換を行うかどうか。 - この属性は DOM の仕様にはなく、libxml に固有のものです。 + この属性は DOM の仕様にはなく、libxml 固有の独自仕様です。 + デフォルトは &false; です。 @@ -296,6 +346,11 @@ validateOnParse DTD を読み込んで検証する。デフォルトは &false; + + + DTD の検証を有効にすると、XML外部エンティティ参照攻撃(XXE) を容易にしてしまうかもしれません。 + + @@ -325,6 +380,10 @@ XML 宣言の一部として、このドキュメントがスタンドアローンか どうかを指定する。指定されていない場合は &false; + スタンドアローンドキュメントとは、 + 外部のマークアップ宣言を持たないドキュメントのことです。 + スタンドアローンドキュメントの例としては、 + DTD がデフォルトの値で宣言されているものが挙げられます。 @@ -342,6 +401,44 @@
+
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + actualEncoding と + config は正式に非推奨となりました。 + + + + 8.0.0 + + DOMDocument は、 + DOMParentNode を実装しました。 + + + + 8.0.0 + + 実装されていなかったメソッド + DOMDocument::renameNode + が削除されました。 + + + + + +
+
&reftitle.notes; @@ -365,8 +462,7 @@ &reference.dom.entities.domdocument; - - + - diff --git a/reference/dom/domdocument/adoptnode.xml b/reference/dom/domdocument/adoptnode.xml new file mode 100644 index 0000000000..c58c38a012 --- /dev/null +++ b/reference/dom/domdocument/adoptnode.xml @@ -0,0 +1,121 @@ + + + + + + DOMDocument::adoptNode + ノードを別のドキュメントに移す + + + + &reftitle.description; + + public DOMNodefalseDOMDocument::adoptNode + DOMNodenode + + + ノードを別のドキュメントから、現在のドキュメントに移します。 + + + + + &reftitle.parameters; + + + + node + + + 移すノード + + + + + + + + + &reftitle.returnvalues; + + 移したノードを返します。エラー時に &false; を返します。 + + + + + &reftitle.errors; + + + DOM_NOT_SUPPORTED_ERR + + + ノードの型が、転送先のノードでサポートされていない場合に発生します。 + + + + + + + + &reftitle.examples; + + <methodname>DOMDocument::adoptNode</methodname> の例 + + 最初のドキュメントの hello 要素を二番目のものに移します。 + + +loadXML(""); +$hello = $doc1->documentElement->firstChild; + +$doc2 = new DOMDocument; +$doc2->loadXML(""); +$doc2->documentElement->appendChild($doc2->adoptNode($hello)); + +echo $doc1->saveXML() . PHP_EOL . PHP_EOL; +echo $doc2->saveXML(); +?> +]]> + + &example.outputs; + + + + + + +]]> + + + + + + &reftitle.seealso; + + DOMDocument::importNode + + + + + diff --git a/reference/dom/domdocument/append.xml b/reference/dom/domdocument/append.xml new file mode 100644 index 0000000000..c43ee3a566 --- /dev/null +++ b/reference/dom/domdocument/append.xml @@ -0,0 +1,85 @@ + + + + + + DOMDocument::append + 最後の子ノードの後ろにノードを追加する + + + + &reftitle.description; + + public voidDOMDocument::append + DOMNodestringnodes + + + ひとつ以上の nodes を子要素のリストに追加します。 + 追加されるのは、最後の子ノードの後ろになります。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMDocument::append</methodname> の例 + + ドキュメントのルートの後ろにノードを追加します。 + + +loadXML(""); + +$doc->append("beautiful", $doc->createElement("world")); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + +beautiful + +]]> + + + + + + &reftitle.seealso; + + DOMParentNode::append + DOMDocument::prepend + + + + + diff --git a/reference/dom/domdocument/construct.xml b/reference/dom/domdocument/construct.xml index 7fa8764a52..3b17e72504 100644 --- a/reference/dom/domdocument/construct.xml +++ b/reference/dom/domdocument/construct.xml @@ -1,7 +1,7 @@ - - + + DOMDocument::__construct @@ -10,11 +10,11 @@ &reftitle.description; - + public DOMDocument::__construct - stringversion - stringencoding - + stringversion"1.0" + stringencoding"" + 新しい DOMDocument オブジェクトを作成します。 @@ -70,7 +70,6 @@ echo $dom->saveXML(); /* */ - - + DOMDocument::createAttribute @@ -8,9 +8,9 @@ &reftitle.description; - - public DOMAttrDOMDocument::createAttribute - stringname + + public DOMAttrfalseDOMDocument::createAttribute + stringlocalName この関数は、DOMAttr クラスの新しいインスタンスを作成します。 @@ -22,7 +22,7 @@ - name + localName 属性の名前。 @@ -47,7 +47,7 @@ DOM_INVALID_CHARACTER_ERR - name が無効な文字を含んでいる場合に発生します。 + localName が無効な文字を含んでいる場合に発生します。 @@ -72,7 +72,6 @@ - - + DOMDocument::createAttributeNS @@ -10,9 +10,9 @@ &reftitle.description; - - public DOMAttrDOMDocument::createAttributeNS - stringnamespaceURI + + public DOMAttrfalseDOMDocument::createAttributeNS + stringnullnamespace stringqualifiedName @@ -25,7 +25,7 @@ - namespaceURI + namespace 名前空間の URI。 @@ -70,7 +70,7 @@ qualifiedName が不正な形式である場合、あるいは qualifiedName がプレフィックスを含んでいる - にもかかわらず namespaceURI が &null; + にもかかわらず namespace が &null; である場合に発生します。 @@ -78,6 +78,33 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + prefix を指定せずにこのメソッドをコールしても、デフォルトの名前空間を仮定する代わりに prefix を選ぶようになりました。これより前のバージョンでは、prefix なしの属性を作成し、誤ってオーナーとなる要素の名前空間を適用していました。なぜなら、デフォルトの名前空間は属性には適用されないためです。 + + + + 8.3.0 + + オーナーとなる要素で prefix が既に異なる namespace URI で使われている場合にこのメソッドを呼び出しても、名前空間の衝突を避けるために新しく prefix を異なるものに変更するようになりました。これは DOM の仕様が要求する振る舞いに合わせるためです。これより前のバージョンでは、エラーコード DOM_NAMESPACE_ERR を持つ DOMException をスローしていました。 + + + + + + &reftitle.seealso; @@ -96,7 +123,6 @@ - - + DOMDocument::createCDATASection @@ -8,8 +8,8 @@ &reftitle.description; - - public DOMCDATASectionDOMDocument::createCDATASection + + public DOMCdataSectionfalseDOMDocument::createCDATASection stringdata @@ -57,7 +57,6 @@ - - + DOMDocument::createComment @@ -8,7 +8,7 @@ &reftitle.description; - + public DOMCommentDOMDocument::createComment stringdata @@ -32,13 +32,39 @@ + &reftitle.returnvalues; - 新しい DOMComment、あるいはエラーが発生した場合は - &false; を返します。 + 新しい DOMComment を返します。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.1.0 + + エラーが発生した場合に、 + DomException + をスローするようになりました。 + これより前のバージョンでは、&false; を返していました。 + + + + + + + &reftitle.seealso; @@ -57,7 +83,6 @@ - - + DOMDocument::createDocumentFragment @@ -8,7 +8,7 @@ &reftitle.description; - + public DOMDocumentFragmentDOMDocument::createDocumentFragment @@ -17,13 +17,45 @@ クラスの新しいインスタンスを作成します。&dom.node.inserted; + + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; - 新しい DOMDocumentFragment、あるいはエラーが発生した場合は - &false; を返します。 + 新しい DOMDocumentFragment を返します。 - + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.1.0 + + エラーが発生した場合に、 + DomException + をスローするようになりました。 + これより前のバージョンでは、&false; を返していました。 + + + + + + + + &reftitle.seealso; @@ -41,7 +73,6 @@ - - + DOMDocument::createElement @@ -8,10 +8,10 @@ &reftitle.description; - - public DOMElementDOMDocument::createElement - stringname - stringvalue + + public DOMElementfalseDOMDocument::createElement + stringlocalName + stringvalue"" この関数は、DOMElement @@ -24,7 +24,7 @@ - name + localName 要素のタグ名。 @@ -64,7 +64,7 @@ DOM_INVALID_CHARACTER_ERR - name が無効な文字を含んでいる場合に発生します。 + localName が無効な文字を含んでいる場合に発生します。 @@ -152,7 +152,6 @@ Warning: DOMDocument::createElement(): unterminated entity reference - - + DOMDocument::createElementNS @@ -10,11 +10,11 @@ &reftitle.description; - - public DOMElementDOMDocument::createElementNS - stringnamespaceURI + + public DOMElementfalseDOMDocument::createElementNS + stringnullnamespace stringqualifiedName - stringvalue + stringvalue"" この関数は、関連付けられた名前空間に新しい要素を作成します。 @@ -26,7 +26,7 @@ - namespaceURI + namespace 名前空間の URI。 @@ -168,7 +168,6 @@ item_type - - + DOMDocument::createEntityReference @@ -8,8 +8,8 @@ &reftitle.description; - - public DOMEntityReferenceDOMDocument::createEntityReference + + public DOMEntityReferencefalseDOMDocument::createEntityReference stringname @@ -74,7 +74,6 @@ - - + DOMDocument::createProcessingInstruction @@ -8,10 +8,10 @@ &reftitle.description; - - public DOMProcessingInstructionDOMDocument::createProcessingInstruction + + public DOMProcessingInstructionfalseDOMDocument::createProcessingInstruction stringtarget - stringdata + stringdata"" この関数は、DOMProcessingInstruction @@ -81,7 +81,6 @@ - - + DOMDocument::createTextNode @@ -8,9 +8,9 @@ &reftitle.description; - + public DOMTextDOMDocument::createTextNode - stringcontent + stringdata この関数は、DOMText @@ -22,7 +22,7 @@ - content + data テキストの内容。 @@ -32,13 +32,39 @@ + &reftitle.returnvalues; - 新しい DOMText、 - あるいがエラーが発生した場合には &false; を返します。 + 新しい DOMText を返します。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.1.0 + + エラーが発生した場合に、 + DomException + をスローするようになりました。 + これより前のバージョンでは、&false; を返していました。 + + + + + + + &reftitle.seealso; @@ -57,7 +83,6 @@ - - + @@ -9,21 +9,21 @@ &reftitle.description; - - public DOMElementDOMDocument::getElementById + + public DOMElementnullDOMDocument::getElementById stringelementId この関数は、 - + と同じですが、指定した ID から要素を検索する点が違います。 この関数を動作させるには、何らかの ID 属性を - + で設定するか、あるいは DTD で ID 型の属性を定義する必要があります。 後者の場合は、 - あるいは + あるいは DOMDocument::$validateOnParse を使用してドキュメントを検証する必要があります。 @@ -63,7 +63,7 @@ $doc = new DomDocument; // ID を参照する前に、ドキュメントを検証する必要があります $doc->validateOnParse = true; -$doc->Load('book.xml'); +$doc->load('examples/book.xml'); echo "ID が 'php-basics' の要素は " . $doc->getElementById('php-basics')->tagName . " です。\n"; @@ -87,7 +87,6 @@ ID が 'php-basics' の要素は book です。 - - + DOMDocument::getElementsByTagName @@ -8,9 +8,9 @@ &reftitle.description; - + public DOMNodeListDOMDocument::getElementsByTagName - stringname + stringqualifiedName この関数は、指定したローカルタグ名のすべての要素を含む @@ -22,7 +22,7 @@ - name + qualifiedName タグのローカル名 (名前空間を除いたもの) に一致する名前。* はすべてのタグに一致します。 @@ -85,7 +85,6 @@ Clean Code - - + DOMDocument::getElementsByTagNameNS @@ -10,9 +10,9 @@ &reftitle.description; - + public DOMNodeListDOMDocument::getElementsByTagNameNS - stringnamespaceURI + stringnullnamespace stringlocalName @@ -25,11 +25,12 @@ - namespaceURI + namespace 条件に一致する要素の名前空間 URI。 - * はすべての名前空間に一致します。 + "*" はすべての名前空間に一致します。 + &null; を渡すと、空の名前空間に一致します。 @@ -38,7 +39,7 @@ 条件に一致する要素のローカル名。 - * はすべてのローカル名に一致します。 + "*" はすべてのローカル名に一致します。 @@ -52,6 +53,29 @@ オブジェクトを返します。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.3 + + namespace は、nullable になりました。 + + + + + + + &reftitle.examples; @@ -107,7 +131,6 @@ local name: fallback, prefix: xi - - + @@ -9,9 +9,9 @@ &reftitle.description; - - public DOMNodeDOMDocument::importNode - DOMNodeimportedNode + + public DOMNodefalseDOMDocument::importNode + DOMNodenode booldeep&false; @@ -24,7 +24,7 @@ - importedNode + node インポートするノード。 @@ -35,7 +35,7 @@ deep - &true; の場合、このメソッドは importedNode + &true; の場合、このメソッドは node 以下のサブツリーも再帰的にインポートします。 @@ -126,7 +126,6 @@ The 'new document' after copying the nodes into it: - - + DOMDocument::load @@ -10,8 +10,8 @@ &reftitle.description; - - public mixedDOMDocument::load + + public boolDOMDocument::load stringfilename intoptions0 @@ -56,8 +56,6 @@ &reftitle.returnvalues; &return.success; - 静的にコールされた場合には DOMDocument を返します。 - &return.falseforfailure; @@ -68,7 +66,36 @@ この警告は libxml が発するものではないので、libxml のエラー処理関数では処理できません。 - &dom.allowstatic; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + この関数の仮の戻り値の型が、bool になりました。 + + + + 8.0.0 + + この関数を static メソッドとしてコールすると、 + Error がスローされるようになりました。 + これより前のバージョンでは、 + E_DEPRECATED が発生していました。 + + + + + &reftitle.examples; @@ -79,7 +106,7 @@ load('book.xml'); +$doc->load('examples/book.xml'); echo $doc->saveXML(); ?> ]]> @@ -98,7 +125,6 @@ echo $doc->saveXML(); - - + + DOMDocument::loadHTML @@ -10,7 +11,7 @@ &reftitle.description; - + public boolDOMDocument::loadHTML stringsource intoptions0 @@ -18,12 +19,9 @@ この関数は、文字列 source に含まれる HTML を パースします。XML を読み込む場合とは異なり、妥当な HTML でなくても - 読み込むことができます。この関数をスタティックにコールすると、 - 読み込んだ内容をもとに DOMDocument - オブジェクトを作成します。 - 読み込み前に DOMDocument のプロパティを - 設定する必要がない場合に、スタティックに実行することがあるでしょう。 + 読み込むことができます。 + &dom.domdocument.html5; &reftitle.parameters; @@ -40,12 +38,7 @@ options - - PHP 5.4.0 と Libxml 2.6.0 以降では、 - options パラメータで Libxml の追加パラメータ - を指定できます。 - + &dom.parameter.options; @@ -55,8 +48,6 @@ &reftitle.returnvalues; &return.success; - 静的にコールされた場合には DOMDocument を返します。 - &return.falseforfailure; @@ -66,9 +57,40 @@ この警告は libxml が発するものではないので、libxml のエラー処理関数では処理できません。 - &dom.allowstatic; &dom.malformederror; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + この関数の仮の戻り値の型が、bool になりました。 + + + + 8.0.0 + + この関数を static メソッドとしてコールすると、 + Error がスローされるようになりました。 + これより前のバージョンでは、 + E_DEPRECATED が発生していました。 + + + + + + + &reftitle.examples; @@ -87,30 +109,6 @@ echo $doc->saveHTML(); - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.4.0 - - options パラメータが追加されました。 - - - - - - - - &reftitle.seealso; @@ -122,7 +120,6 @@ echo $doc->saveHTML(); - - + + DOMDocument::loadHTMLFile @@ -10,7 +11,7 @@ &reftitle.description; - + public boolDOMDocument::loadHTMLFile stringfilename intoptions0 @@ -21,6 +22,7 @@ XML を読み込む場合とは異なり、妥当な HTML でなくても 読み込むことができます。 + &dom.domdocument.html5; &reftitle.parameters; @@ -37,12 +39,7 @@ options - - PHP 5.4.0 と Libxml 2.6.0 以降では、 - options パラメータで Libxml の追加パラメータ - を指定できます。 - + &dom.parameter.options; @@ -52,8 +49,6 @@ &reftitle.returnvalues; &return.success; - 静的にコールされた場合には DOMDocument を返します。 - &return.falseforfailure; @@ -65,9 +60,39 @@ linkend="function.libxml-use-internal-errors">libxml のエラー処理関数 では処理できません。 - &dom.allowstatic; &dom.malformederror; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + この関数の仮の戻り値の型が、bool になりました。+ + + + 8.0.0 + + この関数を static メソッドとしてコールすると、 + Error がスローされるようになりました。 + これより前のバージョンでは、 + E_DEPRECATED が発生していました。 + + + + + + + &reftitle.examples; @@ -86,30 +111,6 @@ echo $doc->saveHTML(); - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.4.0 - - options パラメータが追加されました。 - - - - - - - - &reftitle.seealso; @@ -121,7 +122,6 @@ echo $doc->saveHTML(); - - + DOMDocument::loadXML @@ -10,8 +10,8 @@ &reftitle.description; - - public mixedDOMDocument::loadXML + + public boolDOMDocument::loadXML stringsource intoptions0 @@ -50,8 +50,6 @@ &reftitle.returnvalues; &return.success; - 静的にコールされた場合には DOMDocument を返します。 - &return.falseforfailure; @@ -61,8 +59,38 @@ この警告は libxml が発するものではないので、libxml のエラー処理関数では処理できません。 - &dom.allowstatic; + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + この関数の仮の戻り値の型が、bool になりました。 + + + + 8.0.0 + + この関数を static メソッドとしてコールすると、 + Error がスローされるようになりました。 + これより前のバージョンでは、 + E_DEPRECATED が発生していました。 + + + + + + + &reftitle.examples; @@ -75,20 +103,6 @@ $doc = new DOMDocument(); $doc->loadXML(''); echo $doc->saveXML(); ?> -]]> - - - - - - <literal>loadXML</literal> の静的な起動 - -'); -echo $doc->saveXML(); -?> ]]> @@ -105,7 +119,6 @@ echo $doc->saveXML(); - - + DOMDocument::normalizeDocument @@ -8,7 +8,7 @@ &reftitle.description; - + public voidDOMDocument::normalizeDocument @@ -18,6 +18,11 @@ ドキュメントを "正規化された" 形式にします。 + + + &reftitle.parameters; + &no.function.parameters; + &reftitle.returnvalues; @@ -39,7 +44,6 @@ - + + + + DOMDocument::prepend + 最初の子ノードの前にノードを追加する + + + + &reftitle.description; + + public voidDOMDocument::prepend + DOMNodestringnodes + + + ひとつ以上の nodes を、 + 最初の子ノードの前の、子ノードのリストに追加します。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMDocument::prepend</methodname> の例 + + ドキュメントのルートの前にノードを追加します。 + + +loadXML(""); + +$doc->prepend($doc->createElement("hello"), "beautiful"); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + + +beautiful + +]]> + + + + + + &reftitle.seealso; + + DOMParentNode::prepend + DOMDocument::append + + + + + diff --git a/reference/dom/domdocument/registernodeclass.xml b/reference/dom/domdocument/registernodeclass.xml index 8989b547cd..a88a753ac1 100644 --- a/reference/dom/domdocument/registernodeclass.xml +++ b/reference/dom/domdocument/registernodeclass.xml @@ -1,6 +1,7 @@ - + + DOMDocument::registerNodeClass @@ -8,10 +9,10 @@ &reftitle.description; - - public boolDOMDocument::registerNodeClass - stringbaseclass - stringextendedclass + + public trueDOMDocument::registerNodeClass + stringbaseClass + stringnullextendedClass @@ -21,6 +22,11 @@ このメソッドは、DOM の標準にはないものです。 + + + 登録済みのクラスの、インスタンスのコンストラクタはコールされません。 + + @@ -28,7 +34,7 @@ - baseclass + baseClass 拡張したい DOM クラス。クラス名の一覧は、 @@ -37,11 +43,11 @@ - extendedclass + extendedClass 拡張したクラスの名前。&null; を渡した場合は、 - それまでに baseclass + それまでに baseClass を拡張して作成したすべてのクラスが削除されます。 @@ -53,42 +59,31 @@ &reftitle.returnvalues; - &return.success; + &return.true.always; &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.2.2 - - 5.2.2 より前のバージョンでは、同一の baseclass - を継承した新しいクラスを登録する際には、以前に登録されていた - extendedclass の登録を解除する必要がありました。 - - - - - - - + + + + + &Version; + &Description; + + + + + 8.4.0 + + DOMDocument::registerNodeClass の + 仮の戻り値の型が、true になりました。 + + + + + @@ -173,33 +168,44 @@ text in child 自作の DOMDocument インスタンスを作成すると、 ownerDocument プロパティが作成元のクラスを指すようになります。 - つまり DOMDocument の - DOMDocument::registerNodeClass を使う必要はない - (実際、使えない) ということです。 + しかし、そのクラスへの参照が全て削除されると、 + そのクラスは削除され、新しい DOMDocument + が代わりに作成されます。よって、 + DOMDocument::registerNodeClass を、 + DOMDocument と一緒に使うことができます。 loadXML("text in child"); $child = $doc->getElementsByTagName("child")->item(0); // このノードの現在のオーナーは myDOMDocument です var_dump(get_class($child->ownerDocument)); +// MyDOMDocument を破棄します +unset($doc); +// そして新しい DOMDocument が作成されます +var_dump(get_class($child->ownerDocument)); -// ノードを myDOMDocument からインポートします -$newdoc = new myOtherDOMDocument; +// MyDOMDocument からノードを import します +$newdoc = new MyOtherDOMDocument; $child = $newdoc->importNode($child); -// ノードの新しいオーナーは myOtherDOMDocument に変わりました +// カスタムの DOMDocument を登録します +$newdoc->registerNodeClass("DOMDocument", "MyOtherDOMDocument"); + +var_dump(get_class($child->ownerDocument)); +unset($doc); +// 新しい MyOtherDOMDocument を作成します var_dump(get_class($child->ownerDocument)); ?> ]]> @@ -207,8 +213,50 @@ var_dump(get_class($child->ownerDocument)); &example.outputs; + + + + + + カスタムオブジェクトは一時的なもの + + + 登録されたノードクラスは、一時的なものです。 + つまり、PHPコードから参照されなくなった時には破棄され、 + 再度取得される際に再生成されます。 + これは、カスタムプロパティの値は再生成された時に失われるということです。 + + + +registerNodeClass('DOMElement', 'MyDOMElement'); + +$node = $doc->createElement('a'); +$node->myProp = 'modified value'; +$doc->appendChild($node); + +echo $doc->childNodes[0]->myProp, PHP_EOL; +unset($node); +echo $doc->childNodes[0]->myProp, PHP_EOL; +?>]]> + + &example.outputs; + + @@ -216,7 +264,6 @@ string(18) "myOtherDOMDocument" - - + DOMDocument::relaxNGValidate @@ -10,7 +10,7 @@ &reftitle.description; - + public boolDOMDocument::relaxNGValidate stringfilename @@ -52,7 +52,6 @@ - - + DOMDocument::relaxNGValidateSource @@ -10,7 +10,7 @@ &reftitle.description; - + public boolDOMDocument::relaxNGValidateSource stringsource @@ -52,7 +52,6 @@ - + + + + DOMDocument::replaceChildren + ドキュメントの子を置換する + + + + &reftitle.description; + + public voidDOMDocument::replaceChildren + DOMNodestringnodes + + + ドキュメント中の子を、新しい nodes で置換します。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMDocument::replaceChildren</methodname> の例 + + 子を新しいノードで置換します。 + + +loadXML(""); + +$doc->replaceChildren("beautiful", $doc->createElement("world")); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + +beautiful + +]]> + + + + + + &reftitle.seealso; + + DOMParentNode::replaceChildren + DOMDocument::append + DOMDocument::prepend + + + + + diff --git a/reference/dom/domdocument/save.xml b/reference/dom/domdocument/save.xml index 8cba792285..edda2b94fb 100644 --- a/reference/dom/domdocument/save.xml +++ b/reference/dom/domdocument/save.xml @@ -1,6 +1,6 @@ - + @@ -11,8 +11,8 @@ &reftitle.description; - - public intDOMDocument::save + + public intfalseDOMDocument::save stringfilename intoptions0 @@ -55,30 +55,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.1.0 - - options パラメータが追加されました。 - - - - - - - - &reftitle.examples; @@ -120,7 +96,6 @@ echo 'Wrote: ' . $doc->save("/tmp/test.xml") . ' bytes'; // Wrote: 72 bytes - - + + DOMDocument::saveHTML @@ -10,9 +11,9 @@ &reftitle.description; - - public stringDOMDocument::saveHTML - DOMNodenodeNULL + + public stringfalseDOMDocument::saveHTML + DOMNodenullnode&null; DOM 表現から HTML ドキュメントを作成します。この関数は、通常は以下の例のように @@ -43,30 +44,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.6 - - node パラメータが追加されました。 - - - - - - - - &reftitle.examples; @@ -109,7 +86,6 @@ echo $doc->saveHTML(); - - + DOMDocument::saveHTMLFile @@ -10,10 +10,10 @@ &reftitle.description; - - public intDOMDocument::saveHTMLFile + + public intfalseDOMDocument::saveHTMLFile stringfilename - + DOM 表現から HTML ドキュメントを作成します。この関数は、通常は以下の例のように DOM ドキュメントを新しく作成した後にコールされます。 @@ -84,7 +84,6 @@ echo 'Wrote: ' . $doc->saveHTMLFile("/tmp/test.html") . ' bytes'; // Wrote: 129 - - + @@ -11,9 +11,9 @@ &reftitle.description; - - public stringDOMDocument::saveXML - DOMNodenode + + public stringfalseDOMDocument::saveXML + DOMNodenullnode&null; intoptions0 @@ -38,11 +38,7 @@ options - - 追加のオプション。現在は LIBXML_NOEMPTYTAG のみが - サポートされています。 - + &dom.parameters.serialize.options; @@ -74,26 +70,24 @@ &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.1.0 - - options パラメータが追加されました。 - - - - - - + + + + + &Version; + &Description; + + + + + 8.3.0 + + LIBXML_NOXMLDECL がサポートされました。 + + + + + @@ -154,7 +148,6 @@ echo $doc->saveXML($title); - - + DOMDocument::schemaValidate - スキーマに基づいてドキュメントを検証する + スキーマに基づいてドキュメントを検証する。XML Schema 1.0 のみサポート。 &reftitle.description; - + public boolDOMDocument::schemaValidate stringfilename intflags0 @@ -37,7 +37,8 @@ Libxml のスキーマ検証フラグのビットマスク。現在サポートしている値は LIBXML_SCHEMA_CREATE だけです。PHP 5.5.2 および Libxml 2.6.14 以降で使えます。 + linkend="libxml.constants">LIBXML_SCHEMA_CREATE だけです。 + Libxml 2.6.14 以降で使えます。 @@ -50,29 +51,7 @@ &return.success; - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.5.2 - - flags パラメータが追加されました。 - - - - - - - + &reftitle.seealso; @@ -85,7 +64,6 @@ - - + DOMDocument::schemaValidateSource @@ -10,10 +10,10 @@ &reftitle.description; - + public boolDOMDocument::schemaValidateSource stringsource - intflags + intflags0 指定した文字列に定義されているスキーマに基づいてドキュメントを検証します。 @@ -36,7 +36,8 @@ Libxml のスキーマ検証フラグのビットマスク。現在サポートしている値は LIBXML_SCHEMA_CREATE だけです。PHP 5.5.2 および Libxml 2.6.14 以降で使えます。 + linkend="libxml.constants">LIBXML_SCHEMA_CREATE だけです。 + Libxml 2.6.14 以降で使えます。 @@ -49,29 +50,7 @@ &return.success; - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.5.2 - - flags パラメータが追加されました。 - - - - - - - + &reftitle.seealso; @@ -84,7 +63,6 @@ - - + DOMDocument::validate @@ -10,7 +10,7 @@ &reftitle.description; - + public boolDOMDocument::validate @@ -22,6 +22,12 @@ validateOnParse プロパティを使用することも可能です。 + + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; @@ -38,7 +44,7 @@ load('book.xml'); +$dom->load('examples/book.xml'); if ($dom->validate()) { echo "このドキュメントは正常です!\n"; } @@ -53,7 +59,7 @@ if ($dom->validate()) { validateOnParse = true; -$dom->load('book.xml'); +$dom->load('examples/book.xml'); ?> ]]> @@ -72,7 +78,6 @@ $dom->load('book.xml'); - - + @@ -11,8 +11,8 @@ &reftitle.description; - - public intDOMDocument::xinclude + + public intfalseDOMDocument::xinclude intoptions0 @@ -34,10 +34,7 @@ options - - libxml のパラメータ。 - PHP 5.1.0 および Libxml 2.6.7 以降で使用可能です。 - + &dom.parameter.options; @@ -65,7 +62,7 @@ $xml = << Books of the other guy.. - + xinclude: book.xml not found @@ -124,7 +121,6 @@ echo $dom->saveXML(); - - - - + + DOMDocumentFragment クラス DOMDocumentFragment @@ -23,66 +22,121 @@ &reftitle.classsynopsis; - - DOMDocumentFragment - - - - - DOMDocumentFragment - - - - - extends - DOMNode - - - - - + + + DOMDocumentFragment + + + + extends + DOMNode + + + + implements + DOMParentNode + + + &InheritedConstants; + + + + &Properties; - - &InheritedProperties; - + - + &Methods; - - - - &InheritedMethods; - + + + + + + + &InheritedMethods; + + + - -
- - - - + +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + プロパティ + firstElementChild, + lastElementChild, + childElementCount が追加されました。 + + + + 8.0.0 + + DOMDocumentFragment は、 + DOMParentNode を実装しました。 + + + + + +
- diff --git a/reference/dom/domdocumentfragment/append.xml b/reference/dom/domdocumentfragment/append.xml new file mode 100644 index 0000000000..b27ada9d1c --- /dev/null +++ b/reference/dom/domdocumentfragment/append.xml @@ -0,0 +1,84 @@ + + + + + + DOMDocumentFragment::append + 最後の子ノードの後ろにノードを追加する + + + + &reftitle.description; + + public voidDOMDocumentFragment::append + DOMNodestringnodes + + + ひとつ以上の nodes を、子のリストに追加します。 + 追加されるのは、最後の子ノードの後ろになります。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMDocumentFragment::append</methodname> の例 + + 文書片にノードを追加します。 + + +createDocumentFragment(); +$fragment->appendChild($doc->createElement("hello")); + +$fragment->append("beautiful", $doc->createElement("world")); + +echo $doc->saveXML($fragment); +?> +]]> + + &example.outputs; + +beautiful +]]> + + + + + + &reftitle.seealso; + + DOMParentNode::append + DOMDocumentFragment::prepend + + + + + diff --git a/reference/dom/domdocumentfragment/appendxml.xml b/reference/dom/domdocumentfragment/appendxml.xml index 8e335c250f..c40b2dedaa 100644 --- a/reference/dom/domdocumentfragment/appendxml.xml +++ b/reference/dom/domdocumentfragment/appendxml.xml @@ -1,6 +1,6 @@ - + DOMDocumentFragment::appendXML @@ -8,7 +8,7 @@ &reftitle.description; - + public boolDOMDocumentFragment::appendXML stringdata @@ -76,7 +76,6 @@ echo $doc->saveXML(); - + + + + DOMDocumentFragment::__construct + DOMDocumentFragment オブジェクトを構築する + + + + &reftitle.description; + + public DOMDocumentFragment::__construct + + + + + + &reftitle.parameters; + &no.function.parameters; + + + diff --git a/reference/dom/domdocumentfragment/prepend.xml b/reference/dom/domdocumentfragment/prepend.xml new file mode 100644 index 0000000000..d58f9f19cd --- /dev/null +++ b/reference/dom/domdocumentfragment/prepend.xml @@ -0,0 +1,84 @@ + + + + + + DOMDocumentFragment::prepend + 最初の子ノードの前にノードを追加する + + + + &reftitle.description; + + public voidDOMDocumentFragment::prepend + DOMNodestringnodes + + + ひとつ以上の nodes を、子ノードのリストに追加します。 + 追加されるのは、最初の子ノードの前になります。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMDocumentFragment::prepend</methodname> の例 + + 文書片のルートの前にノードを追加します。 + + +createDocumentFragment(); +$fragment->appendChild($doc->createElement("world")); + +$fragment->prepend($doc->createElement("hello"), "beautiful"); + +echo $doc->saveXML($fragment); +?> +]]> + + &example.outputs; + +beautiful +]]> + + + + + + &reftitle.seealso; + + DOMParentNode::prepend + DOMDocumentFragment::append + + + + + diff --git a/reference/dom/domdocumentfragment/replacechildren.xml b/reference/dom/domdocumentfragment/replacechildren.xml new file mode 100644 index 0000000000..d34e7e950e --- /dev/null +++ b/reference/dom/domdocumentfragment/replacechildren.xml @@ -0,0 +1,86 @@ + + + + + + DOMDocumentFragment::replaceChildren + 文書片の子を置換する + + + + &reftitle.description; + + public voidDOMDocumentFragment::replaceChildren + DOMNodestringnodes + + + 文書片に含まれる子を、新しい nodes で置換します。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMDocumentFragment::replaceChildren</methodname> の例 + + 子を新しいノードで置換します + + +loadXML(""); +$fragment = $doc->createDocumentFragment(); +$fragment->append("hello"); + +$fragment->replaceChildren("beautiful", $doc->createElement("world")); + +echo $doc->saveXML($fragment); +?> +]]> + + &example.outputs; + + +]]> + + + + + + &reftitle.seealso; + + DOMParentNode::replaceChildren + DOMDocumentFragment::append + DOMDocumentFragment::prepend + + + + + diff --git a/reference/dom/domdocumenttype.xml b/reference/dom/domdocumenttype.xml index c5e2ceffc1..2cb983443c 100644 --- a/reference/dom/domdocumenttype.xml +++ b/reference/dom/domdocumenttype.xml @@ -1,8 +1,8 @@ - + - + DOMDocumentType クラス DOMDocumentType @@ -23,26 +23,22 @@ &reftitle.classsynopsis; - - DOMDocumentType - - - - - DOMDocumentType - - - - - extends - DOMNode - - - - - + + + DOMDocumentType + + + + extends + DOMNode + + + &InheritedConstants; + + + + &Properties; - public readonly @@ -82,18 +78,13 @@ &InheritedProperties; - + - - - &InheritedMethods; - - + + + @@ -113,7 +104,7 @@ systemId - 外部サブセットのシステム ID。完全 URI である場合とそうでない場合がある。 + 外部サブセットのシステム ID。完全 URI である場合とそうでない場合がある。 @@ -121,7 +112,7 @@ name - DTD の名前。すなわち、DOCTYPE キーワードに続く値。 + DTD の名前。すなわち、DOCTYPE キーワードに続く値。 @@ -129,7 +120,7 @@ entities - DTD で宣言されている一般エンティティ (外部・内部とも) を含む + DTD で宣言されている一般エンティティ (外部・内部とも) を含む DOMNamedNodeMap @@ -138,7 +129,7 @@ notations - DTD で宣言されている記法を含む + DTD で宣言されている記法を含む DOMNamedNodeMap @@ -147,7 +138,7 @@ internalSubset - 内部サブセットを文字列として取得する。存在しない場合は null + 内部サブセットを文字列として取得する。存在しない場合は &null; となる。区切りの角括弧は含まない。 @@ -171,8 +162,7 @@ - - + - diff --git a/reference/dom/domelement.xml b/reference/dom/domelement.xml index 37d9809d62..1d91b5b30b 100644 --- a/reference/dom/domelement.xml +++ b/reference/dom/domelement.xml @@ -1,8 +1,8 @@ - + - + DOMElement クラス DOMElement @@ -23,51 +23,101 @@ &reftitle.classsynopsis; - - DOMElement - - - - - DOMElement - - - - - extends - DOMNode - - - - - + + + DOMElement + + + + extends + DOMNode + + + + implements + DOMParentNode + + + + DOMChildNode + + + &InheritedConstants; + + + + &Properties; - public readonly - bool + string + tagName + + + public + string + className + + + public + string + id + + + public + readonly + mixed schemaTypeInfo public readonly - string - tagName + DOMElementnull + firstElementChild + + + public + readonly + DOMElementnull + lastElementChild + + + public + readonly + int + childElementCount + + + public + readonly + DOMElementnull + previousElementSibling + + + public + readonly + DOMElementnull + nextElementSibling &InheritedProperties; - + &Methods; - - - - &InheritedMethods; - + + + + + + + &InheritedMethods; + + + @@ -77,6 +127,36 @@
&reftitle.properties; + + childElementCount + + 子要素の数。 + + + + firstElementChild + + 最初の子要素。存在しない場合は &null; になります。 + + + + lastElementChild + + 最後の子要素。存在しない場合は &null; になります。 + + + + nextElementSibling + + 次の兄弟要素。存在しない場合は &null; になります。 + + + + previousElementSibling + + 前の兄弟要素。存在しない場合は &null; になります。 + + schemaTypeInfo @@ -89,10 +169,68 @@ 要素名 + + className + + スペースで分割された、要素のクラスを表す文字列 + + + + id + + "id" 属性を通して反映される要素のID + +
+
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + プロパティ classNameid, + メソッド + DOMElement::getAttributeNames, + DOMElement::insertAdjacentElement, + DOMElement::insertAdjacentText, + DOMElement::toggleAttribute が追加されました。 + + + + 8.0.0 + + プロパティ + firstElementChild, + lastElementChild, + childElementCount, + previousElementSibling, + nextElementSibling が追加されました。 + + + + 8.0.0 + + DOMElement は、 + DOMParentNode と + DOMChildNode を実装しました。 + + + + + +
+
&reftitle.notes; @@ -117,8 +255,7 @@ &reference.dom.entities.domelement; - - + - diff --git a/reference/dom/domelement/after.xml b/reference/dom/domelement/after.xml new file mode 100644 index 0000000000..e192d2314d --- /dev/null +++ b/reference/dom/domelement/after.xml @@ -0,0 +1,86 @@ + + + + + + DOMElement::after + 要素の後ろにノードを追加する + + + + &reftitle.description; + + public voidDOMElement::after + DOMNodestringnodes + + + 渡された nodes を要素の後ろに追加します。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMElement::after</methodname> の例 + + hello 要素の後ろにノードを追加します + + +loadXML(""); +$container = $doc->documentElement; + +$container->after("beautiful", $doc->createElement("world")); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + + +beautiful + +]]> + + + + + + &reftitle.seealso; + + DOMChildNode::after + DOMElement::before + + + + + diff --git a/reference/dom/domelement/append.xml b/reference/dom/domelement/append.xml new file mode 100644 index 0000000000..a753373f94 --- /dev/null +++ b/reference/dom/domelement/append.xml @@ -0,0 +1,85 @@ + + + + + + DOMElement::append + 最後のノードの後ろにノードを追加する + + + + &reftitle.description; + + public voidDOMElement::append + DOMNodestringnodes + + + ひとつ以上の nodes を子のリストに追加します。 + 追加されるのは、最後の子要素の後ろになります。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMElement::append</methodname> の例 + + container 要素の中に要素を追加します。 + + +loadXML("hello "); +$world = $doc->documentElement; + +$world->append("beautiful", $doc->createElement("world")); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + +hello beautiful +]]> + + + + + + &reftitle.seealso; + + DOMParentNode::append + DOMElement::prepend + + + + + diff --git a/reference/dom/domelement/before.xml b/reference/dom/domelement/before.xml new file mode 100644 index 0000000000..deb642a7a4 --- /dev/null +++ b/reference/dom/domelement/before.xml @@ -0,0 +1,85 @@ + + + + + + DOMElement::before + 要素の前にノードを追加する + + + + &reftitle.description; + + public voidDOMElement::before + DOMNodestringnodes + + + 渡された nodes を要素の前に追加します。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMElement::before</methodname> の例 + + hello 要素の前にノードを追加します + + +loadXML(""); +$world = $doc->documentElement; + +$world->before("hello", $doc->createElement("beautiful")); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + + +]]> + + + + + + &reftitle.seealso; + + DOMChildNode::before + DOMElement::after + + + + + diff --git a/reference/dom/domelement/construct.xml b/reference/dom/domelement/construct.xml index 307bd92969..772ad84025 100644 --- a/reference/dom/domelement/construct.xml +++ b/reference/dom/domelement/construct.xml @@ -1,7 +1,7 @@ - - + + DOMElement::__construct @@ -10,19 +10,19 @@ &reftitle.description; - + public DOMElement::__construct - stringname - stringvalue - stringnamespaceURI - + stringqualifiedName + stringnullvalue&null; + stringnamespace"" + 新しい DOMElement オブジェクトを作成します。 このオブジェクトは読み込み専用です。このオブジェクトをドキュメントに 追加することが可能ですが、ノードがドキュメントに関連付けられるまでは ノードを追加することはできません。書き込み可能なノードを作成するには、 - あるいは - を使用します。 + あるいは + を使用します。 @@ -30,7 +30,7 @@ - name + qualifiedName 要素のタグ名。namespaceURI をともに指定した場合、 @@ -47,7 +47,7 @@ - namespaceURI + namespace 指定した名前空間の中で要素を作成するための @@ -90,7 +90,6 @@ echo $dom->saveXML(); /* - - - + + DOMElement::getAttribute 属性の値を返す &reftitle.description; - + public stringDOMElement::getAttribute - stringname + stringqualifiedName - 現在のノードから、名前が name + 現在のノードから、名前が qualifiedName である属性の値を取得します。 @@ -22,7 +22,7 @@ - name + qualifiedName 属性の名前。 @@ -35,7 +35,7 @@ &reftitle.returnvalues; - 属性の値、あるいは name に対応する属性が + 属性の値、あるいは qualifiedName に対応する属性が 見つからなかった場合には空の文字列を返します。 @@ -50,7 +50,6 @@ - + + + + DOMElement::getAttributeNames + 属性の名前を取得する + + + + &reftitle.description; + + public arrayDOMElement::getAttributeNames + + + + 属性の名前を取得します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 属性の名前を返します。 + + + + + &reftitle.examples; + + <methodname>DOMElement::getAttributeNames</methodname> の例 + +loadXML(''); +var_dump($dom->documentElement->getAttributeNames()); +?> +]]> + + &example.outputs; + + + string(10) "xmlns:some" + [1]=> + string(9) "some:test" + [2]=> + string(5) "test2" +} +]]> + + + + + diff --git a/reference/dom/domelement/getattributenode.xml b/reference/dom/domelement/getattributenode.xml index 4b4660a487..250b9f7c51 100644 --- a/reference/dom/domelement/getattributenode.xml +++ b/reference/dom/domelement/getattributenode.xml @@ -1,20 +1,20 @@ - + - + DOMElement::getAttributeNode 属性ノードを返す &reftitle.description; - - public DOMAttrDOMElement::getAttributeNode - stringname + + public DOMAttrDOMNameSpaceNodefalseDOMElement::getAttributeNode + stringqualifiedName - 現在の要素の、name + 現在の要素の、qualifiedName という名前の属性ノードを返します。 @@ -23,7 +23,7 @@ - name + qualifiedName 属性の名前。 @@ -54,7 +54,6 @@ - - + - + DOMElement::getAttributeNodeNS @@ -11,13 +11,13 @@ &reftitle.description; - - public DOMAttrDOMElement::getAttributeNodeNS - stringnamespaceURI + + public DOMAttrDOMNameSpaceNodenullDOMElement::getAttributeNodeNS + stringnullnamespace stringlocalName - 現在のノードの、名前空間 namespaceURIにおける + 現在のノードの、名前空間 namespaceにおける localName というローカル名の属性ノードを返します。 @@ -26,7 +26,7 @@ - namespaceURI + namespace 名前空間 URI。 @@ -65,7 +65,6 @@ - - - + + DOMElement::getAttributeNS 属性の値を返す &reftitle.description; - + public stringDOMElement::getAttributeNS - stringnamespaceURI + stringnullnamespace stringlocalName - 現在のノードから、名前空間 namespaceURI + 現在のノードから、名前空間 namespace における localName というローカル名の属性の値を取得します。 @@ -23,7 +23,7 @@ - namespaceURI + namespace 名前空間 URI。 @@ -45,7 +45,7 @@ &reftitle.returnvalues; 属性の値、あるいは localName および - namespaceURI に対応する属性が + namespace に対応する属性が 見つからなかった場合には空の文字列を返します。 @@ -60,7 +60,6 @@ - - - + + DOMElement::getElementsByTagName タグ名から要素を取得する &reftitle.description; - + public DOMNodeListDOMElement::getElementsByTagName - stringname + stringqualifiedName - この関数は、指定した名前 name のタグを持つ + この関数は、指定した名前 qualifiedName のタグを持つ すべての子孫要素からなるクラス DOMNodeList の新しいインスタンスを返します。要素は、ツリーをたどっていく際に 見つかった順に並べられます。 @@ -24,7 +24,7 @@ - name + qualifiedName タグ名。ツリー内のすべての要素を返すには @@ -51,7 +51,6 @@ - - - + + DOMElement::getElementsByTagNameNS 名前空間 URI とローカル名から要素を取得する &reftitle.description; - + public DOMNodeListDOMElement::getElementsByTagNameNS - stringnamespaceURI + stringnullnamespace stringlocalName この関数は、指定した名前 localName および - namespaceURI のタグを持つ + namespace のタグを持つ すべての子孫要素を取得します。 @@ -24,10 +24,12 @@ - namespaceURI + namespace - 名前空間 URI。 + 条件に一致する要素の名前空間 URI。 + "*" はすべての名前空間に一致します。 + &null; を渡すと、空の名前空間に一致します。 @@ -35,8 +37,8 @@ localName - ローカル名。ツリー内のすべての要素を返すには * - を使用します。 + 条件に一致する要素のローカル名。 + "*" はすべてのローカル名に一致します。 @@ -51,6 +53,29 @@ 各要素は、ツリー内の探索時に見つかった順で並べられます。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.3 + + namespace は、nullable になりました。 + + + + + + + &reftitle.seealso; @@ -60,7 +85,6 @@ - - - + + DOMElement::hasAttribute 属性が存在するかどうかを調べる &reftitle.description; - + public boolDOMElement::hasAttribute - stringname + stringqualifiedName - 要素のメンバとして name という名前の属性が + 要素のメンバとして qualifiedName という名前の属性が 存在するかどうかを示します。 @@ -22,7 +22,7 @@ - name + qualifiedName 要素名。 @@ -50,7 +50,6 @@ - - - + + DOMElement::hasAttributeNS @@ -10,14 +10,14 @@ &reftitle.description; - + public boolDOMElement::hasAttributeNS - stringnamespaceURI + stringnullnamespace stringlocalName 要素のメンバとして localName という名前の属性が - 名前空間 namespaceURI に存在するかどうかを示します。 + 名前空間 namespace に存在するかどうかを示します。 @@ -25,7 +25,7 @@ - namespaceURI + namespace 名前空間 URI。 @@ -61,7 +61,6 @@ - + + + + DOMElement::insertAdjacentElement + 隣接する要素を挿入する + + + + &reftitle.description; + + public DOMElementnullDOMElement::insertAdjacentElement + stringwhere + DOMElementelement + + + where で指定された相対的な位置に、 + 要素を挿入します。 + + + + + &reftitle.parameters; + + + + where + + + + beforebegin - 目的の要素の直前に挿入します + afterbegin - 目的の要素の最初の子要素として挿入します + beforeend - 目的の要素の最後の子要素として挿入します + afterend - 目的の要素の直後に挿入します + + + + + + element + + + 挿入する要素 + + + + + + + + + &reftitle.returnvalues; + + DOMElement を返します。 + 失敗した場合は &null; を返します。 + + + + + &reftitle.examples; + + <methodname>DOMElement::insertAdjacentElement</methodname> の例 + +loadXML('

foo

'); +$container = $dom->documentElement; +$p = $container->firstElementChild; + +$p->insertAdjacentElement('beforebegin', $dom->createElement('A')); +echo $dom->saveXML(); +?> +]]> +
+ &example.outputs; + + +

foo

+]]> +
+
+
+ + + &reftitle.seealso; + + + DOMElement::insertAdjacentText + + + +
+ diff --git a/reference/dom/domelement/insertadjacenttext.xml b/reference/dom/domelement/insertadjacenttext.xml new file mode 100644 index 0000000000..ca58dfe7f1 --- /dev/null +++ b/reference/dom/domelement/insertadjacenttext.xml @@ -0,0 +1,118 @@ + + + + + + DOMElement::insertAdjacentText + 隣接するテキストを挿入する + + + + &reftitle.description; + + public voidDOMElement::insertAdjacentText + stringwhere + stringdata + + + where で指定された相対的な位置に、 + テキストを挿入します。 + + + + + &reftitle.parameters; + + + + where + + + + beforebegin - 目的の要素の直前に挿入します + afterbegin - 目的の要素の最初の子要素として挿入します + beforeend - 目的の要素の最後の子要素として挿入します + afterend - 目的の要素の直後に挿入します + + + + + + data + + + 挿入する文字列 + + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.examples; + + <methodname>DOMElement::insertAdjacentText</methodname> の例 + +loadXML('

H

'); + +$container = $dom->documentElement; +$p = $container->firstElementChild; + +$p->insertAdjacentText("afterbegin", "P"); +$p->insertAdjacentText("beforeend", "P"); + +echo $dom->saveXML(); +?> +]]> +
+ &example.outputs; + + +

PHP

+]]> +
+
+
+ + + &reftitle.seealso; + + + DOMElement::insertAdjacentElement + + + +
+ diff --git a/reference/dom/domelement/prepend.xml b/reference/dom/domelement/prepend.xml new file mode 100644 index 0000000000..262e5e3e8f --- /dev/null +++ b/reference/dom/domelement/prepend.xml @@ -0,0 +1,85 @@ + + + + + + DOMElement::prepend + 最初の子ノードの前にノードを追加する + + + + &reftitle.description; + + public voidDOMElement::prepend + DOMNodestringnodes + + + ひとつ以上の nodes を、子のリストに追加します。 + 追加されるのは、最初の子ノードの前になります。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMElement::prepend</methodname> の例 + + container 要素の前にノードを追加します。 + + +loadXML(" world"); +$world = $doc->documentElement; + +$world->prepend($doc->createElement("hello"), "beautiful"); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + +beautiful world +]]> + + + + + + &reftitle.seealso; + + DOMParentNode::prepend + DOMElement::append + + + + + diff --git a/reference/dom/domelement/remove.xml b/reference/dom/domelement/remove.xml new file mode 100644 index 0000000000..4ea2822058 --- /dev/null +++ b/reference/dom/domelement/remove.xml @@ -0,0 +1,84 @@ + + + + + + DOMElement::remove + 要素を削除する + + + + &reftitle.description; + + public voidDOMElement::remove + + + + 要素を削除します。 + + + + + + + + &reftitle.examples; + + <methodname>DOMElement::remove</methodname> の例 + + 要素を削除します。 + + +loadXML(""); +$hello = $doc->documentElement->firstChild; + +$hello->remove(); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + + +]]> + + + + + + &reftitle.seealso; + + DOMElement::after + DOMElement::before + DOMElement::replaceWith + DOMNode::removeChild + + + + + diff --git a/reference/dom/domelement/removeattribute.xml b/reference/dom/domelement/removeattribute.xml index c4d8a736d1..ac429eddd7 100644 --- a/reference/dom/domelement/removeattribute.xml +++ b/reference/dom/domelement/removeattribute.xml @@ -1,19 +1,19 @@ - - + + DOMElement::removeAttribute 属性を削除する &reftitle.description; - + public boolDOMElement::removeAttribute - stringname + stringqualifiedName - name という名前の属性を要素から削除します。 + qualifiedName という名前の属性を要素から削除します。 @@ -21,7 +21,7 @@ - name + qualifiedName 属性の名前。 @@ -63,7 +63,6 @@ - - - + + DOMElement::removeAttributeNode 属性を削除する &reftitle.description; - - public boolDOMElement::removeAttributeNode - DOMAttroldnode + + public DOMAttrfalseDOMElement::removeAttributeNode + DOMAttrattr - 属性 oldnode を要素から削除します。 + 属性 attr を要素から削除します。 @@ -21,7 +21,7 @@ - oldnode + attr 属性ノード。 @@ -50,10 +50,10 @@ - DOM_NOT_FOUND_ERROR + DOM_NOT_FOUND_ERR - oldnode が要素の属性でない場合に発生します。 + attr が要素の属性でない場合に発生します。 @@ -71,7 +71,6 @@ - - - + + DOMElement::removeAttributeNS 属性を削除する &reftitle.description; - - public boolDOMElement::removeAttributeNS - stringnamespaceURI + + public voidDOMElement::removeAttributeNS + stringnullnamespace stringlocalName - 名前空間 namespaceURI にある + 名前空間 namespace にある localName という名前の属性を 要素から削除します。 @@ -24,7 +24,7 @@ - namespaceURI + namespace 名前空間 URI。 @@ -45,7 +45,7 @@ &reftitle.returnvalues; - &return.success; + &return.void; @@ -74,7 +74,6 @@ - + + + + DOMElement::replaceChildren + 要素中の子を置換する + + + + &reftitle.description; + + public voidDOMElement::replaceChildren + DOMNodestringnodes + + + 要素中の子を、新しい nodes で置換します。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMElement::replaceChildren</methodname> の例 + + 子を新しいノードで置換します。 + + +loadXML(""); +$container = $doc->documentElement; + +$container->replaceWith("beautiful", $doc->createElement("world")); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + +beautiful + +]]> + + + + + + &reftitle.seealso; + + DOMParentNode::replaceChildren + DOMElement::replaceWith + DOMElement::after + DOMElement::before + DOMElement::remove + + + + + diff --git a/reference/dom/domelement/replacewith.xml b/reference/dom/domelement/replacewith.xml new file mode 100644 index 0000000000..d2c07fb2c1 --- /dev/null +++ b/reference/dom/domelement/replacewith.xml @@ -0,0 +1,87 @@ + + + + + + DOMElement::replaceWith + 要素を新しいノードで置換する + + + + &reftitle.description; + + public voidDOMElement::replaceWith + DOMNodestringnodes + + + 要素を新しい nodes で置換します。 + + + + + + + + + + &reftitle.examples; + + <methodname>DOMElement::replaceWith</methodname> の例 + + 要素を新しいノードで置換します。 + + +loadXML(""); +$cdata = $doc->documentElement->firstChild; + +$cdata->replaceWith("beautiful", $doc->createElement("world")); + +echo $doc->saveXML(); +?> +]]> + + &example.outputs; + + +beautiful +]]> + + + + + + &reftitle.seealso; + + DOMChildNode::replaceWith + DOMElement::replaceChildren + DOMElement::after + DOMElement::before + DOMElement::remove + + + + + diff --git a/reference/dom/domelement/setattribute.xml b/reference/dom/domelement/setattribute.xml index 65602744b6..5980518d2d 100644 --- a/reference/dom/domelement/setattribute.xml +++ b/reference/dom/domelement/setattribute.xml @@ -1,20 +1,20 @@ - - + + DOMElement::setAttribute - 新しい属性を追加する + 属性を新しく追加する、または変更する &reftitle.description; - - public DOMAttrDOMElement::setAttribute - stringname + + public DOMAttrboolDOMElement::setAttribute + stringqualifiedName stringvalue - name という名前の属性を、指定した値に設定します。 + qualifiedName という名前の属性を、指定した値に設定します。 属性が存在しない場合は、作成されます。 @@ -23,7 +23,7 @@ - name + qualifiedName 属性の名前。 @@ -44,8 +44,8 @@ &reftitle.returnvalues; - 新しい DOMAttr、 - あるいはエラーが発生した場合は &false; を返します。 + 新しく作られた、または変更された DOMAttr を返します。 + エラーが発生した場合は &false; を返します。 @@ -92,7 +92,6 @@ $newnode->setAttribute("align", "left"); - - - + + DOMElement::setAttributeNode 新しい属性ノードを要素に追加する &reftitle.description; - - public DOMAttrDOMElement::setAttributeNode + + public DOMAttrnullfalseDOMElement::setAttributeNode DOMAttrattr 新しい属性ノード attr を要素に追加します。 + 要素に同じ名前の属性が既に存在している場合、 + その属性は attr で置き換えられます。 @@ -36,6 +38,8 @@ 属性が置換された場合は置換前のノード、そうでない場合は &null; を返します。 + DOM_WRONG_DOCUMENT_ERR エラーが発生した場合、 + かつ strictErrorChecking が &false; の場合には、&false; を返します。 @@ -43,10 +47,10 @@ - DOM_NO_MODIFICATION_ALLOWED_ERR + DOM_WRONG_DOCUMENT_ERR - ノードが読み込み専用の場合に発生します。 + attr が、要素とは異なるドキュメントに存在する場合に発生します。 @@ -64,7 +68,6 @@ - - - + + DOMElement::setAttributeNodeNS 新しい属性ノードを要素に追加する &reftitle.description; - - public DOMAttrDOMElement::setAttributeNodeNS + + public DOMAttrnullfalseDOMElement::setAttributeNodeNS DOMAttrattr - 新しい属性ノード attr を要素に追加します。 + 新しい属性ノード attr を要素に追加しますが、名前空間を考慮します。 + 要素に同じ名前の属性が既に存在している場合、 + その属性は attr で置き換えられます。 @@ -34,7 +36,11 @@ &reftitle.returnvalues; - 属性が置換された場合は置換前のノードを返します。 + 属性が置換された場合は置換前のノード、古い属性がない場合は &null; + を返します。 + DOM_WRONG_DOCUMENT_ERR エラーが発生した場合、 + かつ strictErrorChecking が &false; の場合には、&false; を返します。 + @@ -42,10 +48,10 @@ - DOM_NO_MODIFICATION_ALLOWED_ERR + DOM_WRONG_DOCUMENT_ERR - ノードが読み込み専用の場合に発生します。 + attr が、要素とは異なるドキュメントに存在する場合に発生します。 @@ -63,7 +69,6 @@ - - - + + DOMElement::setAttributeNS 新しい属性を追加する &reftitle.description; - + public voidDOMElement::setAttributeNS - stringnamespaceURI + stringnullnamespace stringqualifiedName stringvalue - 名前空間 namespaceURI にある - localName という名前の属性を、指定した値に設定します。 + 名前空間 namespace にある + qualifiedName という名前の属性を、指定した値に設定します。 属性が存在しない場合は、作成されます。 @@ -25,7 +25,7 @@ - namespaceURI + namespace 名前空間 URI。 @@ -75,7 +75,7 @@ qualifiedName が不正な形式であった場合や、 qualifiedName がプレフィックスを含むにもかかわらず - namespaceURI が &null; の場合に発生します。 + namespace が &null; の場合に発生します。 @@ -93,7 +93,6 @@ - - + DOMElement::setIdAttribute @@ -8,13 +8,13 @@ &reftitle.description; - + public voidDOMElement::setIdAttribute - stringname + stringqualifiedName boolisId - ID 型となる属性を name で宣言します。 + ID 型となる属性を qualifiedName で宣言します。 @@ -22,7 +22,7 @@ - name + qualifiedName 属性の名前。 @@ -33,7 +33,7 @@ isId - name を ID 型にしたい場合に &true;、 + qualifiedName を ID 型にしたい場合に &true;、 それ以外の場合に &false; を設定します。 @@ -62,10 +62,10 @@ - DOM_NOT_FOUND + DOM_NOT_FOUND_ERR - name がこの要素の属性でない場合に発生します。 + qualifiedName がこの要素の属性でない場合に発生します。 @@ -85,7 +85,6 @@ - - + DOMElement::setIdAttributeNode @@ -8,7 +8,7 @@ &reftitle.description; - + public voidDOMElement::setIdAttributeNode DOMAttrattr boolisId @@ -62,7 +62,7 @@ - DOM_NOT_FOUND + DOM_NOT_FOUND_ERR name がこの要素の属性でない場合に発生します。 @@ -85,7 +85,6 @@ - - + DOMElement::setIdAttributeNS @@ -8,15 +8,15 @@ &reftitle.description; - + public voidDOMElement::setIdAttributeNS - stringnamespaceURI - stringlocalName + stringnamespace + stringqualifiedName boolisId - ID 型となる属性を localName および - namespaceURI で宣言します。 + ID 型となる属性を qualifiedName および + namespace で宣言します。 @@ -24,7 +24,7 @@ - namespaceURI + namespace 属性の名前空間 URI。 @@ -32,7 +32,7 @@ - localName + qualifiedName 属性のローカル名。prefix:tagname 形式。 @@ -72,7 +72,7 @@ - DOM_NOT_FOUND + DOM_NOT_FOUND_ERR name がこの要素の属性でない場合に発生します。 @@ -95,7 +95,6 @@ - + + + + DOMElement::toggleAttribute + 属性の値を切り替える + + + + &reftitle.description; + + public boolDOMElement::toggleAttribute + stringqualifiedName + boolnullforce&null; + + + 属性の値を切り替えます。 + + + + + &reftitle.parameters; + + + + qualifiedName + + + 属性の修飾名 + + + + + force + + + + &null; を指定すると、この関数は属性の値を切り替えます + &true; を指定すると、この関数は属性の値を追加します + &false; を指定すると、この関数は属性を削除します + + + + + + + + + + &reftitle.returnvalues; + + この関数をコールした後、属性が存在していれば &true; を返します。 + そうでない場合、&false; を返します。 + + + + + &reftitle.examples; + + <methodname>DOMElement::toggleAttribute</methodname> の例 + +loadXML(""); + +var_dump($dom->documentElement->toggleAttribute('selected')); +echo $dom->saveXML() . PHP_EOL; + +var_dump($dom->documentElement->toggleAttribute('selected')); +echo $dom->saveXML(); +?> +]]> + + &example.outputs; + + + + +bool(true) + + +]]> + + + + + diff --git a/reference/dom/domentity.xml b/reference/dom/domentity.xml index 25cf5808da..72845231c9 100644 --- a/reference/dom/domentity.xml +++ b/reference/dom/domentity.xml @@ -1,8 +1,8 @@ - + - + DOMEntity クラス DOMEntity @@ -22,75 +22,68 @@ &reftitle.classsynopsis; - - DOMEntity - - - - - DOMEntity - - - - - extends - DOMNode - - - - - + + + DOMEntity + + + + extends + DOMNode + + + &InheritedConstants; + + + + &Properties; - public readonly - string + stringnull publicId public readonly - string + stringnull systemId public readonly - string + stringnull notationName public - string + readonly + stringnull actualEncoding public readonly - string + stringnull encoding public readonly - string + stringnull version &InheritedProperties; - + - - &InheritedMethods; - - + + + @@ -124,7 +117,7 @@ パースされていないエンティティの場合はそのエンティティの名前、 - パース済みのエンティティの場合は &null; + パース済みのエンティティの場合は &null; 。 @@ -132,10 +125,8 @@ actualEncoding - 外部でパースされたエンティティの場合は、このエンティティの - パース時に使用されたエンコーディングを指定する属性。 - 内部サブセットからのエンティティであったり未知のエンティティで - あった場合は &null; + PHP8.4.0より非推奨。 + 常に &null; と等しくなります。 @@ -143,9 +134,8 @@ encoding - 外部でパースされたエンティティの場合は、テキスト宣言の一部として - このエンティティのエンコーディングを指定する属性。それ以外の場合は - &null; + PHP8.4.0より非推奨。 + 常に &null; と等しくなります。 @@ -153,16 +143,41 @@ version - 外部でパースされたエンティティの場合は、テキスト宣言の一部として - このエンティティのバージョン番号を指定する属性。それ以外の場合は - &null; + PHP8.4.0より非推奨。 + 常に &null; と等しくなります。
- + + +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + actualEncoding, + encoding, と + version は常に &null; と等しくなるため、 + 正式に非推奨となりました。 + + + + + +
+ - diff --git a/reference/dom/domentityreference.xml b/reference/dom/domentityreference.xml index 0d336e360f..b68aa3ec02 100644 --- a/reference/dom/domentityreference.xml +++ b/reference/dom/domentityreference.xml @@ -1,6 +1,6 @@ - + - + DOMEntityReference クラス DOMEntityReference @@ -30,46 +30,35 @@ Remove me once you perform substitutions &reftitle.classsynopsis; - - DOMEntityReference - - - - - DOMEntityReference - - - - - extends - DOMNode - - - - - - - - - + + + DOMEntityReference + + + + extends + DOMNode + + + &InheritedConstants; + + + + &InheritedProperties; - + &Methods; - - - - &InheritedMethods; - + + + + &InheritedMethods; + + + @@ -108,8 +97,7 @@ Remove me once you perform substitutions &reference.dom.entities.domentityreference; - - +
- diff --git a/reference/dom/domentityreference/construct.xml b/reference/dom/domentityreference/construct.xml index 9530b499fa..f991b206a4 100644 --- a/reference/dom/domentityreference/construct.xml +++ b/reference/dom/domentityreference/construct.xml @@ -1,7 +1,7 @@ - - + + DOMEntityReference::__construct @@ -10,10 +10,10 @@ &reftitle.description; - + public DOMEntityReference::__construct stringname - + 新しい DOMEntityReference オブジェクトを作成します。 @@ -62,7 +62,6 @@ echo $dom->saveXML(); /*   - - - + - - DOMException クラス + + DOMException / Dom\Exception クラス DOMException @@ -23,10 +18,14 @@ FIXME: Remove me once you perform substitutions
&reftitle.intro; - + しかるべき状況、すなわち論理的に不可能な操作を行った際などの場合に DOM 操作は例外を発生させます。 - + + + DOM 名前空間では、このクラスは + Dom\Exception のエイリアスです。 + も参照ください。 @@ -37,46 +36,36 @@ FIXME: Remove me once you perform substitutions &reftitle.classsynopsis; - - DOMException - - - - - DOMException - - - - - extends - Exception - - - - - + + + final + DOMException + + + + extends + Exception + + &Properties; - public - readonly int code - + &InheritedProperties; - + - - - &InheritedMethods; - + + + + + + @@ -111,8 +100,7 @@ FIXME: Remove me once you perform substitutions - - + - diff --git a/reference/dom/domimplementation.xml b/reference/dom/domimplementation.xml index 7bfc9a772a..52ba78aaf5 100644 --- a/reference/dom/domimplementation.xml +++ b/reference/dom/domimplementation.xml @@ -1,6 +1,6 @@ - + - + DOMImplementation クラス DOMImplementation @@ -17,10 +17,10 @@ Remove me once you perform substitutions
&reftitle.intro; - - DOMImplementation クラスは、 + + このクラスは、 個々のドキュメントオブジェクトモデルのインスタンス独自の操作を行うためのメソッド群を提供します。 - +
@@ -28,31 +28,15 @@ Remove me once you perform substitutions &reftitle.classsynopsis; - - DOMImplementation - - - - - DOMImplementation - - - - - - &Properties; - - - + + + DOMImplementation + + &Methods; - - + + + @@ -91,8 +75,7 @@ Remove me once you perform substitutions &reference.dom.entities.domimplementation; -
- + - diff --git a/reference/dom/domimplementation/construct.xml b/reference/dom/domimplementation/construct.xml index ad4526370c..9c715f5d40 100644 --- a/reference/dom/domimplementation/construct.xml +++ b/reference/dom/domimplementation/construct.xml @@ -1,6 +1,6 @@ - + DOMImplementation::__construct @@ -10,14 +10,20 @@ &reftitle.description; - + DOMImplementation::__construct - + 新しい DOMImplementation オブジェクトを作成します。 + + + &reftitle.parameters; + &no.function.parameters; + + - - + + DOMImplementation::createDocument @@ -10,11 +10,11 @@ &reftitle.description; - + public DOMDocumentDOMImplementation::createDocument - stringnamespaceURI&null; - stringqualifiedName&null; - DOMDocumentTypedoctype&null; + stringnullnamespace&null; + stringqualifiedName"" + DOMDocumentTypenulldoctype&null; 指定した型とドキュメント要素の DOMDocument @@ -26,7 +26,7 @@ - namespaceURI + namespace 作成するドキュメント要素の名前空間 URI。 @@ -56,12 +56,13 @@ &reftitle.returnvalues; 新しい DOMDocument オブジェクトを返します。 - namespaceURIqualifiedName + namespacequalifiedName および doctype が null の場合は、 ドキュメント要素を含まない空の DOMDocument を返します。 + &reftitle.errors; @@ -79,15 +80,59 @@ DOM_NAMESPACE_ERR - namespaceURI および qualifiedName + namespace および qualifiedName で指定した名前空間に間違いがある場合に発生します。 - &dom.allowstatic; + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.4.0 + + この関数の仮の戻り値の型が、DOMDocument になりました。 + + + + 8.0.3 + + namespace は、nullable になりました。 + + + + 8.0.0 + + doctype は、nullable になりました。 + + + + 8.0.0 + + この関数を static メソッドとしてコールすると、 + Error がスローされるようになりました。 + これより前のバージョンでは、 + E_DEPRECATED が発生していました。 + + + + + + + + &reftitle.seealso; @@ -98,7 +143,6 @@ - - - + + DOMImplementation::createDocumentType @@ -10,11 +10,11 @@ &reftitle.description; - - public DOMDocumentTypeDOMImplementation::createDocumentType - stringqualifiedName&null; - stringpublicId&null; - stringsystemId&null; + + public DOMDocumentTypefalseDOMImplementation::createDocumentType + stringqualifiedName + stringpublicId"" + stringsystemId"" 空の DOMDocumentType オブジェクトを作成します。 @@ -58,6 +58,7 @@ ownerDocument を &null; に設定した 新しい DOMDocumentType ノードを返します。 + エラーの場合は &false; を返します。 @@ -75,7 +76,32 @@ - &dom.allowstatic; + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数を static メソッドとしてコールすると、 + Error がスローされるようになりました。 + これより前のバージョンでは、 + E_DEPRECATED が発生していました。 + + + + + + &reftitle.examples; @@ -131,7 +157,6 @@ echo $dom->saveXML(); - - - + + DOMImplementation::hasFeature @@ -10,7 +10,7 @@ &reftitle.description; - + public boolDOMImplementation::hasFeature stringfeature stringversion @@ -55,14 +55,37 @@ &return.success; - - &reftitle.errors; - &dom.allowstatic; + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数を static メソッドとしてコールすると、 + Error がスローされるようになりました。 + これより前のバージョンでは、 + E_DEPRECATED が発生していました。 + + + + + + &reftitle.examples; - DOM Implementation を調べる + DOM の実装を調べる 'Traversal module' ); +$implementation = new DOMImplementation; + foreach ($features as $key => $name) { - if (DOMImplementation::hasFeature($key, '2.0')) { + if ($implementation->hasFeature($key, '2.0')) { echo "$name の機能を保持しています\n"; } else { echo "$name の機能は保持していません\n"; @@ -106,7 +131,6 @@ foreach ($features as $key => $name) { - - - + - + DOMNamedNodeMap クラス DOMNamedNodeMap @@ -29,37 +28,32 @@ Remove me once you perform substitutions &reftitle.classsynopsis; - - DOMNamedNodeMap - - - - - DOMNamedNodeMap - - - - Traversable - - - Countable - - - - - + + + DOMNamedNodeMap + + + + implements + IteratorAggregate + + + + Countable + + &Properties; - public readonly int length - + &Methods; - - + + + @@ -81,7 +75,52 @@ Remove me once you perform substitutions
- + +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + 実装されていなかったメソッド + DOMNamedNodeMap::setNamedItem, + DOMNamedNodeMap::removeNamedItem, + DOMNamedNodeMap::setNamedItemNS, + DOMNamedNodeMap::removeNamedItem + が削除されました。 + + + + 8.0.0 + + DOMNamedNodeMap は + IteratorAggregate を実装しました。 + これより前のバージョンでは、 + Traversable が代わりに実装されていました。 + + + + + +
+ +
+ &reftitle.notes; + + + マップ内のノードは、配列の文法を使ってアクセスできます。 + + +
+ - diff --git a/reference/dom/domnamednodemap/count.xml b/reference/dom/domnamednodemap/count.xml index b0e0782b77..93e285a0da 100644 --- a/reference/dom/domnamednodemap/count.xml +++ b/reference/dom/domnamednodemap/count.xml @@ -1,6 +1,6 @@ - + @@ -10,9 +10,9 @@ &reftitle.description; - + public intDOMNamedNodeMap::count - + マップにあるノードの数を取得します。 @@ -33,7 +33,6 @@ - + + + + DOMNamedNodeMap::getIterator + 外部のイテレータを取得する + + + + &reftitle.description; + + public IteratorDOMNamedNodeMap::getIterator + + + + 名前付きノードのマップ向けに、外部のイテレータを返します。 + + + + + + + + + &reftitle.seealso; + + IteratorAggregate::getIterator + + + + + diff --git a/reference/dom/domnamednodemap/getnameditem.xml b/reference/dom/domnamednodemap/getnameditem.xml index d1baa5f014..958969c5e7 100644 --- a/reference/dom/domnamednodemap/getnameditem.xml +++ b/reference/dom/domnamednodemap/getnameditem.xml @@ -1,7 +1,7 @@ - - + + DOMNamedNodeMap::getNamedItem @@ -10,9 +10,9 @@ &reftitle.description; - - DOMNodeDOMNamedNodeMap::getNamedItem - stringname + + public DOMNodenullDOMNamedNodeMap::getNamedItem + stringqualifiedName nodeName で指定されたノードを取得します。 @@ -23,7 +23,7 @@ - name + qualifiedName 取得するノードの名前。 @@ -40,16 +40,43 @@ あるいはノードが見つからなかった場合には &null; を返します。 + + &reftitle.examples; + + ノード上の属性を取得する + +load('examples/book.xml'); + +$id = $doc->firstChild->nextSibling->nextSibling->firstChild->nextSibling->attributes->getNamedItem('id'); +?> +]]> + + + + 配列構文で属性にアクセスする + +load('examples/book.xml'); + + +$id = $doc->firstChild->nextSibling->nextSibling->firstChild->nextSibling->attributes['id']; +?> +]]> + + + &reftitle.seealso; - - - DOMNamedNodeMap::getNamedItemNS - - + + DOMNamedNodeMap::getNamedItemNS + - - - + + DOMNamedNodeMap::getNamedItemNS @@ -10,14 +10,14 @@ &reftitle.description; - - DOMNodeDOMNamedNodeMap::getNamedItemNS - stringnamespaceURI + + public DOMNodenullDOMNamedNodeMap::getNamedItemNS + stringnullnamespace stringlocalName localName および - namespaceURI で指定したノードを取得します。 + namespace で指定したノードを取得します。 @@ -25,7 +25,7 @@ - namespaceURI + namespace 取得するノードの名前空間 URI。 @@ -59,7 +59,6 @@ - - - + + DOMNamedNodeMap::item インデックスで指定したノードを取得する &reftitle.description; - - DOMNodeDOMNamedNodeMap::item + + public DOMNodenullDOMNamedNodeMap::item intindex @@ -41,7 +41,6 @@ - + + + DOMNameSpaceNode クラス + DOMNameSpaceNode + + + + + +
+ &reftitle.classsynopsis; + + + + + DOMNameSpaceNode + + + &Properties; + + public + readonly + string + nodeName + + + public + readonly + stringnull + nodeValue + + + public + readonly + int + nodeType + + + public + readonly + string + prefix + + + public + readonly + stringnull + localName + + + public + readonly + stringnull + namespaceURI + + + public + readonly + bool + isConnected + + + public + readonly + DOMDocumentnull + ownerDocument + + + public + readonly + DOMNodenull + parentNode + + + public + readonly + DOMElementnull + parentElement + + + &Methods; + + + + + + +
+ + +
+ &reftitle.properties; + + + nodeName + + + このノードの修飾名 + + + + + nodeValue + + + このノードが宣言している名前空間URI。 + 名前空間が空の場合は、&null; + + + + + nodeType + + + ノードのタイプ。 + + XML_NAMESPACE_DECL_NODE + になります。 + + + + + prefix + + + このノードが宣言している名前空間のprefix + + + + + localName + + + このノードの修飾名のローカルパート + + + + + namespaceURI + + + このノードが宣言している名前空間URI。 + 未指定の場合は &null; + + + + + isConnected + + + ノードがドキュメントに接続しているかどうか + + + + + ownerDocument + + + このノードと関連がある DOMDocument。 + このノードが DOMDocument + でない場合は &null; + + + + + parentNode + + + このノードの親ノード。 + 該当するノードがない場合、&null; を返します。 + + + + + parentElement + + + このノードの親要素。 + 該当するノードがない場合、&null; を返します。 + + + + +
+ + +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + DOMNameSpaceNode::$parentElement と + DOMNameSpaceNode::$isConnected が追加されました。 + + + + + +
+ +
+ + &reference.dom.entities.domnamespacenode; + +
+ diff --git a/reference/dom/domnamespacenode/sleep.xml b/reference/dom/domnamespacenode/sleep.xml new file mode 100644 index 0000000000..10a91ea32c --- /dev/null +++ b/reference/dom/domnamespacenode/sleep.xml @@ -0,0 +1,59 @@ + + + + + + DOMNameSpaceNode::__sleep + サブクラスでシリアライズメソッドが実装されていない限り、シリアライズを禁止する + + + + &reftitle.description; + + public arrayDOMNameSpaceNode::__sleep + + + + サブクラスでシリアライズメソッドが実装されていない限り、シリアライズを禁止します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + このメソッドは、常に例外をスローします。 + + + + + &reftitle.errors; + + コールされると、Error がスローされます。 + + + + diff --git a/reference/dom/domnamespacenode/wakeup.xml b/reference/dom/domnamespacenode/wakeup.xml new file mode 100644 index 0000000000..43db240f88 --- /dev/null +++ b/reference/dom/domnamespacenode/wakeup.xml @@ -0,0 +1,59 @@ + + + + + + DOMNameSpaceNode::__wakeup + サブクラスでアンシリアライズメソッドが実装されていない限り、アンシリアライズを禁止する + + + + &reftitle.description; + + public voidDOMNameSpaceNode::__wakeup + + + + サブクラスでアンシリアライズメソッドが実装されていない限り、アンシリアライズを禁止します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + このメソッドは、常に例外をスローします。 + + + + + &reftitle.errors; + + コールされると、Error がスローされます。 + + + + diff --git a/reference/dom/domnode.xml b/reference/dom/domnode.xml index e6f48b1576..fd9b2cd9cd 100644 --- a/reference/dom/domnode.xml +++ b/reference/dom/domnode.xml @@ -1,8 +1,8 @@ - - - + + + DOMNode クラス DOMNode @@ -21,20 +21,56 @@ &reftitle.classsynopsis; - - DOMNode - - - - - DOMNode - - - - - + + + DOMNode + + + &Constants; + + public + const + int + DOMNode::DOCUMENT_POSITION_DISCONNECTED + 0x1 + + + public + const + int + DOMNode::DOCUMENT_POSITION_PRECEDING + 0x2 + + + public + const + int + DOMNode::DOCUMENT_POSITION_FOLLOWING + 0x4 + + + public + const + int + DOMNode::DOCUMENT_POSITION_CONTAINS + 0x8 + + + public + const + int + DOMNode::DOCUMENT_POSITION_CONTAINED_BY + 0x10 + + + public + const + int + DOMNode::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC + 0x20 + + &Properties; - public readonly @@ -43,7 +79,7 @@ public - string + stringnull nodeValue @@ -55,9 +91,15 @@ public readonly - DOMNode + DOMNodenull parentNode + + public + readonly + DOMElementnull + parentElement + public readonly @@ -67,43 +109,49 @@ public readonly - DOMNode + DOMNodenull firstChild public readonly - DOMNode + DOMNodenull lastChild public readonly - DOMNode + DOMNodenull previousSibling public readonly - DOMNode + DOMNodenull nextSibling public readonly - DOMNamedNodeMap + DOMNamedNodeMapnull attributes public readonly - DOMDocument + bool + isConnected + + + public + readonly + DOMDocumentnull ownerDocument public readonly - string + stringnull namespaceURI @@ -114,13 +162,13 @@ public readonly - string + stringnull localName public readonly - string + stringnull baseURI @@ -128,13 +176,83 @@ string textContent + &Methods; - + + +
- + +
+ &reftitle.constants; + + + + DOMNode::DOCUMENT_POSITION_DISCONNECTED + + + + もう一方のノードと参照ノードが同じツリー内にない場合に設定されます。 + + + + + + DOMNode::DOCUMENT_POSITION_PRECEDING + + + + もう一方のノードが参照ノードより前にある場合に設定されます。 + + + + + + DOMNode::DOCUMENT_POSITION_FOLLOWING + + + + もう一方のノードが参照ノードの後に続く場合に設定されます。 + + + + + + DOMNode::DOCUMENT_POSITION_CONTAINS + + + + もう一方のノードが参照ノードの祖先である場合に設定されます。 + + + + + + DOMNode::DOCUMENT_POSITION_CONTAINED_BY + + + + もう一方のノードが参照ノードの子孫である場合に設定されます。 + + + + + + DOMNode::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC + + + + 結果が実装依存の動作に基づいており、移植性がない場合に設定されます。 + これは、同じツリー内にないノードや属性ノードの場合に発生する可能性があります。 + + + + +
+
&reftitle.properties; @@ -159,7 +277,7 @@ nodeType - ノードの型を、定義済みの定数 XML_xxx_NODE のいずれかで返す + ノードの型を、定義済みの定数 XML_*_NODE のいずれかで返す @@ -168,6 +286,12 @@ このノードの親 (存在しない場合は &null;) を返す + + parentElement + + この要素の親要素。存在しない場合は &null; を返す + + childNodes @@ -217,12 +341,19 @@ + + isConnected + + ノードが Document に接続されているかどうか + + ownerDocument - このノードに関連付けられている DOMDocument オブジェクト - このノードが DOMDocument だった場合は、&null; + このノードに関連付けられている DOMDocument オブジェクト。 + このノードが関連付けられた文書を持たない場合は &null; + (例: ノードがデタッチされているか、DOMDocument だった場合) @@ -235,7 +366,7 @@ prefix - このノードの名前空間プレフィックス。指定されていない場合は &null; + このノードの名前空間プレフィックス @@ -263,16 +394,8 @@
- -
- &reftitle.notes; - &dom.note.utf8; -
- - -
- &reftitle.changelog; - +
+ &reftitle.changelog; @@ -283,16 +406,59 @@ - 5.6.1 + 8.4.0 - textContent プロパティが書き込み可能になりました (これまでは、読み込み専用でした)。 + DOMNode::compareDocumentPosition メソッドが追加されました。 + + + + 8.4.0 + + 以下の定数が新たに追加されました。 + DOMNode::DOCUMENT_POSITION_DISCONNECTED、 + DOMNode::DOCUMENT_POSITION_PRECEDING、 + DOMNode::DOCUMENT_POSITION_FOLLOWING、 + DOMNode::DOCUMENT_POSITION_CONTAINS、 + DOMNode::DOCUMENT_POSITION_CONTAINED_BY、および + DOMNode::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC。 + + + + 8.3.0 + + DOMNode::contains と、 + DOMNode::isEqualNode というメソッドが追加されました。 + + + + 8.3.0 + + プロパティ DOMNode::$parentElement と + DOMNode::$isConnected が追加されました。 + + + + 8.0.0 + + 実装されていなかったメソッド + DOMNode::compareDocumentPosition, + DOMNode::isEqualNode, + DOMNode::getFeature, + DOMNode::setUserData, + DOMNode::getUserData が削除されました。 - -
+
+ + +
+ &reftitle.notes; + &dom.note.utf8; +
+
@@ -309,8 +475,7 @@ &reference.dom.entities.domnode; - - + - diff --git a/reference/dom/domnode/appendchild.xml b/reference/dom/domnode/appendchild.xml index 362c72ffe1..c3448f0ad8 100644 --- a/reference/dom/domnode/appendchild.xml +++ b/reference/dom/domnode/appendchild.xml @@ -1,8 +1,8 @@ - + - + DOMNode::appendChild @@ -11,9 +11,9 @@ &reftitle.description; - - public DOMNodeDOMNode::appendChild - DOMNodenewnode + + public DOMNodefalseDOMNode::appendChild + DOMNodenode この関数は、既存の子要素のリストに新しい子要素を追加するか、 @@ -22,13 +22,16 @@ DOMDocument::createTextNode などを使用するか、単に別のノードを使用します。 + + 既存のノードを使う場合、そのノードは移動します。 + &reftitle.parameters; - newnode + node 追加する子要素。 @@ -42,6 +45,7 @@ &reftitle.returnvalues; 追加したノードを返します。 + エラーの場合は &false; を返します。 @@ -61,7 +65,7 @@ DOM_HIERARCHY_REQUEST_ERR - newnode で指定した型の子ノードを + node で指定した型の子ノードを 保持することが許可されていない場合、あるいは追加しようとしている ノードが自分自身やその祖先であった場合に発生します。 @@ -71,7 +75,7 @@ DOM_WRONG_DOCUMENT_ERR - newnode が、このノードとは別の + node が、このノードとは別の ドキュメントで作成されたものである場合に発生します。 @@ -129,6 +133,7 @@ echo $doc->saveXML(); &reftitle.seealso; + DOMChildNode::after DOMNode::insertBefore DOMNode::removeChild DOMNode::replaceChild @@ -136,7 +141,6 @@ echo $doc->saveXML(); - - + @@ -10,12 +10,12 @@ &reftitle.description; - - public stringDOMNode::C14N - boolexclusive - boolwith_comments - arrayxpath - arrayns_prefixes + + public stringfalseDOMNode::C14N + boolexclusive&false; + boolwithComments&false; + arraynullxpath&null; + arraynullnsPrefixes&null; ノードを文字列に正規化します。 @@ -34,7 +34,7 @@ - with_comments + withComments コメントを残して出力する。 @@ -43,14 +43,10 @@ xpath - - - ノードを絞り込むための xpath の配列。 - - + &dom.c14n.xpath_array; - ns_prefixes + nsPrefixes ノードを絞り込むための名前空間プレフィックスの配列。 @@ -68,6 +64,46 @@ + + &reftitle.examples; + + + XPath クエリの例 + + 以下のコードは、XPath クエリを使ってノードをフィルタし、 + 正規化する高度なやり方を示します。 + + +loadXML(<< + + Apple + Orange + Pear + + Lettuce + +XML); +echo $dom->C14N(true, false, [ + "query" => ".//f:fruit|.//f:fruit/text()", + "namespaces" => ["f" => "urn:food"], +]); +?> +]]> + + &example.outputs; + +AppleOrangePear +]]> + + + + + &reftitle.seealso; @@ -78,7 +114,6 @@ - - + @@ -11,13 +11,13 @@ &reftitle.description; - - public intDOMNode::C14NFile + + public intfalseDOMNode::C14NFile stringuri boolexclusive&false; - boolwith_comments&false; - arrayxpath - arrayns_prefixes + boolwithComments&false; + arraynullxpath&null; + arraynullnsPrefixes&null; ノードをファイルに正規化します。 @@ -44,7 +44,7 @@ - with_comments + withComments コメントを残して出力する。 @@ -53,14 +53,10 @@ xpath - - - ノードを絞り込むための xpath の配列。 - - + &dom.c14n.xpath_array; - ns_prefixes + nsPrefixes ノードを絞り込むための名前空間プレフィックスの配列。 @@ -88,7 +84,6 @@ - - - + + DOMNode::cloneNode @@ -10,9 +10,9 @@ &reftitle.description; - - public DOMNodeDOMNode::cloneNode - booldeep + + public DOMNodefalseDOMNode::cloneNode + booldeep&false; ノードのコピーを作成します。 @@ -41,7 +41,6 @@ - + + + + + DOMNode::compareDocumentPosition + 2つのノードの位置を比較します。 + + + + &reftitle.description; + + public intDOMNode::compareDocumentPosition + DOMNodeother + + + このノードに対するもう一方のノードの位置を比較します。 + + + + + &reftitle.parameters; + + + other + + + このノードに対して、位置を比較すべきノード。 + + + + + + + + &reftitle.returnvalues; + + DOMNode::DOCUMENT_POSITION_* 定数のビットマスク。 + + + + + &reftitle.examples; + + <methodname>DOMNode::compareDocumentPosition</methodname> の例 + + + + + +XML; + +$dom = new DOMDocument(); +$dom->loadXML($xml); + +$root = $dom->documentElement; +$child1 = $root->firstElementChild; +$child2 = $child1->nextElementSibling; + +var_dump($root->compareDocumentPosition($child1)); +var_dump($child2->compareDocumentPosition($child1)); +?> +]]> + + &example.outputs; + + + + + + + diff --git a/reference/dom/domnode/contains.xml b/reference/dom/domnode/contains.xml new file mode 100644 index 0000000000..c55910a515 --- /dev/null +++ b/reference/dom/domnode/contains.xml @@ -0,0 +1,100 @@ + + + + + + DOMNode::contains + ノードが別のノードを含んでいるかを調べる + + + + &reftitle.description; + + public boolDOMNode::contains + DOMNodeDOMNameSpaceNodenullother + + + ノードが other ノードを含んでいるかを調べます。 + + + + + &reftitle.parameters; + + + + other + + + 調べるノード + + + + + + + + + &reftitle.returnvalues; + + ノードが other ノードを含んでいる場合 + &true; を返します。そうでない場合に &false; を返します。 + + + + + &reftitle.examples; + + <methodname>DOMNode::contains</methodname> の例 + +loadXML(<< + + +
+

Hello, world!

+
+ + +XML); + +$xpath = new DOMXPath($dom); +$main = $xpath->query("//main")[0]; + +var_dump($dom->documentElement->contains($main)); +?> +]]> +
+ &example.outputs; + + + +
+
+
+ diff --git a/reference/dom/domnode/getlineno.xml b/reference/dom/domnode/getlineno.xml index 57478c1d51..a5be742b8d 100644 --- a/reference/dom/domnode/getlineno.xml +++ b/reference/dom/domnode/getlineno.xml @@ -1,6 +1,6 @@ - + @@ -10,12 +10,12 @@ &reftitle.description; - + public intDOMNode::getLineNo - + - ノードが定義された行の番号を取得します。 + パース時にノードが定義された行の番号を取得します。 @@ -27,7 +27,8 @@ &reftitle.returnvalues; - 常にノードが定義された行の番号を返します。 + パース時にノードが定義された行の番号を返します。 + ノードが手動で作成された場合、戻り値は 0 になります。 @@ -69,7 +70,6 @@ The tag is defined in line 3 - - + @@ -10,9 +10,9 @@ &reftitle.description; - - public stringDOMNode::getNodePath - + + public stringnullDOMNode::getNodePath + ノードの XPath ロケーションパスを取得します。 @@ -87,7 +87,6 @@ foreach ($dom->getElementsByTagName('*') as $node) { - + + + + DOMNode::getRootNode + ルート(根)ノードを取得する + + + + &reftitle.description; + + public DOMNodeDOMNode::getRootNode + arraynulloptions&null; + + + ルート(根)ノードを取得します。 + + + + + &reftitle.parameters; + + + + options + + + このパラメータにはまだ意味がありません + + + + + + + + + &reftitle.returnvalues; + + ルート(根)ノードを返します。 + + + + + &reftitle.examples; + + <methodname>DOMNode::getRootNode</methodname> の例 + +loadXML(''); + +var_dump($dom->documentElement->firstElementChild->getRootNode() === $dom); +?> +]]> + + &example.outputs; + + + + + + + diff --git a/reference/dom/domnode/hasattributes.xml b/reference/dom/domnode/hasattributes.xml index 1e7218c5be..14d3cab1a4 100644 --- a/reference/dom/domnode/hasattributes.xml +++ b/reference/dom/domnode/hasattributes.xml @@ -1,7 +1,7 @@ - - + + DOMNode::hasAttributes @@ -10,7 +10,7 @@ &reftitle.description; - + public boolDOMNode::hasAttributes @@ -20,6 +20,12 @@ である必要があります。 + + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; @@ -35,7 +41,6 @@ - - - + + DOMNode::hasChildNodes @@ -10,7 +10,7 @@ &reftitle.description; - + public boolDOMNode::hasChildNodes @@ -18,6 +18,12 @@ この関数は、ノードが子を保持しているかどうかを調べます。 + + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; @@ -33,7 +39,6 @@ - - - + + + DOMNode::insertBefore @@ -10,23 +11,26 @@ &reftitle.description; - - public DOMNodeDOMNode::insertBefore - DOMNodenewnode - DOMNoderefnode + + public DOMNodefalseDOMNode::insertBefore + DOMNodenode + DOMNodenullchild&null; この関数は、参照しているノードの直前に新しいノードを挿入します。 追加するノードに対して変更を加えたい場合は、この関数から返される ノードを使用します。 + + 既存のノードを使う場合、そのノードは移動します。 + &reftitle.parameters; - newnode + node 新しいノード。 @@ -34,10 +38,10 @@ - refnode + child - 参照ノード。指定されなかった場合は、newnode + 参照ノード。指定されなかった場合は、node が子要素として追加されます。 @@ -49,6 +53,7 @@ &reftitle.returnvalues; 挿入されたノードを返します。 + エラーの場合は &false; を返します。 @@ -68,7 +73,7 @@ DOM_HIERARCHY_REQUEST_ERR - newnode で指定した型の子ノードを + node で指定した型の子ノードを 保持することが許可されていない場合、あるいは追加しようとしている ノードが自分自身やその祖先であった場合に発生します。 @@ -78,16 +83,16 @@ DOM_WRONG_DOCUMENT_ERR - newnode が、このノードとは別の + node が、このノードとは別の ドキュメントで作成されたものである場合に発生します。 - DOM_NOT_FOUND + DOM_NOT_FOUND_ERR - refnode がこのノードの子ではない場合に + child がこのノードの子ではない場合に 発生します。 @@ -106,7 +111,6 @@ - - + DOMNode::isDefaultNamespace @@ -8,13 +8,13 @@ &reftitle.description; - + public boolDOMNode::isDefaultNamespace - stringnamespaceURI + stringnamespace - namespaceURI がデフォルトの名前空間であるかどうかを調べます。 + namespace がデフォルトの名前空間であるかどうかを調べます。 @@ -22,7 +22,7 @@ - namespaceURI + namespace 調べる名前空間 URI。 @@ -35,7 +35,7 @@ &reftitle.returnvalues; - namespaceURI がデフォルトの名前空間である場合に + namespace がデフォルトの名前空間である場合に &true;、それ以外の場合に &false; を返します。 diff --git a/reference/dom/domnode/isequalnode.xml b/reference/dom/domnode/isequalnode.xml new file mode 100644 index 0000000000..7abd06390c --- /dev/null +++ b/reference/dom/domnode/isequalnode.xml @@ -0,0 +1,88 @@ + + + + + + DOMNode::isEqualNode + ノードが等しいかを調べる + + + + &reftitle.description; + + public boolDOMNode::isEqualNode + DOMNodenullotherNode + + + ノードが等しいかを調べます。 + + + + + &reftitle.parameters; + + + + otherNode + + + ノード + + + + + + + + + &reftitle.returnvalues; + + 双方のノードが等しい場合 &true; を返します。 + そうでない場合、&false; を返します。 + + + + + &reftitle.examples; + + <methodname>DOMNode::isEqualNode</methodname> の例 + +createElement('h1', 'Hello World!'); +$dom2 = (new DOMDocument())->createElement('h1', 'Hello World!'); + +var_dump($dom1->isEqualNode($dom2)); +?> +]]> + + &example.outputs; + + + + + + + diff --git a/reference/dom/domnode/issamenode.xml b/reference/dom/domnode/issamenode.xml index 4afd4830a8..30c0c5cd70 100644 --- a/reference/dom/domnode/issamenode.xml +++ b/reference/dom/domnode/issamenode.xml @@ -1,7 +1,7 @@ - - + + DOMNode::isSameNode @@ -10,9 +10,9 @@ &reftitle.description; - + public boolDOMNode::isSameNode - DOMNodenode + DOMNodeotherNode この関数は、2 つのノードが等しいかどうかを調べます。この比較は、 @@ -24,7 +24,7 @@ - node + otherNode 比較対象となるノード。 @@ -41,7 +41,6 @@ - - + DOMNode::isSupported @@ -10,7 +10,7 @@ &reftitle.description; - + public boolDOMNode::isSupported stringfeature stringversion @@ -60,7 +60,6 @@ - - + - DOMNode::lookupNamespaceUri + DOMNode::lookupNamespaceURI プレフィックスに基づいて、ノードの名前空間 URI を取得する &reftitle.description; - - public stringDOMNode::lookupNamespaceUri - stringprefix + + public stringnullDOMNode::lookupNamespaceURI + stringnullprefix prefix に基づいて、 @@ -28,7 +28,9 @@ prefix - 名前空間のプレフィックス。 + 探す名前空間のプレフィックス。 + &null; を指定した場合、デフォルトの名前空間URIを返します。 + 但し、存在する場合に限ります。 @@ -38,7 +40,8 @@ &reftitle.returnvalues; - ノードの名前空間 URI を返します。 + 関連する名前空間 URI を返します。 + 見つからなかった場合は &null; を返します。 diff --git a/reference/dom/domnode/lookupprefix.xml b/reference/dom/domnode/lookupprefix.xml index 076612d8c3..f9fb590889 100644 --- a/reference/dom/domnode/lookupprefix.xml +++ b/reference/dom/domnode/lookupprefix.xml @@ -1,8 +1,8 @@ - + - + DOMNode::lookupPrefix @@ -11,9 +11,9 @@ &reftitle.description; - - public stringDOMNode::lookupPrefix - stringnamespaceURI + + public stringnullDOMNode::lookupPrefix + stringnamespace 名前空間 URI に基づいて、ノードの名前空間プレフィックスを取得します。 @@ -24,7 +24,7 @@ - namespaceURI + namespace 名前空間 URI。 @@ -38,6 +38,7 @@ &reftitle.returnvalues; 名前空間のプレフィックスを返します。 + エラーの場合は &null; を返します。 @@ -49,7 +50,6 @@ - - + DOMNode::normalize @@ -10,7 +10,7 @@ &reftitle.description; - + public voidDOMNode::normalize @@ -18,6 +18,12 @@ 空のテキストノードを削除し、このノードに隣接するテキストノードとそのすべての子をマージします。 + + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; @@ -36,7 +42,6 @@ - - - + + DOMNode::removeChild @@ -10,9 +10,9 @@ &reftitle.description; - - public DOMNodeDOMNode::removeChild - DOMNodeoldnode + + public DOMNodefalseDOMNode::removeChild + DOMNodechild この関数は、子要素群から子要素を削除します。 @@ -23,7 +23,7 @@ - oldnode + child 削除する子要素。 @@ -37,6 +37,7 @@ &reftitle.returnvalues; 子要素の削除に成功した場合に、削除した要素を返します。 + エラーの場合は &false; を返します。 @@ -52,10 +53,10 @@ - DOM_NOT_FOUND + DOM_NOT_FOUND_ERR - oldnode がこのノードの子要素でない場合に発生します。 + child がこのノードの子要素でない場合に発生します。 @@ -73,7 +74,7 @@ load('book.xml'); +$doc->load('examples/book-docbook.xml'); $book = $doc->documentElement; @@ -103,13 +104,13 @@ echo $doc->saveXML(); &reftitle.seealso; + DOMChildNode::remove DOMNode::appendChild DOMNode::replaceChild - - - + + DOMNode::replaceChild @@ -10,14 +10,14 @@ &reftitle.description; - - public DOMNodeDOMNode::replaceChild - DOMNodenewnode - DOMNodeoldnode + + public DOMNodefalseDOMNode::replaceChild + DOMNodenode + DOMNodechild - この関数は、子要素 oldnode を新しいノードに - 置き換えます。もし newnode がすでに子要素であった場合は、 + この関数は、子要素 child を新しいノードに + 置き換えます。もし node がすでに子要素であった場合は、 それがふたたび追加されることはありません。置き換えに成功すると、 置き換え前のノードが返されます。 @@ -27,18 +27,18 @@ - newnode + node 新しいノード。対象ドキュメントのメンバ、 - すなわち、DOMDocument->createXXX() メソッドのひとつで作成されたものか - で + すなわち、DOMDocument->createXXX() メソッドのひとつで作成されたものか + で ドキュメントにインポートされたものである必要があります。 - oldnode + child 古いノード。 @@ -71,7 +71,7 @@ DOM_HIERARCHY_REQUEST_ERR - newnode で指定した型の子ノードを + node で指定した型の子ノードを 保持することが許可されていない場合、あるいは追加しようとしている ノードが自分自身やその祖先であった場合に発生します。 @@ -81,16 +81,16 @@ DOM_WRONG_DOCUMENT_ERR - newnode が、このノードとは別の + node が、このノードとは別の ドキュメントで作成されたものである場合に発生します。 - DOM_NOT_FOUND + DOM_NOT_FOUND_ERR - oldnode がこのノードの子でない場合に発生します。 + child がこのノードの子でない場合に発生します。 @@ -101,13 +101,13 @@ &reftitle.seealso; + DOMChildNode::replaceWith DOMNode::appendChild DOMNode::removeChild - + + + + DOMNode::__sleep + サブクラスでシリアライズメソッドが実装されていない限り、シリアライズを禁止する + + + + &reftitle.description; + + public arrayDOMNode::__sleep + + + + サブクラスでシリアライズメソッドが実装されていない限り、シリアライズを禁止します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + このメソッドは、常に例外をスローします。 + + + + + &reftitle.errors; + + コールされると、Error がスローされます。 + + + + diff --git a/reference/dom/domnode/wakeup.xml b/reference/dom/domnode/wakeup.xml new file mode 100644 index 0000000000..f6acff476e --- /dev/null +++ b/reference/dom/domnode/wakeup.xml @@ -0,0 +1,59 @@ + + + + + + DOMNode::__wakeup + サブクラスでアンシリアライズメソッドが実装されていない限り、アンシリアライズを禁止する + + + + &reftitle.description; + + public voidDOMNode::__wakeup + + + + サブクラスでアンシリアライズメソッドが実装されていない限り、アンシリアライズを禁止します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + このメソッドは、常に例外をスローします。 + + + + + &reftitle.errors; + + コールされると、Error がスローされます + + + + diff --git a/reference/dom/domnodelist.xml b/reference/dom/domnodelist.xml index 301f2c0738..960b0c9621 100644 --- a/reference/dom/domnodelist.xml +++ b/reference/dom/domnodelist.xml @@ -1,6 +1,6 @@ - + - + DOMNodeList クラス DOMNodeList - - -
&reftitle.classsynopsis; - - DOMNodeList + + + DOMNodeList + + + + implements + IteratorAggregate + + + + Countable + - - - - DOMNodeList - - - - Traversable - - - Countable - - - - &Properties; - public readonly int length - + &Methods; - - + + + @@ -93,6 +85,15 @@ Remove me once you perform substitutions + + 8.0.0 + + DOMNodeList は + IteratorAggregate を実装しました。 + これより前のバージョンでは、 + Traversable を代わりに実装していました。 + + 7.2.0 @@ -104,7 +105,16 @@ Remove me once you perform substitutions -
+
+ +
+ &reftitle.notes; + + + リスト中のノードは、配列の文法を使ってもアクセスできます。 + + +
@@ -115,13 +125,12 @@ Remove me once you perform substitutions
- + &reference.dom.entities.domnodelist; - - + - diff --git a/reference/dom/domnodelist/count.xml b/reference/dom/domnodelist/count.xml index 7610bb674c..fa475a6583 100644 --- a/reference/dom/domnodelist/count.xml +++ b/reference/dom/domnodelist/count.xml @@ -1,6 +1,6 @@ - + @@ -10,9 +10,9 @@ &reftitle.description; - + public intDOMNodeList::count - + リストにあるノードの数を取得します。 @@ -35,7 +35,6 @@ - + + + + DOMNodeList::getIterator + 外部のイテレータを取得する + + + + &reftitle.description; + + public IteratorDOMNodeList::getIterator + + + + ノードリスト向けの、外部イテレータを返します。 + + + + + + + + + &reftitle.seealso; + + IteratorAggregate::getIterator + + + + + diff --git a/reference/dom/domnodelist/item.xml b/reference/dom/domnodelist/item.xml index 5c215a9be5..d2c5a7af79 100644 --- a/reference/dom/domnodelist/item.xml +++ b/reference/dom/domnodelist/item.xml @@ -1,8 +1,8 @@ - + - + DOMNodelist::item @@ -11,8 +11,8 @@ &reftitle.description; - - DOMNodeDOMNodeList::item + + public DOMElementDOMNodeDOMNameSpaceNodenullDOMNodeList::item intindex @@ -58,31 +58,49 @@ load('book.xml'); +$doc->load('examples/book-docbook.xml'); $items = $doc->getElementsByTagName('entry'); for ($i = 0; $i < $items->length; $i++) { echo $items->item($i)->nodeValue . "\n"; } +?> +]]> + + + + 配列構文で要素にアクセスする + +load('examples/book-docbook.xml'); + +$items = $doc->getElementsByTagName('entry'); + +for ($i = 0; $i < $items->length; $i++) { + echo $items[$i]->nodeValue . "\n"; +} ?> ]]> - - 別の方法として &foreach; を使用することも可能で、 - こちらのほうがずっと使いやすいでしょう。 - + + + &foreach; でアイテムを走査する load('examples/book-docbook.xml'); + +$items = $doc->getElementsByTagName('entry'); foreach ($items as $item) { echo $item->nodeValue . "\n"; } - ?> ]]> @@ -111,7 +129,6 @@ fr - - + - + DOMNotation クラス DOMNotation @@ -32,26 +32,22 @@ Remove me once you perform substitutions &reftitle.classsynopsis; - - DOMNotation - - - - - DOMNotation - - - - - extends - DOMNode - - - - - + + + DOMNotation + + + + extends + DOMNode + + + &InheritedConstants; + + + + &Properties; - public readonly @@ -67,39 +63,34 @@ Remove me once you perform substitutions &InheritedProperties; - + - - - &InheritedMethods; - - + + +
-
&reftitle.properties; publicId - + 記法に関連付けられた public な識別子 systemId - + + 記法に関連付けられたシステム識別子 @@ -122,8 +113,7 @@ Remove me once you perform substitutions - - + - diff --git a/reference/dom/domparentnode.xml b/reference/dom/domparentnode.xml new file mode 100644 index 0000000000..b1e4e60592 --- /dev/null +++ b/reference/dom/domparentnode.xml @@ -0,0 +1,52 @@ + + + + + DOMParentNode インターフェイス + DOMParentNode + + + +
+ &reftitle.interfacesynopsis; + + + + + DOMParentNode + + + &Methods; + + + + + + +
+ +
+ + &reference.dom.entities.domparentnode; + +
+ diff --git a/reference/dom/domparentnode/append.xml b/reference/dom/domparentnode/append.xml new file mode 100644 index 0000000000..fdf6195464 --- /dev/null +++ b/reference/dom/domparentnode/append.xml @@ -0,0 +1,107 @@ + + + + + + DOMParentNode::append + 最後の子ノードの後ろにノードを追加する + + + + &reftitle.description; + + public voidDOMParentNode::append + DOMNodestringnodes + + + ひとつ以上の nodes を、 + 最後の子ノードの後ろの、子ノードのリストに追加します。 + + + + + &reftitle.parameters; + + + + nodes + + + 追加するノード。 + 文字列は自動的にテキストノードに変換されます。 + + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.errors; + + &dom.errors.hierarchy.self; + &dom.errors.wrong_document; + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + オーナーとなるドキュメントがないノードに対して、 + このメソッドをコールしても動作するようになりました。 + &dom.changelog.previous_hierarchy_exception; + + + + + + + + + &reftitle.seealso; + + + DOMParentNode::prepend + + + + + + diff --git a/reference/dom/domparentnode/prepend.xml b/reference/dom/domparentnode/prepend.xml new file mode 100644 index 0000000000..2648f1dbd6 --- /dev/null +++ b/reference/dom/domparentnode/prepend.xml @@ -0,0 +1,108 @@ + + + + + + DOMParentNode::prepend + 最初の子ノードの前にノードを追加する + + + + &reftitle.description; + + public voidDOMParentNode::prepend + DOMNodestringnodes + + + ひとつ以上の nodes を、 + 最初の子ノードの前の、 + 子ノードのリストに追加します。 + + + + + &reftitle.parameters; + + + + nodes + + + ノードの前に追加するノード。 + 文字列は自動的にテキストノードに変換されます。 + + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.errors; + + &dom.errors.hierarchy.self; + &dom.errors.wrong_document; + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + オーナーとなるドキュメントがないノードに対して、 + このメソッドをコールしても動作するようになりました。 + &dom.changelog.previous_hierarchy_exception; + + + + + + + + + &reftitle.seealso; + + + DOMParentNode::append + + + + + + diff --git a/reference/dom/domparentnode/replacechildren.xml b/reference/dom/domparentnode/replacechildren.xml new file mode 100644 index 0000000000..533cd6e1ca --- /dev/null +++ b/reference/dom/domparentnode/replacechildren.xml @@ -0,0 +1,123 @@ + + + + + + DOMParentNode::replaceChildren + ノード中の子を置換する + + + + &reftitle.description; + + public voidDOMParentNode::replaceChildren + DOMNodestringnodes + + + ノード中の子を置換します。 + + + + + &reftitle.parameters; + + + + nodes + + + 子を置き換えるノード + 文字列は自動的にテキストノードに変換されます。 + + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.errors; + + &dom.errors.hierarchy.self; + &dom.errors.wrong_document; + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + オーナーとなるドキュメントがないノードに対して、 + このメソッドをコールしても動作するようになりました。 + &dom.changelog.previous_hierarchy_exception; + + + + + + + + + &reftitle.examples; + + <methodname>DOMParentNode::replaceChildren</methodname> の例 + +loadHTML('

hi

test

hi2

'); + +$dom->documentElement->replaceChildren('foo', $dom->createElement('p'), 'bar'); +echo $dom->saveXML(); +?> +]]> +
+ &example.outputs; + + + +foo

bar +]]> + + + + + diff --git a/reference/dom/domprocessinginstruction.xml b/reference/dom/domprocessinginstruction.xml index c614755bc8..b29c1aece3 100644 --- a/reference/dom/domprocessinginstruction.xml +++ b/reference/dom/domprocessinginstruction.xml @@ -1,48 +1,41 @@ - + - + DOMProcessingInstruction クラス DOMProcessingInstruction - - -

&reftitle.classsynopsis; - - DOMProcessingInstruction - - - - - DOMProcessingInstruction - - - - - extends - DOMNode - - - - - + + + DOMProcessingInstruction + + + + extends + DOMNode + + + &InheritedConstants; + + + + &Properties; - public readonly @@ -57,37 +50,38 @@ &InheritedProperties; - + &Methods; - - - - &InheritedMethods; - + + + + &InheritedMethods; + + +
-
&reftitle.properties; target - + そのデータがどのアプリケーション向けなのかを表す文字列 data - + アプリケーション特有のデータ @@ -112,8 +106,7 @@ &reference.dom.entities.domprocessinginstruction; - - + - diff --git a/reference/dom/domprocessinginstruction/construct.xml b/reference/dom/domprocessinginstruction/construct.xml index 713e68fef7..b42ab67cbc 100644 --- a/reference/dom/domprocessinginstruction/construct.xml +++ b/reference/dom/domprocessinginstruction/construct.xml @@ -1,7 +1,7 @@ - - + + DOMProcessingInstruction::__construct @@ -10,18 +10,18 @@ &reftitle.description; - + public DOMProcessingInstruction::__construct stringname - stringvalue - + stringvalue"" + 新しい DOMProcessingInstruction オブジェクトを 作成します。このオブジェクトは読み込み専用です。このオブジェクトを ドキュメントに追加することは可能ですが、ノードをドキュメントに 関連付けるまではこのノードに別のノードを追加することはできません。 書き込み可能なノードを作成するには、 - + を使用してください。 @@ -86,7 +86,6 @@ echo $dom->saveXML(); - - + - + DOMText クラス DOMText @@ -24,26 +24,22 @@ &reftitle.classsynopsis; - - DOMText - - - - - DOMText - - - - - extends - DOMCharacterData - - - - - + + + DOMText + + + + extends + DOMCharacterData + + + &InheritedConstants; + + + + &Properties; - public readonly @@ -53,21 +49,27 @@ &InheritedProperties; - + - + &Methods; - - - - - &InheritedMethods; - - + + + + + + + &InheritedMethods; + + + + + + @@ -89,7 +91,31 @@
- + +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + 実装されていなかったメソッド + DOMText::replaceWholeText + が削除されました。 + + + + + +
+ - diff --git a/reference/dom/domtext/construct.xml b/reference/dom/domtext/construct.xml index d6fe4da02a..1e417cd969 100644 --- a/reference/dom/domtext/construct.xml +++ b/reference/dom/domtext/construct.xml @@ -1,7 +1,7 @@ - - + + DOMText::__construct @@ -10,9 +10,9 @@ &reftitle.description; - + public DOMText::__construct - stringvalue + stringdata"" 新しい DOMText オブジェクトを作成します。 @@ -23,7 +23,7 @@ - value + data text ノードの値。指定しなかった場合は空の text ノードが作成されます。 @@ -62,7 +62,6 @@ echo $dom->saveXML(); /* root v - - + @@ -10,9 +10,9 @@ &reftitle.description; - + public boolDOMText::isElementContentWhitespace - + @@ -34,7 +34,6 @@ - - - + + DOMText::isWhitespaceInElementContent @@ -10,7 +10,7 @@ &reftitle.description; - + public boolDOMText::isWhitespaceInElementContent @@ -20,6 +20,12 @@ ドキュメントの読み込み時に決定されます。 + + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; @@ -28,7 +34,6 @@ - - - + + DOMText::splitText @@ -10,8 +10,8 @@ &reftitle.description; - - public DOMTextDOMText::splitText + + public DOMTextfalseDOMText::splitText intoffset @@ -49,7 +49,6 @@ - - + - + DOMXPath クラス DOMXPath @@ -16,9 +16,10 @@ Remove me once you perform substitutions
&reftitle.intro; - - XPath 1.0 をサポートします。 - + + HTML や XML 文書に対して、 + XPath 1.0 のクエリを使うことを許可します。 +
@@ -26,48 +27,88 @@ Remove me once you perform substitutions &reftitle.classsynopsis; - - DOMXPath - - - - - DOMXPath - - - - - + + + DOMXPath + + &Properties; - public + readonly DOMDocument document - + + public + bool + registerNodeNamespaces + + &Methods; - - + + + + + +
-
&reftitle.properties; document - + このオブジェクトにリンクした文書 + + + + registerNodeNamespaces + + &true; に設定すると、ノードの名前空間が登録されます。
+ +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + DOMXPath オブジェクトはクローンできなくなりました。 + クローンすると例外がスローされます。 + これより前のバージョンでは、 + DOMXPath オブジェクトをクローンしても、 + 返されるオブジェクトは使用できませんでした。 + + + + 8.0.0 + + プロパティ + registerNodeNamespaces が追加されました。 + + + + + +
- diff --git a/reference/dom/domxpath/construct.xml b/reference/dom/domxpath/construct.xml index 5563472aa2..126304e4e3 100644 --- a/reference/dom/domxpath/construct.xml +++ b/reference/dom/domxpath/construct.xml @@ -1,7 +1,7 @@ - - + + DOMXPath::__construct @@ -10,10 +10,11 @@ &reftitle.description; - + public DOMXPath::__construct - DOMDocumentdoc - + DOMDocumentdocument + boolregisterNodeNS&true; + 新しい DOMXPath オブジェクトを作成します。 @@ -23,7 +24,7 @@ - doc + document DOMXPath に関連付けられた @@ -31,11 +32,11 @@ + &dom.parameters.register_node_ns; - - - + + + DOMXPath::evaluate @@ -10,10 +11,10 @@ &reftitle.description; - + public mixedDOMXPath::evaluate stringexpression - DOMNodecontextnode + DOMNodenullcontextNode&null; boolregisterNodeNS&true; @@ -34,7 +35,7 @@ - contextnode + contextNode 相対 XPath クエリを実行する場合に、オプションで基準ノードを指定することが可能です。 @@ -42,18 +43,11 @@ - - registerNodeNS - - - オプションの registerNodeNS で、 - コンテキストノードの自動登録を無効にすることができます。 - - - + &dom.parameters.register_node_ns; + &reftitle.returnvalues; @@ -63,33 +57,10 @@ expression が不正な形式な場合や - contextnode が無効な場合は、 + contextNode が無効な場合は、 DOMXPath::evaluate は &false; を返します。 - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.3 - - registerNodeNS パラメータが追加されました。 - - - - - - - &reftitle.examples; @@ -101,7 +72,7 @@ $doc = new DOMDocument; -$doc->load('book.xml'); +$doc->load('examples/book-dcobook.xml'); $xpath = new DOMXPath($doc); @@ -134,7 +105,6 @@ There are 2 english books - - + @@ -11,10 +11,10 @@ &reftitle.description; - - public DOMNodeListDOMXPath::query + + public mixedDOMXPath::query stringexpression - DOMNodecontextnode + DOMNodenullcontextNode&null; boolregisterNodeNS&true; @@ -35,7 +35,7 @@ - contextnode + contextNode 相対 XPath クエリを実行する場合に、オプションで基準ノードを指定することが可能です。 @@ -43,15 +43,7 @@ - - registerNodeNS - - - オプションの registerNodeNS で、 - コンテキストノードの自動登録を無効にすることができます。 - - - + &dom.parameters.register_node_ns; @@ -65,32 +57,38 @@ expression が不正な形式な場合や - contextnode が無効な場合は、 + contextNode が無効な場合は、 DOMXPath::query は &false; を返します。 - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.3 - - registerNodeNS パラメータが追加されました。 - - - - - - + + &reftitle.errors; + + PHP のコールバックを呼び出す式を使う際は、 + 以下のエラーが発生する可能性があります。 + + + + + PHP のコールバックを呼び出しているのにコールバックが登録されていなかったり、 + 名前付きコールバックが登録されていない場合、 + Error がスローされます。 + + + + + php:function を使っていて、 + ハンドラ名が文字列でない場合、 + TypeError がスローされます。 + + + + + DOM でないオブジェクトがコールバックから返された場合、 + Error がスローされます。 + + + &reftitle.examples; @@ -106,7 +104,7 @@ $doc = new DOMDocument; // 空白に悩まされたくはありません $doc->preserveWhiteSpace = false; -$doc->load('book.xml'); +$doc->load('examples/book-docbook.xml'); $xpath = new DOMXPath($doc); @@ -130,7 +128,7 @@ Found The Pearl, by John Steinbeck ]]> - 式を短くするため、contextnode + 式を短くするため、contextNode パラメータを使用することも可能です。 @@ -140,7 +138,7 @@ Found The Pearl, by John Steinbeck $doc = new DOMDocument; $doc->preserveWhiteSpace = false; -$doc->load('book.xml'); +$doc->load('examples/book-docbook.xml'); $xpath = new DOMXPath($doc); @@ -170,7 +168,6 @@ foreach ($entries as $entry) { - + + + + DOMXPath::quote + + XPath 式で使用できるよう、文字列のまわりに引用符を付ける + + + + + &reftitle.description; + + public static stringDOMXPath::quote + stringstr + + + XPath 式で使用できるよう、 str のまわりに引用符を付けます。 + + + + + &reftitle.parameters; + + + + str + + + 引用符をつける文字列 + + + + + + + + + &reftitle.returnvalues; + + XPath 式に使うことのできる引用符付きの文字列を返します。 + + + + + &reftitle.examples; + + 引用符を含む属性値の変換 + +loadXML(<< + Book title + +XML); + +$xpath = new DOMXPath($doc); + +$query = "//book[@name=" . DOMXPath::quote("'quoted' name") . "]"; +echo $query, "\n"; + +$entries = $xpath->query($query); + +foreach ($entries as $entry) { + echo "Found ", $entry->textContent, "\n"; +} +?> +]]> + + &example.outputs; + + + + + 引用符が混在している文字列もサポートします: + + + +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + + DOMXPath::evaluate + DOMXPath::query + + + + + diff --git a/reference/dom/domxpath/registernamespace.xml b/reference/dom/domxpath/registernamespace.xml index 7fe11ad25d..10166b92cf 100644 --- a/reference/dom/domxpath/registernamespace.xml +++ b/reference/dom/domxpath/registernamespace.xml @@ -1,6 +1,6 @@ - + DOMXPath::registerNamespace @@ -10,14 +10,14 @@ &reftitle.description; - + public boolDOMXPath::registerNamespace stringprefix - stringnamespaceURI + stringnamespace DOMXPath オブジェクトに、 - namespaceURI および + namespace および prefix を登録します。 @@ -34,7 +34,7 @@ - namespaceURI + namespace 名前空間の URI。 @@ -51,7 +51,6 @@ - + + + + DOMXPath::registerPhpFunctionNS + PHP の関数を、名前空間付きの XPath 関数として登録する + + + + &reftitle.description; + + public voidDOMXPath::registerPhpFunctionNS + stringnamespaceURI + stringname + callablecallable + + + このメソッドは、PHP の関数を名前空間付きの XPath 関数として、 + XPath 式中で使えるようにします。 + + + + + + &reftitle.parameters; + + + namespaceURI + + + 名前空間の URI + + + + + name + + + 名前空間の中での、ローカルな関数名 + + + + + callable + + + XPath 式の中で XPath 関数が呼ばれたときにコールされる PHP の関数。 + ノードリストが コールバック のパラメータとして渡された場合、 + ノードリストはマッチした DOM ノードを含む配列になります。 + + + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + &reftitle.examples; + + 名前空間付きの XPath 関数を登録し、XPath 式からそれをコールする例 + + + + PHP Basics + Jim Smith + Jane Smith + + + PHP Secrets + Jenny Smythe + + + XML basics + Joe Black + + +EOB; + +$doc = new DOMDocument(); +$doc->loadXML($xml); + +$xpath = new DOMXPath($doc); + +// Register the my: namespace (required) +$xpath->registerNamespace("my", "urn:my.ns"); + +// Register PHP function +$xpath->registerPHPFunctionNS( + 'urn:my.ns', + 'substring', + fn (array $arg1, int $start, int $length) => substr($arg1[0]->textContent, $start, $length) +); + +// Call substr function on the book title +$nodes = $xpath->query('//book[my:substring(title, 0, 3) = "PHP"]'); + +echo "Found {$nodes->length} books starting with 'PHP':\n"; +foreach ($nodes as $node) { + $title = $node->getElementsByTagName("title")->item(0)->nodeValue; + $author = $node->getElementsByTagName("author")->item(0)->nodeValue; + echo "$title by $author\n"; +} + +?> +]]> + + &example.outputs.similar; + + + + + + + + &reftitle.seealso; + + DOMXPath::registerNamespace + DOMXPath::query + DOMXPath::evaluate + XSLTProcessor::registerPHPFunctions + XSLTProcessor::registerPHPFunctionNS + + + + + diff --git a/reference/dom/domxpath/registerphpfunctions.xml b/reference/dom/domxpath/registerphpfunctions.xml index 4614b71019..d048e75c8d 100644 --- a/reference/dom/domxpath/registerphpfunctions.xml +++ b/reference/dom/domxpath/registerphpfunctions.xml @@ -1,7 +1,6 @@ - - + DOMXPath::registerPhpFunctions @@ -10,9 +9,9 @@ &reftitle.description; - + public voidDOMXPath::registerPhpFunctions - mixedrestrict + stringarraynullrestrict&null; このメソッドは、PHP の関数を XPath 式の中で使えるようにします。 @@ -31,7 +30,10 @@ このパラメータを使って、特定の関数のみを XPath からコールできるように制限することができます。 - このパラメータには、文字列 (関数名) あるいは関数名の配列を指定します。 + このパラメータは、以下のいずれかになります: + string (関数名), + 関数名の array, + 関数名がキーで callable な値を持つ連想配列。 @@ -46,6 +48,59 @@ + + &reftitle.errors; + + + + コールバック名が正しくない場合、   + ValueError がスローされます。 + + + &dom.errors.compliant.common; + + + 指定されたコールバックが callable でない場合、 + TypeError がスローされます。 + + + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + コールバック名が正しくない場合、 + ValueError + がスローされるようになりました。 + callable でない値を指定した場合、 + TypeError + がスローされるようになりました。 + + + + 8.4.0 + + restrict配列 にする際、 + コールバックとして callable を使用できるようになりました。 + + + + + + + &reftitle.examples; @@ -83,7 +138,7 @@ load('book.xml'); +$doc->load('examples/book-simple.xml'); $xpath = new DOMXPath($doc); @@ -91,7 +146,7 @@ $xpath = new DOMXPath($doc); $xpath->registerNamespace("php", "http://php.net/xpath"); // PHP の関数を登録します (無制限) -$xpath->registerPHPFunctions(); +$xpath->registerPhpFunctions(); // substr 関数を book の title に適用します $nodes = $xpath->query('//book[php:functionString("substr", title, 0, 3) = "PHP"]'); @@ -123,7 +178,7 @@ PHP Secrets by Jenny Smythe load('book.xml'); +$doc->load('examples/book-simple.xml'); $xpath = new DOMXPath($doc); @@ -131,7 +186,7 @@ $xpath = new DOMXPath($doc); $xpath->registerNamespace("php", "http://php.net/xpath"); // PHP の関数を登録します (has_multiple 限定) -$xpath->registerPHPFunctions("has_multiple"); +$xpath->registerPhpFunctions("has_multiple"); function has_multiple($nodes) { // author が複数ある場合に true を返します @@ -145,6 +200,43 @@ foreach ($books as $book) { echo $book->getElementsByTagName("title")->item(0)->nodeValue . "\n"; } +?> +]]> + + &example.outputs.similar; + + + + + + + + <methodname>DOMXPath::registerPhpFunctions</methodname> と <type>callable</type> の例 + +load('examples/book-simple.xml'); + +$xpath = new DOMXPath($doc); + +// 名前空間 php: を登録します (必須) +$xpath->registerNamespace("php", "http://php.net/xpath"); + +// PHP の関数を登録します (has_multiple 限定) +$xpath->registerPhpFunctions(["has_multiple" => fn ($nodes) => count($nodes) > 1]); + +// 複数の author がいる book のみを取り出します +$books = $xpath->query('//book[php:function("has_multiple", author)]'); + +echo "Books with multiple authors:\n"; +foreach ($books as $book) { + echo $book->getElementsByTagName("title")->item(0)->nodeValue . "\n"; +} + ?> ]]> @@ -158,7 +250,7 @@ PHP Basics - + &reftitle.seealso; @@ -166,12 +258,12 @@ PHP Basics DOMXPath::registerNamespace DOMXPath::query DOMXPath::evaluate + XSLTProcessor::registerPHPFunctions - - - - &reftitle.examples; - - このリファレンスの多くの例で、XMLファイルが必要です。 - 私たちは、次のような形式の book.xml を使用します。 - - - - book.xml - - - - - My lists - - My books - - - - - - Title - Author - Language - ISBN - - - - - The Grapes of Wrath - John Steinbeck - en - 0140186409 - - - The Pearl - John Steinbeck - en - 014017737X - - - Samarcande - Amine Maalouf - fr - 2253051209 - - - - - - - - -]]> - - - - - - + + + + + &reftitle.examples; + + このリファレンスの多くの例で、XMLファイルが必要です。 + 私たちは、次のような形式の book.xml を使用します。 + + + + book.xml + + + + + My lists + + My books + + + + + + Title + Author + Language + ISBN + + + + + The Grapes of Wrath + John Steinbeck + en + 0140186409 + + + The Pearl + John Steinbeck + en + 014017737X + + + Samarcande + Amine Maalouf + fr + 2253051209 + + + + + + + + +]]> + + + + + + diff --git a/reference/dom/functions/dom-import-simplexml.xml b/reference/dom/functions/dom-import-simplexml.xml index 9443622ca8..f7119368ad 100644 --- a/reference/dom/functions/dom-import-simplexml.xml +++ b/reference/dom/functions/dom-import-simplexml.xml @@ -1,24 +1,28 @@ - - + + dom_import_simplexml - SimpleXMLElement オブジェクトから DOMElement オブジェクトを取得する + SimpleXMLElement オブジェクトから DOMAttr または DOMElement オブジェクトを取得する &reftitle.description; - DOMElementdom_import_simplexml - SimpleXMLElementnode + DOMAttrDOMElementdom_import_simplexml + objectnode - この関数は、SimpleXML クラスの - ノード node を受け取り、それを - DOMElement ノードに変換します。新しいオブジェクトは、 - DOMElement ノードとして使用可能です。 + この関数は、指定された node + (SimpleXMLElement のインスタンス) + を受けとり、 + DOMAttr または DOMElement + をそれぞれ作成します。 + 新しい DOMNode は、 + 既にある同じXMLノードを SimpleXMLElement + として参照しています。 @@ -29,7 +33,8 @@ node - SimpleXMLElement ノード。 + インポートする属性または要素 + (SimpleXMLElement のインスタンス) @@ -39,10 +44,33 @@ &reftitle.returnvalues; - 追加された DOMElement ノード、あるいは - 何らかのエラーが発生した場合は &false; を返します。 + DOMAttr または DOMElement + を返します。 + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数は、失敗時に &null; を返さなくなりました。 + + + + + + + &reftitle.examples; @@ -73,6 +101,36 @@ echo $dom->saveXML(); ?> ]]> + &example.outputs; + + +blah +]]> + + + + Import SimpleXML into DOM and modify SimpleXML through DOM + + Error handling omitted for brevity. + + +blah'); +$elt = dom_import_simplexml($sxe); +$elt->setAttribute("foo", "bar"); +echo $sxe->asXML(); +?> +]]> + + &example.outputs; + + +blah +]]> + @@ -84,7 +142,6 @@ echo $dom->saveXML(); - + + + + Dom\import_simplexml + + SimpleXMLElement オブジェクトから、Dom\AttrDom\Element を取得する + + + + &reftitle.description; + + Dom\AttrDom\ElementDom\import_simplexml + objectnode + + + この関数は、与えられた属性または要素 node + (SimpleXMLElement のインスタンス) を受け取り、 + それぞれ Dom\AttrDom\Element + ノードを作成します。 + 新しい Dom\Node は、 + SimpleXMLElement と同じベースとなる XML ノードを参照します。 + + + + + + + + + + + &reftitle.returnvalues; + + Dom\Attr または Dom\Element + を返します。 + + + + + &reftitle.examples; + + SimpleXML を DOM にインポートし、SimpleXML を DOM 経由で変更する例 + + コードを簡潔にするため、エラーハンドリングは省略してあります + + +blah'); +$elt = Dom\import_simplexml($sxe); +$elt->setAttribute("foo", "bar"); +echo $sxe->asXML(); + +?> +]]> + + &example.outputs; + + +blah +]]> + + + + + &reftitle.seealso; + + simplexml_import_dom + + + + diff --git a/reference/dom/setup.xml b/reference/dom/setup.xml index c82c103407..7013599fa5 100644 --- a/reference/dom/setup.xml +++ b/reference/dom/setup.xml @@ -1,6 +1,6 @@ - + &reftitle.setup; @@ -22,20 +22,6 @@ - -
- &reftitle.runtime; - &no.config; -
- - - -
- &reftitle.resources; - &no.resource; -
- -
- - - - - &reftitle.constants; - &no.constants; - - - diff --git a/reference/eio/book.xml b/reference/eio/book.xml index 3e0143cd94..e19a602193 100644 --- a/reference/eio/book.xml +++ b/reference/eio/book.xml @@ -1,8 +1,9 @@ - + + Eio Eio diff --git a/reference/eio/constants.xml b/reference/eio/constants.xml index 13ff03d3e2..eb220a1543 100644 --- a/reference/eio/constants.xml +++ b/reference/eio/constants.xml @@ -1,6 +1,6 @@ - + &reftitle.constants; @@ -12,7 +12,7 @@ EIO_PRI_MIN - (integer) + (int) @@ -23,7 +23,7 @@ EIO_PRI_DEFAULT - (integer) + (int) @@ -34,7 +34,7 @@ EIO_PRI_MAX - (integer) + (int) @@ -51,7 +51,7 @@ EIO_SEEK_SET - (integer) + (int) @@ -62,7 +62,7 @@ EIO_SEEK_CUR - (integer) + (int) @@ -73,7 +73,7 @@ EIO_SEEK_END - (integer) + (int) @@ -92,7 +92,7 @@ EIO_READDIR_DENTS - (integer) + (int) @@ -110,7 +110,7 @@ EIO_READDIR_DIRS_FIRST - (integer) + (int) @@ -122,7 +122,7 @@ EIO_READDIR_STAT_ORDER - (integer) + (int) @@ -136,7 +136,7 @@ EIO_READDIR_FOUND_UNKNOWN - (integer) + (int) @@ -150,7 +150,7 @@ EIO_DT_UNKNOWN - (integer) + (int) @@ -161,7 +161,7 @@ EIO_DT_FIFO - (integer) + (int) @@ -172,7 +172,7 @@ EIO_DT_CHR - (integer) + (int) @@ -183,7 +183,7 @@ EIO_DT_MPC - (integer) + (int) @@ -194,7 +194,7 @@ EIO_DT_DIR - (integer) + (int) @@ -205,7 +205,7 @@ EIO_DT_NAM - (integer) + (int) @@ -216,7 +216,7 @@ EIO_DT_BLK - (integer) + (int) @@ -227,7 +227,7 @@ EIO_DT_MPB - (integer) + (int) @@ -238,7 +238,7 @@ EIO_DT_REG - (integer) + (int) @@ -249,7 +249,7 @@ EIO_DT_NWK - (integer) + (int) @@ -259,7 +259,7 @@ EIO_DT_CMP - (integer) + (int) @@ -270,7 +270,7 @@ EIO_DT_LNK - (integer) + (int) @@ -281,7 +281,7 @@ EIO_DT_SOCK - (integer) + (int) @@ -292,7 +292,7 @@ EIO_DT_DOOR - (integer) + (int) @@ -303,7 +303,7 @@ EIO_DT_WHT - (integer) + (int) @@ -314,7 +314,7 @@ EIO_DT_MAX - (integer) + (int) @@ -335,7 +335,7 @@ EIO_O_RDONLY - (integer) + (int) @@ -345,7 +345,7 @@ EIO_O_WRONLY - (integer) + (int) @@ -355,7 +355,7 @@ EIO_O_RDWR - (integer) + (int) @@ -365,7 +365,7 @@ EIO_O_NONBLOCK - (integer) + (int) @@ -375,7 +375,7 @@ EIO_O_APPEND - (integer) + (int) @@ -385,7 +385,7 @@ EIO_O_CREAT - (integer) + (int) @@ -395,7 +395,7 @@ EIO_O_TRUNC - (integer) + (int) @@ -405,7 +405,7 @@ EIO_O_EXCL - (integer) + (int) @@ -415,7 +415,7 @@ EIO_O_FSYNC - (integer) + (int) @@ -434,7 +434,7 @@ EIO_S_IRUSR - (integer) + (int) @@ -444,7 +444,7 @@ EIO_S_IWUSR - (integer) + (int) @@ -454,7 +454,7 @@ EIO_S_IXUSR - (integer) + (int) @@ -464,7 +464,7 @@ EIO_S_IRGRP - (integer) + (int) @@ -474,7 +474,7 @@ EIO_S_IWGRP - (integer) + (int) @@ -484,7 +484,7 @@ EIO_S_IXGRP - (integer) + (int) @@ -494,7 +494,7 @@ EIO_S_IROTH - (integer) + (int) @@ -504,7 +504,7 @@ EIO_S_IWOTH - (integer) + (int) @@ -514,7 +514,7 @@ EIO_S_IXOTH - (integer) + (int) @@ -524,7 +524,7 @@ EIO_S_IFREG - (integer) + (int) @@ -534,7 +534,7 @@ EIO_S_IFCHR - (integer) + (int) @@ -544,7 +544,7 @@ EIO_S_IFBLK - (integer) + (int) @@ -554,7 +554,7 @@ EIO_S_IFIFO - (integer) + (int) @@ -564,7 +564,7 @@ EIO_S_IFSOCK - (integer) + (int) @@ -584,7 +584,7 @@ EIO_SYNC_FILE_RANGE_WAIT_BEFORE - (integer) + (int) @@ -594,7 +594,7 @@ EIO_SYNC_FILE_RANGE_WRITE - (integer) + (int) @@ -604,7 +604,7 @@ EIO_SYNC_FILE_RANGE_WAIT_AFTER - (integer) + (int) @@ -623,7 +623,7 @@ EIO_FALLOC_FL_KEEP_SIZE - (integer) + (int) diff --git a/reference/eio/functions/eio-busy.xml b/reference/eio/functions/eio-busy.xml index 72896cfacb..cfbc9d7ca3 100644 --- a/reference/eio/functions/eio-busy.xml +++ b/reference/eio/functions/eio-busy.xml @@ -1,6 +1,6 @@ - + @@ -66,7 +66,8 @@ &reftitle.returnvalues; - eio_busy は成功した場合にリクエストリソースを返します。エラー時には &false; を返します。 + eio_busy は成功した場合にリクエストリソースを返します。 + &return.falseforfailure; diff --git a/reference/eio/functions/eio-chmod.xml b/reference/eio/functions/eio-chmod.xml index 958ff0b85d..ba8117c709 100644 --- a/reference/eio/functions/eio-chmod.xml +++ b/reference/eio/functions/eio-chmod.xml @@ -1,6 +1,6 @@ - + @@ -76,7 +76,7 @@ &reftitle.returnvalues; eio_chmod - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-chown.xml b/reference/eio/functions/eio-chown.xml index bdc4b490ab..5e6203a785 100644 --- a/reference/eio/functions/eio-chown.xml +++ b/reference/eio/functions/eio-chown.xml @@ -1,6 +1,6 @@ - + @@ -83,7 +83,7 @@ &reftitle.returnvalues; - eio_chown は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + eio_chown は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-close.xml b/reference/eio/functions/eio-close.xml index f74f55ac91..6585dcd1cc 100644 --- a/reference/eio/functions/eio-close.xml +++ b/reference/eio/functions/eio-close.xml @@ -1,6 +1,6 @@ - + @@ -65,7 +65,7 @@ &reftitle.returnvalues; - eio_close は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + eio_close は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-custom.xml b/reference/eio/functions/eio-custom.xml index ae9a749a92..4bee22c464 100644 --- a/reference/eio/functions/eio-custom.xml +++ b/reference/eio/functions/eio-custom.xml @@ -1,6 +1,6 @@ - + @@ -77,7 +77,7 @@ &reftitle.returnvalues; - eio_custom は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + eio_custom は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-dup2.xml b/reference/eio/functions/eio-dup2.xml index 1c6e21298a..5bf2221e92 100644 --- a/reference/eio/functions/eio-dup2.xml +++ b/reference/eio/functions/eio-dup2.xml @@ -1,6 +1,6 @@ - + @@ -74,7 +74,7 @@ &reftitle.returnvalues; eio_dup2 - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-event-loop.xml b/reference/eio/functions/eio-event-loop.xml index f709eb48c4..e2ee204e85 100644 --- a/reference/eio/functions/eio-event-loop.xml +++ b/reference/eio/functions/eio-event-loop.xml @@ -1,6 +1,6 @@ - + @@ -29,7 +29,7 @@ &reftitle.returnvalues; - eio_event_loop は、成功した場合に &true; を返します。エラー時に &false; を返します。 + eio_event_loop は、成功した場合に &true; を返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-fallocate.xml b/reference/eio/functions/eio-fallocate.xml index 4580126b95..ddecebd85e 100644 --- a/reference/eio/functions/eio-fallocate.xml +++ b/reference/eio/functions/eio-fallocate.xml @@ -1,6 +1,6 @@ - + @@ -106,7 +106,7 @@ &reftitle.returnvalues; eio_fallocate - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-fchmod.xml b/reference/eio/functions/eio-fchmod.xml index 935d8badb7..cc15823788 100644 --- a/reference/eio/functions/eio-fchmod.xml +++ b/reference/eio/functions/eio-fchmod.xml @@ -1,6 +1,6 @@ - + @@ -75,7 +75,7 @@ &reftitle.returnvalues; eio_fchmod - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-fchown.xml b/reference/eio/functions/eio-fchown.xml index 67f0c2a5c5..ec10ec8082 100644 --- a/reference/eio/functions/eio-fchown.xml +++ b/reference/eio/functions/eio-fchown.xml @@ -1,6 +1,6 @@ - + @@ -80,6 +80,14 @@ + + &reftitle.returnvalues; + + eio_chmod は、成功時にリクエストリソースを返します。 + &return.falseforfailure; + + + &reftitle.seealso; diff --git a/reference/eio/functions/eio-fdatasync.xml b/reference/eio/functions/eio-fdatasync.xml index 19322ff35d..ecf1397ad9 100644 --- a/reference/eio/functions/eio-fdatasync.xml +++ b/reference/eio/functions/eio-fdatasync.xml @@ -1,6 +1,6 @@ - + @@ -64,7 +64,7 @@ &reftitle.returnvalues; eio_fdatasync - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-fstat.xml b/reference/eio/functions/eio-fstat.xml index d003d6f199..e73b43bc4d 100644 --- a/reference/eio/functions/eio-fstat.xml +++ b/reference/eio/functions/eio-fstat.xml @@ -1,6 +1,6 @@ - + @@ -63,7 +63,7 @@ &reftitle.returnvalues; eio_busy - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-fstatvfs.xml b/reference/eio/functions/eio-fstatvfs.xml index b61fea62bf..90635ac240 100644 --- a/reference/eio/functions/eio-fstatvfs.xml +++ b/reference/eio/functions/eio-fstatvfs.xml @@ -1,6 +1,6 @@ - + @@ -63,7 +63,7 @@ &reftitle.returnvalues; eio_fstatvfs - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-fsync.xml b/reference/eio/functions/eio-fsync.xml index 93c240f0f6..22ee11a6f4 100644 --- a/reference/eio/functions/eio-fsync.xml +++ b/reference/eio/functions/eio-fsync.xml @@ -1,6 +1,6 @@ - + @@ -65,7 +65,7 @@ &reftitle.returnvalues; eio_fsync - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-ftruncate.xml b/reference/eio/functions/eio-ftruncate.xml index 9668cdffc7..15e0646ff3 100644 --- a/reference/eio/functions/eio-ftruncate.xml +++ b/reference/eio/functions/eio-ftruncate.xml @@ -1,6 +1,6 @@ - + @@ -76,7 +76,7 @@ &reftitle.returnvalues; eio_ftruncate - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-futime.xml b/reference/eio/functions/eio-futime.xml index 945275eae8..f0bf77a913 100644 --- a/reference/eio/functions/eio-futime.xml +++ b/reference/eio/functions/eio-futime.xml @@ -1,6 +1,6 @@ - + @@ -84,7 +84,7 @@ &reftitle.returnvalues; eio_futime - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-get-last-error.xml b/reference/eio/functions/eio-get-last-error.xml index 91c2047073..84aef61cd2 100644 --- a/reference/eio/functions/eio-get-last-error.xml +++ b/reference/eio/functions/eio-get-last-error.xml @@ -1,6 +1,6 @@ - + diff --git a/reference/eio/functions/eio-grp-add.xml b/reference/eio/functions/eio-grp-add.xml index f3eab353fe..5b9c3e4e9f 100644 --- a/reference/eio/functions/eio-grp-add.xml +++ b/reference/eio/functions/eio-grp-add.xml @@ -1,6 +1,6 @@ - + @@ -46,7 +46,7 @@ &reftitle.returnvalues; - eio_grp_add は値を返しません。 + &return.void; diff --git a/reference/eio/functions/eio-grp.xml b/reference/eio/functions/eio-grp.xml index 740bf6fbd2..584434d3a8 100644 --- a/reference/eio/functions/eio-grp.xml +++ b/reference/eio/functions/eio-grp.xml @@ -1,6 +1,6 @@ - + @@ -47,7 +47,7 @@ &reftitle.returnvalues; eio_grp - は、成功した場合にリクエストグループリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストグループリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-init.xml b/reference/eio/functions/eio-init.xml index 9a3686b91a..63db2cc3c7 100644 --- a/reference/eio/functions/eio-init.xml +++ b/reference/eio/functions/eio-init.xml @@ -1,6 +1,6 @@ - + @@ -21,19 +21,12 @@ もしコールしなくても、Eio 関数を最初にコールするときに、 内部で自動的にコールされます。 - - - - &removed.php.future; - Eio 1.1.0 からは eio_init が非推奨となりました。 - Eio 1.0.0 では、 - libeio の制約 - があったため、もしフォークしていたなら子プロセスで 必ず eio_init - をコールしなければいけませんでした。また、子プロセスで Eio を使うのなら - 親プロセスでは Eio を使わないようにしなければいけません。 - - - + + + この関数は、PHP 8 以降に対応した + eio 拡張モジュール 3.0.0RC1 で削除されました。 + + diff --git a/reference/eio/functions/eio-lstat.xml b/reference/eio/functions/eio-lstat.xml index 3fda74cbbf..4754d9776c 100644 --- a/reference/eio/functions/eio-lstat.xml +++ b/reference/eio/functions/eio-lstat.xml @@ -1,6 +1,6 @@ - + @@ -64,7 +64,7 @@ &reftitle.returnvalues; eio_lstat - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-mkdir.xml b/reference/eio/functions/eio-mkdir.xml index 55aa2bf69a..bc6fc8d29b 100644 --- a/reference/eio/functions/eio-mkdir.xml +++ b/reference/eio/functions/eio-mkdir.xml @@ -1,6 +1,6 @@ - + @@ -75,7 +75,7 @@ &reftitle.returnvalues; eio_mkdir - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-mknod.xml b/reference/eio/functions/eio-mknod.xml index 5f9a88a4dc..36dad3cf47 100644 --- a/reference/eio/functions/eio-mknod.xml +++ b/reference/eio/functions/eio-mknod.xml @@ -1,6 +1,6 @@ - + @@ -100,7 +100,7 @@ &reftitle.returnvalues; eio_mknod - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-nop.xml b/reference/eio/functions/eio-nop.xml index 9f6ab8bbd0..338ceb226c 100644 --- a/reference/eio/functions/eio-nop.xml +++ b/reference/eio/functions/eio-nop.xml @@ -1,6 +1,6 @@ - + @@ -57,7 +57,7 @@ &reftitle.returnvalues; eio_nop - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-open.xml b/reference/eio/functions/eio-open.xml index 9d016fea30..ea1e1734f7 100644 --- a/reference/eio/functions/eio-open.xml +++ b/reference/eio/functions/eio-open.xml @@ -1,6 +1,6 @@ - + @@ -60,7 +60,7 @@ EIO_S_I* 定数のいずれか、あるいは複数の (ビット OR による) 組み合わせ。 この定数の意味は、C のヘッダファイル sys/stat.h + xlink:href="&url.sys.stat.header;">sys/stat.h で定義されている S_I* と同じです。 新しくファイルを作るときは必須で、それ以外の場合は無視されます。 diff --git a/reference/eio/functions/eio-readahead.xml b/reference/eio/functions/eio-readahead.xml index f4e6c32163..9c891f8d31 100644 --- a/reference/eio/functions/eio-readahead.xml +++ b/reference/eio/functions/eio-readahead.xml @@ -1,6 +1,6 @@ - + @@ -84,7 +84,7 @@ &reftitle.returnvalues; eio_readahead - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-readdir.xml b/reference/eio/functions/eio-readdir.xml index 1cb2ffe5da..f445977a3c 100644 --- a/reference/eio/functions/eio-readdir.xml +++ b/reference/eio/functions/eio-readdir.xml @@ -1,6 +1,6 @@ - + @@ -74,7 +74,7 @@ &reftitle.returnvalues; eio_readdir - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure;。 callback 関数の result に設定される内容は flags によって変わります。 @@ -86,7 +86,7 @@ EIO_READDIR_DENTS - (integer) + (int) @@ -104,7 +104,7 @@ EIO_READDIR_DIRS_FIRST - (integer) + (int) @@ -116,7 +116,7 @@ EIO_READDIR_STAT_ORDER - (integer) + (int) @@ -130,7 +130,7 @@ EIO_READDIR_FOUND_UNKNOWN - (integer) + (int) @@ -150,7 +150,7 @@ EIO_DT_UNKNOWN - (integer) + (int) @@ -161,7 +161,7 @@ EIO_DT_FIFO - (integer) + (int) @@ -172,7 +172,7 @@ EIO_DT_CHR - (integer) + (int) @@ -183,7 +183,7 @@ EIO_DT_MPC - (integer) + (int) @@ -194,7 +194,7 @@ EIO_DT_DIR - (integer) + (int) @@ -205,7 +205,7 @@ EIO_DT_NAM - (integer) + (int) @@ -216,7 +216,7 @@ EIO_DT_BLK - (integer) + (int) @@ -227,7 +227,7 @@ EIO_DT_MPB - (integer) + (int) @@ -238,7 +238,7 @@ EIO_DT_REG - (integer) + (int) @@ -249,7 +249,7 @@ EIO_DT_NWK - (integer) + (int) @@ -259,7 +259,7 @@ EIO_DT_CMP - (integer) + (int) @@ -270,7 +270,7 @@ EIO_DT_LNK - (integer) + (int) @@ -281,7 +281,7 @@ EIO_DT_SOCK - (integer) + (int) @@ -292,7 +292,7 @@ EIO_DT_DOOR - (integer) + (int) @@ -303,7 +303,7 @@ EIO_DT_WHT - (integer) + (int) @@ -314,7 +314,7 @@ EIO_DT_MAX - (integer) + (int) diff --git a/reference/eio/functions/eio-readlink.xml b/reference/eio/functions/eio-readlink.xml index 2f1cd1b53a..e44ac230b3 100644 --- a/reference/eio/functions/eio-readlink.xml +++ b/reference/eio/functions/eio-readlink.xml @@ -1,6 +1,6 @@ - + @@ -17,7 +17,7 @@ intpri callablecallback stringdataNULL + choice="opt">mixeddataNULL @@ -63,7 +63,7 @@ &reftitle.returnvalues; eio_readlink - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-rename.xml b/reference/eio/functions/eio-rename.xml index 6179bdda56..d04f73f2f5 100644 --- a/reference/eio/functions/eio-rename.xml +++ b/reference/eio/functions/eio-rename.xml @@ -1,6 +1,6 @@ - + @@ -73,7 +73,7 @@ &reftitle.returnvalues; eio_rename - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-rmdir.xml b/reference/eio/functions/eio-rmdir.xml index 9af6e93b87..a9a3357494 100644 --- a/reference/eio/functions/eio-rmdir.xml +++ b/reference/eio/functions/eio-rmdir.xml @@ -1,6 +1,6 @@ - + @@ -65,7 +65,7 @@ &reftitle.returnvalues; eio_rmdir - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-seek.xml b/reference/eio/functions/eio-seek.xml index 14d1738cca..ba76e53bb8 100644 --- a/reference/eio/functions/eio-seek.xml +++ b/reference/eio/functions/eio-seek.xml @@ -1,11 +1,11 @@ - + eio_seek - fd で指定したファイル内でのオフセットを、offsetwhence に従って移動する + 指定した位置にシークする @@ -23,14 +23,11 @@ choice="opt">mixeddataNULL - eio_seek は、fd + eio_seek は、 + ストリームや Socket インスタンス、 + ファイルディスクリプタ fd で指定したファイル内でのオフセットを、offset と - whence で指定した位置に移動します。whence の意味は次のとおりです。 - - EIO_SEEK_SET - 戦闘から offset バイトの位置に移動する。 - EIO_SEEK_CUR - 現在の位置から offset バイト進める。 - EIO_SEEK_END - ファイルの末尾から offset バイト進める。 - + whence で指定した位置に移動します。 @@ -41,7 +38,7 @@ fd - ストリーム、ソケットリソース、あるいは数値で表したファイルディスクリプタ。 + ストリーム、Socket インスタンス、あるいは数値で表したファイルディスクリプタ。 @@ -54,10 +51,15 @@ - length + whence - 読み込むバイト数。 + whence の取りうる値は以下の通りです: + + EIO_SEEK_SET - 戦闘から offset バイトの位置に移動する。 + EIO_SEEK_CUR - 現在の位置から offset バイト進める。 + EIO_SEEK_END - ファイルの末尾から offset バイト進める。 + @@ -88,7 +90,7 @@ &reftitle.returnvalues; eio_seek - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-sendfile.xml b/reference/eio/functions/eio-sendfile.xml index 400c3a0bf3..38865bfce9 100644 --- a/reference/eio/functions/eio-sendfile.xml +++ b/reference/eio/functions/eio-sendfile.xml @@ -1,6 +1,6 @@ - + @@ -92,7 +92,7 @@ &reftitle.returnvalues; eio_sendfile - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-stat.xml b/reference/eio/functions/eio-stat.xml index a216923bc3..2b844c6d73 100644 --- a/reference/eio/functions/eio-stat.xml +++ b/reference/eio/functions/eio-stat.xml @@ -1,6 +1,6 @@ - + @@ -64,7 +64,7 @@ &reftitle.returnvalues; eio_stat - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure;。 成功した場合は、callbackresult 引数に配列が格納されます。 diff --git a/reference/eio/functions/eio-statvfs.xml b/reference/eio/functions/eio-statvfs.xml index 4cf9d459b9..6d7b3ced75 100644 --- a/reference/eio/functions/eio-statvfs.xml +++ b/reference/eio/functions/eio-statvfs.xml @@ -1,6 +1,6 @@ - + @@ -61,7 +61,7 @@ &reftitle.returnvalues; eio_statvfs - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure;。 成功した場合は、callbackresult 引数に配列が格納されます。 diff --git a/reference/eio/functions/eio-symlink.xml b/reference/eio/functions/eio-symlink.xml index c41bd1f3f7..485a55a5eb 100644 --- a/reference/eio/functions/eio-symlink.xml +++ b/reference/eio/functions/eio-symlink.xml @@ -1,6 +1,6 @@ - + @@ -76,7 +76,7 @@ &reftitle.returnvalues; eio_symlink - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-sync-file-range.xml b/reference/eio/functions/eio-sync-file-range.xml index 8ee997a992..e5511d22c4 100644 --- a/reference/eio/functions/eio-sync-file-range.xml +++ b/reference/eio/functions/eio-sync-file-range.xml @@ -1,6 +1,6 @@ - + @@ -100,7 +100,7 @@ &reftitle.returnvalues; eio_sync_file_range - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-sync.xml b/reference/eio/functions/eio-sync.xml index 49b740ac9e..5281014152 100644 --- a/reference/eio/functions/eio-sync.xml +++ b/reference/eio/functions/eio-sync.xml @@ -1,6 +1,6 @@ - + @@ -31,7 +31,7 @@ &reftitle.returnvalues; eio_sync - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-syncfs.xml b/reference/eio/functions/eio-syncfs.xml index 8f76a1b0c6..66de9aef4f 100644 --- a/reference/eio/functions/eio-syncfs.xml +++ b/reference/eio/functions/eio-syncfs.xml @@ -1,6 +1,6 @@ - + @@ -65,7 +65,7 @@ &reftitle.returnvalues; eio_syncfs - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-truncate.xml b/reference/eio/functions/eio-truncate.xml index d408348bb5..0fd024fdd8 100644 --- a/reference/eio/functions/eio-truncate.xml +++ b/reference/eio/functions/eio-truncate.xml @@ -1,6 +1,6 @@ - + @@ -75,7 +75,7 @@ &reftitle.returnvalues; eio_busy - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-unlink.xml b/reference/eio/functions/eio-unlink.xml index ad5d000dad..091879f854 100644 --- a/reference/eio/functions/eio-unlink.xml +++ b/reference/eio/functions/eio-unlink.xml @@ -1,6 +1,6 @@ - + @@ -64,7 +64,7 @@ &reftitle.returnvalues; eio_unlink - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-utime.xml b/reference/eio/functions/eio-utime.xml index 21cf73a425..0f67f2a343 100644 --- a/reference/eio/functions/eio-utime.xml +++ b/reference/eio/functions/eio-utime.xml @@ -1,6 +1,6 @@ - + @@ -83,7 +83,7 @@ &reftitle.returnvalues; eio_utime - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/functions/eio-write.xml b/reference/eio/functions/eio-write.xml index 0e133adae7..d72223501f 100644 --- a/reference/eio/functions/eio-write.xml +++ b/reference/eio/functions/eio-write.xml @@ -1,6 +1,6 @@ - + @@ -94,7 +94,7 @@ &reftitle.returnvalues; eio_write - は、成功した場合にリクエストリソースを返します。エラー時に &false; を返します。 + は、成功した場合にリクエストリソースを返します。&return.falseforfailure; diff --git a/reference/eio/ini.xml b/reference/eio/ini.xml deleted file mode 100644 index e262a5705c..0000000000 --- a/reference/eio/ini.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - -
- &reftitle.runtime; - &no.config; -
- - diff --git a/reference/eio/reference.xml b/reference/eio/reference.xml index 61ff9f3571..7e03b42fbb 100644 --- a/reference/eio/reference.xml +++ b/reference/eio/reference.xml @@ -1,6 +1,6 @@ - + Eio &Functions; diff --git a/reference/eio/setup.xml b/reference/eio/setup.xml index 6fece895cb..1358244a01 100644 --- a/reference/eio/setup.xml +++ b/reference/eio/setup.xml @@ -1,6 +1,6 @@ - + &reftitle.setup; @@ -17,13 +17,6 @@ &reference.eio.configure; - -
- &reftitle.runtime; - &no.config; -
- -
&reftitle.resources; diff --git a/reference/enchant/book.xml b/reference/enchant/book.xml index ed6809c9bf..e293c67a6c 100644 --- a/reference/enchant/book.xml +++ b/reference/enchant/book.xml @@ -1,6 +1,6 @@ - + @@ -61,6 +61,8 @@ &reference.enchant.constants; &reference.enchant.examples; &reference.enchant.reference; + &reference.enchant.enchantbroker; + &reference.enchant.enchantdictionary; diff --git a/reference/enchant/configure.xml b/reference/enchant/configure.xml index de9e60605e..37b1392190 100644 --- a/reference/enchant/configure.xml +++ b/reference/enchant/configure.xml @@ -1,21 +1,44 @@ - + +
&reftitle.install; - - この拡張モジュールは、PHP 5.3.0 以降に同梱されています。 - それより前のバージョンでは、enchant は PECL 拡張モジュールでした。 - 5.3.0 より前のバージョンのユーザーは - PECL 拡張モジュール - を使いましょう。 - 必須ライブラリ - がインストールされていれば、PHP 5.3.0 以降のユーザーは PHP のコンパイル時に + がインストールされていれば、PHP のコンパイル時に オプションを追加するだけで enchant を有効にできます。 + + Windows ユーザーがこの拡張モジュールを使うには、 + php_enchant.dll を有効にしなければいけません。 + + + Windows で必要な追加のセットアップ + + &ext.windows.path.dll; + libenchant.dll, + glib-2.dll, + gmodule-2.dll. + + + さらに、 + lib/enchant/ に同梱されている + プロバイダを少なくともひとつ、 + \usr\local\lib\enchant-2 + にコピーする必要があります + (これは、現在のドライブ + のルートからの絶対パスです)。 + PHP 8.0.0 より前のバージョン、 + つまり Enchant v1 では、 + プロバイダを C:\enchant_plugins + にコピーする必要がありました。 + このパスは、レジストリ + HKEY_CURRENT_USER\SOFTWARE\Enchant\Config\Module_Dir + の値を任意のパスに設定することでカスタマイズできます。 + +
- + &reftitle.constants; + + + LIBENCHANT_VERSION + (string) + + + + libenchant のバージョン。 + PHP 8.0.0 以降で利用可能です。 + + + ENCHANT_MYSPELL - (integer) + (int) MySpell 用の辞書の型。 enchant_broker_get_dict_pathenchant_broker_set_dict_path で利用します。 + PHP 8.0.0 以降では推奨されません。 ENCHANT_ISPELL - (integer) + (int) Ispell 用の辞書の型。 enchant_broker_get_dict_pathenchant_broker_set_dict_path で利用します。 + PHP 8.0.0 以降では推奨されません。 diff --git a/reference/enchant/enchantbroker.xml b/reference/enchant/enchantbroker.xml new file mode 100644 index 0000000000..f02e6952a1 --- /dev/null +++ b/reference/enchant/enchantbroker.xml @@ -0,0 +1,59 @@ + + + + + + EnchantBroker クラス + EnchantBroker + + + + +
+ &reftitle.intro; + + PHP 8.0.0 以降、 + enchant_broker リソースを置き換える完全不透明クラスです。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + EnchantBroker + + + + +
+ +
+ + + +
+ diff --git a/reference/enchant/enchantdictionary.xml b/reference/enchant/enchantdictionary.xml new file mode 100644 index 0000000000..7779755e54 --- /dev/null +++ b/reference/enchant/enchantdictionary.xml @@ -0,0 +1,59 @@ + + + + + + EnchantDictionary クラス + EnchantDictionary + + + + +
+ &reftitle.intro; + + PHP 8.0.0 以降、 + enchant_dict リソースを置き換える完全不透明クラスです。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + EnchantDictionary + + + + +
+ +
+ + + +
+ diff --git a/reference/enchant/functions/enchant-broker-describe.xml b/reference/enchant/functions/enchant-broker-describe.xml index de62e497a2..9cbc03dd9f 100644 --- a/reference/enchant/functions/enchant-broker-describe.xml +++ b/reference/enchant/functions/enchant-broker-describe.xml @@ -1,6 +1,6 @@ - + @@ -11,7 +11,7 @@ &reftitle.description; arrayenchant_broker_describe - resourcebroker + EnchantBrokerbroker Enchant プロバイダを列挙し、その基本情報を通知します。 @@ -23,14 +23,7 @@ &reftitle.parameters; - - broker - - - ブローカーリソース。 - - - + &enchant.param.broker; @@ -39,10 +32,32 @@ &reftitle.returnvalues; 利用可能な Enchant プロバイダの一覧と、その詳細を &array; として返します。 - &return.falseforfailure; + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.broker-param; + + 8.0.0 + + このバージョンより前では、この関数は失敗時に &false; を返していました。 + + + + + + + &reftitle.examples; @@ -116,7 +131,6 @@ Array - - + + enchant_broker_dict_exists @@ -10,7 +11,7 @@ &reftitle.description; boolenchant_broker_dict_exists - resourcebroker + EnchantBrokerbroker stringtag @@ -21,14 +22,7 @@ &reftitle.parameters; - - broker - - - ブローカーリソース。 - - - + &enchant.param.broker; tag @@ -48,6 +42,23 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.broker-param; + + + + + &reftitle.examples; @@ -78,7 +89,6 @@ if (enchant_broker_dict_exists($r,$tag)) { - - + + enchant_broker_free_dict 辞書リソースを開放する + + + &warn.deprecated.function-8-0-0; + + &reftitle.description; + #[\Deprecated] boolenchant_broker_free_dict - resourcedict + EnchantDictionarydictionary - 辞書リソースを開放します。 + 辞書を開放します。 + PHP 8.0.0 以降では、この関数を呼び出す代わりに、オブジェクト自体を unset することを推奨します。 &reftitle.parameters; - - dict - - - 辞書リソース。 - - - + &enchant.param.dictionary; @@ -39,7 +40,37 @@
- + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数は、推奨されなくなりました。 + オブジェクトを unset する方が好ましいです。 + + + + 8.0.0 + + dictionary は、EnchantDictionary クラスのインスタンスを期待するようになりました。 + これより前のバージョンでは、&resource; が期待されていました。 + + + + + + + + &reftitle.seealso; @@ -51,7 +82,6 @@ - - + enchant_broker_free ブローカーリソースおよびその辞書を開放する + + + &warn.deprecated.function-8-0-0; + + &reftitle.description; + #[\Deprecated] boolenchant_broker_free - resourcebroker + EnchantBrokerbroker - ブローカーリソースを、その辞書とともに開放します。 + ブローカーをその辞書とともに開放します。 + PHP 8.0.0 以降では、この関数を呼び出さず、オブジェクト自体を unset することを推奨します。 @@ -22,14 +29,7 @@ &reftitle.parameters; - - broker - - - ブローカーリソース。 - - - + &enchant.param.broker; @@ -41,6 +41,30 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数は、推奨されなくなりました。 + オブジェクトを unset する方が好ましいです。 + + + &enchant.changelog.broker-param; + + + + + &reftitle.seealso; @@ -50,7 +74,6 @@ - + + + + + enchant_broker_get_dict_path + 指定されたバックエンドの辞書のパスを取得する + + + + &warn.deprecated.function-8-0-0; + + + + &reftitle.description; + + #[\Deprecated] + stringfalseenchant_broker_get_dict_path + EnchantBrokerbroker + inttype + + + 指定されたバックエンドの辞書のパスを取得します。 + + + + + &reftitle.parameters; + + + &enchant.param.broker; + + type + + + 辞書のタイプ。たとえば、ENCHANT_MYSPELL または ENCHANT_ISPELL。 + + + + + + + + + &reftitle.returnvalues; + + 成功した場合、辞書のディレクトリパスを返します。 + &return.falseforfailure; + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数は、推奨されなくなりました。 + + + &enchant.changelog.broker-param; + + + + + + + &reftitle.notes; + + + この関数は、拡張モジュールが Enchant v1 を使ってコンパイルされた場合にのみ利用可能です。 + + + + + + &reftitle.seealso; + + + enchant_broker_set_dict_path + + + + + + diff --git a/reference/enchant/functions/enchant-broker-get-error.xml b/reference/enchant/functions/enchant-broker-get-error.xml index 38a2964ebd..738c976c18 100644 --- a/reference/enchant/functions/enchant-broker-get-error.xml +++ b/reference/enchant/functions/enchant-broker-get-error.xml @@ -1,6 +1,7 @@ - + + enchant_broker_get_error @@ -9,8 +10,8 @@ &reftitle.description; - stringenchant_broker_get_error - resourcebroker + stringfalseenchant_broker_get_error + EnchantBrokerbroker このブローカーで発生した直近のエラーを返します。 @@ -21,14 +22,7 @@ &reftitle.parameters; - - broker - - - ブローカーリソース。 - - - + &enchant.param.broker; @@ -40,8 +34,24 @@ - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.broker-param; + + + + + - + enchant_broker_init @@ -9,7 +9,7 @@ &reftitle.description; - resourceenchant_broker_init + EnchantBrokerfalseenchant_broker_init @@ -26,6 +26,29 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + 成功時に、この関数は EnchantBroker のインスタンスを返すようになりました。 + これより前のバージョンでは、&resource; が返されていました。 + + + + + + + &reftitle.seealso; @@ -35,7 +58,6 @@ - - + @@ -10,8 +10,8 @@ &reftitle.description; - mixedenchant_broker_list_dicts - resourcebroker + arrayenchant_broker_list_dicts + EnchantBrokerbroker 使用可能な辞書の一覧と、その詳細を返します。 @@ -22,14 +22,7 @@ &reftitle.parameters; - - broker - - - ブローカーリソース。 - - - + &enchant.param.broker; @@ -38,10 +31,32 @@ &reftitle.returnvalues; 使用可能な辞書の一覧と、その詳細を &array; として返します。 - &return.falseforfailure; + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.broker-param; + + 8.0.0 + + このバージョンより前では、この関数は失敗時に &false; を返していました。 + + + + + + + &reftitle.examples; @@ -126,7 +141,6 @@ Array - - + + enchant_broker_request_dict @@ -9,8 +10,8 @@ &reftitle.description; - resourceenchant_broker_request_dict - resourcebroker + EnchantDictionaryfalseenchant_broker_request_dict + EnchantBrokerbroker stringtag @@ -22,14 +23,7 @@ &reftitle.parameters; - - broker - - - ブローカーリソース。 - - - + &enchant.param.broker; tag @@ -49,32 +43,54 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.broker-param; + + 8.0.0 + + 成功時に、この関数は EnchantDictionary のインスタンスを返すようになりました。 + これより前のバージョンでは、&resource; が返されていました。 + + + + + + + &reftitle.examples; - - - <function>enchant_broker_request_dict</function> の例 - - 辞書が存在するかどうかを - enchant_broker_dict_exists - で調べ、それを要求します。 - - + + <function>enchant_broker_request_dict</function> の例 + + 辞書が存在するかどうかを + enchant_broker_dict_exists + で調べ、それを要求します。 + + ]]> - - - + + - &reftitle.seealso; @@ -86,7 +102,6 @@ if (enchant_broker_dict_exists($broker,$tag)) { - - + + enchant_broker_request_pwl_dict @@ -9,8 +10,8 @@ &reftitle.description; - resourceenchant_broker_request_pwl_dict - resourcebroker + EnchantDictionaryfalseenchant_broker_request_pwl_dict + EnchantBrokerbroker stringfilename @@ -23,14 +24,7 @@ &reftitle.parameters; - - broker - - - ブローカーリソース。 - - - + &enchant.param.broker; filename @@ -51,6 +45,30 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.broker-param; + + 8.0.0 + + 成功時に、この関数は EnchantDictionary のインスタンスを返すようになりました。 + これより前のバージョンでは、&resource; が返されていました。 + + + + + + + &reftitle.seealso; @@ -62,7 +80,6 @@ - + + + + + enchant_broker_set_dict_path + 指定されたバックエンドの辞書のパスを設定する + + + + &warn.deprecated.function-8-0-0; + + + + &reftitle.description; + + #[\Deprecated] + boolenchant_broker_set_dict_path + EnchantBrokerbroker + inttype + stringpath + + + 指定されたバックエンドの辞書のパスを設定します。 + + + + + &reftitle.parameters; + + + &enchant.param.broker; + + type + + + 辞書のタイプ。たとえば、ENCHANT_MYSPELL または ENCHANT_ISPELL。 + + + + + path + + + 辞書のディレクトリパス。 + + + + + + + + + &reftitle.returnvalues; + + &return.success; + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + この関数は、推奨されなくなりました。 + + + &enchant.changelog.broker-param; + + + + + + + &reftitle.notes; + + + この関数は、拡張モジュールが Enchant v1 を使ってコンパイルされた場合にのみ利用可能です。 + + + + + + &reftitle.seealso; + + + enchant_broker_get_dict_path + + + + + + diff --git a/reference/enchant/functions/enchant-broker-set-ordering.xml b/reference/enchant/functions/enchant-broker-set-ordering.xml index cfa1479bd4..117ea314b9 100644 --- a/reference/enchant/functions/enchant-broker-set-ordering.xml +++ b/reference/enchant/functions/enchant-broker-set-ordering.xml @@ -1,6 +1,7 @@ - + + enchant_broker_set_ordering @@ -10,7 +11,7 @@ &reftitle.description; boolenchant_broker_set_ordering - resourcebroker + EnchantBrokerbroker stringtag stringordering @@ -27,14 +28,7 @@ &reftitle.parameters; - - broker - - - ブローカーリソース。 - - - + &enchant.param.broker; tag @@ -63,8 +57,24 @@ - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.broker-param; + + + + + - + + enchant_dict_add_to_personal - パーソナル単語リストに単語を追加する + enchant_dict_add &Alias; - - &reftitle.description; - - voidenchant_dict_add_to_personal - resourcedict - stringword - - - 指定した辞書のパーソナル単語リストに、単語を追加します。 - - - - &reftitle.parameters; - - - - dict - - - 辞書リソース。 - - - - - word - - - 追加する単語。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - - PWL への単語の追加 - - + &warn.deprecated.alias-8-0-0; + -enchant_dict_add_to_personal($dict, $word); - -enchant_broker_free($broker); - -?> -]]> - - - - - - &reftitle.seealso; - - - enchant_broker_request_pwl_dict - enchant_broker_request_dict - - + + &reftitle.description; + + &info.function.alias; + enchant_dict_add. + - - + + enchant_dict_add_to_session @@ -10,7 +11,7 @@ &reftitle.description; voidenchant_dict_add_to_session - resourcedict + EnchantDictionarydictionary stringword @@ -23,14 +24,7 @@ &reftitle.parameters; - - dict - - - 辞書リソース。 - - - + &enchant.param.dictionary; word @@ -49,6 +43,24 @@ &return.void; + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.dictionary-param; + + + + + &reftitle.seealso; @@ -58,7 +70,6 @@ - + + + + enchant_dict_add + 単語リストに単語を追加する + + + &reftitle.description; + + voidenchant_dict_add + EnchantDictionarydictionary + stringword + + + 指定した辞書の単語リストに単語を追加します。 + + + + &reftitle.parameters; + + + &enchant.param.dictionary; + + word + + + 追加する単語。 + + + + + + + + &reftitle.returnvalues; + + &return.success; + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.dictionary-param; + + + + + + + &reftitle.examples; + + 辞書リストに単語を追加する + + +]]> + + + + + + &reftitle.seealso; + + + enchant_broker_request_pwl_dict + enchant_broker_request_dict + + + + + diff --git a/reference/enchant/functions/enchant-dict-check.xml b/reference/enchant/functions/enchant-dict-check.xml index fcf62a392c..2d439a0067 100644 --- a/reference/enchant/functions/enchant-dict-check.xml +++ b/reference/enchant/functions/enchant-dict-check.xml @@ -1,6 +1,7 @@ - + + enchant_dict_check @@ -10,7 +11,7 @@ &reftitle.description; boolenchant_dict_check - resourcedict + EnchantDictionarydictionary stringword @@ -23,14 +24,7 @@ &reftitle.parameters; - - dict - - - 辞書リソース。 - - - + &enchant.param.dictionary; word @@ -49,8 +43,25 @@ そうでない場合に &false; を返します。 - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.dictionary-param; + + + + + + - + + enchant_dict_describe @@ -9,8 +10,8 @@ &reftitle.description; - mixedenchant_dict_describe - resourcedict + arrayenchant_dict_describe + EnchantDictionarydictionary 辞書の詳細を返します。 @@ -21,14 +22,7 @@ &reftitle.parameters; - - dict - - - 辞書リソース。 - - - + &enchant.param.dictionary; @@ -40,31 +34,53 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.dictionary-param; + + 8.0.0 + + このバージョンより前では、この関数は失敗時に &false; を返していました。 + + + + + + + &reftitle.examples; - - + <function>enchant_broker_dict_describe</function> の例 - - 辞書が存在するかどうかを - enchant_broker_dict_exists で調べ、 - その詳細を表示します。 - - + + 辞書が存在するかどうかを + enchant_broker_dict_exists で調べ、 + その詳細を表示します。 + + ]]> - - &example.outputs.similar; - + + &example.outputs.similar; + /usr/lib/enchant/libenchant_aspell.so ) ]]> - - - - - - - - - - - + + enchant_dict_get_error @@ -9,8 +10,8 @@ &reftitle.description; - stringenchant_dict_get_error - resourcedict + stringfalseenchant_dict_get_error + EnchantDictionarydictionary 現在のスペリングセッションの、直近のエラーを返します。 @@ -21,14 +22,7 @@ &reftitle.parameters; - - dict - - - 辞書リソース。 - - - + &enchant.param.dictionary; @@ -40,8 +34,24 @@ - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.dictionary-param; + + + + + + + + + enchant_dict_is_added + 現在のセッションに、単語が存在するかどうかを調べる + + + &reftitle.description; + + boolenchant_dict_is_added + EnchantDictionarydictionary + stringword + + + 現在のセッションに、指定された単語が存在するかを調べる。 + + + + &reftitle.parameters; + + + &enchant.param.dictionary; + + word + + + 調べる単語。 + + + + + + + + &reftitle.returnvalues; + + 単語が存在した場合、&true; を返します。 + 存在しない場合、&false; を返します。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.dictionary-param; + + + + + + + &reftitle.seealso; + + + enchant_dict_add_to_session + + + + + + diff --git a/reference/enchant/functions/enchant-dict-is-in-session.xml b/reference/enchant/functions/enchant-dict-is-in-session.xml index 63dad490bb..76ca810728 100644 --- a/reference/enchant/functions/enchant-dict-is-in-session.xml +++ b/reference/enchant/functions/enchant-dict-is-in-session.xml @@ -1,63 +1,25 @@ - + + enchant_dict_is_in_session - このスペリングセッションに '単語' が存在するかどうかを調べる + enchant_dict_is_added &Alias; + + + &warn.deprecated.alias-8-0-0; + + &reftitle.description; - - boolenchant_dict_is_in_session - resourcedict - stringword - - - ある単語が、現在のセッション内に既に存在するかどうかを調べます。 - - - - &reftitle.parameters; - - - - dict - - - 辞書リソース。 - - - - - word - - - 探す単語。 - - - - - - - - &reftitle.returnvalues; - - 単語が存在する場合に &true;、それ以外の場合に &false; を返します。 - + + &info.function.alias; + enchant_dict_is_added. + - - - &reftitle.seealso; - - - enchant_dict_add_to_session - - - - - - + + enchant_dict_quick_check @@ -10,9 +11,9 @@ &reftitle.description; boolenchant_dict_quick_check - resourcedict + EnchantDictionarydictionary stringword - arraysuggestions + arraysuggestions&null; 単語のスペルが正しい場合は &true;、そうでない場合は &false; @@ -24,14 +25,7 @@ &reftitle.parameters; - - dict - - - 辞書リソース。 - - - + &enchant.param.dictionary; word @@ -60,6 +54,23 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.dictionary-param; + + + + + &reftitle.examples; @@ -126,7 +137,6 @@ Array - - + + enchant_dict_store_replacement @@ -10,9 +11,9 @@ &reftitle.description; voidenchant_dict_store_replacement - resourcedict - stringmis - stringcor + EnchantDictionarydictionary + stringmisspelled + stringcorrect 'mis' の修正候補として 'cor' を使用します。 @@ -25,16 +26,9 @@ &reftitle.parameters; + &enchant.param.dictionary; - dict - - - 辞書リソース。 - - - - - mis + misspelled 修正する単語。 @@ -42,7 +36,7 @@ - cor + correct 正しい単語。 @@ -58,8 +52,25 @@ &return.success; - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.dictionary-param; + + + + + + - + + enchant_dict_suggest @@ -10,7 +11,7 @@ &reftitle.description; arrayenchant_dict_suggest - resourcedict + EnchantDictionarydictionary stringword @@ -20,14 +21,7 @@ &reftitle.parameters; - - dict - - - 辞書リソース。 - - - + &enchant.param.dictionary; word @@ -47,12 +41,28 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &enchant.changelog.dictionary-param; + + + + + &reftitle.examples; - - - <function>enchant_dict_suggest</function> の例 - + + <function>enchant_dict_suggest</function> の例 + ]]> - - - + + @@ -86,7 +93,6 @@ enchant_broker_free($r); - - + + &reftitle.setup; @@ -13,7 +14,7 @@ Enchant ライブラリ の関数を使用しています。 Enchant 1.2.4 以降が必要です。 - Enchant 2.0.0 以降はまだサポートされていません。 + Enchant 2.0.0 以降は、PHP 8.0.0 以降でのみサポートされています。 Enchant には Glib 2.6 以降も必要です。 @@ -28,17 +29,11 @@ &reference.enchant.configure; - -
- &reftitle.runtime; - &no.config; -
- -
&reftitle.resources; + PHP 8.0.0 より前のバージョンでは、 この拡張モジュールでは二種類のリソースを使用しています。ひとつは ブローカー (バックエンドマネージャ) で、もうひとつが辞書です。 diff --git a/reference/errorfunc/constants.xml b/reference/errorfunc/constants.xml index 009194489f..84c939594b 100644 --- a/reference/errorfunc/constants.xml +++ b/reference/errorfunc/constants.xml @@ -1,265 +1,344 @@ - + &reftitle.constants; &extension.constants.core; - + + + 以下の定数 (対応する数値またはそのシンボル名) は、 + どのエラーを報告するかを指定するビットマスクとして使用します。 + ビット演算子 + を使用して、値を組み合わせたり特定のエラータイプを除外したりできます。 + + + + + &php.ini; では、対応する生の数値の代わりに定数名を使うことができます。 + ただし、&php.ini; では + |、 + ~、 + ^、 + !、 + & + の演算子のみが解釈されます。 + + + + - 以下の定数を&php.ini;で使用することができますが、 - httpd.confのようなPHPの外部では、 - 代わりにビットマスク値を使用する必要があります。 + PHP の外部では、シンボル名を使うことはできません。 + 例えば、&httpd.conf; の中では計算済みのビットマスク値を代わりに使わなければなりません。 - - - エラーとロギング - - - - - 定数 - 説明 - 注記 - - - - - 1 - - E_ERROR - (integer) - - - 重大な実行時エラー。これは、メモリ確保に関する問題のように復帰で - きないエラーを示します。スクリプトの実行は中断されます。 - - - - - - - 2 - - E_WARNING - (integer) - - - 実行時の警告 (致命的なエラーではない)。スクリプトの実行は中断さ - れません。 - - - + - - 4 - - E_PARSE - (integer) - - - コンパイル時のパースエラー。パースエラーはパーサでのみ生成されま - す。 - - - + + + + E_ERROR + (int) + + + + 重大な実行時エラー。 + これは、メモリ確保の問題といった復帰できないエラーを表します。 + スクリプトの実行は中断されます。 + + + 定数の値:1 + + + - - 8 - - E_NOTICE - (integer) - - - 実行時の警告。エラーを発しうる状況に遭遇したことを示す。 - ただし通常のスクリプト実行の場合にもこの警告を発することがありうる。 - - - + + + E_WARNING + (int) + + + + 実行時の警告 (致命的でないエラー)。 + スクリプトの実行は中断されません。 + + + 定数の値:2 + + + - - 16 - - E_CORE_ERROR - (integer) - - - PHPの初期始動時点での致命的なエラー。E_ERRORに - 似ているがPHPのコアによって発行される点が違う。 - - - + + + E_PARSE + (int) + + + + コンパイル時のパースエラー。 + パースエラーはパーサでのみ生成されます。 + + + 定数の値:4 + + + - - 32 - - E_CORE_WARNING - (integer) - - - (致命的ではない)警告。PHPの初期始動時に発生する。 - E_WARNINGに似ているがPHPのコアによって発行される - 点が違う。 - - - + + + E_NOTICE + (int) + + + + 実行時の注意。 + エラーを示しているかもしれない何かに遭遇したことを表します。 + ただし、スクリプトを問題なく実行しているときに起こることもあります。 + + + 定数の値:8 + + + - - 64 - - E_COMPILE_ERROR - (integer) - - - コンパイル時の致命的なエラー。E_ERRORに - 似ているがZendスクリプティングエンジンによって発行される点が違う。 - - - + + + E_CORE_ERROR + (int) + + + + PHP の初期始動時点で発生した致命的なエラー。 + E_ERROR に似ていますが、 + PHP のコアによって生成される点が異なります。 + + + 定数の値:16 + + + - - 128 - - E_COMPILE_WARNING - (integer) - - - コンパイル時の警告(致命的ではない)。E_WARNINGに - 似ているがZendスクリプティングエンジンによって発行される点が違う。 - - - + + + E_CORE_WARNING + (int) + + + + PHP の初期始動時点で発生した (致命的でない) 警告。 + E_WARNING に似ていますが、 + PHP のコアによって生成される点が異なります。 + + + 定数の値:32 + + + - - 256 - - E_USER_ERROR - (integer) - - - ユーザーによって発行されるエラーメッセージ。E_ERROR - に似ているがPHPコード上でtrigger_error関数を - 使用した場合に発行される点が違う。 - - - + + + E_COMPILE_ERROR + (int) + + + + コンパイル時の致命的なエラー。 + E_ERRORに似ていますが、 + Zend スクリプティングエンジンによって生成される点が異なります。 + + + 定数の値:64 + + + - - 512 - - E_USER_WARNING - (integer) - - - ユーザーによって発行される警告メッセージ。E_WARNING - に似ているがPHPコード上でtrigger_error関数を - 使用した場合に発行される点が違う。 - - - + + + E_COMPILE_WARNING + (int) + + + + コンパイル時の (致命的でない) 警告。 + E_WARNINGに似ていますが、 + Zend スクリプティングエンジンによって生成される点が異なります。 + + + 定数の値:128 + + + - - 1024 - - E_USER_NOTICE - (integer) - - - ユーザーによって発行される注意メッセージ。E_NOTICEに - に似ているがPHPコード上でtrigger_error関数を - 使用した場合に発行される点が違う。 - - - + + + E_DEPRECATED + (int) + + + + 実行時の非推奨の注意。 + これを有効にすると、将来のバージョンで + 動作しなくなるコードについての警告を受け取ることができます。 + + + 定数の値:8192 + + + - - 2048 - - E_STRICT - (integer) - - - コードの相互運用性や互換性を維持するために - PHP がコードの変更を提案する。 - - PHP 5.4.0 より前のバージョンでは、E_ALL に含まれていませんでした - + + + E_USER_ERROR + (int) + + + + ユーザーによって生成されるエラーメッセージ。 + E_ERROR に似ていますが、 + trigger_error 関数を用いて PHP コード上で + 生成される点が異なります。 + + + 定数の値:256 + + + + この定数を trigger_error と使うのは + PHP 8.4.0 で非推奨となりました。 + 代わりに、Exception を &throw; するか、 + exit を呼ぶことが推奨されます。 + + + + - - 4096 - - E_RECOVERABLE_ERROR - (integer) - - - キャッチできる致命的なエラー。危険なエラーが発生したが、 - エンジンが不安定な状態になるほどではないことを表す。 - ユーザー定義のハンドラでエラーがキャッチされなかった場合 - (set_error_handler も参照ください) は、 - E_ERROR として異常終了する。 - - PHP 5.2.0 より - + + + E_USER_WARNING + (int) + + + + ユーザーによって生成される警告メッセージ。 + E_WARNING に似ていますが、 + trigger_error 関数を用いて PHP コード上で + 生成される点が異なります。 + + + 定数の値:512 + + + - - 8192 - - E_DEPRECATED - (integer) - - - 実行時の注意。これを有効にすると、 - 将来のバージョンで動作しなくなるコードについての警告を受け取ることができる。 - - PHP 5.3.0 より - + + + E_USER_NOTICE + (int) + + + + ユーザーによって生成される注意メッセージ。 + E_NOTICE に似ていますが、 + trigger_error 関数を用いて PHP コード上で + 生成される点が異なります。 + + + 定数の値:1024 + + + - - 16384 - - E_USER_DEPRECATED - (integer) - - - ユーザー定義の警告メッセージ。これは - E_DEPRECATED と同等だが、 - PHP のコード上で関数 trigger_error - によって作成されるという点が異なる。 - - PHP 5.3.0 より - + + + E_USER_DEPRECATED + (int) + + + + ユーザーによって生成される非推奨メッセージ。 + E_DEPRECATED に似ていますが、 + trigger_error 関数を用いて PHP コード上で + 生成される点が異なります。 + + + 定数の値:16384 + + + - - 32767 - - E_ALL - (integer) - - - サポートされる全てのエラーと警告。 - PHP 5.4.0 より前のバージョンでは、E_STRICT レベルのエラーは除く。 - - - PHP 5.4.x では 32767、 - PHP 5.3.x では 30719、 - PHP 5.2.x では 6143、 - それより前のバージョンでは 2047 でした。 - - + + + E_STRICT + (int) + + + + PHP が実行時に発行する提案。 + コードの前方互換性を担保するために、実行中のコードについて改善が提案されます。 + + + 定数の値:2048 + + + + このエラーレベルは使われておらず、 + PHP 8.4.0 で非推奨となりました。 + + + + - - -
+ + + E_RECOVERABLE_ERROR + (int) + + + + キャッチできる致命的なエラーに相当する従来のエンジン「例外」(訳注: この文脈での括弧付きの「例外」は、Error が登場するより前に用いられていた例外の「ような」仕組みを指したものです)。 + Error に似ていますが、 + ユーザー定義のエラーハンドラー (set_error_handler を参照のこと) によってキャッチしなければなりません。 + キャッチされなかった場合、E_ERROR と同様にスクリプトの実行を中断します。 + + + 定数の値:4096 + + + + このエラーレベルは実質的に使われていません。 + 唯一発生しうるのは、&object; を bool として解釈するのに失敗したときだけです。 + これは、内部的なオブジェクトでしか起こりえません。 + + + PHP 8.4.0 より前のバージョンにおける最もよくある例としては、 + GMP インスタンスを条件式で使ったときです。 + + + + - - 上記の値(数値も論理値も)はどのエラーをレポートするかを指定する - ビットマスクを組み立てる。ビット演算子 - を使用して値を組み合わせたり特定のエラータイプをマスクすることができる。 - &php.ini; では'|', '~', '!', '^' and '&'のみが解釈されることに - 注意すべきである。 - -
+ + + E_ALL + (int) + + + + すべてのエラー、警告、注意を含んだビットマスク。 + + + 定数の値:30719 + + + + PHP 8.4 より前のバージョンでは、 + この定数の値は 32767 でした。 + + + + + + - diff --git a/reference/errorfunc/functions/debug-backtrace.xml b/reference/errorfunc/functions/debug-backtrace.xml index b2e88f24b7..eee3377912 100644 --- a/reference/errorfunc/functions/debug-backtrace.xml +++ b/reference/errorfunc/functions/debug-backtrace.xml @@ -1,7 +1,7 @@ - - + + debug_backtrace @@ -12,7 +12,7 @@ &reftitle.description; arraydebug_backtrace - intoptionsDEBUG_BACKTRACE_PROVIDE_OBJECT + intoptionsDEBUG_BACKTRACE_PROVIDE_OBJECT intlimit0 @@ -28,7 +28,7 @@ options - PHP 5.3.6 以降、このパラメータは次のオプションのビットマスクとなります。 + このパラメータは次のオプションのビットマスクとなります。 <function>debug_backtrace</function> のオプション @@ -49,8 +49,54 @@
- 5.3.6 より前のバージョンでは &true; あるいは &false; しか指定できませんでした。これは - DEBUG_BACKTRACE_PROVIDE_OBJECT オプションを指定するかしないかを意味します。 + + + 可能な組み合わせは以下の4つです: + + <function>debug_backtrace</function> のオプション + + + + debug_backtrace() + + インデックスを両方収集します。 + + + + debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT) + + + debug_backtrace(1) + + + debug_backtrace(0) + + インデックス "object" を省略し、"args" を収集します。 + + + + debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) + + インデックス "object""args"両方省略します。 + + + + debug_backtrace(2) + + + debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS) + + インデックス "object" を収集し、"args" を省略します。 + + + + debug_backtrace(3) + + + +
+
+
@@ -58,7 +104,7 @@ limit - 5.4.0 以降、このパラメータを使ってスタックフレームの数を制限できるようになりました。 + このパラメータを使ってスタックフレームの数を制限できます。 デフォルト (limit=0) は、すべてのスタックフレームを返します。 @@ -92,17 +138,17 @@ カレントの関数名。 __FUNCTION__ - も参照してください。 + linkend="language.constants.magic">__FUNCTION__ + も参照ください。 line - integer + int カレントの行番号。 - __LINE__ - も参照してください。 + __LINE__ + も参照ください。 @@ -110,8 +156,8 @@ string カレントのファイル名。 - __FILE__ - も参照してください。 + __FILE__ + も参照ください。 @@ -119,8 +165,8 @@ string カレントのクラス名。 - __CLASS__ - も参照してください。 + __CLASS__ + も参照ください。 @@ -134,8 +180,8 @@ type string - カレントのコール方式。メソッド呼び出しの場合は "->"、 - 静的なメソッド呼び出しの場合は "::" が返されます。 + カレントのコール方式。メソッドを呼び出している場合は "->"、 + staticメソッドを呼び出している場合は "::" が返されます。 関数呼び出しの場合は何も返されません。 @@ -154,50 +200,6 @@
- - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.4.0 - - オプションのパラメータ limit が追加されました。 - - - - 5.3.6 - - provide_object パラメータが options - パラメータに変わり、オプション - DEBUG_BACKTRACE_IGNORE_ARGS が追加されました。 - - - - 5.2.5 - - オプションのパラメータ provide_object が追加されました。 - - - - 5.1.1 - - 現在のオブジェクトを返せるようになりました。 - - - - - - - - &reftitle.examples; @@ -268,7 +270,6 @@ array(4) {
- - + + debug_print_backtrace @@ -18,7 +19,7 @@ debug_print_backtrace は PHP バックトレースを - 表示します。関数のコール、include / require されているファイル、 + 表示します。関数のコール、include/require されているファイル、 そして eval された内容などが表示されます。 @@ -31,7 +32,7 @@ options - PHP 5.3.6 の時点では、このパラメータは次のオプションのビットマスクとなります。 + このパラメータは次のオプションのビットマスクとなります。 <function>debug_print_backtrace</function> のオプション @@ -52,7 +53,7 @@ limit - 5.4.0 以降、このパラメータを使ってスタックフレームの数を制限できるようになりました。 + このパラメータを使ってスタックフレームの数を制限できます。 デフォルト (limit=0) は、すべてのスタックフレームを表示します。 @@ -68,36 +69,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.4.0 - - オプションのパラメータ limit が追加されました。 - - - - 5.3.6 - - オプションのパラメータ options が追加されました。 - - - - - - - - &reftitle.examples; diff --git a/reference/errorfunc/functions/error-clear-last.xml b/reference/errorfunc/functions/error-clear-last.xml index 523246e795..26e05a8fd7 100644 --- a/reference/errorfunc/functions/error-clear-last.xml +++ b/reference/errorfunc/functions/error-clear-last.xml @@ -1,99 +1,104 @@ - - - - - - error_clear_last - 最も最近のエラーをクリア - - - &reftitle.description; - - voiderror_clear_last - - - - - - - - &reftitle.returnvalues; - - 最も最近のエラーをクリアーし、 - error_get_last で取得できないようにします。 - - - - - &reftitle.examples; - - - <function>error_clear_last</function> の例 - - -]]> - - &example.outputs.similar; - - - int(8) - ["message"]=> - string(21) "Undefined variable: b" - ["file"]=> - string(9) "%s" - ["line"]=> - int(6) -} -NULL -]]> - - - - - - - &reftitle.seealso; - - - エラー定数 - - - - - - - + + + + + + error_clear_last + 最も最近のエラーをクリア + + + &reftitle.description; + + voiderror_clear_last + + + + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 最も最近のエラーをクリアーし、 + error_get_last で取得できないようにします。 + + + + + &reftitle.examples; + + + <function>error_clear_last</function> の例 + + +]]> + + &example.outputs.similar; + + + int(8) + ["message"]=> + string(21) "Undefined variable: b" + ["file"]=> + string(9) "%s" + ["line"]=> + int(6) +} +NULL +]]> + + + + + + + &reftitle.seealso; + + + エラー定数 + + + + + + + diff --git a/reference/errorfunc/functions/error-get-last.xml b/reference/errorfunc/functions/error-get-last.xml index 7105e9766c..1734bc0348 100644 --- a/reference/errorfunc/functions/error-get-last.xml +++ b/reference/errorfunc/functions/error-get-last.xml @@ -1,6 +1,6 @@ - + error_get_last @@ -9,7 +9,7 @@ &reftitle.description; - arrayerror_get_last + arraynullerror_get_last @@ -17,6 +17,11 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; @@ -72,7 +77,6 @@ Array - - - + + error_log @@ -14,8 +14,8 @@ boolerror_log stringmessage intmessage_type0 - stringdestination - stringextra_headers + stringnulldestination&null; + stringnulladditional_headers&null; エラーメッセージを Web サーバーのエラーログあるいはファイルに送ります。 @@ -48,11 +48,12 @@ 0 - message は、オペレーティング・システム - のシステムログのメカニズムまたはファイルのいずれかを使って - PHP のシステム・ロガーに送られます。どちらが使われるかは、 + message は PHP のシステムロガーに送られ、 設定ディレクティブ error_log - の内容により決定されます。これはデフォルトのオプションです。 + の値に応じて、 + オペレーティングシステムのシステムログ機構を使って保存されるか、 + ファイルに保存されるかが決まります。 + これがデフォルトのオプションです。 @@ -61,7 +62,7 @@ message は、destination パラメータで指定されたアドレスに、電子メール により送られます。このメッセージタイプの場合にのみ、 - 4 番目のパラメータである extra_headers + 4 番目のパラメータである additional_headers が使われます。 @@ -103,7 +104,7 @@ - extra_headers + additional_headers 追加のヘッダ。message_type パラメータが @@ -121,25 +122,32 @@ &reftitle.returnvalues; &return.success; + message_type が0の場合、 + エラーがロギング出来たかそうでないかに関わらず、この関数は常に &true; を返します。 - - &reftitle.notes; - - - error_log はバイナリセーフではありません。 - message に null 文字があれば、そこで切り詰められます。 - - - - - message に null 文字を含めてはいけません。 - message の送り先はファイルやメール、そして syslog などになることもあります。 - base64_encoderawurlencodeaddslashes - などの関数で適切に変換してから error_log に渡す必要があります。 - - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + destination と + additional_headers は、nullable になりました。 + + + + + @@ -171,32 +179,25 @@ error_log("大変だ!", 3, "/var/tmp/my-errors.log"); - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.2.7 - - message_type の値として 4 が使用できるようになりました。 - - - - - - + + &reftitle.notes; + + + error_log はバイナリセーフではありません。 + message に null 文字があれば、そこで切り詰められます。 + + + + + message に null 文字を含めてはいけません。 + message の送り先はファイルやメール、そして syslog などになることもあります。 + base64_encoderawurlencodeaddslashes + などの関数で適切に変換してから error_log に渡す必要があります。 + + - - - + + error_reporting @@ -12,14 +12,14 @@ &reftitle.description; interror_reporting - intlevel + intnullerror_level&null; error_reporting 関数は、 error_reporting ディレクティブを 実行時に設定します。PHP には多くのエラーレベルがあり、 この関数によりスクリプトの持続時間(実行時間)のレベルが設定されます。 - オプションの level を指定しなかった場合は、 + オプションの error_level を指定しなかった場合は、 error_reporting は単に現在のエラーレベルを返します。 @@ -29,7 +29,7 @@ - level + error_level 新しい error_reporting @@ -53,40 +53,37 @@ &reftitle.returnvalues; - 変更前の error_reporting - レベルを返します。level - パラメータを指定しなかった場合は、現在のレベルを返します。 + error_level に変更される の、 + error_reporting レベルを返します。 + + + エラー制御演算子 + @ は、エラーハンドリングの間に error_level を変更します。 + + &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.4.0 - E_STRICTE_ALL に含まれるようになりました。 - - - 5.3.0 - E_DEPRECATEDE_USER_DEPRECATED が追加されました。 - - - 5.2.0 - E_RECOVERABLE_ERROR が追加されました。 - - - - - + + + + + &Version; + &Description; + + + + + 8.0.0 + + error_level は、nullable になりました。 + + + + + @@ -111,7 +108,7 @@ error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); // E_NOTICE 以外の全てのエラーを表示する error_reporting(E_ALL & ~E_NOTICE); -// 全ての PHP エラーを表示する (Changelog を参照ください) +// 全ての PHP エラーを表示する error_reporting(E_ALL); // 全ての PHP エラーを表示する @@ -129,20 +126,11 @@ ini_set('error_reporting', E_ALL); &reftitle.notes; - - - ほとんどの E_STRICT レベルのエラーは - スクリプトのコンパイル時に発生します。そのため、 - error_reporting で - E_STRICT を含むように設定されている環境では - これらのエラーを検出できません (逆も同様です)。 - - 値に -1 を指定すると、仮に将来のバージョンの PHP で新しいレベルと定数が追加されたとしてもすべてのエラーを表示するようになります。 - E_ALL 定数も、PHP 5.4 以降これと同じ挙動になります。 + E_ALL 定数も、これと同じ挙動になります。 @@ -154,12 +142,12 @@ ini_set('error_reporting', E_ALL); display_errors ディレクティブ html_errors ディレクティブ xmlrpc_errors ディレクティブ + エラー制御演算子 ini_set - + + + + get_error_handler + ユーザー定義のエラーハンドラ関数を取得する + + + + &reftitle.description; + + callablenullget_error_handler + + + + 存在する場合に、現在のエラーハンドラ関数を返します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + (もしあれば)現在定義済みのエラーハンドラを返します。 + 組み込みのエラーハンドラを使っている場合は、&null; を返します。 + + + 返されたエラーハンドラは、 + set_error_handler に渡された callable そのものです。 + + + + + &reftitle.examples; + + <function>get_error_handler</function> の例 + + +]]> + + + + + + &reftitle.notes; + + + PHP 8.5.0 より前のバージョンでは、 + この関数の機能は以下のような polyfill で提供できます: + + + + +]]> + + + + + + + &reftitle.seealso; + + error_reporting + set_error_handler + restore_error_handler + trigger_error + エラーレベル定数 + + + + diff --git a/reference/errorfunc/functions/get-exception-handler.xml b/reference/errorfunc/functions/get-exception-handler.xml new file mode 100644 index 0000000000..b6c3a9a309 --- /dev/null +++ b/reference/errorfunc/functions/get-exception-handler.xml @@ -0,0 +1,119 @@ + + + + + + get_exception_handler + ユーザー定義の例外ハンドラ関数を取得する + + + + &reftitle.description; + + callablenullget_exception_handler + + + + 存在する場合に、現在の例外ハンドラ関数を返します。 + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 現在定義済みの例外ハンドラを返します。 + ハンドラが定義されていない場合は、&null; を返します。 + + + 返されたハンドラは、 + set_exception_handler に渡された callable そのものです。 + + + + + &reftitle.examples; + + <function>get_exception_handler</function> の例 + +getMessage() . "\n"; +}; + +var_dump(get_exception_handler()); // NULL + +set_exception_handler($handler); + +var_dump(get_exception_handler() === $handler); // bool(true) + +?> +]]> + + + + + + &reftitle.notes; + + + PHP 8.5.0 より前のバージョンでは、 + この関数の機能は以下のような polyfill で提供できます: + + + + +]]> + + + + + + + &reftitle.seealso; + + set_exception_handler + restore_exception_handler + restore_error_handler + error_reporting + Exceptions + + + + diff --git a/reference/errorfunc/functions/restore-error-handler.xml b/reference/errorfunc/functions/restore-error-handler.xml index 4481c6e790..da705c1b6b 100644 --- a/reference/errorfunc/functions/restore-error-handler.xml +++ b/reference/errorfunc/functions/restore-error-handler.xml @@ -1,6 +1,6 @@ - + @@ -11,7 +11,7 @@ &reftitle.description; - boolrestore_error_handler + truerestore_error_handler @@ -21,10 +21,15 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; - この関数は常に &true; を返します。 + &return.true.always; @@ -68,13 +73,13 @@ Invalid serialized value. error_reporting set_error_handler + get_error_handler restore_exception_handler trigger_error - - + restore_exception_handler @@ -12,7 +12,7 @@ &reftitle.description; - boolrestore_exception_handler + truerestore_exception_handler @@ -22,10 +22,15 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; - この関数は常に &true; を返します。 + &return.true.always; @@ -71,6 +76,7 @@ set_exception_handler + get_exception_handler set_error_handler restore_error_handler error_reporting @@ -78,7 +84,6 @@ - - + @@ -11,36 +11,34 @@ &reftitle.description; - mixedset_error_handler - callableerror_handler - interror_typesE_ALL | E_STRICT + callablenullset_error_handler + callablenullcallback + interror_levelsE_ALL スクリプトのエラー処理を行うユーザー関数 - (error_handler)を設定します。 + (callback)を設定します。 - この関数は、実行時のエラー処理をユーザーが定義するために使用します。 + この関数は、実行時にカスタムのエラーハンドラを定義するために使います。 例えば、致命的なエラーの際にデータやファイルを消去する必要があるような アプリケーションや、ある条件のもとに (trigger_errorを使用して)エラーを発生する必要がある アプリケーションがこの場合にあたります。 - コールバック関数が &false; を返さない限り、error_types + コールバック関数が &false; を返さない限り、error_levels で指定した型のエラーでは PHP 標準のエラーハンドラが完全にバイパスされることに注意してください。 error_reporting の設定にかかわらず、どのような場合でも ユーザーが設定したエラーハンドラがコールされます。ただし、この場合でも - ハンドラで error_reporting のカレントの値を読み、 - それにあわせて適切に動作させることは可能です。エラーを発生した命令の前に - @ エラー制御演算子 - が付加されている場合、この値は 0 となることには注意しましょう。 + ハンドラで error_reporting の現在の値を読み込み、 + それにあわせて適切に動作させることは可能です。 + - ユーザーハンドラ関数は、必要に応じて die を - コールする責任があることにも注意しましょう。エラーハンドラ関数が - リターンした場合、スクリプトの実行は、エラーを発生した命令の次の命令に - 継続されます。 + ユーザーハンドラ関数は、必要に応じて exit を + コールすることで、スクリプトを停止させる責任があることにも注意しましょう。 + エラーハンドラ関数がリターンした場合、エラーが発生した次の行から実行が継続されます。 以下のエラータイプは、ユーザー定義の関数では扱えません。 @@ -63,12 +61,11 @@ - error_handler + callback - 次のシグネチャに従うコールバック。 &null; を渡すと、ハンドラをデフォルトの状態に戻せます。 - 関数名のかわりにオブジェクトへのリファレンスとメソッド名を含む配列を指定することもできます。 + それ以外の場合、次のシグネチャに従うコールバックを渡します: @@ -85,7 +82,7 @@ 最初のパラメータ errno は、発生させる - エラーのレベルを整数で格納します。 + エラーのレベルが整数で渡されます。 @@ -94,7 +91,7 @@ 2 番目のパラメータ errstr は、 - エラーメッセージを文字列で格納します。 + エラーメッセージが文字列で渡されます。 @@ -102,8 +99,8 @@ errfile - 3 番目のパラメータ errfile はオプションで、 - エラーが発生したファイルの名前を文字列で格納します。 + コールバックが第3引数 errfile を受け入れる場合、 + エラーが発生したファイルの名前が文字列で渡されます。 @@ -111,8 +108,8 @@ errline - 4 番目のパラメータ errline はオプションで、 - エラーが発生した行番号を整数で格納します。 + コールバックが第4引数 errline を受け入れる場合、 + エラーが発生した行番号が整数で渡されます。 @@ -120,8 +117,8 @@ errcontext - 5 番目のパラメータ errcontext はオプションで、 - エラーが発生した場所のアクティブシンボルテーブルを指す配列です。 + コールバックが第5引数 errcontext を受け入れる場合、 + エラーが発生した場所のアクティブシンボルテーブルが配列で渡されます。 つまり、エラーが発生したスコープ内でのすべての変数の内容を格納した 配列が errcontext だということです。 ユーザーエラーハンドラは、決してエラーコンテキストを書き換えては @@ -129,8 +126,10 @@ - このパラメータは PHP 7.2.0 以降では 推奨されません。 - これに依存しないことを強く推奨します。 + このパラメータは PHP 7.2.0 以降では 推奨されなくなり、 + PHP 8.0.0 で 削除されました。 + この引数をデフォルト値以外に設定すると、 + ハンドラが呼び出された時に "too few arguments" エラーが発生します。 @@ -143,16 +142,16 @@ - error_types + error_levels 設定パラメータ error_reporting で表示するエラーを制御するのと全く同様に、 - error_handler の起動を制御する際に + callback の起動を制御する際に 使用可能です。 このマスクを指定しない場合、 - error_handler は + callbackerror_reporting の設定によらず 全てのエラーに関してコールされます。 @@ -166,11 +165,9 @@ &reftitle.returnvalues; - 前に定義されたエラーハンドラ(ある場合)を含む文字列を返します。 + 前に定義されたエラーハンドラ(ある場合)を callable + として返します。 組み込みのエラーハンドラを使用している場合は &null; を返します。 - また、無効なコールバックなどでエラーとなった場合も &null; を返します。 - 前に定義されたハンドラがクラスメソッドの場合、この関数は、 - クラスとメソッド名からなる添字配列を返します。 @@ -187,25 +184,18 @@ - 7.2.0 - - errcontext が非推奨になりました。 - このパラメーターを使うと、 - E_DEPRECATED レベルの警告が発生するようになりました。 - - - - 5.5.0 + 8.0.0 - error_handler に &null; を渡せるようになりました。 + errcontext 引数は削除されました。 + よって、ユーザー定義のコールバックに渡されることはありません。 - 5.2.0 + 7.2.0 - $php_errormsg - の内容を設定するため、エラーハンドラは必ず &false; - を返さなければなりません。 + errcontext が非推奨になりました。 + このパラメーターを使うと、 + E_DEPRECATED レベルの警告が発生するようになりました。 @@ -235,7 +225,7 @@ function myErrorHandler($errno, $errstr, $errfile, $errline) if (!(error_reporting() & $errno)) { // error_reporting 設定に含まれていないエラーコードのため、 // 標準の PHP エラーハンドラに渡されます。 - return; + return false; } // $errstr はエスケープする必要があるかもしれません。 @@ -365,14 +355,13 @@ Aborting...
ErrorExceptionerror_reportingrestore_error_handler + get_error_handlertrigger_errorエラーレベル定数 - &seealso.callback; - - - + + set_exception_handler @@ -13,13 +13,13 @@ &reftitle.description; - callableset_exception_handler - callableexception_handler + callablenullset_exception_handler + callablenullcallback 例外が try/catch ブロックの中でキャッチされなかった場合の デフォルトの例外ハンドラを設定します。 - 実行は、exception_handler がコールされた後に + 実行は、callback がコールされた後に 停止します。 @@ -29,25 +29,17 @@ - exception_handler + callback - キャッチされない例外が発生した際にコールされる関数の名前。 - このハンドラ関数は、パラメータをひとつとる必要があります。 - このパラメータは、スローされた例外オブジェクトとなります。 - PHP 7 より前のバージョンでは、ハンドラのシグネチャは、次のようになります。 - - - - voidhandler - Exceptionex - - - - PHP 7 からは、大半のエラーが Error 例外として報告されるようになりました。 - これらもこのハンドラで扱うことになるでしょう。Error と - Exception は、どちらも Throwable インターフェイスを実装しています。 - PHP 7 以降のハンドラのシグネチャは、次のようになります。 + キャッチされない例外が発生した際にコールされる関数。 + このハンドラ関数は、スローされる + Throwable オブジェクトを引数にとります。 + Error と + Exception は、 + どちらも Throwable + インターフェイスを実装しています。 + ハンドラのシグネチャは、次のようになります。 @@ -58,13 +50,6 @@ &null; を渡すと、このハンドラをデフォルトの状態に戻せます。 - - - コールバックの ex パラメータにタイプヒントとして - Exception を明示すると、 - PHP 7 での例外の階層の変更に伴う問題が発生することに注意しましょう。 - - @@ -74,43 +59,12 @@ &reftitle.returnvalues; - 前に定義された例外ハンドラの名前、またはエラー発生時に &null; を返します。 + 前に定義された例外ハンドラを返します。 + エラー発生時に &null; を返します。 前にハンドラが定義されていない場合にも &null; が返されます。 - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.0.0 - - exception_handler に渡すパラメータの型が、 - Exception から Throwable に変わりました。 - - - - 5.5.0 - - これより前のバージョンでは、&null; を渡した場合の返り値が &true; でした。 - PHP 5.5.0 以降は、以前に設定されていたハンドラを返すようになります。 - - - - - - - - &reftitle.examples; @@ -119,7 +73,7 @@ getMessage(), "\n"; } @@ -138,17 +92,16 @@ echo "Not Executed\n"; &reftitle.seealso; + get_exception_handler restore_exception_handler restore_error_handler error_reporting - &seealso.callback; - PHP 5 例外 + 例外(exceptions) - - + @@ -10,9 +10,10 @@ &reftitle.description; - booltrigger_error - stringerror_msg - interror_typeE_USER_NOTICE + + truetrigger_error + stringmessage + interror_levelE_USER_NOTICE ユーザーエラーを発生させるために使います。組み込みのエラーハンドラまたは新しいエラーハンドラ (set_error_handler) @@ -28,7 +29,7 @@ - error_msg + message このエラーに割り当てられたメッセージ。長さは最大 1024 バイトまでです。1024 バイトを超える部分は切り捨てられます。 @@ -36,11 +37,19 @@ - error_type + error_level - このエラーに割り当てられたエラー型です。E_USER 関連の定数のみが指定可能で、デフォルトは E_USER_NOTICE です。 + このエラーに割り当てられたエラー型です。E_USER_* の定数のみが指定可能で、デフォルトは E_USER_NOTICE です。 + + + error_level として + E_USER_ERROR を指定するのは非推奨となりました。 + かわりに、Exception をスローするか、 + exit を呼び出してください。 + + @@ -50,10 +59,61 @@ &reftitle.returnvalues; - この関数は、間違った error_type が指定された場合に &false; を、それ以外の場合に &true; を返します。 + &return.true.always; + + &reftitle.errors; + + error_level が + E_USER_ERROR, E_USER_WARNING, + E_USER_NOTICE, E_USER_DEPRECATED + のいずれかでない場合、この関数は ValueError + をスローします。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.4.0 + + error_level として + E_USER_ERROR を指定するのは非推奨となりました。 + かわりに、Exception をスローするか、 + exit を呼び出してください。 + + + + 8.4.0 + + 戻り値の型が、bool ではなく + true に変更されました。 + + + + 8.0.0 + + 不正な error_level + を指定すると、ValueError をスローするようになりました。 + これより前のバージョンでは、&false; を返していました。 + + + + + + + &reftitle.examples; @@ -66,9 +126,11 @@ ]]> @@ -80,7 +142,7 @@ if ($divisor == 0) { &reftitle.notes; - error_msg の HTML エンティティはエスケープされません。エラーをブラウザに表示するのであれば、メッセージに htmlentities を使います。 + message の HTML エンティティはエスケープされません。エラーをブラウザに表示するのであれば、メッセージに htmlentities を使います。 @@ -93,11 +155,11 @@ if ($divisor == 0) { set_error_handlerrestore_error_handlerエラーレベル定数 + Deprecated アトリビュート - - + user_error - trigger_error のエイリアス + trigger_error &Alias; diff --git a/reference/errorfunc/ini.xml b/reference/errorfunc/ini.xml index b184d691f8..3a692c4512 100644 --- a/reference/errorfunc/ini.xml +++ b/reference/errorfunc/ini.xml @@ -1,6 +1,6 @@ - +
&reftitle.runtime; @@ -21,122 +21,129 @@ error_reporting NULL - PHP_INI_ALL + INI_ALL display_errors "1" - PHP_INI_ALL + INI_ALL display_startup_errors - "0" - PHP_INI_ALL - + "1" + INI_ALL + + PHP 8.0.0 より前のバージョンでは、デフォルト値は "0" でした。 + log_errors "0" - PHP_INI_ALL + INI_ALL log_errors_max_len "1024" - PHP_INI_ALL - + INI_ALL + PHP 8.0.0 以降は意味をなさなくなり、PHP 8.1.0 で削除されました。 ignore_repeated_errors "0" - PHP_INI_ALL + INI_ALL ignore_repeated_source "0" - PHP_INI_ALL + INI_ALL report_memleaks "1" - PHP_INI_ALL + INI_ALL track_errors "0" - PHP_INI_ALL - - PHP 7.2.0 以降では非推奨になりました。 + INI_ALL + PHP 7.2.0 以降で非推奨になり、PHP 8.0.0 で削除されました。 html_errors "1" - PHP_INI_ALL + INI_ALL xmlrpc_errors "0" - PHP_INI_SYSTEM + INI_SYSTEM xmlrpc_error_number "0" - PHP_INI_ALL + INI_ALL docref_root "" - PHP_INI_ALL + INI_ALL docref_ext "" - PHP_INI_ALL + INI_ALL error_prepend_string NULL - PHP_INI_ALL + INI_ALL error_append_string NULL - PHP_INI_ALL + INI_ALL error_log NULL - PHP_INI_ALL + INI_ALL + + error_log_mode + 0o644 + INI_ALL + PHP 8.2.0 以降で有効です。 + syslog.facility "LOG_USER" - PHP_INI_SYSTEM + INI_SYSTEM PHP 7.3.0 以降で有効です。 syslog.filter "no-ctrl" - PHP_INI_ALL + INI_ALL PHP 7.3.0 以降で有効です。 syslog.ident "php" - PHP_INI_SYSTEM + INI_SYSTEM PHP 7.3.0 以降で有効です。 @@ -150,7 +157,7 @@ error_reporting - integer + int @@ -160,47 +167,29 @@ &php.ini;に記述されています。 実行時に設定するには、 error_reporting 関数を指定してください。 display_errors - ディレクティブも参照してください。 + ディレクティブも参照ください。 - PHP 5.3 以降のデフォルトは E_ALL & ~E_NOTICE & - ~E_STRICT & ~E_DEPRECATED です。 - この設定では E_NOTICEE_STRICT、そして E_DEPRECATED レベルのエラーは出力されません。開発時にはこのエラーを表示させたい場合もあるかもしれません。 - PHP 5.3.0 以前では、E_ALL & ~E_NOTICE & ~E_STRICT がデフォルトです。 + デフォルト値は + E_ALL です。 + + + PHP 8.0.0 より前のバージョンでは、 + E_ALL & + ~E_NOTICE & + ~E_STRICT & + ~E_DEPRECATED でした。 + これは、E_NOTICE、 + E_STRICT、 + そして E_DEPRECATED + レベルのエラーが出力されないということです。 - - - 開発時にE_NOTICEを有効にすることにはいくつ - かの利点があります。デバッグのために、NOTICE メッセージはコード - の中のバグの可能性について警告を与えます。例えば、代入されていな - い値を使用した場合は、警告を発生します。 - これは、書き間違いを見付け、デバッグの時間を節約するために非常 - に有用です。NOTICEメッセージは、好ましくないコードに警告します。 - 例えば、$arr[item]$arr['item'] と書く方が好ましいです。 - これは、PHPが "item" を定数として取り扱うためです。 - 定数でない場合、PHPは配列の添字用の文字列と判断します。 - - - - - PHP 5.4.0 より前のバージョンの場合は E_ALL - に E_STRICT が含まれないため、 - PHP < 5.4.0 では明示的にこのエラーレベルを設定する必要があります。 - 開発中に E_STRICT を有効にすることはいくつかの利点があります。 - STRICT メッセージの提案に従えば、コードの相互運用性を高めて将来のバージョンでも動くようする助けとなります。 - メッセージに含まれる内容は、静的でないメソッドを静的に呼び出していたり - 利用中のトレイトで定義しているプロパティをクラス定義でも行っていたりといった内容です。 - また、PHP 5.3 より前のバージョンでは、 - 非推奨の機能 (インスタンス化の際にオブジェクトを参照で代入するなど) - を使ったときにも E_STRICT エラーが発生していました。 - - PHP 定数の、PHP 以外での使用 PHP の定数を、httpd.conf など PHP の外部で使用しても何の意味もありません。外部で使用する場合には、 - integer 型の値を指定しなければなりません。 + int 型の値を指定しなければなりません。 また、エラーレベルはこれからも追加されることがあるので、 最大値 (E_ALL に対応する値) は変わる可能性があります。そこで、E_ALL @@ -225,8 +214,7 @@ "stderr" を指定すると、エラーの内容を stdout (標準出力) ではなく stderr (標準エラー出力) - に送ります。この値は PHP 5.2.4 以降で使用可能です。それより前のバージョンでは、 - このディレクティブは boolean 型でした。 + に送ります。 @@ -248,7 +236,7 @@ display_startup_errors - boolean + bool @@ -262,7 +250,7 @@ log_errors - boolean + bool @@ -282,7 +270,7 @@ log_errors_max_len - integer + int @@ -305,7 +293,7 @@ ignore_repeated_errors - boolean + bool @@ -320,7 +308,7 @@ ignore_repeated_source - boolean + bool @@ -334,7 +322,7 @@ report_memleaks - boolean + bool @@ -351,7 +339,7 @@ track_errors - boolean + bool @@ -365,7 +353,7 @@ html_errors - boolean + bool @@ -385,7 +373,7 @@ xmlrpc_errors - boolean + bool @@ -397,7 +385,7 @@ xmlrpc_error_number - integer + int @@ -457,6 +445,9 @@ エラーメッセージの前に出力する文字列。 + エラーメッセージを画面に表示する時にだけ使います。 + 主な目的は、 + エラーメッセージの先頭に追加のHTMLマークアップを付加できるようにすることです。 @@ -469,6 +460,9 @@ エラーメッセージの後に出力する文字列。 + エラーメッセージを画面に表示する時にだけ使います。 + 主な目的は、 + エラーメッセージに追加のHTMLマークアップを付加できるようにすることです。 @@ -485,7 +479,7 @@ syslog が指定されると、エラーはファイルではなく システムロガーに送られます。これは Unix では syslog(3) であり Windows ではイベントログのことです。 - syslog も参照してください。 + syslog も参照ください。 このディレクティブが設定されていない場合、エラーは SAPI エラーロガーに送信されます。これは、例えば Apache のエラーログ、 あるいは CLI なら stderr になります。 @@ -494,6 +488,18 @@ + + + error_log_mode + int + + + + error_log で設定されたファイルのモード(パーミッション)。 + + + + syslog.facility @@ -517,20 +523,39 @@ 記録されたメッセージをフィルタリングするフィルターの種類を指定します。 フィルターで許可された文字はそのまま記録されますが、許可されていない文字は \x で始まる十六進表記に変換して記録されます。 - サポートするフィルターは次の三種類です。 - all – すべての文字を許可する + all – + ロギングされる文字列は改行文字で分割され、すべての文字は変更せずに渡されます。 + + + ascii – + ロギングされる文字列は改行文字で分割され、 + 印刷可能な 7bit ASCII 文字以外の文字は全てエスケープされます。 - no-ctrl – 制御文字以外のすべての文字を許可する + no-ctrl – + ロギングされる文字列は改行文字で分割され、 + 印刷可能な文字以外は全てエスケープされます。 - ascii – 印刷可能な ASCII 文字および NL だけを許可する + raw – + 全ての文字はシステムロガーに変更せずに渡されます。 + 改行文字で分割されることもありません(PHP 7.3 より前の振る舞いと同等です) + - error_log が "syslog" の場合にだけ有効です。 + この設定は、error_log を "syslog" に設定し、 + syslog をコールした場合にのみ影響します。 + + + raw フィルタタイプは、PHP 7.3.8 および PHP 7.4.0 以降で使えます。 + + + + このディレクティブは、Windows ではサポートされていません。 + diff --git a/reference/errorfunc/reference.xml b/reference/errorfunc/reference.xml index 5bb4698706..48b73a590c 100644 --- a/reference/errorfunc/reference.xml +++ b/reference/errorfunc/reference.xml @@ -7,7 +7,7 @@ &reftitle.seealso; - syslogも参照してください。 + syslogも参照ください。 diff --git a/reference/errorfunc/setup.xml b/reference/errorfunc/setup.xml index 5f285f2c4c..e7b824eb8e 100644 --- a/reference/errorfunc/setup.xml +++ b/reference/errorfunc/setup.xml @@ -1,27 +1,12 @@ - + &reftitle.setup; -
- &reftitle.required; - &no.requirement; -
- -
- &reftitle.install; - &no.install; -
- &reference.errorfunc.ini; -
- &reftitle.resources; - &no.resource; -
-
- + diff --git a/reference/ev/book.xml b/reference/ev/book.xml index ce137bc675..b2bcdbb470 100644 --- a/reference/ev/book.xml +++ b/reference/ev/book.xml @@ -1,7 +1,8 @@ - + + Ev Ev @@ -32,14 +33,12 @@
詳細は - libev - のドキュメント を参照ください。 + + libev のドキュメント を参照ください。 &reference.ev.setup; - &reference.ev.constants; &reference.ev.examples; &reference.ev.watchers; &reference.ev.watcher-callbacks; diff --git a/reference/ev/configure.xml b/reference/ev/configure.xml index d01cc79ae9..120cf49831 100644 --- a/reference/ev/configure.xml +++ b/reference/ev/configure.xml @@ -1,6 +1,6 @@ - +
&reftitle.install; diff --git a/reference/ev/constants.xml b/reference/ev/constants.xml deleted file mode 100644 index 3ffd2a17b2..0000000000 --- a/reference/ev/constants.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - &reftitle.constants; - &no.constants; - - ほとんどの定数は、シングルトンクラス - Ev - に移動しました。 - - - diff --git a/reference/ev/ev.xml b/reference/ev/ev.xml index cc5deabecb..04a7c3796d 100644 --- a/reference/ev/ev.xml +++ b/reference/ev/ev.xml @@ -1,7 +1,7 @@ - - + + Ev クラス Ev @@ -29,209 +29,209 @@ - Constants + &Constants; const - integer + int Ev::FLAG_AUTO 0 const - integer + int Ev::FLAG_NOENV 16777216 const - integer + int Ev::FLAG_FORKCHECK 33554432 const - integer + int Ev::FLAG_NOINOTIFY 1048576 const - integer + int Ev::FLAG_SIGNALFD 2097152 const - integer + int Ev::FLAG_NOSIGMASK 4194304 const - integer + int Ev::RUN_NOWAIT 1 const - integer + int Ev::RUN_ONCE 2 const - integer + int Ev::BREAK_CANCEL 0 const - integer + int Ev::BREAK_ONE 1 const - integer + int Ev::BREAK_ALL 2 const - integer + int Ev::MINPRI -2 const - integer + int Ev::MAXPRI 2 const - integer + int Ev::READ 1 const - integer + int Ev::WRITE 2 const - integer + int Ev::TIMER 256 const - integer + int Ev::PERIODIC 512 const - integer + int Ev::SIGNAL 1024 const - integer + int Ev::CHILD 2048 const - integer + int Ev::STAT 4096 const - integer + int Ev::IDLE 8192 const - integer + int Ev::PREPARE 16384 const - integer + int Ev::CHECK 32768 const - integer + int Ev::EMBED 65536 const - integer + int Ev::CUSTOM 16777216 const - integer + int Ev::ERROR 2147483648 const - integer + int Ev::BACKEND_SELECT 1 const - integer + int Ev::BACKEND_POLL 2 const - integer + int Ev::BACKEND_EPOLL 4 const - integer + int Ev::BACKEND_KQUEUE 8 const - integer + int Ev::BACKEND_DEVPOLL 16 const - integer + int Ev::BACKEND_PORT 32 const - integer + int Ev::BACKEND_ALL 63 const - integer + int Ev::BACKEND_MASK 65535 @@ -605,7 +605,7 @@ EvEmbed - で指定した埋め込みイベントループが注目を必要としています。 + で指定した埋め込みイベントループのウォッチャーが注目する必要があります。 @@ -784,7 +784,7 @@ &reference.ev.entities.ev; - + - + Ev::backend diff --git a/reference/ev/ev/depth.xml b/reference/ev/ev/depth.xml index 20eb948643..a4893d246e 100644 --- a/reference/ev/ev/depth.xml +++ b/reference/ev/ev/depth.xml @@ -1,6 +1,6 @@ - + Ev::depth diff --git a/reference/ev/ev/feedsignal.xml b/reference/ev/ev/feedsignal.xml index e7015ac84e..548ea28a5c 100644 --- a/reference/ev/ev/feedsignal.xml +++ b/reference/ev/ev/feedsignal.xml @@ -1,6 +1,6 @@ - + Ev::feedSignal diff --git a/reference/ev/ev/now.xml b/reference/ev/ev/now.xml index 794d90f9eb..609b8ed7cf 100644 --- a/reference/ev/ev/now.xml +++ b/reference/ev/ev/now.xml @@ -1,6 +1,6 @@ - + Ev::now diff --git a/reference/ev/ev/nowupdate.xml b/reference/ev/ev/nowupdate.xml index 32f8d55114..9cd1682d8e 100644 --- a/reference/ev/ev/nowupdate.xml +++ b/reference/ev/ev/nowupdate.xml @@ -1,6 +1,6 @@ - + Ev::nowUpdate diff --git a/reference/ev/ev/recommendedbackends.xml b/reference/ev/ev/recommendedbackends.xml index 2c74ab8c94..42f4524694 100644 --- a/reference/ev/ev/recommendedbackends.xml +++ b/reference/ev/ev/recommendedbackends.xml @@ -1,6 +1,6 @@ - + diff --git a/reference/ev/ev/resume.xml b/reference/ev/ev/resume.xml index 7344a7a32b..15139d6633 100644 --- a/reference/ev/ev/resume.xml +++ b/reference/ev/ev/resume.xml @@ -1,6 +1,6 @@ - + Ev::resume diff --git a/reference/ev/ev/run.xml b/reference/ev/ev/run.xml index 9e8dc62df6..f7c541863d 100644 --- a/reference/ev/ev/run.xml +++ b/reference/ev/ev/run.xml @@ -1,6 +1,6 @@ - + Ev::run @@ -22,7 +22,7 @@ イベントのチェックとデフォルトループのコールバックの呼び出しを開始します。 コールバックが Ev::stop メソッドを読んだとき、 - あるいは flags がゼロ以外のとき (この場合の返り値は true) + あるいは flags がゼロ以外のとき (この場合の戻り値は true) に結果を返します。あるいは、ループを参照するアクティブなウォッチャーがないとき (EvWatcher::keepalive が &true;) のときにも結果を返し、このときに返す値は &false; になります。 diff --git a/reference/ev/ev/stop.xml b/reference/ev/ev/stop.xml index 6ace88f2fd..b75e53497b 100644 --- a/reference/ev/ev/stop.xml +++ b/reference/ev/ev/stop.xml @@ -1,6 +1,6 @@ - + Ev::stop diff --git a/reference/ev/ev/suspend.xml b/reference/ev/ev/suspend.xml index 058799aae8..fb6437294c 100644 --- a/reference/ev/ev/suspend.xml +++ b/reference/ev/ev/suspend.xml @@ -1,6 +1,6 @@ - + Ev::suspend diff --git a/reference/ev/ev/verify.xml b/reference/ev/ev/verify.xml index 819eb828ea..a6878d1e58 100644 --- a/reference/ev/ev/verify.xml +++ b/reference/ev/ev/verify.xml @@ -1,6 +1,6 @@ - + Ev::verify diff --git a/reference/ev/evcheck.xml b/reference/ev/evcheck.xml index 59e49131b3..8f795ef45c 100644 --- a/reference/ev/evcheck.xml +++ b/reference/ev/evcheck.xml @@ -1,7 +1,7 @@ - - + + EvCheck クラス EvCheck @@ -72,7 +72,8 @@ &InheritedProperties; &Methods; - + + &InheritedMethods; @@ -82,7 +83,7 @@ &reference.ev.entities.evcheck; - + - + EvCheck::__construct @@ -8,7 +8,7 @@ &reftitle.description; - + public EvCheck::__construct @@ -23,7 +23,7 @@ int priority - + EvCheck ウォッチャーオブジェクトを作ります。 @@ -65,12 +65,7 @@ - - &reftitle.returnvalues; - - 成功した場合に EvCheck オブジェクトを返します。 - - + &reftitle.seealso; diff --git a/reference/ev/evcheck/createstopped.xml b/reference/ev/evcheck/createstopped.xml index f0e5712a4a..c8b8bf9105 100644 --- a/reference/ev/evcheck/createstopped.xml +++ b/reference/ev/evcheck/createstopped.xml @@ -1,6 +1,6 @@ - + EvCheck::createStopped diff --git a/reference/ev/evchild.xml b/reference/ev/evchild.xml index d356583831..9c074fe18f 100644 --- a/reference/ev/evchild.xml +++ b/reference/ev/evchild.xml @@ -1,7 +1,7 @@ - - + + The EvChild class EvChild @@ -59,7 +59,8 @@ &InheritedProperties; &Methods; - + + &InheritedMethods; @@ -76,7 +77,7 @@ 読み込み専用。 - このウォッチャーが注目するプロセス ID。0 の場合はあらゆるプロセス ID を表します。 + このウォッチャーが注目するプロセス ID。0 の場合はあらゆるプロセス ID を表します。 @@ -109,7 +110,7 @@ &reference.ev.entities.evchild; - + - + EvChild::__construct @@ -8,7 +8,7 @@ &reftitle.description; - + public EvChild::__construct @@ -35,7 +35,7 @@ priority 0 - + EvChild ウォッチャーオブジェクトを作ります。 @@ -127,12 +127,7 @@ - - &reftitle.returnvalues; - - 成功した場合に EvChild オブジェクトを返します。 - - + &reftitle.seealso; diff --git a/reference/ev/evchild/createstopped.xml b/reference/ev/evchild/createstopped.xml index 326fb8d0bf..5cf48e6b6e 100644 --- a/reference/ev/evchild/createstopped.xml +++ b/reference/ev/evchild/createstopped.xml @@ -1,6 +1,6 @@ - + EvChild::createStopped diff --git a/reference/ev/evchild/set.xml b/reference/ev/evchild/set.xml index 3daf40b319..ab09e257f2 100644 --- a/reference/ev/evchild/set.xml +++ b/reference/ev/evchild/set.xml @@ -1,6 +1,6 @@ - + EvChild::set diff --git a/reference/ev/evembed.xml b/reference/ev/evembed.xml index f2ef199a7c..b7a3165c90 100644 --- a/reference/ev/evembed.xml +++ b/reference/ev/evembed.xml @@ -1,7 +1,7 @@ - - + + EvEmbed クラス EvEmbed @@ -38,7 +38,8 @@ embed &Methods; - + + &InheritedMethods; @@ -95,7 +96,7 @@ &reference.ev.entities.evembed; - + - + EvEmbed::__construct @@ -8,7 +8,7 @@ &reftitle.description; - + public EvEmbed::__construct @@ -27,7 +27,7 @@ int priority - + これは高度なウォッチャー型で、あるイベントループを別のイベントループに埋め込むことができます。 現在は、埋め込みループに対応しているのは IO イベントだけです。 @@ -95,12 +95,7 @@ - - &reftitle.returnvalues; - - 成功した場合に EvEmbed オブジェクトを返します。 - - + &reftitle.examples; diff --git a/reference/ev/evembed/createstopped.xml b/reference/ev/evembed/createstopped.xml index bbd1e78b85..c4c5221096 100644 --- a/reference/ev/evembed/createstopped.xml +++ b/reference/ev/evembed/createstopped.xml @@ -1,6 +1,6 @@ - + EvEmbed::createStopped diff --git a/reference/ev/evembed/set.xml b/reference/ev/evembed/set.xml index 6945b753a2..f96749c322 100644 --- a/reference/ev/evembed/set.xml +++ b/reference/ev/evembed/set.xml @@ -1,6 +1,6 @@ - + EvEmbed::set diff --git a/reference/ev/evfork.xml b/reference/ev/evfork.xml index 30f6f6c49d..76251d3aab 100644 --- a/reference/ev/evfork.xml +++ b/reference/ev/evfork.xml @@ -1,7 +1,7 @@ - - + + EvFork クラス EvFork @@ -43,7 +43,8 @@ &InheritedProperties; &Methods; - + + &InheritedMethods; @@ -53,7 +54,7 @@ &reference.ev.entities.evfork; - + - + EvFork::__construct @@ -8,7 +8,7 @@ &reftitle.description; - + public EvFork::__construct @@ -27,7 +27,7 @@ priority 0 - + EvFork ウォッチャーオブジェクトを作り、自動的に開始させます。 @@ -68,12 +68,7 @@ - - &reftitle.returnvalues; - - 成功した場合に EvFork オブジェクトを返します。 - - + &reftitle.seealso; diff --git a/reference/ev/evfork/createstopped.xml b/reference/ev/evfork/createstopped.xml index 1f38992e89..91c8798376 100644 --- a/reference/ev/evfork/createstopped.xml +++ b/reference/ev/evfork/createstopped.xml @@ -1,6 +1,6 @@ - + EvFork::createStopped diff --git a/reference/ev/evprepare.xml b/reference/ev/evprepare.xml index 79f98d52fb..078969af88 100644 --- a/reference/ev/evprepare.xml +++ b/reference/ev/evprepare.xml @@ -1,7 +1,7 @@ - - + + EvPrepare クラス EvPrepare @@ -33,7 +33,8 @@ &InheritedProperties; &Methods; - + + &InheritedMethods; @@ -43,7 +44,7 @@ &reference.ev.entities.evprepare; - + - + EvPrepare::__construct @@ -8,7 +8,7 @@ &reftitle.description; - + public EvPrepare::__construct @@ -23,7 +23,7 @@ string priority - + EvPrepare ウォッチャーオブジェクトを作り、自動的に開始させます。 停止状態のウォッチャーが必要なときは、 @@ -66,12 +66,7 @@ - - &reftitle.returnvalues; - - 成功した場合に EvPrepare オブジェクトを返します。 - - + &reftitle.seealso; diff --git a/reference/ev/evprepare/createstopped.xml b/reference/ev/evprepare/createstopped.xml index d57ff6d463..5d14b647bc 100644 --- a/reference/ev/evprepare/createstopped.xml +++ b/reference/ev/evprepare/createstopped.xml @@ -1,6 +1,6 @@ - + EvPrepare::createStopped diff --git a/reference/ev/examples.xml b/reference/ev/examples.xml index 3e13e6f10f..7e13a689c1 100644 --- a/reference/ev/examples.xml +++ b/reference/ev/examples.xml @@ -1,6 +1,6 @@ - + &reftitle.examples; diff --git a/reference/ev/periodic-modes.xml b/reference/ev/periodic-modes.xml index 50a2c2d555..40e584136d 100644 --- a/reference/ev/periodic-modes.xml +++ b/reference/ev/periodic-modes.xml @@ -1,8 +1,8 @@ - + - + Periodic ウォッチャーの操作モード EvPeriodic @@ -15,7 +15,7 @@ 絶対時刻のタイマー。 - このモードでは、interval = 0 + このモードでは、interval = 0 そして reschedule_cb = &null; となります。 このときは、単純に offset で指定した時刻に実行してその後は繰り返しません。 時刻の飛びがあっても調整はしません。つまり、 @@ -26,7 +26,7 @@ 繰り返しタイマー。 - このモードでは、interval > 0 + このモードでは、interval > 0 そして reschedule_cb = &null; となります。ウォッチャーは常に、 offset + N * interval @@ -44,7 +44,7 @@ $hourly = EvPeriodic(0, 3600, NULL, function () { ?> ]]> - これは、必ずしも 3600 秒おきにイベントが発生することを意味するものではありません。 + これは、必ずしも 3600 秒おきにイベントが発生することを意味するものではありません。 システムの時刻が一時間経過するごとにコールバックが呼ばれるというものです。 @@ -72,7 +72,7 @@ $hourly = EvPeriodic(0, 3600, NULL, function () { してはいけません。また、 イベントループ関数やメソッドも 呼んではいけません。 - ウォッチャーを止めるには、1e30 + ウォッチャーを止めるには、1e30 を返した後で停止します。 このタスクには、EvPrepare ウォッチャーが使えます。 diff --git a/reference/ev/reference.xml b/reference/ev/reference.xml index 261bc263e0..7b5ceec1aa 100644 --- a/reference/ev/reference.xml +++ b/reference/ev/reference.xml @@ -1,6 +1,6 @@ - + Ev &Functions; diff --git a/reference/ev/setup.xml b/reference/ev/setup.xml index f26ff4b93e..718004ac19 100644 --- a/reference/ev/setup.xml +++ b/reference/ev/setup.xml @@ -1,6 +1,6 @@ - + &reftitle.setup; @@ -23,14 +23,6 @@ .
-
- &reftitle.runtime; - &no.config; -
-
- &reftitle.resources; - &no.resource; -
- - + + ウォッチャーのコールバック すべてのウォッチャーは、アクティブ (イベントを待ち受け中) diff --git a/reference/ev/watchers.xml b/reference/ev/watchers.xml index 9965f685b8..ae25dd401d 100644 --- a/reference/ev/watchers.xml +++ b/reference/ev/watchers.xml @@ -1,7 +1,7 @@ - - + + ウォッチャー ウォッチャーは、何らかのイベントに関する興味を記録するオブジェクトです。 diff --git a/reference/exec/book.xml b/reference/exec/book.xml index adc1f0e727..461a892100 100644 --- a/reference/exec/book.xml +++ b/reference/exec/book.xml @@ -1,6 +1,6 @@ - + @@ -26,9 +26,8 @@
- + &reference.exec.setup; - &reference.exec.constants; &reference.exec.reference; diff --git a/reference/exec/constants.xml b/reference/exec/constants.xml deleted file mode 100644 index 1a7471641f..0000000000 --- a/reference/exec/constants.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - &reftitle.constants; - &no.constants; - - - - diff --git a/reference/exec/functions/escapeshellarg.xml b/reference/exec/functions/escapeshellarg.xml index 324c9c2f5f..7432ee402c 100644 --- a/reference/exec/functions/escapeshellarg.xml +++ b/reference/exec/functions/escapeshellarg.xml @@ -1,7 +1,7 @@ - - + + @@ -23,13 +23,14 @@ シェル関数への引数として渡す際にエスケープするために使用する必要 があります。シェル関数には、exec, systemそして - バックティック演算子 + バッククォート演算子 を含むシェル関数が含まれます。
Windows では、escapeshellarg は、パーセント記号と感嘆符 (遅延環境変数の展開) とダブルクォートをスペースに置き換えます。 そして、文字列をダブルクォートで囲みます。 + さらに、連続するバックスラッシュ(\) は、もうひとつバックスラッシュを追加すればエスケープできます。 @@ -72,30 +73,6 @@ system('ls '.escapeshellarg($dir)); - - &reftitle.changelog; - - - -
- - &Version; - &Description; - - - - - 5.4.43, 5.5.27, 5.6.11 - - 感嘆符がスペースで置き換えられるようになりました。 - - - - - - - - &reftitle.seealso; @@ -104,7 +81,7 @@ system('ls '.escapeshellarg($dir)); exec popen system - バックティック演算子 + バッククォート演算子 diff --git a/reference/exec/functions/escapeshellcmd.xml b/reference/exec/functions/escapeshellcmd.xml index dded013d0a..4291c4c5bf 100644 --- a/reference/exec/functions/escapeshellcmd.xml +++ b/reference/exec/functions/escapeshellcmd.xml @@ -1,6 +1,6 @@ - + @@ -20,7 +20,7 @@ だまして勝手なコマンドを実行する可能性がある文字をエスケープします。 この関数は、ユーザーに入力されたデータを関数 exec または system または、 - バックティック演算子 + バッククォート演算子 に渡す前に全てエスケープを行う場合に使用するべきです。 @@ -79,6 +79,7 @@ system($escaped_command); + &reftitle.notes; escapeshellcmd @@ -88,37 +89,23 @@ system($escaped_command); を使わねばなりません。 - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.4.43, 5.5.27, 5.6.11 - - 感嘆符がスペースで置き換えられるようになりました。 - - - - 5.3.0 - - Windows で、特別な文字が適切にエスケープされるようになりました。 - これより前のバージョンでは、そうした文字はスペースで置き換えられていました。 - - - - - - + + + スペースは + escapeshellcmd + 関数ではエスケープされません。 + たとえば、Windows で問題になりがちな + C:\Program Files\ProgramName\program.exe + のようなパスが当てはまります。 + この問題は以下のようなコードで緩和できます: + + + + + @@ -129,7 +116,7 @@ system($escaped_command); exec popen system - バックティック演算子 + バッククォート演算子 diff --git a/reference/exec/functions/exec.xml b/reference/exec/functions/exec.xml index 5d595fe129..694fd0a061 100644 --- a/reference/exec/functions/exec.xml +++ b/reference/exec/functions/exec.xml @@ -1,7 +1,7 @@ - - + + @@ -12,10 +12,10 @@ &reftitle.description; - stringexec + stringfalseexec stringcommand - arrayoutput - intreturn_var + arrayoutput&null; + intresult_code&null; exec は指定されたコマンド @@ -51,10 +51,10 @@ - return_var + result_code - 引数return_varが、引数 + 引数result_codeが、引数 output と共に存在する場合、実行したコマンドの ステータスがこの変数に書かれます。 @@ -69,7 +69,10 @@ コマンド結果の最後の行を返します。コマンドを実行し、 一切干渉を受けずに直接コマンドから全てのデータを受けとる必要が - あるならば、PassThru 関数を使ってください。 + あるならば、passthru 関数を使ってください。 + + + 失敗時に &false; を返します。 実行されたコマンドの出力を取得するには、必ず output @@ -77,6 +80,46 @@ + + &reftitle.errors; + + exec + が command + を実行できない場合、E_WARNING が発生します。 + + + command + が空だったり、null バイトが含まれている場合、 + ValueError がスローされます。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + command + が空だったり、null バイトが含まれている場合、 + ValueError がスローされるようになりました。 + これより前のバージョンでは、 + E_WARNING が発生し、&false; を返していました。 + + + + + + + &reftitle.examples; @@ -87,10 +130,24 @@ ]]> + &example.outputs.similar; + + cmb +) +]]> + @@ -100,8 +157,6 @@ echo exec('whoami'); &warn.escapeshell; ¬e.exec-bg; ¬e.exec-bypass-shell; - ¬e.exec-path; - &warn.sm.exec; @@ -112,12 +167,11 @@ echo exec('whoami'); passthru escapeshellcmd pcntl_exec - バックティック演算子 + バッククォート演算子 - - - + + @@ -12,14 +12,14 @@ &reftitle.description; - voidpassthru + falsenullpassthru stringcommand - intreturn_var + intresult_code&null; passthru関数はexec関数と同様、 commandを実行します。 - 引数 return_var を指定した場合、 + 引数 return_code を指定した場合、 Unix コマンドのステータスで置換されます。 この関数は Unix コマンドからの出力がバイナリデータであり、 ブラウザーへ直接返す必要がある場合、exec @@ -45,10 +45,10 @@ - return_var + result_code - 引数return_varが存在する場合、 + 引数result_codeが存在する場合、 Unix コマンドのステータスがこの変数に書かれます。 @@ -60,16 +60,54 @@ &reftitle.returnvalues; - &return.void; + &return.nullorfalse; + + &reftitle.errors; + + passthru + が command + を実行できない場合、E_WARNING が発生します。 + + + command + が空だったり、null バイトが含まれている場合、 + ValueError がスローされます。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + command + が空だったり、null バイトが含まれている場合、 + ValueError がスローされるようになりました。 + これより前のバージョンでは、 + E_WARNING が発生し、&false; を返していました。 + + + + + + + &reftitle.notes; &warn.escapeshell; ¬e.exec-bg; - ¬e.exec-path; - &warn.sm.exec; @@ -80,12 +118,11 @@ system popen escapeshellcmd - バックティック演算子 + バッククォート演算子 - - + proc_get_status - proc_open - で開かれたプロセスに関する情報を取得する + proc_open で開かれたプロセスに関する情報を取得する @@ -29,7 +28,7 @@ process - 評価される proc_open リソース + 評価される proc_open resource @@ -40,7 +39,7 @@ &reftitle.returnvalues; - 成功時は集められた情報の配列、失敗時は &false; 。 + 集められた情報を array として返します。 返される配列は次のような要素を持ちます: @@ -92,8 +91,18 @@ プロセスが返した終了コード (running が &false; の時のみ意味を持ちます)。 + PHP 8.3.0 より前のバージョンでは、 正しい値を返すのは関数を最初にコールした時のみで、次に - コールした際には -1 を返します。 + コールした際には -1 を返していました。 + + + + cached + bool + + PHP 8.3.0 以降、終了コードがキャッシュされた場合に &true; を返します。 + キャッシュは、この関数を後にコールした場合でも、 + 終了コードを失わないようにするために必要です。 @@ -118,6 +127,34 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + 返される配列に "cached" + エントリが含まれるようになりました。 + PHP 8.3.0 より前のバージョンでは、 + 最初にこの関数がコールされた場合にのみ、 + 正しい終了コードを返していました。 + "cached" エントリは、 + 終了コードがキャッシュされていることを示します。 + + + + + + + &reftitle.seealso; diff --git a/reference/exec/functions/proc-nice.xml b/reference/exec/functions/proc-nice.xml index c7701b0450..86d537bead 100644 --- a/reference/exec/functions/proc-nice.xml +++ b/reference/exec/functions/proc-nice.xml @@ -1,8 +1,8 @@ - + - + proc_nice 現在のプロセスの優先度を変更する @@ -12,13 +12,13 @@ &reftitle.description; boolproc_nice - intincrement + intpriority proc_nice は、現在のプロセスの優先度を - increment で指定された値に変更します。 - increment が正数の場合、 - 現在のプロセスの優先度をより低くし、increment + priority で指定された値に変更します。 + priority が正数の場合、 + 現在のプロセスの優先度をより低くし、priority が負数の場合は優先度が上がります。 @@ -32,7 +32,7 @@ - increment + priority 新しい優先度の値。この値はプラットフォームによっては異なるかもしれません。 @@ -43,7 +43,7 @@ Windows では、 - increment パラメータは次のような意味があります: + priority パラメータは次のような意味があります: @@ -57,32 +57,32 @@ 優先度高 - increment < -9 + priority < -9 通常より高い優先度 - increment < -4 + priority < -4 通常の優先度 - increment < 5 & - increment > -5 + priority < 5 & + priority > -5 通常より低い優先度 - increment > 5 + priority > 5 アイドルな優先度 - increment > 9 + priority > 9 @@ -104,24 +104,6 @@ - - &reftitle.examples; - - - <function>proc_nice</function> 関数を使い、プロセスの優先度を高に設定する - - -]]> - - - - - - &reftitle.changelog; @@ -146,6 +128,24 @@ proc_nice(-20); + + &reftitle.examples; + + + <function>proc_nice</function> 関数を使い、プロセスの優先度を高に設定する + + +]]> + + + + + + &reftitle.notes; @@ -162,12 +162,18 @@ proc_nice(-20); proc_nice 関数は、 PHP がたとえスレッドセーフを有効にしてコンパイルされていたとしても、 - 現在の プロセスの優先度を変更します。 + 現在の プロセス の優先度を変更します。 - + + &reftitle.seealso; + + pcntl_setpriority + + + - + - + proc_open @@ -12,14 +12,14 @@ &reftitle.description; - resourceproc_open - mixedcmd - arraydescriptorspec - arraypipes - stringcwd - arrayenv - arrayother_options - + resourcefalseproc_open + arraystringcommand + arraydescriptor_spec + arraypipes + stringnullcwd&null; + arraynullenv_vars&null; + arraynulloptions&null; + proc_openpopen と よく似ていますが、プログラムの実行をさらに細かく制御できる点で違います。 @@ -46,7 +46,7 @@ - cmd + command 実行するコマンドラインを &string; として渡します。 @@ -55,21 +55,21 @@ Windows では、 - other_optionsbypass_shell を &true; に設定しないと、 + optionsbypass_shell を &true; に設定しないと、 cmd.exe (実際は%ComSpec%) に - cmd の値を クォートしないまま + command の値を クォートしないまま (つまり、proc_open に渡されたそのままの値を) /c と一緒に渡してしまいます。 この振る舞いによって、cmd.exe が - cmd からクォートを削除してしまうため、 - (詳細は cmd.exe のドキュメントを参照してください) + command からクォートを削除してしまうため、 + (詳細は cmd.exe のドキュメントを参照ください) 予期しない、潜在的に危険とさえ言える結果になります。なぜなら、 cmd.exe のエラーメッセージには、 - 渡された cmd (の一部) が含まれる可能性があるからです(下の例を見てください)。 + 渡された command (の一部) が含まれる可能性があるからです(下の例を見てください)。 - PHP 7.4.0 以降、cmd にはコマンドの引数も含めた &array; を渡せるようになりました。 + PHP 7.4.0 以降、command にはコマンドの引数も含めた &array; を渡せるようになりました。 この場合、プロセスは直接(シェルを介さずに)オープンされ、PHP が必要な引数のエスケープを全て行います。 @@ -82,7 +82,7 @@ - descriptorspec + descriptor_spec 数値添字の配列で、ディスクリプタ番号をキーとし、PHP がその @@ -102,6 +102,8 @@ 書き込み側を渡すのなら w) および file (2 番目の要素はファイル名) です。 + w 以外に何を指定しても、 + r のように扱われるので注意して下さい。 実際のファイルディスクリプタ (オープンしたファイルやソケット、 @@ -142,7 +144,7 @@ - env + env_vars 実行するコマンドのための環境変数の配列。 @@ -152,7 +154,7 @@ - other_options + options その他の追加オプションを指定することが可能です。 @@ -197,6 +199,17 @@ + + &reftitle.errors; + + PHP 8.3.0 以降では、 + command + に配列を指定したのに、空でない要素を最低一つ含んでいない場合 + ValueError + をスローするようになりました。 + + + &reftitle.changelog; @@ -209,10 +222,19 @@ + + 8.3.0 + + command + に配列を指定したのに、空でない要素を最低一つ含んでいない場合 + ValueError + をスローするようになりました。 + + 7.4.4 - other_options パラメータに + options パラメータに オプション create_new_console が追加されました。 @@ -220,30 +242,16 @@ 7.4.0 proc_open 関数は、 - cmd に &array; を渡せるようになりました。 + command に &array; を渡せるようになりました。 7.4.0 - other_options パラメータに + options パラメータに オプション create_process_group が追加されました。 - - 7.0.0 - - other_options パラメータに - オプション blocking_pipes が追加されました。 - - - - 5.2.1 - - other_options パラメータに - オプション bypass_shell が追加されました。 - - @@ -254,7 +262,7 @@ &reftitle.examples; - A <function>proc_open</function> の例 + <function>proc_open</function> の例 この振る舞いを避けるには、 - cmd を追加のクォートで囲めば通常は十分です: + command を追加のクォートで囲めば通常は十分です: system passthru stream_select - バックティック演算子 + バッククォート演算子 - - + + proc_terminate @@ -63,31 +64,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.2.2 - - これより前のバージョンでは、 - 指定したプロセス resource を破棄していました。 - - - - - - - - &reftitle.seealso; diff --git a/reference/exec/functions/shell-exec.xml b/reference/exec/functions/shell-exec.xml index cec4ad23e1..6d388235d0 100644 --- a/reference/exec/functions/shell-exec.xml +++ b/reference/exec/functions/shell-exec.xml @@ -1,9 +1,9 @@ - + - + shell_exec シェルによりコマンドを実行し、文字列として出力全体を返す @@ -12,12 +12,12 @@ &reftitle.description; - stringshell_exec - stringcmd + stringfalsenullshell_exec + stringcommand この関数は バックティック演算子 + linkend="language.operators.execution">バッククォート演算子 と等価です。 @@ -34,7 +34,7 @@ - cmd + command 実行するコマンド @@ -48,8 +48,9 @@ &reftitle.returnvalues; - 実行されたコマンドからの出力を返します。 - エラーが発生した場合やコマンドが何も出力しなかった場合は &null; を返します。 + 実行されたコマンドからの出力を文字列で返します。 + パイプがオープンできなかった場合は &false; を返します。 + エラーが発生したり、コマンドが何も出力しなかった場合は &null; を返します。 @@ -60,6 +61,14 @@ + + &reftitle.errors; + + パイプがオープンできなかった場合は + E_WARNING レベルの警告が発生します。 + + + &reftitle.examples; @@ -77,15 +86,6 @@ echo "
$output
";
- - &reftitle.notes; - - - &sm.disabled; - - - - &reftitle.seealso; @@ -96,7 +96,6 @@ echo "
$output
";
- - - + + @@ -12,9 +12,9 @@ &reftitle.description; - stringsystem + stringfalsesystem stringcommand - intreturn_var + intresult_code&null; system は、指定した @@ -45,10 +45,10 @@ - return_var + result_code - 引数 return_var が存在する場合、 + 引数 result_code が存在する場合、 実行したコマンドの返すステータスがこの変数に書かれます。 @@ -95,8 +95,6 @@ echo ' &reftitle.notes; &warn.escapeshell; ¬e.exec-bg; - ¬e.exec-path; - &warn.sm.exec; @@ -108,12 +106,11 @@ echo ' popen escapeshellcmd pcntl_exec - バックティック演算子 + バッククォート演算子
- - + + プログラム実行&Functions; @@ -21,10 +22,8 @@ &reftitle.seealso; 以下の関数は、 - バックティック演算子 + バッククォート演算子 にも関係します。 - また、&safemode; おいては、 - safe_mode_exec_dir ディレクティブの使用を考慮する必要があります。 diff --git a/reference/exec/setup.xml b/reference/exec/setup.xml index 69a919f8bb..806ed7991f 100644 --- a/reference/exec/setup.xml +++ b/reference/exec/setup.xml @@ -1,32 +1,11 @@ - + &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- - - -
- &reftitle.install; - &no.install; -
- - - -
- &reftitle.runtime; - &no.config; -
- -
&reftitle.resources; diff --git a/reference/exif/constants.xml b/reference/exif/constants.xml index ba488b02db..b334f6bf78 100644 --- a/reference/exif/constants.xml +++ b/reference/exif/constants.xml @@ -1,6 +1,6 @@ - + &reftitle.constants; &extension.constants; @@ -8,8 +8,8 @@ - EXIF_USE_MBSTRING - (integer) + EXIF_USE_MBSTRING + (int) diff --git a/reference/exif/functions/exif-imagetype.xml b/reference/exif/functions/exif-imagetype.xml index bbd318b416..bc0426a423 100644 --- a/reference/exif/functions/exif-imagetype.xml +++ b/reference/exif/functions/exif-imagetype.xml @@ -1,6 +1,6 @@ - + @@ -10,7 +10,7 @@ &reftitle.description; - intexif_imagetype + intfalseexif_imagetype stringfilename @@ -44,55 +44,13 @@ &reftitle.returnvalues; 正しいサインが見つかった場合は適切な定数、それ以外の場合は &false; - を返します。返り値は getimagesize がインデックス + を返します。戻り値は getimagesize がインデックス 2 に対して返す値と同じですが、exif_imagetype のほうがずっと早く動作します。 - - - - 画像の形式を判別するために必要なだけのバイト数を読み込めない場合、 - exif_imagetypeE_NOTICE - を発行して &false; を返します。 - - - - - - &reftitle.changelog; - - - -
- - &Version; - &Description; - - - - - 7.1.0 - - WebP をサポートしました - - - - 5.3.0 - - アイコンをサポートしました。 - - - - - - - - - &reftitle.constants; 以下の定数が定義されており、exif_imagetype - の返り値を表しています。 + の戻り値を表しています。
Imagetype 定数 @@ -177,10 +135,53 @@ 18 IMAGETYPE_WEBP + + 19 + IMAGETYPE_AVIF +
+ + + + 画像の形式を判別するために必要なだけのバイト数を読み込めない場合、 + exif_imagetypeE_NOTICE + を発行して &false; を返します。 + + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 7.1.0 + + WebP をサポートしました + + + + 8.1.0 + + AVIF をサポートしました。 + + + + + + &reftitle.examples; @@ -209,7 +210,6 @@ if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
- - + @@ -12,11 +12,11 @@ &reftitle.description; - arrayexif_read_data - mixedstream - stringsections&null; - boolarrays&false; - boolthumbnail&false; + arrayfalseexif_read_data + resourcestringfile + stringnullrequired_sections&null; + boolas_arrays&false; + boolread_thumbnail&false; exif_read_data は、 @@ -62,18 +62,13 @@ xlink:href="&url.exifspec;">&url.exifspec;, 20 ページ)に基づいて EXIF データタグの検証も行います。 - - - Windows Me/XP は、カメラと接続した際に Exif ヘッダを書き換えることが可能です。 - - &reftitle.parameters; - stream + file 画像ファイルの位置。 @@ -84,11 +79,11 @@ - sections + required_sections 結果の配列を作成するために存在する必要のあるセクションのカンマ区切り - リスト。要求されたセクションがひとつも見つからなかった場合の返り値は + リスト。要求されたセクションがひとつも見つからなかった場合の戻り値は &false; となります。 @@ -145,19 +140,20 @@ - arrays + as_arrays 各セクションを配列とするかどうかを指定します。 + required_sectionsCOMPUTEDTHUMBNAIL および COMMENT - のセクションは常に配列となります。これは、これらのセクションに + は常に配列となります。これは、これらのセクションに 含まれる値の名前が他のセクションと衝突する可能性があるからです。 - thumbnail + read_thumbnail &true; を指定すると、サムネイル本体を読み込みます。それ以外の場合は @@ -176,6 +172,16 @@ exif_read_data は &false; を返します。 + + + &reftitle.errors; + + サポートされていないタグや、エラーが起きうる条件が指定された場合は、 + E_WARNING かつ/または E_NOTICE が発生します。 + 警告が発生しても、この関数は対応する情報を全て読み取ろうとします。 + + + &reftitle.changelog; @@ -188,75 +194,38 @@ + + 8.0.0 + + required_sections は、nullable になりました。 + + 7.2.0 - filename パラメータは - stream にリネームされ、 + file パラメータは ローカルファイルとストリームリソースを両方サポートするようになりました。 7.2.0 - 以下の EXIF フォーマットのサポートが追加されました: - - - - Samsung - - - - - DJI - - - - - Panasonic - - - - - Sony - - - - - Pentax - - - - - Minolta - - - - - Sigma/Foveon - - - - - AGFA - - - - - Kyocera - - - - - Ricoh - - - - - Epson - - - + + 以下の EXIF フォーマットのサポートが追加されました: + + Samsung + DJI + Panasonic + Sony + Pentax + Minolta + Sigma/Foveon + AGFA + Kyocera + Ricoh + Epson + + @@ -391,7 +360,7 @@ EXIF Headers: - この関数にストリームを渡すために stream を使った場合、 + この関数にストリームを渡すために file を使った場合、 ストリームはシーク可能でなければなりません。 ファイルポインタの位置は、関数から戻った後でも変化しないことに注意してください。 @@ -409,7 +378,6 @@ EXIF Headers: - - + + exif_tagname @@ -9,7 +10,7 @@ &reftitle.description; - stringexif_tagname + stringfalseexif_tagname intindex @@ -70,7 +71,6 @@ echo "257: ".exif_tagname(257).PHP_EOL; - - + @@ -10,11 +10,11 @@ &reftitle.description; - stringexif_thumbnail - mixedstream - intwidth - intheight - intimagetype + stringfalseexif_thumbnail + resourcestringfile + intwidth&null; + intheight&null; + intimage_type&null; exif_thumbnail は、 @@ -27,7 +27,7 @@ exif_thumbnail が画像を作成することはできないが、 - そのサイズだけはわかるという可能性があります。そのような場合、返り値は + そのサイズだけはわかるという可能性があります。そのような場合、戻り値は &false; となりますが width および height を設定されています。 @@ -37,7 +37,7 @@ - stream + file 読み込む画像ファイルの名前。サムネイルが埋め込まれています。 @@ -62,7 +62,7 @@ - imagetype + image_type 返されるサムネイルの画像タイプが格納されます。 @@ -81,29 +81,7 @@ &false; を返します。 - - &reftitle.examples; - - - <function>exif_thumbnail</function> の例 - - -]]> - - - - + &reftitle.changelog; @@ -119,8 +97,7 @@ if ($image!==false) { 7.2.0 - filename パラメータは - stream にリネームされ、 + file パラメータは ローカルファイルとストリームリソースを両方サポートするようになりました。 @@ -129,11 +106,36 @@ if ($image!==false) { + + + &reftitle.examples; + + + <function>exif_thumbnail</function> の例 + + +]]> + + + + + &reftitle.notes; - この関数にストリームを渡すために stream を使った場合、 + この関数にストリームを渡すために file を使った場合、 ストリームはシーク可能でなければなりません。 ファイルポインタの位置は、関数から戻った後でも変化しないことに注意してください。 @@ -149,7 +151,6 @@ if ($image!==false) { - - + read_exif_data - &Alias; exif_read_data + exif_read_data &Alias; + + &warn.deprecated.alias-7-2-0.removed-8-0-0; + + &reftitle.description; diff --git a/reference/exif/ini.xml b/reference/exif/ini.xml index e0ded0553d..eebe1f000f 100644 --- a/reference/exif/ini.xml +++ b/reference/exif/ini.xml @@ -1,6 +1,6 @@ - +
&reftitle.runtime; @@ -23,41 +23,41 @@ &Changelog; - + exif.encode_unicode "ISO-8859-15" - PHP_INI_ALL + INI_ALL exif.decode_unicode_motorola "UCS-2BE" - PHP_INI_ALL + INI_ALL exif.decode_unicode_intel "UCS-2LE" - PHP_INI_ALL + INI_ALL exif.encode_jis "" - PHP_INI_ALL + INI_ALL exif.decode_jis_motorola "JIS" - PHP_INI_ALL + INI_ALL exif.decode_jis_intel "JIS" - PHP_INI_ALL + INI_ALL diff --git a/reference/exif/setup.xml b/reference/exif/setup.xml index b33f2b7bf8..da98b3904a 100644 --- a/reference/exif/setup.xml +++ b/reference/exif/setup.xml @@ -1,6 +1,6 @@ - + @@ -17,11 +17,6 @@ exif モジュールを作成するために、追加の ライブラリは一切必要ありません。 - - Windows のみ: mbstring 拡張モジュールは常に有効でなければなりません。 - mbstring 拡張モジュールは、 - php.ini で EXIF より前にロードされなければなりません。 -
@@ -33,13 +28,6 @@ &reference.exif.ini; - -
- &reftitle.resources; - &no.resource; -
- - - + + Expect diff --git a/reference/expect/constants.xml b/reference/expect/constants.xml index 906ee165f1..a5f5ea0937 100644 --- a/reference/expect/constants.xml +++ b/reference/expect/constants.xml @@ -1,14 +1,14 @@ - + &reftitle.constants; &extension.constants; - + EXP_GLOB - (integer) + (int) @@ -16,10 +16,10 @@ - + EXP_EXACT - (integer) + (int) @@ -27,10 +27,10 @@ - + EXP_REGEXP - (integer) + (int) @@ -38,10 +38,10 @@ - + EXP_EOF - (integer) + (int) @@ -49,10 +49,10 @@ - + EXP_TIMEOUT - (integer) + (int) @@ -61,10 +61,10 @@ - + EXP_FULLBUFFER - (integer) + (int) diff --git a/reference/expect/functions/expect-expectl.xml b/reference/expect/functions/expect-expectl.xml index a8eef60f1b..35a2ddeaa4 100644 --- a/reference/expect/functions/expect-expectl.xml +++ b/reference/expect/functions/expect-expectl.xml @@ -1,6 +1,7 @@ - + + expect_expectl @@ -81,14 +82,14 @@ integer パターンの形式。 - EXP_GLOB、 - EXP_EXACT + EXP_GLOB、 + EXP_EXACT あるいは - EXP_REGEXP + EXP_REGEXP のいずれかひとつです。 no - EXP_GLOB + EXP_GLOB @@ -106,10 +107,10 @@ この関数の実行に失敗した場合は、 - EXP_EOF、 - EXP_TIMEOUT + EXP_EOF、 + EXP_TIMEOUT あるいは - EXP_FULLBUFFER + EXP_FULLBUFFER を返します。
@@ -126,7 +127,7 @@ - 0.2.1 + PECL expect 0.2.1 バージョン 0.2.1 より前では、match パラメータに返されるのはマッチした文字列であり、 @@ -169,7 +170,7 @@ while (true) { case EXP_EOF: break 2; // switch 文だけではなく while ループも抜けます default: - die "エラーが発生しました!"; + die("エラーが発生しました!"); } } diff --git a/reference/expect/functions/expect-popen.xml b/reference/expect/functions/expect-popen.xml index 0aafa738e9..81ab85f85a 100644 --- a/reference/expect/functions/expect-popen.xml +++ b/reference/expect/functions/expect-popen.xml @@ -1,6 +1,6 @@ - + expect_popen diff --git a/reference/expect/ini.xml b/reference/expect/ini.xml index be84cd56d9..aac0fa0258 100644 --- a/reference/expect/ini.xml +++ b/reference/expect/ini.xml @@ -1,6 +1,6 @@ - +
&reftitle.runtime; &extension.runtime; @@ -16,32 +16,32 @@ &Name; &Default; &Changeable; - 変更履歴 + &Changelog; - + expect.timeout "10" - PHP_INI_ALL + INI_ALL expect.loguser "1" - PHP_INI_ALL + INI_ALL expect.logfile "" - PHP_INI_ALL + INI_ALL expect.match_max "" - PHP_INI_ALL + INI_ALL @@ -57,7 +57,7 @@ expect.timeout - integer + int @@ -79,7 +79,7 @@ expect.loguser - boolean + bool @@ -113,7 +113,7 @@ expect.match_max - integer + int diff --git a/reference/fam/book.xml b/reference/fam/book.xml deleted file mode 100644 index cb0d14ee6e..0000000000 --- a/reference/fam/book.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - ファイル改変の監視 - FAM - - - - &reftitle.intro; - - FAM はファイルやディレクトリを監視し、変更点を調査を行うアプリケーションに - 通知します。FAM についての詳細な情報は - &url.fam; で得られます。 - - - PHP スクリプトは、この拡張モジュールにより提供される関数を用いて FAM に一連の - ファイルを指定することができます。 - - - FAM プロセスは、最初にアプリケーションから接続された時に開始され、 - 全ての接続がクローズされた時に終了します。 - - - - &pecl.moved-ver;5.1.0. - - - ¬e.no-windows.extension; - - - - &reference.fam.setup; - &reference.fam.constants; - &reference.fam.reference; - - - - - diff --git a/reference/fam/configure.xml b/reference/fam/configure.xml deleted file mode 100644 index b3f65e0021..0000000000 --- a/reference/fam/configure.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - -
- &reftitle.install; - - &pecl.info.dead; - &url.pecl.vcs;fam. - - - &pecl.moved-ver;5.1.0 - -
- - diff --git a/reference/fam/constants.xml b/reference/fam/constants.xml deleted file mode 100644 index ef9a40ca53..0000000000 --- a/reference/fam/constants.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - - &reftitle.constants; - &extension.constants; - - FAM イベント定数 - - - - 定数 - 説明 - - - - - - FAMChanged (integer) - - - ファイルあるいはディレクトリの、fstat(1) で取得できる値のうちの - 何かが変更されました。 - - - - - FAMDeleted (integer) - - ファイルあるいはディレクトリが削除あるいはリネームされました。 - - - - FAMStartExecuting (integer) - - 実行可能ファイルが実行されました。 - - - - FAMStopExecuting (integer) - - 実行可能ファイルの実行が終了しました。 - - - - FAMCreated (integer) - - ディレクトリ内にファイルが作成されました。 - - - - FAMMoved (integer) - - このイベントは決して発生しません。 - - - - FAMAcknowledge (integer) - - - fam_cancel_monitor に対する応答イベントです。 - - - - - FAMExists (integer) - - - ファイルやディレクトリの監視を要求するイベントです。 - ディレクトリが監視されている場合、ディレクトリおよびその中に - 含まれるすべてのファイルについてのイベントが発生します。 - - - - - FAMEndExist (integer) - - 最後の FAMEExists イベントの後に発生します。 - - - -
-
- - diff --git a/reference/fam/functions/fam-cancel-monitor.xml b/reference/fam/functions/fam-cancel-monitor.xml deleted file mode 100644 index aaa581a167..0000000000 --- a/reference/fam/functions/fam-cancel-monitor.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - fam_cancel_monitor - 監視を終了する - - - &reftitle.description; - - boolfam_cancel_monitor - resourcefam - resourcefam_monitor - - - リソースの監視を終了します。 - - - さらに FAMAcknowledge イベントが発生します。 - - - - &reftitle.parameters; - - - - fam - - - A resource representing a connection to the FAM service returned by - fam_open - - - - - fam_monitor - - - fam_monitor_XXX - 関数のいずれかが返すリソース。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - &reftitle.seealso; - - - fam_monitor_file - fam_monitor_directory - fam_monitor_collection - fam_suspend_monitor - - - - - - diff --git a/reference/fam/functions/fam-close.xml b/reference/fam/functions/fam-close.xml deleted file mode 100644 index e5fbdb9fd7..0000000000 --- a/reference/fam/functions/fam-close.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - fam_close - FAM 接続を閉じる - - - &reftitle.description; - - voidfam_close - resourcefam - - - FAM サービスへの接続をクローズします。 - - - - &reftitle.parameters; - - - - fam - - - fam_open が返す、 - FAM サービスへの接続を表すリソース。 - - - - - - - - &reftitle.returnvalues; - - &return.void; - - - - &reftitle.seealso; - - - fam_monitor_open - - - - - - diff --git a/reference/fam/functions/fam-monitor-collection.xml b/reference/fam/functions/fam-monitor-collection.xml deleted file mode 100644 index d7b2474778..0000000000 --- a/reference/fam/functions/fam-monitor-collection.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - fam_monitor_collection - 指定したディレクトリにあるファイルの変更を監視する - - - &reftitle.description; - - resourcefam_monitor_collection - resourcefam - stringdirname - intdepth - stringmask - - - ディレクトリ内のファイルの監視を要求します。 - - - ファイルの状態が変化したときに FAM イベントが発生します。 - 発生しうるイベントコードの詳細は、このセクションの - 定数 の欄にあります。 - - - - &reftitle.parameters; - - - - fam - - - fam_open が返す、 - FAM サービスへの接続を表すリソース。 - - - - - dirname - - - ファイルを監視するディレクトリへのパス。 - - - - - depth - - - このディレクトリから最大 depth - 階層まで掘り下げたディレクトリが検索対象となります。 - - - - - mask - - - シェルパターン mask - により、検索するファイル名を制限します。 - - - - - - - - &reftitle.returnvalues; - - モニタリングリソース、あるいはエラー時に &false; を返します。 - - - - &reftitle.seealso; - - - fam_monitor_file - fam_monitor_directory - fam_cancel_monitor - fam_suspend_monitor - fam_resume_monitor - - - - - - diff --git a/reference/fam/functions/fam-monitor-directory.xml b/reference/fam/functions/fam-monitor-directory.xml deleted file mode 100644 index 2b55ece6e4..0000000000 --- a/reference/fam/functions/fam-monitor-directory.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - fam_monitor_directory - ディレクトリの変更を監視する - - - &reftitle.description; - - resourcefam_monitor_directory - resourcefam - stringdirname - - - 指定したディレクトリおよびそれに - 含まれる全てのファイルを監視するよう指示します。 - - - 指定したディレクトリのステータス(すなわち、このディレクトリに関する - stat の結果)またはその内容 - (すなわち、このディレクトリに関する readdir の結果) - が変更される度に FAM イベントが生成されます。 - - - 発生しうるイベントコードの詳細は、このセクションの - 定数 の欄にあります。 - - - - &reftitle.parameters; - - - - fam - - - fam_open が返す、 - FAM サービスへの接続を表すリソース。 - - - - - dirname - - - 監視するディレクトリへのパス。 - - - - - - - - &reftitle.returnvalues; - - モニタリングリソース、あるいはエラー時に &false; を返します。 - - - - &reftitle.seealso; - - - fam_monitor_file - fam_monitor_collection - fam_cancel_monitor - fam_suspend_monitor - fam_resume_monitor - - - - - - diff --git a/reference/fam/functions/fam-monitor-file.xml b/reference/fam/functions/fam-monitor-file.xml deleted file mode 100644 index 611a2a971e..0000000000 --- a/reference/fam/functions/fam-monitor-file.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - fam_monitor_file - 通常のファイルの変更を監視する - - - &reftitle.description; - - resourcefam_monitor_file - resourcefam - stringfilename - - - 指定した 1 個のファイルの - 監視を指示します。このファイルのステータス(すなわち、このファイルに関する - 関数 stat の結果)が変化する度に FAM イベントが - 発生します。 - - - 発生しうるイベントコードの詳細は、このセクションの - 定数 の欄にあります。 - - - - &reftitle.parameters; - - - - fam - - - fam_open が返す、 - FAM サービスへの接続を表すリソース。 - - - - - filename - - - 監視するファイルへのパス。 - - - - - - - - &reftitle.returnvalues; - - モニタリングリソース、あるいはエラー時に &false; を返します。 - - - - &reftitle.seealso; - - - fam_monitor_directory - fam_monitor_collection - fam_cancel_monitor - fam_suspend_monitor - fam_resume_monitor - - - - - - diff --git a/reference/fam/functions/fam-next-event.xml b/reference/fam/functions/fam-next-event.xml deleted file mode 100644 index a59972f614..0000000000 --- a/reference/fam/functions/fam-next-event.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - fam_next_event - 次の待機中の FAM イベントを返す - - - &reftitle.description; - - arrayfam_next_event - resourcefam - - - 次の待機中の FAM イベントを返します。 - - - この関数は、fam_pending を用いてチェックできる - イベントが検出されるまでブロックします。 - - - - &reftitle.parameters; - - - - fam - - - fam_open が返す、 - FAM サービスへの接続を表すリソース。 - - - - - - - - &reftitle.returnvalues; - - FAM イベントコードを要素 - 'code' に、このイベントが適用されるファイルのパスを - 要素 'filename' に、 - オプションでホスト名を要素 'hostname' に - 含む配列を返します。 - - - 発生しうるイベントコードの詳細は、このセクションの - 定数 の欄にあります。 - - - - &reftitle.seealso; - - - fam_pending - - - - - - diff --git a/reference/fam/functions/fam-open.xml b/reference/fam/functions/fam-open.xml deleted file mode 100644 index ed142a2225..0000000000 --- a/reference/fam/functions/fam-open.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - fam_open - FAM デーモンへの接続をオープンする - - - &reftitle.description; - - resourcefam_open - stringappname - - - FAM サービスデーモンへの接続をオープンします。 - - - - &reftitle.parameters; - - - - appname - - - ログ記録用にアプリケーションを特定する文字列。 - - - - - - - - &reftitle.returnvalues; - - 成功した場合に FAM サービスへの接続を表すリソース、 - 失敗した場合に &false; を返します。 - - - - &reftitle.seealso; - - - fam_close - - - - - - diff --git a/reference/fam/functions/fam-pending.xml b/reference/fam/functions/fam-pending.xml deleted file mode 100644 index 538f2b2e9a..0000000000 --- a/reference/fam/functions/fam-pending.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - fam_pending - 待機中の FAM イベントの有無を調べる - - - &reftitle.description; - - intfam_pending - resourcefam - - - 待機中の FAM イベントを調べます。 - - - - &reftitle.parameters; - - - - fam - - - fam_open が返す、 - FAM サービスへの接続を表すリソース。 - - - - - - - - &reftitle.returnvalues; - - fam_next_event により取得可能な待機中のイベントが - ある場合にゼロ以外の値、ない場合にゼロを返します。 - - - - &reftitle.seealso; - - - fam_next_event - - - - - - diff --git a/reference/fam/functions/fam-resume-monitor.xml b/reference/fam/functions/fam-resume-monitor.xml deleted file mode 100644 index b104c1bbd7..0000000000 --- a/reference/fam/functions/fam-resume-monitor.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - fam_resume_monitor - 中断された監視処理を再開する - - - &reftitle.description; - - boolfam_resume_monitor - resourcefam - resourcefam_monitor - - - fam_suspend_monitor により中断された - 指定したリソースへの監視を再開します。 - - - - &reftitle.parameters; - - - - fam - - - fam_open が返す、 - FAM サービスへの接続を表すリソース。 - - - - - fam_monitor - - - fam_monitor_XXX - 関数のいずれかが返すリソース。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - &reftitle.seealso; - - - fam_suspend_monitor - - - - - - diff --git a/reference/fam/functions/fam-suspend-monitor.xml b/reference/fam/functions/fam-suspend-monitor.xml deleted file mode 100644 index 6c469ea399..0000000000 --- a/reference/fam/functions/fam-suspend-monitor.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - fam_suspend_monitor - 監視を一時的に中断する - - - &reftitle.description; - - boolfam_suspend_monitor - resourcefam - resourcefam_monitor - - - fam_suspend_monitor - は、リソースへの監視を一時的に中断します。 - - - 監視は、fam_resume_monitor により後で再開することができ、 - その際、全く新たに監視を指示する必要はありません。 - - - - &reftitle.parameters; - - - - fam - - - fam_open が返す、 - FAM サービスへの接続を表すリソース。 - - - - - fam_monitor - - - fam_monitor_XXX - 関数のいずれかが返すリソース。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - &reftitle.seealso; - - - fam_cancel_monitor - fam_resume_monitor - - - - - - diff --git a/reference/fam/reference.xml b/reference/fam/reference.xml deleted file mode 100644 index 7d35c825cf..0000000000 --- a/reference/fam/reference.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - FAM &Functions; - - &reference.fam.entities.functions; - - - diff --git a/reference/fam/setup.xml b/reference/fam/setup.xml deleted file mode 100644 index 4f114f78b9..0000000000 --- a/reference/fam/setup.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - &reftitle.setup; - - -
- &reftitle.required; - - この拡張モジュールは、SGI が開発した - FAM ライブラリの関数を使用しています。そのため、FAM ライブラリを - ダウンロードしてインストールする必要があります。 - -
- - - - &reference.fam.configure; - - - -
- &reftitle.runtime; - &no.config; -
- - - -
- &reftitle.resources; - - FAM モジュールでは二種類のリソース型を使用します。まず最初が - FAM サービスとの接続を表すリソースで、これは - fam_open が返します。二番目はモニタリングリソースで、これは - fam_monitor_XXX 関数が返します。 - -
- - -
- - - diff --git a/reference/fbsql/book.xml b/reference/fbsql/book.xml deleted file mode 100644 index 01a8b715df..0000000000 --- a/reference/fbsql/book.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - FrontBase - - - - &reftitle.intro; - - このモジュールの関数により、FrontBase データベースサーバーに - アクセスすることが可能になります。FrontBase に関する詳細については、&url.fbsql; で入手可能です。 - - - FrontBase に関するドキュメントは、&url.fbsql.docs; から入手可能です。 - - - - &pecl.moved-ver;5.3.0. - - - - - - &reference.fbsql.setup; - &reference.fbsql.constants; - &reference.fbsql.reference; - - - - - diff --git a/reference/fbsql/configure.xml b/reference/fbsql/configure.xml deleted file mode 100644 index 177ee45f50..0000000000 --- a/reference/fbsql/configure.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - -
- &reftitle.install; - - &pecl.moved-ver;5.3.0 - - - &pecl.info;. - - - これらの関数を使用するには、オプション - を使用し、fbsql - のサポートを有効にして PHP をコンパイルする必要があります。 - fbsql へのパスを指定せずにこのオプションを - 使用した場合、PHP は fbsql クライアントライブラリをそのプラットフォームの - デフォルトのインストール位置で探します。FrontBase を標準以外の - 場所にインストールしているユーザーは、必ず次のように fbsql へのパスを - 指定する必要があります。 - - これにより、PHP は、間違いなく FrontBase によりインストールされた - クライアントライブラリを探すことができるようになります。 - -
- - diff --git a/reference/fbsql/constants.xml b/reference/fbsql/constants.xml deleted file mode 100644 index 2a0ab9122c..0000000000 --- a/reference/fbsql/constants.xml +++ /dev/null @@ -1,239 +0,0 @@ - - - - - &reftitle.constants; - &extension.constants; - - - - FBSQL_ASSOC - (integer) - - - - - - - - - - FBSQL_NUM - (integer) - - - - - - - - - - FBSQL_BOTH - (integer) - - - - - - - - - - FBSQL_LOCK_DEFERRED - (integer) - - - - - - - - - - FBSQL_LOCK_OPTIMISTIC - (integer) - - - - - - - - - - FBSQL_LOCK_PESSIMISTIC - (integer) - - - - - - - - - - FBSQL_ISO_READ_UNCOMMITTED - (integer) - - - - - - - - - - FBSQL_ISO_READ_COMMITTED - (integer) - - - - - - - - - - FBSQL_ISO_REPEATABLE_READ - (integer) - - - - - - - - - - FBSQL_ISO_SERIALIZABLE - (integer) - - - - - - - - - - FBSQL_ISO_VERSIONED - (integer) - - - - - - - - - - FBSQL_UNKNOWN - (integer) - - - - - - - - - - FBSQL_STOPPED - (integer) - - - - - - - - - - FBSQL_STARTING - (integer) - - - - - - - - - - FBSQL_RUNNING - (integer) - - - - - - - - - - FBSQL_STOPPING - (integer) - - - - - - - - - - FBSQL_NOEXEC - (integer) - - - - - - - - - - FBSQL_LOB_DIRECT - (integer) - - - - - - - - - - FBSQL_LOB_HANDLE - (integer) - - - - - - - - - - - diff --git a/reference/fbsql/functions/fbsql-affected-rows.xml b/reference/fbsql/functions/fbsql-affected-rows.xml deleted file mode 100644 index 4ed827b252..0000000000 --- a/reference/fbsql/functions/fbsql-affected-rows.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - fbsql_affected_rows - 直近の FrontBase 操作により変更されたレコードの数を得る - - - - &reftitle.description; - - intfbsql_affected_rows - resourcelink_identifier - - - fbsql_affected_rows は、 - link_identifier が指す接続において - 直近の INSERT、UPDATE、DELETE クエリで変更されたレコードの数を返します。 - - - - トランザクションを使用している場合、コミットの後ではなくINSERT、 - UPDATE、DELETE クエリの後で - fbsql_affected_rows をコールする必要があります。 - - - - 直近のクエリが WHERE 句のない DELETE クエリの場合、全てのレコードが - テーブルから削除されますが、この関数はゼロを返します。 - - - - UPDATE を使用する場合、FrontBase は新しい値が古い値と同じ場合には - カラムを更新しません。このため、 - fbsql_affected_rows は、実際にはマッチした - 行の数と一致しない可能性があり、クエリにより実際に変更された行の - 数だけとなります。 - - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - 直近のクエリが失敗した場合、この関数は -1 を返します。 - - - - - &reftitle.seealso; - - - fbsql_num_rows - - - - - - diff --git a/reference/fbsql/functions/fbsql-autocommit.xml b/reference/fbsql/functions/fbsql-autocommit.xml deleted file mode 100644 index e449c93293..0000000000 --- a/reference/fbsql/functions/fbsql-autocommit.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - fbsql_autocommit - autocommit を有効または無効にする - - - - &reftitle.description; - - boolfbsql_autocommit - resourcelink_identifier - boolOnOff - - - autocommit の状態を返します。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - OnOff - - - このオプションのパラメータを指定すると、 - オートコミットステータスは変更されます。 - - - OnOff を &true; に設定すると、 - エラーがない場合に各命令が自動的にコミットされます。 - - - OnOff を &false; に設定すると、ユーザーは - fbsql_commit あるいは - fbsql_rollback - によりコミットまたはロールバックを行う必要があります。 - - - - - - - - - &reftitle.returnvalues; - - 現在の autocommit の状態を boolean 値で返します。 - - - - - &reftitle.seealso; - - - fbsql_commit - fbsql_rollback - - - - - - - diff --git a/reference/fbsql/functions/fbsql-blob-size.xml b/reference/fbsql/functions/fbsql-blob-size.xml deleted file mode 100644 index 0d5acfdd3b..0000000000 --- a/reference/fbsql/functions/fbsql-blob-size.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - fbsql_blob_size - BLOB の大きさを取得する - - - - &reftitle.description; - - intfbsql_blob_size - stringblob_handle - resourcelink_identifier - - - 指定した BLOB の大きさを返します。 - - - - - &reftitle.parameters; - - - - blob_handle - - - fbsql_create_blob が返す BLOB ハンドル。 - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - BLOB の大きさを整数値で返します。エラー時には &false; を返します。 - - - - - &reftitle.seealso; - - - fbsql_clob_size - - - - - - - diff --git a/reference/fbsql/functions/fbsql-change-user.xml b/reference/fbsql/functions/fbsql-change-user.xml deleted file mode 100644 index a7ea344e89..0000000000 --- a/reference/fbsql/functions/fbsql-change-user.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - fbsql_change_user - アクティブな接続にログインしているユーザーを変更する - - - - &reftitle.description; - - boolfbsql_change_user - stringuser - stringpassword - stringdatabase - resourcelink_identifier - - - fbsql_change_user は、指定した接続にログインするユーザーを変更します。 - ユーザーおよびパスワードの認証に失敗した場合は、現在の接続ユーザーがアクティブなままとなります。 - - - - - &reftitle.parameters; - - - - user - - - 新しいユーザー名。 - - - - - password - - - 新しいユーザーのパスワード。 - - - - - database - - - 指定した場合、これがユーザー変更後のデフォルトまたはカレントデータベースとなります。 - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - diff --git a/reference/fbsql/functions/fbsql-clob-size.xml b/reference/fbsql/functions/fbsql-clob-size.xml deleted file mode 100644 index 1fb6b91da5..0000000000 --- a/reference/fbsql/functions/fbsql-clob-size.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - fbsql_clob_size - CLOB の大きさを取得する - - - - &reftitle.description; - - intfbsql_clob_size - stringclob_handle - resourcelink_identifier - - - 指定した CLOB の大きさを取得します。 - - - - - &reftitle.parameters; - - - - clob_handle - - - fbsql_create_clob が返す CLOB ハンドル。 - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - CLOB の大きさを整数値で返します。エラー時には &false; を返します。 - - - - - &reftitle.seealso; - - - fbsql_blob_size - - - - - - - diff --git a/reference/fbsql/functions/fbsql-close.xml b/reference/fbsql/functions/fbsql-close.xml deleted file mode 100644 index a28e133e74..0000000000 --- a/reference/fbsql/functions/fbsql-close.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - fbsql_close - FrontBase 接続を閉じる - - - - &reftitle.description; - - boolfbsql_close - resourcelink_identifier - - - 指定したリンク ID に関連する - FrontBase サーバーへの接続を閉じます。 - - - 持続的でないオープンされたリンクは、スクリプト実行終了時に自動的に - クローズされるため、fbsql_close は通常は不要です。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>fbsql_close</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - fbsql_connect - fbsql_pconnect - - - - - - - diff --git a/reference/fbsql/functions/fbsql-commit.xml b/reference/fbsql/functions/fbsql-commit.xml deleted file mode 100644 index 2d97d91b27..0000000000 --- a/reference/fbsql/functions/fbsql-commit.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - fbsql_commit - データベースへのトランザクションをコミットする - - - - &reftitle.description; - - boolfbsql_commit - resourcelink_identifier - - - ディスクへの insert、update、 - delete を全て書き込んでトランザクションを終了し、トランザクションにより - 保持された全ての行及びテーブルのロックを解除します。このコマンドは、 - autocommit が false に設定されている場合のみ必要です。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.seealso; - - - fbsql_autocommit - fbsql_rollback - - - - - - - diff --git a/reference/fbsql/functions/fbsql-connect.xml b/reference/fbsql/functions/fbsql-connect.xml deleted file mode 100644 index b4731376bd..0000000000 --- a/reference/fbsql/functions/fbsql-connect.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - fbsql_connect - FrontBase サーバーへの接続をオープンする - - - - &reftitle.description; - - resourcefbsql_connect - stringhostnameini_get("fbsql.default_host") - stringusernameini_get("fbsql.default_user") - stringpasswordini_get("fbsql.default_password") - - - fbsql_connect は、FrontBase サーバーへの接続を確立します。 - - - 同じ引数で fbsql_connect が 2 度目に - コールされた場合、新規のリンクは確立されず、替わりに既に - オープンされているリンク ID が返されます。 - - - fbsql_close をコールすることにより事前に - 明示的にクローズされていない限り、サーバーへのリンクはスクリプトの - 実行終了時にクローズされます。 - - - - - &reftitle.parameters; - - - - hostname - - - サーバーのホスト名。 - - - - - username - - - 接続用のユーザー名。 - - - - - password - - - 接続用のパスワード。 - - - - - - - - - &reftitle.returnvalues; - - 成功時に正の FrontBase リンク ID、エラー時に &false; を返します。 - - - - - &reftitle.examples; - - - <function>fbsql_connect</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - fbsql_pconnect - fbsql_close - - - - - - - diff --git a/reference/fbsql/functions/fbsql-create-blob.xml b/reference/fbsql/functions/fbsql-create-blob.xml deleted file mode 100644 index 9f2933a9fb..0000000000 --- a/reference/fbsql/functions/fbsql-create-blob.xml +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - fbsql_create_blob - BLOB を作成する - - - - &reftitle.description; - - stringfbsql_create_blob - stringblob_data - resourcelink_identifier - - - 指定したデータから BLOB を作成します。 - - - - - &reftitle.parameters; - - - - blob_data - - - BLOB データ。 - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - 新しく作成した BLOB のリソースハンドルを返します。 - これを insert や update コマンドで使用すると、 - データベースに BLOB を保存することができます。 - - - - - &reftitle.examples; - - - <function>fbsql_create_blob</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - fbsql_create_clob - fbsql_read_blob - fbsql_read_clob - fbsql_set_lob_mode - - - - - - - diff --git a/reference/fbsql/functions/fbsql-create-clob.xml b/reference/fbsql/functions/fbsql-create-clob.xml deleted file mode 100644 index 9ceccb81a6..0000000000 --- a/reference/fbsql/functions/fbsql-create-clob.xml +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - fbsql_create_clob - CLOB を作成する - - - - &reftitle.description; - - stringfbsql_create_clob - stringclob_data - resourcelink_identifier - - - 指定したデータから CLOB を作成します。 - - - - - &reftitle.parameters; - - - - clob_data - - - CLOB データ。 - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - 新しく作成した CLOB のリソースハンドルを返します。 - これを insert や update コマンドで使用すると、 - データベースに CLOB を保存することができます。 - - - - - &reftitle.examples; - - - <function>fbsql_create_clob</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - fbsql_create_blob - fbsql_read_blob - fbsql_read_clob - fbsql_set_lob_mode - - - - - - - diff --git a/reference/fbsql/functions/fbsql-create-db.xml b/reference/fbsql/functions/fbsql-create-db.xml deleted file mode 100644 index 1f99631d7b..0000000000 --- a/reference/fbsql/functions/fbsql-create-db.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - fbsql_create_db - FrontBase データベースを作成する - - - - &reftitle.description; - - boolfbsql_create_db - stringdatabase_name - resourcelink_identifier - stringdatabase_options - - - 指定したサーバー上で新しいデータベースの作成を試みます。 - - - - - &reftitle.parameters; - - - - database_name - - - データベース名を表す文字列。 - - - - &fbsql.link-identifier.description; - - database_options - - - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>fbsql_create_db</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - fbsql_drop_db - - - - - - diff --git a/reference/fbsql/functions/fbsql-data-seek.xml b/reference/fbsql/functions/fbsql-data-seek.xml deleted file mode 100644 index 1f35fd2256..0000000000 --- a/reference/fbsql/functions/fbsql-data-seek.xml +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - fbsql_data_seek - 内部結果ポインタを移動する - - - - &reftitle.description; - - boolfbsql_data_seek - resourceresult - introw_number - - - 指定した結果 ID が指す - FrontBase 結果の内部行ポインタを指定した行番号に移動します。 - - - これ以降に fbsql_fetch_row をコールすると、 - その行が返されます。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - row_number - - - 行番号。0 からはじまります。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.examples; - - - <function>fbsql_data_seek</function> の例 - -=0; $i--) { - if (!fbsql_data_seek($result, $i)) { - printf("行 %d\ に移動できませんn", $i); - continue; - } - - if (!($row = fbsql_fetch_object($result))) - continue; - - echo $row->last_name . $row->first_name . "
\n"; -} - -fbsql_free_result($result); -?> -]]> -
-
-
-
- -
- - diff --git a/reference/fbsql/functions/fbsql-database-password.xml b/reference/fbsql/functions/fbsql-database-password.xml deleted file mode 100644 index 068cfc1d52..0000000000 --- a/reference/fbsql/functions/fbsql-database-password.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - fbsql_database_password - FrontBase データベースのパスワードを設定または取得する - - - - &reftitle.description; - - stringfbsql_database_password - resourcelink_identifier - stringdatabase_password - - - 現在の接続で - 使用されているデータベースのパスワードを設定または取得します。 - データベースがパスワードで保護されている場合は、 - fbsql_select_db の前にこの関数をコールする必要があります。 - - - リンクがオープンされていない場合、この関数は fbsql_connect - がコールされた場合と同様にリンクを確立し、使用します。 - - - この関数はデータベース内のデータベースパスワードを変更しませんし、 - またデータベースのデータベースパスワードを取得することもしません。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - database_password - - - データベースのパスワードを表す文字列。 - 指定したリンク ID が指すサーバーのデータベースパスワードを設定します。 - - - - - - - - - &reftitle.returnvalues; - - リンク ID により表されるデータベースのデータベースパスワードを返します。 - - - - - &reftitle.examples; - - - <function>fbsql_create_clob</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - fbsql_connect - fbsql_pconnect - fbsql_select_db - - - - - - - diff --git a/reference/fbsql/functions/fbsql-database.xml b/reference/fbsql/functions/fbsql-database.xml deleted file mode 100644 index 427f941361..0000000000 --- a/reference/fbsql/functions/fbsql-database.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - fbsql_database - 接続で使用するデータベース名を取得あるいは設定する - - - - &reftitle.description; - - stringfbsql_database - resourcelink_identifier - stringdatabase - - - 接続で使用するデータベース名を取得あるいは設定します。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - database - - - データベース名。指定すると、接続で使用するデフォルトのデータベースが - database に変わります。 - - - - - - - - - &reftitle.returnvalues; - - この接続で使用するデータベースの名前を返します。 - - - - - diff --git a/reference/fbsql/functions/fbsql-db-query.xml b/reference/fbsql/functions/fbsql-db-query.xml deleted file mode 100644 index 6c28200341..0000000000 --- a/reference/fbsql/functions/fbsql-db-query.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - fbsql_db_query - FrontBase クエリを送信する - - - - &reftitle.description; - - resourcefbsql_db_query - stringdatabase - stringquery - resourcelink_identifier - - - データベースを選択し、そこでクエリを実行します。 - - - - - &reftitle.parameters; - - - - database - - - 選択したデータベース。 - - - - - query - - - 実行する SQL クエリ。 - - - - クエリ文字列の最後には、セミコロンをつけなければなりません。 - - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - クエリ結果への正の FrontBase 結果 ID、またはエラー時には &false; を返します。 - - - - - &reftitle.seealso; - - - fbsql_query - fbsql_connect - - - - - - diff --git a/reference/fbsql/functions/fbsql-db-status.xml b/reference/fbsql/functions/fbsql-db-status.xml deleted file mode 100644 index d68f4823d2..0000000000 --- a/reference/fbsql/functions/fbsql-db-status.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - fbsql_db_status - 指定したデータベースの状態を取得する - - - - &reftitle.description; - - intfbsql_db_status - stringdatabase_name - resourcelink_identifier - - - 指定したデータベースの現在の状態を取得します。 - - - - - &reftitle.parameters; - - - - database_name - - - データベース名。 - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - 現在の状態を表す整数値を返します。これは、以下の定数のいずれかです。 - - - - &false; - host の exec ハンドラが無効です。このエラーは、 - link_identifier - がポート番号を用いてデータベースへ直接接続する場合に発生します。 - FBExec はサーバーで利用可能ですが、接続が行われていません。 - - - - - FBSQL_UNKNOWN - 状態は不明です。 - - - - - FBSQL_STOPPED - - FBSQL_STOPPED - データベースは実行されていません。 - データベースを開始するには、fbsql_start_db - を使用してください。 - - - - - FBSQL_STARTING - データベースは起動中です。 - - - - - FBSQL_RUNNING - - データベースは実行中で、SQL 処理を実行可能です。 - - - - - FBSQL_STOPPING - データベースは停止中です。 - - - - - FBSQL_NOEXEC - - FBExec がサーバーで実行されておらず、 - データベースの状態を取得することはできません。 - - - - - - - - &reftitle.seealso; - - - fbsql_start_db - fbsql_stop_db - - - - - - - diff --git a/reference/fbsql/functions/fbsql-drop-db.xml b/reference/fbsql/functions/fbsql-drop-db.xml deleted file mode 100644 index 09c40f91b3..0000000000 --- a/reference/fbsql/functions/fbsql-drop-db.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - fbsql_drop_db - FrontBase データベースを破棄(削除)する - - - - &reftitle.description; - - boolfbsql_drop_db - stringdatabase_name - resourcelink_identifier - - - fbsql_drop_db は、指定したリンク ID が指す - サーバーからデータベース全体を破棄(削除)します。 - - - - - &reftitle.parameters; - - - - database_name - - - データベース名を表す文字列。 - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.seealso; - - - fbsql_create_db - - - - - - - diff --git a/reference/fbsql/functions/fbsql-errno.xml b/reference/fbsql/functions/fbsql-errno.xml deleted file mode 100644 index 4fe17c7c3b..0000000000 --- a/reference/fbsql/functions/fbsql-errno.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - fbsql_errno - 前の FrontBase 操作によるエラーメッセージの数値を返す - - - - &reftitle.description; - - intfbsql_errno - resourcelink_identifier - - - 直近の FrontBase 操作からのエラーメッセージを表す数値を返します。 - - - fbsql データベースのバックエンドから返されるエラーは、警告を発生しません。 - その代わりに、fbsql_errno を使用してエラーコードを - 取得します。この関数は、直近に実行した fbsql 関数 - (fbsql_error および fbsql_errno - は除く) のエラーコードのみを返すことに注意しましょう。 - もしこれを使用するつもりなら、他の fbsql 関数をコールする前に値を調べる必要があります。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - 直近の fbsql 関数のエラー番号、あるいはエラーが発生しなかった場合に - 0 (ゼロ) を返します。 - - - - - &reftitle.examples; - - - <function>fbsql_errno</function> の例 - -"; -fbsql_select_db("nonexistentdb"); -echo fbsql_errno() . ": " . fbsql_error() . "
"; -$conn = fbsql_query("SELECT * FROM nonexistenttable;"); -echo fbsql_errno() . ": " . fbsql_error() . "
"; -?> -]]> -
-
-
-
- - - &reftitle.seealso; - - - fbsql_error - fbsql_warnings - - - - -
- - diff --git a/reference/fbsql/functions/fbsql-error.xml b/reference/fbsql/functions/fbsql-error.xml deleted file mode 100644 index 02151ad736..0000000000 --- a/reference/fbsql/functions/fbsql-error.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - fbsql_error - 前の FrontBase 操作によるエラーメッセージの文字列を返す - - - - &reftitle.description; - - stringfbsql_error - resourcelink_identifier - - - 直近の FrontBase 操作のエラー文字列を返します。 - - - fbsql データベースのバックエンドから返されるエラーは、警告を発生しません。 - その代わりに、fbsql_error を使用してエラー文字列を - 取得します。この関数は、直近に実行した fbsql 関数 - (fbsql_error および fbsql_errno - は除く)のエラーコードのみを返すことに注意しましょう。もしこれを使用 - するつもりなら、他の fbsql 関数をコールする前に値を調べる必要があります。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - 直近の fbsql 関数のエラー文字列を返します。エラーが発生していない場合は - '' (空の文字列) を返します。 - - - - - &reftitle.examples; - - - <function>fbsql_error</function> の例 - -"; -fbsql_select_db("nonexistentdb"); -echo fbsql_errno() . ": " . fbsql_error() . "
"; -$conn = fbsql_query("SELECT * FROM nonexistenttable;"); -echo fbsql_errno() . ": " . fbsql_error() . "
"; -?> -]]> -
-
-
-
- - - &reftitle.seealso; - - - fbsql_errno - fbsql_warnings - - - - -
- - diff --git a/reference/fbsql/functions/fbsql-fetch-array.xml b/reference/fbsql/functions/fbsql-fetch-array.xml deleted file mode 100644 index 273cf5e355..0000000000 --- a/reference/fbsql/functions/fbsql-fetch-array.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - fbsql_fetch_array - 連想配列、数値配列、またはその両方として結果レコードを取得する - - - - &reftitle.description; - - arrayfbsql_fetch_array - resourceresult - intresult_type - - - fbsql_fetch_array は - fbsql_fetch_row と - fbsql_fetch_assoc を組み合わせたものです。 - - - 注意してほしいのは、 - fbsql_fetch_array は - fbsql_fetch_row と比べてそれほど遅くはないのに - その追加機能がとても優れているということです。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - result_type - - - FBSQL_ASSOCFBSQL_NUM あるいは - FBSQL_BOTH のいずれかの定数値。 - - - FBSQL_BOTH を使用すると、 - 数値添字の結果配列にデータを格納するだけでなく、フィールド名を - キーとする連想配列にもデータを格納します。 - - - - - - - - - &reftitle.returnvalues; - - 取得した行に対応する配列を返します。行がもうない場合には - &false; を返します。 - - - 2 つ以上のカラムが同じ名前を持っている場合、最後にあらわれたカラムが - 優先されます。他のカラムにアクセスするには、カラムの数値インデックスを - 使用するか、カラムに別名をつける必要があります。 - - - - - - - - - - &reftitle.examples; - - - <function>fbsql_fetch_array</function> の例 - -\n"; - echo "user_id: " . $row[0] . "
\n"; - echo "fullname: " . $row["fullname"] . "
\n"; - echo "fullname: " . $row[1] . "
\n"; -} -fbsql_free_result($result); -?> -]]> -
-
-
-
- - - &reftitle.seealso; - - - fbsql_fetch_row - fbsql_fetch_assoc - fbsql_fetch_object - - - - -
- - diff --git a/reference/fbsql/functions/fbsql-fetch-assoc.xml b/reference/fbsql/functions/fbsql-fetch-assoc.xml deleted file mode 100644 index 31e6f63d7c..0000000000 --- a/reference/fbsql/functions/fbsql-fetch-assoc.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - fbsql_fetch_assoc - 連想配列として結果レコードを取得する - - - - &reftitle.description; - - arrayfbsql_fetch_assoc - resourceresult - - - fbsql_fetch_assoc は、 - fbsql_fetch_array のオプションの第 2 引数に - FBSQL_ASSOC を指定してコールするのと等価です。この関数は - 連想配列のみを返します。 - - - fbsql_fetch_array - も、当初はこのように動作していました。もし連想配列だけでなく - 数値添字の配列も必要な場合は - fbsql_fetch_array を使用してください。 - - - 注意してほしいのは、 - fbsql_fetch_assoc は - fbsql_fetch_row と比べてそれほど遅くはないのに - その追加機能がとても優れているということです。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - - - - - &reftitle.returnvalues; - - 取得した行に対応する連想配列を返します。行がもうない場合には - &false; を返します。 - - - 2 つ以上のカラムが同じ名前を持っている場合、最後にあらわれたカラムが - 優先されます。他のカラムにアクセスするには、 - fbsql_fetch_array を使用して数値添字の配列を - 取得する必要があります。 - - - - - &reftitle.examples; - - - <function>fbsql_fetch_assoc</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - fbsql_fetch_row - fbsql_fetch_array - fbsql_fetch_object - - - - - - - diff --git a/reference/fbsql/functions/fbsql-fetch-field.xml b/reference/fbsql/functions/fbsql-fetch-field.xml deleted file mode 100644 index 71555d6aef..0000000000 --- a/reference/fbsql/functions/fbsql-fetch-field.xml +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - fbsql_fetch_field - 結果からカラム情報を得て、オブジェクトとして返す - - - - &reftitle.description; - - objectfbsql_fetch_field - resourceresult - intfield_offset - - - クエリ結果のフィールドについての情報を取得するために使用されます。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - field_offset - - - フィールドの数値オフセット。フィールドのインデックスは 0 からはじまります。 - 省略した場合は、まだ - fbsql_fetch_field で取得されていない - フィールドのうちで最小のものが取得されます。 - - - - - - - - - &reftitle.returnvalues; - - フィールド情報を含むオブジェクト、あるいはエラー時に &false; を返します。 - - - オブジェクトのプロパティは以下のとおりです。 - - - - name - カラム名。 - - - - - table - カラムが属するテーブルの名前。 - - - - - max_length - カラムの最大長。 - - - - - not_null - カラムが &null; にならない場合に 1。 - - - - - type - カラムの型。 - - - - - - - - &reftitle.examples; - - - <function>fbsql_fetch_field</function> の例 - -\n"; - $meta = fbsql_fetch_field($result); - if (!$meta) { - echo "使用可能な情報がありません
\n"; - } - echo "
-max_length:   $meta->max_length
-name:         $meta->name
-not_null:     $meta->not_null
-table:        $meta->table
-type:         $meta->type
-
"; - $i++; -} -fbsql_free_result($result); -?> -]]> -
-
-
-
- - - &reftitle.seealso; - - - fbsql_field_seek - - - -
- - diff --git a/reference/fbsql/functions/fbsql-fetch-lengths.xml b/reference/fbsql/functions/fbsql-fetch-lengths.xml deleted file mode 100644 index 35ddb31d61..0000000000 --- a/reference/fbsql/functions/fbsql-fetch-lengths.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - fbsql_fetch_lengths - 結果の各出力の長さを得る - - - - &reftitle.description; - - arrayfbsql_fetch_lengths - resourceresult - - - fbsql_fetch_row、 - fbsql_fetch_array および - fbsql_fetch_object によって返された直近の行について - 各カラムの長さを格納した配列を返します。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - - - - - &reftitle.returnvalues; - - オフセット 0 から始まる配列を返します。各要素は、 - fbsql_fetch_row で取得した行の各フィールドの長さを表します。 - エラー時には &false; を返します。 - - - - - &reftitle.seealso; - - - fbsql_fetch_row - - - - - - diff --git a/reference/fbsql/functions/fbsql-fetch-object.xml b/reference/fbsql/functions/fbsql-fetch-object.xml deleted file mode 100644 index 0edad3efc0..0000000000 --- a/reference/fbsql/functions/fbsql-fetch-object.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - fbsql_fetch_object - オブジェクトとして結果レコードを取得する - - - - &reftitle.description; - - objectfbsql_fetch_object - resourceresult - - - fbsql_fetch_object は - fbsql_fetch_array と似ていますが 1 点だけ違いが - あります。それは、返されるのが配列ではなくオブジェクトであるという点です。 - つまり、データへのアクセスはフィールド名によってのみ可能で、 - そのオフセットではアクセスできない(数値はプロパティ名として使用できません) - ということです。 - - - 速度面では、この関数は fbsql_fetch_array - とまったく同等で、fbsql_fetch_row と比べても - ほぼ同じです (その差はごくわずかです)。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - - - - - &reftitle.returnvalues; - - 取得した行に対応するプロパティをもつオブジェクトを返します。 - 行がもうない場合には &false; を返します。 - - - - - &reftitle.examples; - - - <function>fbsql_fetch_object</function> の例 - -user_id; - echo $row->fullname; -} -fbsql_free_result($result); -?> -]]> - - - - - - - &reftitle.seealso; - - - fbsql_fetch_array - fbsql_fetch_row - fbsql_fetch_assoc - - - - - - - diff --git a/reference/fbsql/functions/fbsql-fetch-row.xml b/reference/fbsql/functions/fbsql-fetch-row.xml deleted file mode 100644 index 5c769b3eeb..0000000000 --- a/reference/fbsql/functions/fbsql-fetch-row.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - fbsql_fetch_row - 数値配列として結果レコードを得る - - - - &reftitle.description; - - arrayfbsql_fetch_row - resourceresult - - - fbsql_fetch_row は、指定した結果 ID に - 関連付けられた結果から、1 行分のデータを取得します。 - - - fbsql_fetch_row を続けてコールすると、 - 結果セットの次の行を返します。行がもうない場合には &false; - を返します。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - - - - - &reftitle.returnvalues; - - 取得した行は配列として返されます。各カラムは、配列の 0 からはじまる - オフセットに格納されます。行がもうない場合には &false; を返します。 - - - - - &reftitle.seealso; - - - fbsql_fetch_array - fbsql_fetch_assoc - fbsql_fetch_object - fbsql_data_seek - fbsql_fetch_lengths - fbsql_result - - - - - - - diff --git a/reference/fbsql/functions/fbsql-field-flags.xml b/reference/fbsql/functions/fbsql-field-flags.xml deleted file mode 100644 index 087a500e08..0000000000 --- a/reference/fbsql/functions/fbsql-field-flags.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - fbsql_field_flags - クエリ結果において指定したフィールドに関するフラグを得る - - - - &reftitle.description; - - stringfbsql_field_flags - resourceresult - intfield_offset - - - 結果の指定したフィールドに関連付けられたフラグを取得します。 - - - - - &reftitle.parameters; - - - - result - - - fbsql_list_fields が返す結果ポインタ。 - - - - - field_offset - - - フィールドの数値オフセット。フィールドのインデックスは 0 からはじまります。 - - - - - - - - - &reftitle.returnvalues; - - 指定したフィールドの - フィールドフラグを返します。フラグは、単語ごとに空白 1 文字で - 区切られた形式で報告されます。そのため、explode - を使用して返り値を分割することが可能です。 - - - - - diff --git a/reference/fbsql/functions/fbsql-field-len.xml b/reference/fbsql/functions/fbsql-field-len.xml deleted file mode 100644 index e89691a793..0000000000 --- a/reference/fbsql/functions/fbsql-field-len.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - fbsql_field_len - 指定したフィールドの長さを返す - - - - &reftitle.description; - - intfbsql_field_len - resourceresult - intfield_offset - - - 指定したフィールドの長さを返します。 - - - - - &reftitle.parameters; - - - - result - - - fbsql_list_fields が返す結果ポインタ。 - - - - - field_offset - - - フィールドの数値オフセット。フィールドのインデックスは 0 からはじまります。 - - - - - - - - - &reftitle.returnvalues; - - 指定したフィールドの長さを返します。 - - - - - diff --git a/reference/fbsql/functions/fbsql-field-name.xml b/reference/fbsql/functions/fbsql-field-name.xml deleted file mode 100644 index cfe7682cd1..0000000000 --- a/reference/fbsql/functions/fbsql-field-name.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - fbsql_field_name - 結果の指定したフィールドの名前を得る - - - - &reftitle.description; - - stringfbsql_field_name - resourceresult - intfield_index - - - 指定したフィールドインデックスの名前を返します。 - - - - - &reftitle.parameters; - - - - result - - - fbsql_list_fields が返す結果ポインタ。 - - - - - field_index - - - フィールドの数値オフセット。フィールドのインデックスは 0 からはじまります。 - - - - - - - - - &reftitle.returnvalues; - - 名前を表す文字列、あるいはフィールドが存在しない場合に - &false; を返します。 - - - - - &reftitle.examples; - - - <function>fbsql_field_name</function> の例 - - -]]> - - &example.outputs; - - - - - - - - - &reftitle.seealso; - - - fbsql_field_type - - - - - - - diff --git a/reference/fbsql/functions/fbsql-field-seek.xml b/reference/fbsql/functions/fbsql-field-seek.xml deleted file mode 100644 index 9e7e221b82..0000000000 --- a/reference/fbsql/functions/fbsql-field-seek.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - fbsql_field_seek - 指定したフィールドオフセットに結果ポインタを設定する - - - - &reftitle.description; - - boolfbsql_field_seek - resourceresult - intfield_offset - - - 指定したフィールドオフセットに移動します。 - fbsql_fetch_field がフィールドオフセットを - 指定せずにコールされた場合、fbsql_field_seek - で指定したフィールドオフセットが返されます。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - field_offset - - - フィールドの数値オフセット。フィールドのインデックスは 0 からはじまります。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.seealso; - - - fbsql_fetch_field - - - - - - diff --git a/reference/fbsql/functions/fbsql-field-table.xml b/reference/fbsql/functions/fbsql-field-table.xml deleted file mode 100644 index b559ff2e34..0000000000 --- a/reference/fbsql/functions/fbsql-field-table.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - fbsql_field_table - 指定したフィールドがあるテーブルの名前を得る - - - - &reftitle.description; - - stringfbsql_field_table - resourceresult - intfield_offset - - - 指定したフィールドがあるテーブルの名前を返します。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - field_offset - - - フィールドの数値オフセット。フィールドのインデックスは 0 からはじまります。 - - - - - - - - - &reftitle.returnvalues; - - テーブル名を文字列で返します。 - - - - - diff --git a/reference/fbsql/functions/fbsql-field-type.xml b/reference/fbsql/functions/fbsql-field-type.xml deleted file mode 100644 index 16657834b1..0000000000 --- a/reference/fbsql/functions/fbsql-field-type.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - fbsql_field_type - 結果の中で指定したフィールドの型を得る - - - - &reftitle.description; - - stringfbsql_field_type - resourceresult - intfield_offset - - - fbsql_field_type は - fbsql_field_name 関数と同じですが、 - 返される内容がフィールドの型となります。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - field_offset - - - フィールドの数値オフセット。フィールドのインデックスは 0 からはじまります。 - - - - - - - - - &reftitle.returnvalues; - - フィールドの型を文字列で返します。 - - - これは intreal、 - stringblob あるいは - FrontBase のドキュメント - で詳細が説明されている型のいずれかです。 - - - - - &reftitle.examples; - - - <function>fbsql_field_type</function> の例 - -"; -echo "テーブルのフィールドは以下のとおりです
"; -while ($i < $fields) { - $type = fbsql_field_type($result, $i); - $name = fbsql_field_name($result, $i); - $len = fbsql_field_len($result, $i); - $flags = fbsql_field_flags($result, $i); - echo $type . " " . $name . " " . $len . " " . $flags . "
"; - $i++; -} -fbsql_close(); - -?> -]]> -
-
-
-
- - - &reftitle.seealso; - - - fbsql_field_name - - - - -
- - diff --git a/reference/fbsql/functions/fbsql-free-result.xml b/reference/fbsql/functions/fbsql-free-result.xml deleted file mode 100644 index 250965c4c9..0000000000 --- a/reference/fbsql/functions/fbsql-free-result.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - fbsql_free_result - 結果メモリを開放する - - - - &reftitle.description; - - boolfbsql_free_result - resourceresult - - - result で指定した ID - に関連付けられた全メモリを開放します。 - - - fbsql_free_result は、大きな結果セットを返す - クエリでメモリの使用量が心配な場合にのみコールします。 - 結果に関連付けられたメモリは、スクリプトの実行が終了した際に自動的に開放されます。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - diff --git a/reference/fbsql/functions/fbsql-get-autostart-info.xml b/reference/fbsql/functions/fbsql-get-autostart-info.xml deleted file mode 100644 index 7cfd56e6b1..0000000000 --- a/reference/fbsql/functions/fbsql-get-autostart-info.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - fbsql_get_autostart_info - - - - - &reftitle.description; - - arrayfbsql_get_autostart_info - resourcelink_identifier - - &warn.undocumented.func; - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - - - - - - diff --git a/reference/fbsql/functions/fbsql-hostname.xml b/reference/fbsql/functions/fbsql-hostname.xml deleted file mode 100644 index 655dfeb7cc..0000000000 --- a/reference/fbsql/functions/fbsql-hostname.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - fbsql_hostname - 接続で使用されているホスト名を取得あるいは設定する - - - - &reftitle.description; - - stringfbsql_hostname - resourcelink_identifier - stringhost_name - - - 接続で使用されているホスト名を取得あるいは設定します。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - host_name - - - 指定した場合は、これが新しい接続のホスト名となります。 - - - - - - - - - &reftitle.returnvalues; - - 現在の接続で使用しているホスト名を返します。 - - - - - &reftitle.seealso; - - - fbsql_username - fbsql_password - - - - - - - diff --git a/reference/fbsql/functions/fbsql-insert-id.xml b/reference/fbsql/functions/fbsql-insert-id.xml deleted file mode 100644 index 8f39b292b0..0000000000 --- a/reference/fbsql/functions/fbsql-insert-id.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - fbsql_insert_id - 直近の INSERT 処理により生成された ID を得る - - - - &reftitle.description; - - intfbsql_insert_id - resourcelink_identifier - - - 直近の INSERT - クエリにおいて、DEFAULT UNIQUE 定義されているカラムで生成された - ID を返します。 - - - - FrontBase SQL関数 fbsql_insert_id の値は - 直近に生成された DEFAULT UNIQUE の値を常に含み、 - クエリ間でリセットすることはありません。 - - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - 直近の INSERT クエリが生成した ID を返します。 - 直近のクエリが DEFAULT UNIQUE 値を生成していない場合は 0 を返します。 - - - 後のために値を保存する必要がある場合、値を生成するクエリの - 直後にこの関数をコールするようにしてください。 - - - - - &reftitle.seealso; - - - fbsql_affected_rows - - - - - - - diff --git a/reference/fbsql/functions/fbsql-list-dbs.xml b/reference/fbsql/functions/fbsql-list-dbs.xml deleted file mode 100644 index d21298183c..0000000000 --- a/reference/fbsql/functions/fbsql-list-dbs.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - fbsql_list_dbs - FrontBase サーバーで利用可能なデータベースの一覧を得る - - - - &reftitle.description; - - resourcefbsql_list_dbs - resourcelink_identifier - - - fbsql デーモンで現在使用可能なデータベースを含む結果ポインタを返します。 - この結果ポインタの内容を取得するには fbsql_tablename - 関数を使用します。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - 結果ポインタあるいはエラー時に &false; を返します。 - - - - - &reftitle.examples; - - - <function>fbsql_list_dbs</function> の例 - -Database . "\n"; -} -?> -]]> - - &example.outputs.similar; - - - - - - - - 上記のコードは、fbsql_fetch_row または他の - 類似の関数でも簡単に同じことが可能です。 - - - - - - &reftitle.seealso; - - - fbsql_list_fields - fbsql_list_tables - - - - - - - diff --git a/reference/fbsql/functions/fbsql-list-fields.xml b/reference/fbsql/functions/fbsql-list-fields.xml deleted file mode 100644 index 42924809ce..0000000000 --- a/reference/fbsql/functions/fbsql-list-fields.xml +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - fbsql_list_fields - FrontBase 結果フィールドの一覧を得る - - - - &reftitle.description; - - resourcefbsql_list_fields - stringdatabase_name - stringtable_name - resourcelink_identifier - - - 指定したテーブルについての情報を取得します。 - - - - - &reftitle.parameters; - - - - database_name - - - データベース名。 - - - - - table_name - - - テーブル名。 - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - 結果ポインタを返します。これは、 - fbsql_field_xxx で使用できます。 - エラー時には &false; を返します。 - - - - - &reftitle.errors; - - エラーの内容は - $phperrmsg に書き込まれ、関数が - @fbsql() のようにコールされていない限り - このエラー内容が出力されます。 - - - - - &reftitle.examples; - - - <function>fbsql_list_fields</function> の例 - - -]]> - - &example.outputs.similar; - - - - - - - - - &reftitle.seealso; - - - fbsql_field_len - fbsql_field_name - fbsql_field_type - fbsql_field_flags - - - - - - - diff --git a/reference/fbsql/functions/fbsql-list-tables.xml b/reference/fbsql/functions/fbsql-list-tables.xml deleted file mode 100644 index 1fb3596fef..0000000000 --- a/reference/fbsql/functions/fbsql-list-tables.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - fbsql_list_tables - FrontBase データベースのテーブル一覧を得る - - - - &reftitle.description; - - resourcefbsql_list_tables - stringdatabase - resourcelink_identifier - - - database について説明する結果ポインタを返します。 - - - - - &reftitle.parameters; - - - - database - - - データベース名。 - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - 結果ポインタを返します。これを - fbsql_tablename 関数で使用すると、 - 実際のテーブル名が取得できます。エラー時には &false; を返します。 - - - - - &reftitle.seealso; - - - fbsql_list_fields - fbsql_list_dbs - - - - - - - diff --git a/reference/fbsql/functions/fbsql-next-result.xml b/reference/fbsql/functions/fbsql-next-result.xml deleted file mode 100644 index 3765f7ac40..0000000000 --- a/reference/fbsql/functions/fbsql-next-result.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - fbsql_next_result - 内部結果ポインタを次の結果に移動する - - - - &reftitle.description; - - boolfbsql_next_result - resourceresult - - - サーバーに複数の SQL 文を送信したり、複数の結果を返す - ストアドプロシージャを実行したりすると、複数の結果セットが返されます。 - この関数は、サーバーからの追加の結果セットが存在するかどうかを調べます。 - 結果が存在した場合、現在の結果セットを開放して新しい結果セットを取得します。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - - - - - &reftitle.returnvalues; - - 追加の結果セットが使用可能な場合に &true;、それ以外の場合に &false; を返します。 - - - - - &reftitle.examples; - - - <function>fbsql_next_result</function> の例 - - -]]> - - - - - - - - diff --git a/reference/fbsql/functions/fbsql-num-fields.xml b/reference/fbsql/functions/fbsql-num-fields.xml deleted file mode 100644 index 8f3b5709a0..0000000000 --- a/reference/fbsql/functions/fbsql-num-fields.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - fbsql_num_fields - 結果のフィールド数を得る - - - - &reftitle.description; - - intfbsql_num_fields - resourceresult - - - 指定した結果セット result - のフィールド数を返します。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - - - - - &reftitle.returnvalues; - - フィールドの数を整数値で返します。 - - - - - &reftitle.seealso; - - - fbsql_db_query - fbsql_query - fbsql_fetch_field - fbsql_num_rows - - - - - - - diff --git a/reference/fbsql/functions/fbsql-num-rows.xml b/reference/fbsql/functions/fbsql-num-rows.xml deleted file mode 100644 index db0406aff3..0000000000 --- a/reference/fbsql/functions/fbsql-num-rows.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - fbsql_num_rows - 結果のレコード数を得る - - - - &reftitle.description; - - intfbsql_num_rows - resourceresult - - - 指定した結果セット result - の行数を取得します。 - - - このコマンドは SELECT 文に対してのみ使用可能です。 - INSERT、UPDATE あるいは DELETE クエリの行数を取得するには、 - fbsql_affected_rows を使用します。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - - - - - &reftitle.returnvalues; - - 直近の SELECT 文が返す行の数を返します。 - - - - - &reftitle.examples; - - - <function>fbsql_num_rows</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - fbsql_affected_rows - fbsql_connect - fbsql_select_db - fbsql_query - - - - - - - diff --git a/reference/fbsql/functions/fbsql-password.xml b/reference/fbsql/functions/fbsql-password.xml deleted file mode 100644 index 7c01701d03..0000000000 --- a/reference/fbsql/functions/fbsql-password.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - fbsql_password - 接続に対して使用するユーザーパスワードを取得あるいは設定する - - - - &reftitle.description; - - stringfbsql_password - resourcelink_identifier - stringpassword - - - 接続時のユーザーパスワードを取得あるいは設定します。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - password - - - 指定した場合は、これが新しい接続パスワードとなります。 - - - - - - - - - &reftitle.returnvalues; - - 現在の接続パスワードを返します。 - - - - - &reftitle.seealso; - - - fbsql_username - fbsql_hostname - - - - - - - diff --git a/reference/fbsql/functions/fbsql-pconnect.xml b/reference/fbsql/functions/fbsql-pconnect.xml deleted file mode 100644 index 4c827ee5f0..0000000000 --- a/reference/fbsql/functions/fbsql-pconnect.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - fbsql_pconnect - FrontBase サーバーへの持続的接続をオープンする - - - - &reftitle.description; - - resourcefbsql_pconnect - stringhostnameini_get("fbsql.default_host") - stringusernameini_get("fbsql.default_user") - stringpasswordini_get("fbsql.default_password") - - - FrontBase サーバーへの持続的な接続を確立します。 - - - サーバーのポート番号を指定するには fbsql_select_db - を使用します。 - - - fbsql_pconnect は - fbsql_connect とほとんど同じように動作しますが、 - 2 つの大きな違いがあります。 - - - まず、接続の際に、この関数は事前に同じホスト・ユーザー名・パスワードで - オープンされている (持続的) リンクを探そうとします。 - 見つかった場合には、新しい接続をオープンせずにその接続の ID を - 返します。 - - - 次に、SQL サーバーへの接続はスクリプトが終了しても閉じられません。 - その代わりに、今後利用されるときのためにオープンされたままとなります。 - - - これらにより、この形式のリンクは「持続的(persistent)」と呼ばれます。 - - - - - &reftitle.parameters; - - - - hostname - - - ホスト名。 - - - - - username - - - 接続時のユーザー名。 - - - - - password - - - 接続時のパスワード。 - - - - - - - - - &reftitle.returnvalues; - - 成功した場合には正の FrontBase 持続的リンク ID、 - エラー時には &false; を返します。 - - - - - &reftitle.seealso; - - - fbsql_connect - - - - - - - diff --git a/reference/fbsql/functions/fbsql-query.xml b/reference/fbsql/functions/fbsql-query.xml deleted file mode 100644 index ecd9320be3..0000000000 --- a/reference/fbsql/functions/fbsql-query.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - fbsql_query - FrontBase クエリを送信する - - - - &reftitle.description; - - resourcefbsql_query - stringquery - resourcelink_identifier - intbatch_size - - - クエリ query を、 - サーバー上の現在アクティブなデータベースに送信します。 - - - クエリが成功したと仮定すると、 - fbsql_num_rows を使用して SELECT 文から - 返された行数を取得したり - fbsql_affected_rows を使用して - DELETE、INSERT、REPLACE あるいは UPDATE 文で変更された行数を - 取得したりすることが可能です。 - - - - - &reftitle.parameters; - - - - query - - - 実行する SQL クエリ。 - - - - クエリ文字列の最後はセミコロンで終わらなければなりません。 - - - - - &fbsql.link-identifier.description; - - batch_size - - - - - - - - - - - &reftitle.returnvalues; - - fbsql_query は、クエリが成功したかどうかを - 示すために &true; (非ゼロ) あるいは &false; を返します。 - 返り値が &true; の場合、クエリは正しい形式であってサーバーで実行された - ことを示します。変更された行数や返された行数については何も示しません。 - クエリが成功しても 1 行も変更しなかったり 1 行も返さなかったりすることは - 十分にありえることです。 - - - SELECT 文の場合は fbsql_query は新しい結果 ID - を返し、これを fbsql_result に渡すことができます。 - - - クエリが参照しているテーブルへのアクセス権がない場合にも - fbsql_query は失敗し、&false; を返します。 - - - - - &reftitle.examples; - - 以下のクエリは文法的に間違っています。そのため - fbsql_query は失敗して &false; を返します。 - - <function>fbsql_query</function> の例 - - -]]> - - - - - テーブル my_tblmy_col - というカラムが存在しない場合、以下のクエリは意味的に間違ったものと - なります。そのため fbsql_query は失敗して - &false; を返します。 - - <function>fbsql_query</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - fbsql_affected_rows - fbsql_db_query - fbsql_free_result - fbsql_result - fbsql_select_db - fbsql_connect - - - - - - - diff --git a/reference/fbsql/functions/fbsql-read-blob.xml b/reference/fbsql/functions/fbsql-read-blob.xml deleted file mode 100644 index ad1d9159d6..0000000000 --- a/reference/fbsql/functions/fbsql-read-blob.xml +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - fbsql_read_blob - データベースから BLOB を読み込む - - - - &reftitle.description; - - stringfbsql_read_blob - stringblob_handle - resourcelink_identifier - - - データベースから BLOB データを読み込みます。 - - - select 文が BLOB や CLOB のカラムを含んでいる場合、 - FrontBase はデータが取得される際にはそのデータを直接返します。 - このデフォルトの動作は fbsql_set_lob_mode - で変更することが可能で、そうするとデータの取得時には - BLOB および CLOB データのハンドルを返します。ハンドルを取得した場合は、 - データベースから実際の BLOB データを取得するために - fbsql_read_blob をコールする必要があります。 - - - - - &reftitle.parameters; - - - - blob_handle - - - fbsql_create_blob が返す BLOB ハンドル。 - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - 指定した BLOB データを含む文字列を返します。 - - - - - &reftitle.examples; - - - <function>fbsql_read_blob</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - fbsql_create_blob - fbsql_read_clob - fbsql_set_lob_mode - - - - - - - diff --git a/reference/fbsql/functions/fbsql-read-clob.xml b/reference/fbsql/functions/fbsql-read-clob.xml deleted file mode 100644 index 1412a1a688..0000000000 --- a/reference/fbsql/functions/fbsql-read-clob.xml +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - fbsql_read_clob - データベースから CLOB を読み込む - - - - &reftitle.description; - - stringfbsql_read_clob - stringclob_handle - resourcelink_identifier - - - データベースから CLOB データを読み込みます。 - - - select 文が BLOB や CLOB のカラムを含んでいる場合、 - FrontBase はデータが取得される際にはそのデータを直接返します。 - このデフォルトの動作は fbsql_set_lob_mode - で変更することが可能で、そうするとデータの取得時には - BLOB および CLOB データのハンドルを返します。ハンドルを取得した場合は、 - データベースから実際の CLOB データを取得するために - fbsql_read_clob をコールする必要があります。 - - - - - &reftitle.parameters; - - - - clob_handle - - - fbsql_create_clob が返す CLOB ハンドル。 - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - 指定した CLOB データを含む文字列を返します。 - - - - - &reftitle.examples; - - - <function>fbsql_read_clob</function> の例 - - -]]> - - - - - - - &reftitle.seealso; - - - fbsql_create_clob - fbsql_read_blob - fbsql_set_lob_mode - - - - - - - diff --git a/reference/fbsql/functions/fbsql-result.xml b/reference/fbsql/functions/fbsql-result.xml deleted file mode 100644 index b8b7d63c7c..0000000000 --- a/reference/fbsql/functions/fbsql-result.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - fbsql_result - 結果データを得る - - - - &reftitle.description; - - mixedfbsql_result - resourceresult - introw - mixedfield - - - FrontBase の結果セット - result から、ひとつのセルの内容を返します。 - - - 大きな結果セットを処理する場合には、(以下で示すような) 行全体を - 取得する関数のうちのひとつを使用することを考慮すべきでしょう。 - これらの関数は複数のセルの内容を一度の関数コールで取得することが - 可能で、fbsql_result にくらべてかなり高速です。 - - - fbsql_result は、その他の結果セットを扱う関数と - 一緒に使用すべきではありません。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - row - - - - - - - field - - - フィールドのオフセット・フィールド名・テーブル名とフィールド名をドットで - 連結した形式 (テーブル名.フィールド名) のいずれかが指定可能です。 - - - カラム名にエイリアスが指定されている場合 - ('select foo as bar from...') は、カラム名のかわりにエイリアスを使用します。 - - - - フィールド名やテーブル名.フィールド名を引数に渡すのに比べると、 - フィールドの数値オフセットを指定するほうが高速となります。 - - - - - - - - - - &reftitle.returnvalues; - - - - - - &reftitle.seealso; - - 推奨される高機能な代替関数は、以下のようになります。 - - fbsql_fetch_row - fbsql_fetch_array - fbsql_fetch_assoc - fbsql_fetch_object - - - - - - - diff --git a/reference/fbsql/functions/fbsql-rollback.xml b/reference/fbsql/functions/fbsql-rollback.xml deleted file mode 100644 index 66dd505ae2..0000000000 --- a/reference/fbsql/functions/fbsql-rollback.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - fbsql_rollback - データベースへのトランザクションをロールバックする - - - - &reftitle.description; - - boolfbsql_rollback - resourcelink_identifier - - - 直近のコミット以降に発行されたすべての文をロールバックし、 - 現在のトランザクションを終了します。 - - - このコマンドは、autocommit が false に設定されている場合にのみ必要となります。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.seealso; - - - fbsql_autocommit - fbsql_commit - - - - - - - diff --git a/reference/fbsql/functions/fbsql-rows-fetched.xml b/reference/fbsql/functions/fbsql-rows-fetched.xml deleted file mode 100644 index a096c6a835..0000000000 --- a/reference/fbsql/functions/fbsql-rows-fetched.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - fbsql_rows_fetched - 直近の文で影響をうけた行の数を取得する - - - - &reftitle.description; - - intfbsql_rows_fetched - resourceresult - - - 直近の文で影響をうけた行の数を取得します。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - - - - - &reftitle.returnvalues; - - 行の数を整数値で返します。 - - - - - - diff --git a/reference/fbsql/functions/fbsql-select-db.xml b/reference/fbsql/functions/fbsql-select-db.xml deleted file mode 100644 index d7ef12f4d8..0000000000 --- a/reference/fbsql/functions/fbsql-select-db.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - fbsql_select_db - FrontBase データベースを選択する - - - - &reftitle.description; - - boolfbsql_select_db - stringdatabase_name - resourcelink_identifier - - - 指定したリンク ID 上の、現在アクティブなデータベースを設定します。 - - - クライアントは、データベースへの接続時に使用するポート番号を取得する - ために FBExec を使用します。データベース名が番号の場合、システムは - これをポート番号として使用し、FBExec にポート番号を問い合わせません。 - FrontBase サーバーを開始するには、 - FRontBase -FBExec=No -port=<port number> <database - name> のようにします。 - - - この後の fbsql_query のコールは、 - アクティブなデータベースが対象となります。 - - - - - - &reftitle.parameters; - - - - database_name - - - 選択するデータベースの名前。 - - - データベースがパスワードで保護されている場合は、データベースを選択する前に - fbsql_database_password をコールする必要があります。 - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.seealso; - - - fbsql_connect - fbsql_pconnect - fbsql_database_password - fbsql_query - - - - - - - diff --git a/reference/fbsql/functions/fbsql-set-characterset.xml b/reference/fbsql/functions/fbsql-set-characterset.xml deleted file mode 100644 index a686f54006..0000000000 --- a/reference/fbsql/functions/fbsql-set-characterset.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - fbsql_set_characterset - 入出力文字セットを変更する - - - - &reftitle.description; - - voidfbsql_set_characterset - resourcelink_identifier - intcharacterset - intin_out_both - - - &warn.undocumented.func; - - - - &reftitle.returnvalues; - - &return.void; - - - - - - diff --git a/reference/fbsql/functions/fbsql-set-lob-mode.xml b/reference/fbsql/functions/fbsql-set-lob-mode.xml deleted file mode 100644 index 68b4defd7a..0000000000 --- a/reference/fbsql/functions/fbsql-set-lob-mode.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - fbsql_set_lob_mode - FrontBase 結果セットの LOB 取得モードを設定する - - - - &reftitle.description; - - boolfbsql_set_lob_mode - resourceresult - intlob_mode - - - データベースから LOB データを取得する際のモードを設定します。 - - - BLOB および CLOB のデータが FrontBase に格納されている場合、 - それは直接的あるいは間接的に保存することが可能です。直接保存された LOB データは - lob モードの設定にかかわらず常に取得されます。LOB データが - 512 バイトより小さい場合は常に直接保存されます。 - - - - - &reftitle.parameters; - - - &fbsql.result.description; - - lob_mode - - - 以下のいずれかです。 - - - - FBSQL_LOB_DIRECT - - LOB データは直接取得されます。 - データベースから fbsql_fetch_row - やその他の関数を使用してデータを取得した場合、すべての - CLOB あるいは BLOB カラムはその内容が直接返されます。 - これは新規 FrontBase 結果のデフォルト値です。 - - - - - FBSQL_LOB_HANDLE - - LOB データは、実際のデータへのハンドルとして - 取得されます。fbsql_fetch_row あるいはその他の - 関数によってデータが取得された際、LOB データが間接的に格納されていた - 場合はそのハンドルを、直接格納されていた場合はデータそのものを返します。 - ハンドルが返された場合、それは - @'000000000000000000000000' - のような形式の 27 バイトの文字列となります。 - - - - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.seealso; - - - fbsql_create_blob - fbsql_create_clob - fbsql_read_blob - fbsql_read_clob - - - - - - - diff --git a/reference/fbsql/functions/fbsql-set-password.xml b/reference/fbsql/functions/fbsql-set-password.xml deleted file mode 100644 index 31ea6efa65..0000000000 --- a/reference/fbsql/functions/fbsql-set-password.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - fbsql_set_password - 指定したユーザーのパスワードを変更する - - - - &reftitle.description; - - boolfbsql_set_password - resourcelink_identifier - stringuser - stringpassword - stringold_password - - - 指定したユーザー user - のパスワードを変更します。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - user - - - ユーザー名。 - - - - - password - - - 設定する新しいパスワード。 - - - - - old_password - - - もとのパスワード。 - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - diff --git a/reference/fbsql/functions/fbsql-set-transaction.xml b/reference/fbsql/functions/fbsql-set-transaction.xml deleted file mode 100644 index c886351da8..0000000000 --- a/reference/fbsql/functions/fbsql-set-transaction.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - fbsql_set_transaction - トランザクションのロックと分離レベルを設定する - - - - &reftitle.description; - - voidfbsql_set_transaction - resourcelink_identifier - intlocking - intisolation - - - トランザクションのロック locking および分離レベル - isolation を設定します。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - locking - - - 設定するロックの形式。定数 - FBSQL_LOCK_DEFERRED、 - FBSQL_LOCK_OPTIMISTIC あるいは - FBSQL_LOCK_PESSIMISTIC のいずれかとなります。 - - - - - isolation - - - 設定する分離レベル。定数 - FBSQL_ISO_READ_UNCOMMITTED、 - FBSQL_ISO_READ_COMMITTED、 - FBSQL_ISO_REPEATABLE_READ、 - FBSQL_ISO_SERIALIZABLE および - FBSQL_ISO_VERSIONED のいずれかとなります。 - - - - - - - - - &reftitle.returnvalues; - - &return.void; - - - - - - diff --git a/reference/fbsql/functions/fbsql-start-db.xml b/reference/fbsql/functions/fbsql-start-db.xml deleted file mode 100644 index 6ddbb3cd8e..0000000000 --- a/reference/fbsql/functions/fbsql-start-db.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - fbsql_start_db - ローカルまたはリモートサーバーのデータベースを開始する - - - - &reftitle.description; - - boolfbsql_start_db - stringdatabase_name - resourcelink_identifier - stringdatabase_options - - - ローカルまたはリモートサーバーのデータベースを開始します。 - - - - - &reftitle.parameters; - - - - database_name - - - データベース名。 - - - - &fbsql.link-identifier.description; - - database_options - - - - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.seealso; - - - fbsql_db_status - fbsql_stop_db - - - - - - - diff --git a/reference/fbsql/functions/fbsql-stop-db.xml b/reference/fbsql/functions/fbsql-stop-db.xml deleted file mode 100644 index 1ea63b631a..0000000000 --- a/reference/fbsql/functions/fbsql-stop-db.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - fbsql_stop_db - ローカルまたはリモートサーバーのデータベースを停止する - - - - &reftitle.description; - - boolfbsql_stop_db - stringdatabase_name - resourcelink_identifier - - - ローカルまたはリモートサーバーのデータベースを停止します。 - - - - - &reftitle.parameters; - - - - database_name - - - データベース名。 - - - - &fbsql.link-identifier.description; - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - &reftitle.seealso; - - - fbsql_db_status - fbsql_start_db - - - - - - - diff --git a/reference/fbsql/functions/fbsql-table-name.xml b/reference/fbsql/functions/fbsql-table-name.xml deleted file mode 100644 index 81b7b02960..0000000000 --- a/reference/fbsql/functions/fbsql-table-name.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - fbsql_table_name - フィールドのテーブル名を得る - - - - &reftitle.description; - - stringfbsql_table_name - resourceresult - intindex - - - fbsql_table_name は、指定した結果セット - result から現在のテーブル名を取得します。 - - - fbsql_num_rows 関数を使用して、 - 現在の結果ポインタ内のテーブルの数を判断します。 - - - - - &reftitle.parameters; - - - - result - - - fbsql_list_tables が返す結果ポインタ。 - - - - - index - - - 現在のテーブルの整数値インデックス。 - - - - - - - - - &reftitle.returnvalues; - - テーブル名を文字列で返します。 - - - - - &reftitle.examples; - - - <function>fbsql_table_name</function> の例 - -"; - $i++; -} -?> -]]> - - - - - - - - diff --git a/reference/fbsql/functions/fbsql-tablename.xml b/reference/fbsql/functions/fbsql-tablename.xml deleted file mode 100644 index 10c17545d2..0000000000 --- a/reference/fbsql/functions/fbsql-tablename.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - fbsql_tablename - fbsql_table_name &Alias; - - - - &reftitle.description; - - &info.function.alias; fbsql_table_name. - - - - - - diff --git a/reference/fbsql/functions/fbsql-username.xml b/reference/fbsql/functions/fbsql-username.xml deleted file mode 100644 index 68128fb35f..0000000000 --- a/reference/fbsql/functions/fbsql-username.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - fbsql_username - 接続に使用するホストユーザーを取得あるいは設定する - - - - &reftitle.description; - - stringfbsql_username - resourcelink_identifier - stringusername - - - 接続で使用するユーザー名を取得あるいは設定します。 - - - - - &reftitle.parameters; - - - &fbsql.link-identifier.description; - - username - - - 指定した場合は、これを新しいユーザー名として設定します。 - - - - - - - - - &reftitle.returnvalues; - - この接続で使用する現在のユーザー名を文字列で返します。 - - - - - &reftitle.seealso; - - - fbsql_password - fbsql_hostname - - - - - - - diff --git a/reference/fbsql/functions/fbsql-warnings.xml b/reference/fbsql/functions/fbsql-warnings.xml deleted file mode 100644 index d88d9efd54..0000000000 --- a/reference/fbsql/functions/fbsql-warnings.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - fbsql_warnings - FrontBase 警告を有効または無効にする - - - - &reftitle.description; - - boolfbsql_warnings - boolOnOff - - - FrontBase の警告を有効または無効にします。 - - - - - &reftitle.parameters; - - - - OnOff - - - 警告を有効にするかしないか。 - - - - - - - - - &reftitle.returnvalues; - - 警告をオンにした場合は &true;、そうでない場合は - &false; を返します。 - - - - - - &reftitle.seealso; - - - fbsql_errno - fbsql_error - - - - - - - diff --git a/reference/fbsql/reference.xml b/reference/fbsql/reference.xml deleted file mode 100644 index 3f68dae4cc..0000000000 --- a/reference/fbsql/reference.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - FrontBase &Functions; - -&reference.fbsql.entities.functions; - - - - diff --git a/reference/fbsql/setup.xml b/reference/fbsql/setup.xml deleted file mode 100644 index 67e096d44b..0000000000 --- a/reference/fbsql/setup.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - &reftitle.setup; - - -
- &reftitle.required; - - この関数を使用するには、FrontBase データベースサーバーまたは少なくとも - fbsql クライアントライブラリをインストールする必要があります。 - &url.fbsql; から FrontBase を - 取得することができます。 - -
- - - - &reference.fbsql.configure; - - - - &reference.fbsql.ini; - - - -
- &reftitle.resources; - &no.resource; -
- - -
- - - diff --git a/reference/fdf/book.xml b/reference/fdf/book.xml index 7ef79ec8da..68a9c51141 100644 --- a/reference/fdf/book.xml +++ b/reference/fdf/book.xml @@ -1,9 +1,10 @@ - + + Forms Data Format FDF diff --git a/reference/fdf/configure.xml b/reference/fdf/configure.xml index 13be204dcf..6a6fb19841 100644 --- a/reference/fdf/configure.xml +++ b/reference/fdf/configure.xml @@ -1,6 +1,6 @@ - +
&reftitle.install; @@ -8,7 +8,7 @@ &url.pecl.vcs;fdf. - この拡張モジュールは、PHP 5.3.0 以降は PHP にバンドルされなくなりました。 + この拡張モジュールは、PHP にバンドルされていません。 diff --git a/reference/fdf/constants.xml b/reference/fdf/constants.xml index d21384b4d6..8557ec3070 100644 --- a/reference/fdf/constants.xml +++ b/reference/fdf/constants.xml @@ -1,6 +1,6 @@ - + &reftitle.constants; &extension.constants; @@ -8,7 +8,7 @@ FDFValue - (integer) + (int) @@ -19,7 +19,7 @@ FDFStatus - (integer) + (int) @@ -30,7 +30,7 @@ FDFFile - (integer) + (int) @@ -41,7 +41,7 @@ FDFID - (integer) + (int) @@ -52,7 +52,7 @@ FDFFf - (integer) + (int) @@ -63,7 +63,7 @@ FDFSetFf - (integer) + (int) @@ -74,7 +74,7 @@ FDFClearFf - (integer) + (int) @@ -85,7 +85,7 @@ FDFFlags - (integer) + (int) @@ -96,7 +96,7 @@ FDFSetF - (integer) + (int) @@ -107,7 +107,7 @@ FDFClrF - (integer) + (int) @@ -118,7 +118,7 @@ FDFAP - (integer) + (int) @@ -129,7 +129,7 @@ FDFAS - (integer) + (int) @@ -140,7 +140,7 @@ FDFAction - (integer) + (int) @@ -151,7 +151,7 @@ FDFAA - (integer) + (int) @@ -162,7 +162,7 @@ FDFAPRef - (integer) + (int) @@ -173,7 +173,7 @@ FDFIF - (integer) + (int) @@ -184,7 +184,7 @@ FDFEnter - (integer) + (int) @@ -195,7 +195,7 @@ FDFExit - (integer) + (int) @@ -206,7 +206,7 @@ FDFDown - (integer) + (int) @@ -217,7 +217,7 @@ FDFUp - (integer) + (int) @@ -228,7 +228,7 @@ FDFFormat - (integer) + (int) @@ -239,7 +239,7 @@ FDFValidate - (integer) + (int) @@ -250,7 +250,7 @@ FDFKeystroke - (integer) + (int) @@ -261,7 +261,7 @@ FDFCalculate - (integer) + (int) @@ -272,7 +272,7 @@ FDFNormalAP - (integer) + (int) @@ -283,7 +283,7 @@ FDFRolloverAP - (integer) + (int) @@ -294,7 +294,7 @@ FDFDownAP - (integer) + (int) diff --git a/reference/fdf/functions/fdf-create.xml b/reference/fdf/functions/fdf-create.xml index 15e8d30532..fd3793958a 100644 --- a/reference/fdf/functions/fdf-create.xml +++ b/reference/fdf/functions/fdf-create.xml @@ -1,6 +1,6 @@ - + fdf_create @@ -21,6 +21,11 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; diff --git a/reference/fdf/functions/fdf-enum-values.xml b/reference/fdf/functions/fdf-enum-values.xml index ce2e88c073..03e1c18bff 100644 --- a/reference/fdf/functions/fdf-enum-values.xml +++ b/reference/fdf/functions/fdf-enum-values.xml @@ -1,6 +1,6 @@ - + fdf_enum_values diff --git a/reference/fdf/functions/fdf-errno.xml b/reference/fdf/functions/fdf-errno.xml index e921ee6d3b..fb81c6296f 100644 --- a/reference/fdf/functions/fdf-errno.xml +++ b/reference/fdf/functions/fdf-errno.xml @@ -1,6 +1,6 @@ - + fdf_errno @@ -22,6 +22,11 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; diff --git a/reference/fdf/functions/fdf-get-value.xml b/reference/fdf/functions/fdf-get-value.xml index 968dbb81e5..ccd0a3e73b 100644 --- a/reference/fdf/functions/fdf-get-value.xml +++ b/reference/fdf/functions/fdf-get-value.xml @@ -1,6 +1,6 @@ - + fdf_get_value @@ -63,31 +63,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 4.3.0 - - 配列のサポート、およびオプションのパラメータ which - が追加されました。 - - - - - - - - &reftitle.seealso; diff --git a/reference/fdf/functions/fdf-get-version.xml b/reference/fdf/functions/fdf-get-version.xml index 15f40e0d19..ba229f86ee 100644 --- a/reference/fdf/functions/fdf-get-version.xml +++ b/reference/fdf/functions/fdf-get-version.xml @@ -1,6 +1,6 @@ - + fdf_get_version diff --git a/reference/fdf/functions/fdf-header.xml b/reference/fdf/functions/fdf-header.xml index 4a018c75ed..7957f825d3 100644 --- a/reference/fdf/functions/fdf-header.xml +++ b/reference/fdf/functions/fdf-header.xml @@ -1,6 +1,6 @@ - + fdf_header @@ -20,6 +20,11 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; diff --git a/reference/fdf/functions/fdf-open-string.xml b/reference/fdf/functions/fdf-open-string.xml index 6722043f88..165d140f25 100644 --- a/reference/fdf/functions/fdf-open-string.xml +++ b/reference/fdf/functions/fdf-open-string.xml @@ -1,6 +1,6 @@ - + fdf_open_string diff --git a/reference/fdf/functions/fdf-open.xml b/reference/fdf/functions/fdf-open.xml index e3ec3b124f..09d2461f7f 100644 --- a/reference/fdf/functions/fdf-open.xml +++ b/reference/fdf/functions/fdf-open.xml @@ -1,6 +1,6 @@ - + fdf_open diff --git a/reference/fdf/functions/fdf-save-string.xml b/reference/fdf/functions/fdf-save-string.xml index e43ce9ee25..d62f1a64df 100644 --- a/reference/fdf/functions/fdf-save-string.xml +++ b/reference/fdf/functions/fdf-save-string.xml @@ -1,6 +1,6 @@ - + fdf_save_string diff --git a/reference/fdf/functions/fdf-set-value.xml b/reference/fdf/functions/fdf-set-value.xml index e9e02da47f..5b91362aa4 100644 --- a/reference/fdf/functions/fdf-set-value.xml +++ b/reference/fdf/functions/fdf-set-value.xml @@ -1,6 +1,6 @@ - + fdf_set_value @@ -64,7 +64,7 @@ ツールキットの現在のバージョン 5.0 では、もはやこのパラメータは - 使用されません。PHP 4.3 以降、互換性を確保するためにこのパラメータが + 使用されません。互換性を確保するためにこのパラメータが オプションとして残されていますが、内部ではこのパラメータは無視されます。 @@ -81,30 +81,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 4.3.0 - - value で配列をサポートするようになりました。 - - - - - - - - &reftitle.seealso; diff --git a/reference/fdf/functions/fdf-set-version.xml b/reference/fdf/functions/fdf-set-version.xml index c331ac5d58..0e77fe7dcc 100644 --- a/reference/fdf/functions/fdf-set-version.xml +++ b/reference/fdf/functions/fdf-set-version.xml @@ -1,6 +1,6 @@ - + fdf_set_version diff --git a/reference/fdf/setup.xml b/reference/fdf/setup.xml index fd022d8be7..105b813c7c 100644 --- a/reference/fdf/setup.xml +++ b/reference/fdf/setup.xml @@ -1,6 +1,6 @@ - + @@ -24,19 +24,12 @@ &reference.fdf.configure; - -
- &reftitle.runtime; - &no.config; -
- -
&reftitle.resources; 多くの fdf 関数は、最初のパラメータとして - fdf リソースを必要とします。 + fdf リソースが必要です。 fdf リソースは、オープンした fdf ファイルの ハンドルです。fdf リソースは、 fdf_createfdf_open、 diff --git a/reference/ffi/book.xml b/reference/ffi/book.xml new file mode 100644 index 0000000000..d554704f3f --- /dev/null +++ b/reference/ffi/book.xml @@ -0,0 +1,72 @@ + + + + + + + 外部関数インターフェース + FFI + + + &reftitle.intro; + + この拡張は、Zend 拡張 API の深い知識が無くとも、あるいは第三の中間言語を学ぶことをせずとも、 + 純粋な PHP で共有ライブラリ (.DLL または .so) + を読み込んだり、C の関数を呼び出したり、C のデータ構造にアクセスしたりすることを + 可能とします。 + 公開 API は単一のクラス FFI として実装されています。 + このクラスの static メソッド (そのうちのいくつかは非 static メソッドとしても呼び出せます) や + オーバーロードされたオブジェクトメソッドが、実際の C のデータとのやり取りを行います。 + + + + FFI は、システムと低レベルでやり取りできるため危険です。 + FFI 拡張は、C 言語および使用する C API についての実用的な知識を持つ開発者のみが + 用いるべきです。リスクを最小化するため、FFI API の使用は + ffi.enable &php.ini; ディレクティブによって制限できます。 + + + + + FFI 拡張は、古くからある PHP 拡張の API を廃止しようとしているわけではなく、 + C の関数やデータ構造へのアドホックなインターフェースを提供するにすぎません。 + + + + + 今のところ、FFI のデータ構造へのアクセスは、ネイティブな PHP の配列やオブジェクトへのアクセスと比べて + 非常に (約 2 倍) 低速です。したがって、速度のために FFI 拡張を使うことには意味がありません。 + しかし、メモリ消費を減らすために使うのは意味があるかもしれません。 + + + + + &reference.ffi.setup; + &reference.ffi.examples; + &reference.ffi.ffi; + &reference.ffi.ffi.cdata; + &reference.ffi.ffi.ctype; + &reference.ffi.ffi.exception; + &reference.ffi.ffi.parserexception; + + + diff --git a/reference/ffi/configure.xml b/reference/ffi/configure.xml new file mode 100644 index 0000000000..3e4633bf76 --- /dev/null +++ b/reference/ffi/configure.xml @@ -0,0 +1,41 @@ + + + + +
+ &reftitle.install; + + + FFI 拡張を有効にするには、 + を付けて + PHP をビルドする必要があります。 + + + + Windows ユーザーが FFI 拡張を有効にするには、 + &php.ini; に php_ffi.dll を含める必要があります。 + + +
+ + + diff --git a/reference/ffi/ctype/getalignment.xml b/reference/ffi/ctype/getalignment.xml new file mode 100644 index 0000000000..d3dbfcb057 --- /dev/null +++ b/reference/ffi/ctype/getalignment.xml @@ -0,0 +1,58 @@ + + + + + + + FFI\CType::getAlignment + 説明 + + + + &reftitle.description; + + public intFFI\CType::getAlignment + + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/ctype/getarrayelementtype.xml b/reference/ffi/ctype/getarrayelementtype.xml new file mode 100644 index 0000000000..fd691c14e7 --- /dev/null +++ b/reference/ffi/ctype/getarrayelementtype.xml @@ -0,0 +1,58 @@ + + + + + + + FFI\CType::getArrayElementType + 説明 + + + + &reftitle.description; + + public FFI\CTypeFFI\CType::getArrayElementType + + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/ctype/getarraylength.xml b/reference/ffi/ctype/getarraylength.xml new file mode 100644 index 0000000000..7b1f455a74 --- /dev/null +++ b/reference/ffi/ctype/getarraylength.xml @@ -0,0 +1,58 @@ + + + + + + + FFI\CType::getArrayLength + 説明 + + + + &reftitle.description; + + public intFFI\CType::getArrayLength + + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/ctype/getattributes.xml b/reference/ffi/ctype/getattributes.xml new file mode 100644 index 0000000000..0b6cf93d6e --- /dev/null +++ b/reference/ffi/ctype/getattributes.xml @@ -0,0 +1,58 @@ + + + + + + + FFI\CType::getAttributes + 説明 + + + + &reftitle.description; + + public intFFI\CType::getAttributes + + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/ctype/getenumkind.xml b/reference/ffi/ctype/getenumkind.xml new file mode 100644 index 0000000000..8bab3fb409 --- /dev/null +++ b/reference/ffi/ctype/getenumkind.xml @@ -0,0 +1,58 @@ + + + + + + + FFI\CType::getEnumKind + 説明 + + + + &reftitle.description; + + public intFFI\CType::getEnumKind + + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/ctype/getfuncabi.xml b/reference/ffi/ctype/getfuncabi.xml new file mode 100644 index 0000000000..06d83d082a --- /dev/null +++ b/reference/ffi/ctype/getfuncabi.xml @@ -0,0 +1,58 @@ + + + + + + + FFI\CType::getFuncABI + 説明 + + + + &reftitle.description; + + public intFFI\CType::getFuncABI + + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/ctype/getfuncparametercount.xml b/reference/ffi/ctype/getfuncparametercount.xml new file mode 100644 index 0000000000..00a14d8fa4 --- /dev/null +++ b/reference/ffi/ctype/getfuncparametercount.xml @@ -0,0 +1,58 @@ + + + + + + + FFI\CType::getFuncParameterCount + 関数型の引数の数を取得する + + + + &reftitle.description; + + public intFFI\CType::getFuncParameterCount + + + + + + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + 内部的に保持している関数型の引数の数を返します。 + 内部的に保持している型が関数でない場合、 + FFI\Exception をスローします。 + + + + + + diff --git a/reference/ffi/ctype/getfuncparametertype.xml b/reference/ffi/ctype/getfuncparametertype.xml new file mode 100644 index 0000000000..5cc756172e --- /dev/null +++ b/reference/ffi/ctype/getfuncparametertype.xml @@ -0,0 +1,68 @@ + + + + + + + FFI\CType::getFuncParameterType + 関数の引数の型を取得する + + + + &reftitle.description; + + public FFI\CTypeFFI\CType::getFuncParameterType + intindex + + + 内部的に保持している関数型の引数の型を返します。 + + + + + + &reftitle.parameters; + + + index + + + 関数の引数の添字 (ゼロ始まり)。 + + + + + + + + &reftitle.returnvalues; + + 内部的に保持している関数型の引数の型を返します。 + 内部的に保持している型が関数でない場合や、 + 与えられた添字がその関数の引数の範囲外の場合、 + FFI\Exception をスローします。 + + + + + + diff --git a/reference/ffi/ctype/getfuncreturntype.xml b/reference/ffi/ctype/getfuncreturntype.xml new file mode 100644 index 0000000000..a04d715592 --- /dev/null +++ b/reference/ffi/ctype/getfuncreturntype.xml @@ -0,0 +1,58 @@ + + + + + + + FFI\CType::getFuncReturnType + 説明 + + + + &reftitle.description; + + public FFI\CTypeFFI\CType::getFuncReturnType + + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/ctype/getkind.xml b/reference/ffi/ctype/getkind.xml new file mode 100644 index 0000000000..e91cbe308e --- /dev/null +++ b/reference/ffi/ctype/getkind.xml @@ -0,0 +1,58 @@ + + + + + + + FFI\CType::getKind + 説明 + + + + &reftitle.description; + + public intFFI\CType::getKind + + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/ctype/getname.xml b/reference/ffi/ctype/getname.xml new file mode 100644 index 0000000000..803191df48 --- /dev/null +++ b/reference/ffi/ctype/getname.xml @@ -0,0 +1,58 @@ + + + + + + + FFI\CType::getName + 説明 + + + + &reftitle.description; + + public stringFFI\CType::getName + + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/ctype/getpointertype.xml b/reference/ffi/ctype/getpointertype.xml new file mode 100644 index 0000000000..928e942c98 --- /dev/null +++ b/reference/ffi/ctype/getpointertype.xml @@ -0,0 +1,58 @@ + + + + + + + FFI\CType::getPointerType + 説明 + + + + &reftitle.description; + + public FFI\CTypeFFI\CType::getPointerType + + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/ctype/getsize.xml b/reference/ffi/ctype/getsize.xml new file mode 100644 index 0000000000..da92c3fd31 --- /dev/null +++ b/reference/ffi/ctype/getsize.xml @@ -0,0 +1,58 @@ + + + + + + + FFI\CType::getSize + 説明 + + + + &reftitle.description; + + public intFFI\CType::getSize + + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/ctype/getstructfieldnames.xml b/reference/ffi/ctype/getstructfieldnames.xml new file mode 100644 index 0000000000..324b727954 --- /dev/null +++ b/reference/ffi/ctype/getstructfieldnames.xml @@ -0,0 +1,58 @@ + + + + + + + FFI\CType::getStructFieldNames + 説明 + + + + &reftitle.description; + + public arrayFFI\CType::getStructFieldNames + + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/ctype/getstructfieldoffset.xml b/reference/ffi/ctype/getstructfieldoffset.xml new file mode 100644 index 0000000000..b841966592 --- /dev/null +++ b/reference/ffi/ctype/getstructfieldoffset.xml @@ -0,0 +1,67 @@ + + + + + + + FFI\CType::getStructFieldOffset + 説明 + + + + &reftitle.description; + + public intFFI\CType::getStructFieldOffset + stringname + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + + + name + + + + + + + + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/ctype/getstructfieldtype.xml b/reference/ffi/ctype/getstructfieldtype.xml new file mode 100644 index 0000000000..c9e0292e25 --- /dev/null +++ b/reference/ffi/ctype/getstructfieldtype.xml @@ -0,0 +1,67 @@ + + + + + + + FFI\CType::getStructFieldType + 説明 + + + + &reftitle.description; + + public FFI\CTypeFFI\CType::getStructFieldType + stringname + + + + + + &warn.undocumented.func; + + + + + &reftitle.parameters; + + + name + + + + + + + + + + + &reftitle.returnvalues; + + + + + + + + diff --git a/reference/ffi/examples.xml b/reference/ffi/examples.xml new file mode 100644 index 0000000000..17aa3261ed --- /dev/null +++ b/reference/ffi/examples.xml @@ -0,0 +1,345 @@ + + + + + + &reftitle.examples; +
+ FFI の基本的な使い方 + + FFI API の詳細に深く立ち入る前に、よくあるタスクに対する FFI API の使い方が + どれほど簡単かを示す例をいくつか見てみましょう。 + + + + これらの例の中には、libc.so.6 を必要とするものがあります。 + それらは、このライブラリが利用できないシステムでは動きません。 + + + + + 共有ライブラリの関数を呼ぶ + +printf("Hello %s!\n", "world"); +?> +]]> + + &example.outputs; + + + + + + + + C の関数のうちのいくつかは、特定の呼び出し規約 (例: __fastcall、 + __stdcall,__vectorcall など) を必要とすることに注意してください。 + + + + + 関数を呼び出し、構造体を引数経由で返す + +new("struct timeval"); +$tz = $ffi->new("struct timezone"); +// C の gettimeofday() を呼ぶ +var_dump($ffi->gettimeofday(FFI::addr($tv), FFI::addr($tz))); +// C のデータ構造のフィールドにアクセスする +var_dump($tv->tv_sec); +// C のデータ構造全体を出力する +var_dump($tz); +?> +]]> + + &example.outputs.similar; + + + int(0) + ["tz_dsttime"]=> + int(0) +} +]]> + + + + + + 既存の C の変数にアクセスする + +errno); +?> +]]> + + &example.outputs; + + + + + + + + C の変数を作成して書き換える + +cdata); + +// 単純な代入 +$x->cdata = 5; +var_dump($x->cdata); + +// 複合代入 +$x->cdata += 2; +var_dump($x->cdata); +?> +]]> + + &example.outputs; + + + + + + + + C の配列を扱う + + +]]> + + &example.outputs; + + + + + + + + C の enum を扱う + +ZEND_FFI_SYM_TYPE); +var_dump($a->ZEND_FFI_SYM_CONST); +var_dump($a->ZEND_FFI_SYM_VAR); +?> +]]> + + &example.outputs; + + + + + +
+
+ PHP のコールバック + + PHP のクロージャを、関数ポインタ型のネイティブ変数に代入したり、 + 関数の引数として渡したりできます。 + + PHP の <classname>Closure</classname> を C の関数ポインタに代入する + +zend_write; +$zend->zend_write = function($str, $len) { + global $orig_zend_write; + $orig_zend_write("{\n\t", 3); + $ret = $orig_zend_write($str, $len); + $orig_zend_write("}\n", 2); + return $ret; +}; +echo "Hello World 2!\n"; +$zend->zend_write = $orig_zend_write; +echo "Hello World 3!\n"; +?> +]]> + + &example.outputs; + + + + + これは動作こそしますが、この機能は libffi が動作するすべてのプラットフォームでサポートされているわけではありません。 + また、非効率的であり、リクエストの終了時にリソースがリークします。 + + + したがって、PHP のコールバックの使用は最小限にすることを推奨します。 + + + +
+ +
+ PHP/FFI/事前ロードの完全な例 + + php.ini + + + + preload.php + + +]]> + + dummy.h + + + + dummy.php + +printf($format, ...$args); + } +} +?> +]]> + + test.php + +printf("Hello %s!\n", "world"); +?> +]]> + + +
+
+ + diff --git a/reference/ffi/ffi.cdata.xml b/reference/ffi/ffi.cdata.xml new file mode 100644 index 0000000000..a252cc5217 --- /dev/null +++ b/reference/ffi/ffi.cdata.xml @@ -0,0 +1,163 @@ + + + + + + + C のデータハンドル + FFI\CData + + + + +
+ &reftitle.intro; + + FFI\CData オブジェクトは、通常の PHP データのように様々な方法で使用できます: + + + + + スカラー型の C のデータは $cdata プロパティを通してアクセスできます。例: + $x = FFI::new('int'); $x->cdata = 42; + + + + + C の構造体や共用体のフィールドは通常の PHP のオブジェクトプロパティのようにアクセスできます。例: + $cdata->field + + + + + C の配列要素は通常の PHP の配列要素のようにアクセスできます。例: + $cdata[$offset] + + + + + C の配列は &foreach; 文を使って反復できます。 + + + + + C の配列は count の引数として使えます。 + + + + + C のポインタは配列のように参照外しできます。例: $cdata[0] + + + + + C のポインタは通常の比較演算子を使って比較できます (<、 + <===!=>=>)。 + + + + + C のポインタは通常の +/-/ + ++/-- 演算子を使ってインクリメント・デクリメントできます。例: $cdata += 5 + + + + + C のポインタは通常の - 演算子を使って他のポインタと引き算できます。 + + + + + C の関数ポインタは通常の PHP のクロージャのように呼び出せます。例: $cdata() + + + + + 任意の C のデータは clone 演算子を使って + 複製できます。例: $cdata2 = clone $cdata; + + + + + 任意の C のデータは var_dumpprint_r 等を + 使って可視化できます。 + + + + + PHP 8.3.0 以降、FFI\CData は構造体やフィールドに代入できるようになりました。 + + + + + + 特筆すべき制限として、FFI\CData インスタンスは + issetemptyunset をサポートしていません。 + また、ラップされた C の構造体や共用体は Traversable を実装していません。 + + + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + FFI\CData + + + + +
+ +
+ &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + FFI\CData は構造体やフィールドに代入できるようになりました。 + + + + + +
+ +
+ + + +
+ diff --git a/reference/ffi/ffi.ctype.xml b/reference/ffi/ffi.ctype.xml new file mode 100644 index 0000000000..9b08167fe9 --- /dev/null +++ b/reference/ffi/ffi.ctype.xml @@ -0,0 +1,565 @@ + + + + + + + C の型ハンドル + FFI\CType + + + + +
+ &reftitle.intro; + + + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + FFI\CType + + + &Constants; + + public + const + int + FFI\CType::TYPE_VOID + + + public + const + int + FFI\CType::TYPE_FLOAT + + + public + const + int + FFI\CType::TYPE_DOUBLE + + + public + const + int + FFI\CType::TYPE_LONGDOUBLE + + + public + const + int + FFI\CType::TYPE_UINT8 + + + public + const + int + FFI\CType::TYPE_SINT8 + + + public + const + int + FFI\CType::TYPE_UINT16 + + + public + const + int + FFI\CType::TYPE_SINT16 + + + public + const + int + FFI\CType::TYPE_UINT32 + + + public + const + int + FFI\CType::TYPE_SINT32 + + + public + const + int + FFI\CType::TYPE_UINT64 + + + public + const + int + FFI\CType::TYPE_SINT64 + + + public + const + int + FFI\CType::TYPE_ENUM + + + public + const + int + FFI\CType::TYPE_BOOL + + + public + const + int + FFI\CType::TYPE_CHAR + + + public + const + int + FFI\CType::TYPE_POINTER + + + public + const + int + FFI\CType::TYPE_FUNC + + + public + const + int + FFI\CType::TYPE_ARRAY + + + public + const + int + FFI\CType::TYPE_STRUCT + + + public + const + int + FFI\CType::ATTR_CONST + + + public + const + int + FFI\CType::ATTR_INCOMPLETE_TAG + + + public + const + int + FFI\CType::ATTR_VARIADIC + + + public + const + int + FFI\CType::ATTR_INCOMPLETE_ARRAY + + + public + const + int + FFI\CType::ATTR_VLA + + + public + const + int + FFI\CType::ATTR_UNION + + + public + const + int + FFI\CType::ATTR_PACKED + + + public + const + int + FFI\CType::ATTR_MS_STRUCT + + + public + const + int + FFI\CType::ATTR_GCC_STRUCT + + + public + const + int + FFI\CType::ABI_DEFAULT + + + public + const + int + FFI\CType::ABI_CDECL + + + public + const + int + FFI\CType::ABI_FASTCALL + + + public + const + int + FFI\CType::ABI_THISCALL + + + public + const + int + FFI\CType::ABI_STDCALL + + + public + const + int + FFI\CType::ABI_PASCAL + + + public + const + int + FFI\CType::ABI_REGISTER + + + public + const + int + FFI\CType::ABI_MS + + + public + const + int + FFI\CType::ABI_SYSV + + + public + const + int + FFI\CType::ABI_VECTORCALL + + + &Methods; + + + + + + +
+ +
+ &reftitle.constants; + + + FFI\CType::TYPE_VOID + + + + + + + FFI\CType::TYPE_FLOAT + + + + + + + FFI\CType::TYPE_DOUBLE + + + + + + + FFI\CType::TYPE_LONGDOUBLE + + + + + + + FFI\CType::TYPE_UINT8 + + + + + + + FFI\CType::TYPE_SINT8 + + + + + + + FFI\CType::TYPE_UINT16 + + + + + + + FFI\CType::TYPE_SINT16 + + + + + + + FFI\CType::TYPE_UINT32 + + + + + + + FFI\CType::TYPE_SINT32 + + + + + + + FFI\CType::TYPE_UINT64 + + + + + + + FFI\CType::TYPE_SINT64 + + + + + + + FFI\CType::TYPE_ENUM + + + + + + + FFI\CType::TYPE_BOOL + + + + + + + FFI\CType::TYPE_CHAR + + + + + + + FFI\CType::TYPE_POINTER + + + + + + + FFI\CType::TYPE_FUNC + + + + + + + FFI\CType::TYPE_ARRAY + + + + + + + FFI\CType::TYPE_STRUCT + + + + + + + FFI\CType::ATTR_CONST + + + + + + + FFI\CType::ATTR_INCOMPLETE_TAG + + + + + + + FFI\CType::ATTR_VARIADIC + + + + + + + FFI\CType::ATTR_INCOMPLETE_ARRAY + + + + + + + FFI\CType::ATTR_VLA + + + + + + + FFI\CType::ATTR_UNION + + + + + + + FFI\CType::ATTR_PACKED + + + + + + + FFI\CType::ATTR_MS_STRUCT + + + + + + + FFI\CType::ATTR_GCC_STRUCT + + + + + + + FFI\CType::ABI_DEFAULT + + + + + + + FFI\CType::ABI_CDECL + + + + + + + FFI\CType::ABI_FASTCALL + + + + + + + FFI\CType::ABI_THISCALL + + + + + + + FFI\CType::ABI_STDCALL + + + + + + + FFI\CType::ABI_PASCAL + + + + + + + FFI\CType::ABI_REGISTER + + + + + + + FFI\CType::ABI_MS + + + + + + + FFI\CType::ABI_SYSV + + + + + + + FFI\CType::ABI_VECTORCALL + + + + + +
+ +
+ + &reference.ffi.entities.ctype; + +
+ diff --git a/reference/ffi/ffi.exception.xml b/reference/ffi/ffi.exception.xml new file mode 100644 index 0000000000..d34b11321a --- /dev/null +++ b/reference/ffi/ffi.exception.xml @@ -0,0 +1,76 @@ + + + + + + + FFI 例外 + FFI\Exception + + + + +
+ &reftitle.intro; + + + +
+ + +
+ &reftitle.classsynopsis; + + + + + FFI\Exception + + + + extends + Error + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + +
+ +
+ + + +
+ diff --git a/reference/ffi/ffi.parserexception.xml b/reference/ffi/ffi.parserexception.xml new file mode 100644 index 0000000000..598a9503ec --- /dev/null +++ b/reference/ffi/ffi.parserexception.xml @@ -0,0 +1,77 @@ + + + + + + + FFI パーサー例外 + FFI\ParserException + + + + +
+ &reftitle.intro; + + + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + FFI\ParserException + + + + extends + FFI\Exception + + + &InheritedProperties; + + + + + &InheritedMethods; + + + + + + + + + +
+ +
+ + + +
+ diff --git a/reference/ffi/ffi.xml b/reference/ffi/ffi.xml new file mode 100644 index 0000000000..6fbc6e8064 --- /dev/null +++ b/reference/ffi/ffi.xml @@ -0,0 +1,103 @@ + + + + + + + C のコードやデータへの主要インターフェース + FFI + + + + +
+ &reftitle.intro; + + このクラスのオブジェクトは、ファクトリーメソッドである FFI::cdef や + FFI::loadFFI::scope によって作成されます。 + 定義された C の変数は FFI インスタンスのプロパティとして利用可能となり、 + 定義された C の関数は FFI インスタンスのメソッドとして利用可能となります。 + 宣言された C の型は、FFI::newFFI::type を使って + 新しい C のデータ構造を作成するのに使用できます。 + + + FFI 定義のパースや共有ライブラリの読み込みには長い時間がかかることがあります。 + Web 環境において、各 HTTP リクエストでこれを行うのは不便です。 + しかし、FFI 定義やライブラリを PHP の起動時に事前ロードし、FFI オブジェクトを必要なときにインスタンス化することが可能です。 + ヘッダーファイルは特殊な define である FFI_SCOPE によって拡張することができ + (例: #define FFI_SCOPE "foo"。デフォルトのスコープは "C" です)、 + 事前ロード中に FFI::load によって読み込むことができます。 + これによって、永続的なバインディングが作成されます。 + こうして作られたバインディングは、FFI::scope を通じて後続する全リクエストで利用可能となります。 + 詳しくは PHP/FFI/事前ロードの完全な例 + を参照してください。 + + + 複数の C のヘッダーファイルを同一のスコープへと事前ロードできます。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + final + FFI + + + &Constants; + + public + const + int + FFI::__BIGGEST_ALIGNMENT__ + + + &Methods; + + + + + + +
+ +
+ &reftitle.constants; + + + FFI::__BIGGEST_ALIGNMENT__ + + + + + +
+
+ + &reference.ffi.entities.ffi; + +
+ diff --git a/reference/ffi/ffi/addr.xml b/reference/ffi/ffi/addr.xml new file mode 100644 index 0000000000..e9bb00eb90 --- /dev/null +++ b/reference/ffi/ffi/addr.xml @@ -0,0 +1,66 @@ + + + + + + + FFI::addr + C のデータへのアンマネージドなポインターを作成する + + + + &reftitle.description; + + public static FFI\CDataFFI::addr + FFI\CDataptr + + + 与えられた FFI\CData によって表される C のデータへの + アンマネージドなポインターを作成します。元になる ptr + は返されるポインターよりも長く生存しなければなりません。 + この関数は、主に C の関数へ引数をポインタ経由で渡すのに便利です。 + + + + + &reftitle.parameters; + + + ptr + + + C のデータ構造へのポインターのハンドル。 + + + + + + + + &reftitle.returnvalues; + + 新しく作成された FFI\CData オブジェクトを返します。 + + + + + diff --git a/reference/ffi/ffi/alignof.xml b/reference/ffi/ffi/alignof.xml new file mode 100644 index 0000000000..c459db90e9 --- /dev/null +++ b/reference/ffi/ffi/alignof.xml @@ -0,0 +1,65 @@ + + + + + + + FFI::alignof + アラインメントを取得する + + + + &reftitle.description; + + public static intFFI::alignof + FFI\CDataFFI\CTypeptr + + + 与えられた FFI\CData オブジェクトまたは + FFI\CType オブジェクトのアラインメントを返します。 + + + + + &reftitle.parameters; + + + ptr + + + C のデータまたは C の型のハンドル。 + + + + + + + + &reftitle.returnvalues; + + 与えられた FFI\CData オブジェクトまたは + FFI\CType オブジェクトのアラインメントを返します。 + + + + + diff --git a/reference/ffi/ffi/arraytype.xml b/reference/ffi/ffi/arraytype.xml new file mode 100644 index 0000000000..660e1009da --- /dev/null +++ b/reference/ffi/ffi/arraytype.xml @@ -0,0 +1,84 @@ + + + + + + + FFI::arrayType + 新しい C の配列型を動的に構築する + + + + &reftitle.description; + + public static FFI\CTypeFFI::arrayType + FFI\CTypetype + arraydimensions + + + type で指定された要素型と dimensions で指定された次元を持つ + 新しい C の配列型を動的に構築します。以下の例において $t1 と + $t2 は等しい配列型です。 + + + +]]> + + + + + + + &reftitle.parameters; + + + type + + + 有効な C の宣言を表す string か、作成済みの FFI\CType のインスタンス。 + + + + + dimensions + + + 型の次元を表す array。 + + + + + + + + &reftitle.returnvalues; + + 新しく作成した FFI\CType オブジェクトを返します。 + + + + + diff --git a/reference/ffi/ffi/cast.xml b/reference/ffi/ffi/cast.xml new file mode 100644 index 0000000000..eebafa64f2 --- /dev/null +++ b/reference/ffi/ffi/cast.xml @@ -0,0 +1,102 @@ + + + + + + + FFI::cast + C の型キャストを実行する + + + + &reftitle.description; + + public FFI\CDatanullFFI::cast + FFI\CTypestringtype + FFI\CDataintfloatboolnullptr + + + FFI::cast は、同じ C のデータ構造を参照するものの別の型が紐付けられた + FFI\CData オブジェクトを新しく作成します。 + 返却されるオブジェクトはその C のデータを所有しません。元の ptr は + その返り値よりも長く生存する必要があります。 + C の型は、有効な C の型宣言を表す string として指定するか、 + 以前作成した FFI\CType オブジェクトとして指定します。 + このインスタンスで宣言された任意の型が使えます。 + + + + + &reftitle.parameters; + + + type + + + 有効な C の宣言を表す string か、作成済みの FFI\CType のインスタンス。 + + + + + ptr + + + C のデータ構造へのポインターのハンドル。 + + + + + + + + &reftitle.returnvalues; + + 新しく作成された FFI\CData オブジェクトを返します。 + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.3.0 + + FFI::cast を static メソッドとして呼び出すのは非推奨となりました。 + + + + + + + + + + diff --git a/reference/ffi/ffi/cdef.xml b/reference/ffi/ffi/cdef.xml new file mode 100644 index 0000000000..454ce772eb --- /dev/null +++ b/reference/ffi/ffi/cdef.xml @@ -0,0 +1,117 @@ + + + + + + + FFI::cdef + 新しい FFI オブジェクトを作成する + + + + &reftitle.description; + + public static FFIFFI::cdef + stringcode"" + stringnulllib&null; + + + 新しい FFI オブジェクトを作成します。 + + + + + &reftitle.parameters; + + + code + + + 通常の C 言語の宣言 (型、構造体、関数、変数など) を含む文字列。 + 実際には、この文字列は C のヘッダーファイルからコピーペーストしてきたものかもしれません。 + + + + C のプリプロセッサーディレクティブはサポートされていません。 + 例えば、#include#define、プリプロセッサーマクロは動作しません。 + + + + + + lib + + + 共有ライブラリの名前。 + ここで指定したライブラリが読み込まれ、与えた定義とリンクされます。 + + + + lib を省略したり &null; を渡したりすると、 + RTLD_DEFAULT をサポートしているプラットフォームでは、 + 通常のグローバルスコープから code で宣言されているシンボルを探索しようとします。 + そうでないシステムでは、シンボルの解決に失敗します。 + + + + + + + + + &reftitle.returnvalues; + + 新しく作成された FFI オブジェクトを返します。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + void を返す C の関数が、FFI\CType::TYPE_VOID + ではなく PHP の null を返すようになりました。 + + + + 8.0.0 + + lib は、nullable になりました。 + + + + + + + + + diff --git a/reference/ffi/ffi/free.xml b/reference/ffi/ffi/free.xml new file mode 100644 index 0000000000..f41081400e --- /dev/null +++ b/reference/ffi/ffi/free.xml @@ -0,0 +1,63 @@ + + + + + + + FFI::free + アンマネージドなデータ構造を解放する + + + + &reftitle.description; + + public static voidFFI::free + FFI\CDataptr + + + 以前に作成されたアンマネージドなデータ構造を手で解放します。 + + + + + &reftitle.parameters; + + + ptr + + + C のデータ構造へのアンマネージドなポインターのハンドル。 + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + diff --git a/reference/ffi/ffi/isnull.xml b/reference/ffi/ffi/isnull.xml new file mode 100644 index 0000000000..fa514d8d75 --- /dev/null +++ b/reference/ffi/ffi/isnull.xml @@ -0,0 +1,63 @@ + + + + + + + FFI::isNull + FFI\CData が NULL ポインターかどうかを調べる + + + + &reftitle.description; + + public static boolFFI::isNull + FFI\CDataptr + + + FFI\CData が NULL ポインターかどうかを調べます。 + + + + + &reftitle.parameters; + + + ptr + + + C のデータ構造へのポインターのハンドル。 + + + + + + + + &reftitle.returnvalues; + + FFI\CData が NULL ポインターかどうかを返します。 + + + + + diff --git a/reference/ffi/ffi/load.xml b/reference/ffi/ffi/load.xml new file mode 100644 index 0000000000..5aa07088c5 --- /dev/null +++ b/reference/ffi/ffi/load.xml @@ -0,0 +1,118 @@ + + + + + + + FFI::load + C のヘッダーファイルから C の宣言を読み込む + + + + &reftitle.description; + + public static FFInullFFI::load + stringfilename + + + C のヘッダーファイルから C の宣言を読み込みます。 + 読み込まれる C のヘッダーファイル内で特殊な define FFI_LIB を使うことで、 + 読み込む共有ライブラリを指定することが可能です。 + + + + + &reftitle.parameters; + + + filename + + + C のヘッダーファイル名。 + + + C のプリプロセッサーディレクティブはサポートされていません。 + 例えば、#include#define、プリプロセッサーマクロは動作しません。 + ただし、次に挙げる特殊な場合を除きます。 + + + このヘッダーファイルでは、#define 文で + FFI_SCOPE 変数を定義すべきです + (例: #define FFI_SCOPE "MYLIB")。 + 詳しくは FFI クラスの概要 を参照してください。 + + + このヘッダーファイルでは、#define 文で + FFI_LIB 変数を定義することで、公開するライブラリを指定しても構いません。 + それがシステムライブラリなら、必要なのはファイル名だけです (例: #define FFI_LIB + "libc.so.6")。カスタムライブラリなら、相対パスが必要です + (例: #define FFI_LIB "./mylib.so")。 + + + + + + + + &reftitle.returnvalues; + + 新しく作成された FFI オブジェクトを返します。 + 失敗時には &null; を返します。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + 現在のシステムユーザが opcache.preload_user + 設定ディレクティブで定義されたユーザと同じである場合、 + 事前ロードスクリプト の中で + FFI::load を呼べるようになりました。 + + + + + + + + + &reftitle.seealso; + + + FFI::scope + + + + + + diff --git a/reference/ffi/ffi/memcmp.xml b/reference/ffi/ffi/memcmp.xml new file mode 100644 index 0000000000..ebb4aa044e --- /dev/null +++ b/reference/ffi/ffi/memcmp.xml @@ -0,0 +1,90 @@ + + + + + + + FFI::memcmp + メモリ領域を比較する + + + + &reftitle.description; + + public static intFFI::memcmp + stringFFI\CDataptr1 + stringFFI\CDataptr2 + intsize + + + メモリ領域 ptr1ptr2 を + size バイト分比較します。 + ptr1ptr2 も、 + ネイティブデータ構造 (FFI\CData) または + PHP の string にできます。 + + + + + &reftitle.parameters; + + + ptr1 + + + 一方のメモリ領域の開始位置。 + + + + + ptr2 + + + もう一方のメモリ領域の開始位置。 + + + + + size + + + 比較するバイト数。 + + + + + + + + &reftitle.returnvalues; + + ptr1 から始まるメモリ領域の中身が + ptr2 から始まるメモリ領域の中身より小さければ、 + 0 より小さい値を返します。 + ptr1ptr2 より大きければ、 + 0 より大きい値を返します。 + 両者が等しければ 0 を返します。 + + + + + diff --git a/reference/ffi/ffi/memcpy.xml b/reference/ffi/ffi/memcpy.xml new file mode 100644 index 0000000000..55bacdf808 --- /dev/null +++ b/reference/ffi/ffi/memcpy.xml @@ -0,0 +1,82 @@ + + + + + + + FFI::memcpy + あるメモリ領域を別の領域へコピーする + + + + &reftitle.description; + + public static voidFFI::memcpy + FFI\CDatato + FFI\CDatastringfrom + intsize + + + from のメモリ領域から size バイト分を + to のメモリ領域へとコピーします。 + + + + + &reftitle.parameters; + + + to + + + コピー先のメモリ領域の開始位置。 + + + + + from + + + コピー元のメモリ領域の開始位置。 + + + + + size + + + コピーするバイト数。 + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + diff --git a/reference/ffi/ffi/memset.xml b/reference/ffi/ffi/memset.xml new file mode 100644 index 0000000000..fb773b05db --- /dev/null +++ b/reference/ffi/ffi/memset.xml @@ -0,0 +1,82 @@ + + + + + + + FFI::memset + メモリ領域を埋める + + + + &reftitle.description; + + public static voidFFI::memset + FFI\CDataptr + intvalue + intsize + + + ptr が指すメモリ領域を size バイト分 + 与えられた value で埋めます。 + + + + + &reftitle.parameters; + + + ptr + + + 埋めるメモリ領域の開始位置。 + + + + + value + + + 埋めるのに使うバイト。 + + + + + size + + + 埋めるバイト数。 + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + diff --git a/reference/ffi/ffi/new.xml b/reference/ffi/ffi/new.xml new file mode 100644 index 0000000000..c8b3169977 --- /dev/null +++ b/reference/ffi/ffi/new.xml @@ -0,0 +1,112 @@ + + + + + + + FFI::new + C のデータ構造を作成する + + + + &reftitle.description; + + public FFI\CDatanullFFI::new + FFI\CTypestringtype + boolowned&true; + boolpersistent&false; + + + 与えられた C の型を持つネイティブデータ構造を作成します。 + このインスタンスで宣言された任意の型が使えます。 + + + + + &reftitle.parameters; + + + type + + + type は、有効な C の宣言を表す string か、 + 作成済みの FFI\CType のインスタンスです。 + + + + + owned + + + 所有された (マネージドな) データを作成するか、アンマネージドなデータを作成するか。 + マネージドデータは返される FFI\CData オブジェクトと共に生存し、 + そのオブジェクトへの最後の参照が PHP の通常のリファレンスカウントや GC によって解放されたときに解放されます。 + アンマネージドなデータは、不要になったら FFI::free を呼んで解放すべきです。 + + + + + persistent + + + この C のデータ構造をシステムヒープ上に永続的に確保するか (malloc を使用)、 + PHP のリクエストヒープ上に確保するか (emalloc を使用)。 + + + + + + + + &reftitle.returnvalues; + + 新しく作成された FFI\CData オブジェクトを返します。 + 失敗時には &null; を返します。 + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.3.0 + + FFI::new を static メソッドとして呼び出すのは非推奨となりました。 + + + + + + + + + + diff --git a/reference/ffi/ffi/scope.xml b/reference/ffi/ffi/scope.xml new file mode 100644 index 0000000000..8bc7c6308e --- /dev/null +++ b/reference/ffi/ffi/scope.xml @@ -0,0 +1,76 @@ + + + + + + + FFI::scope + 事前ロード中にパースされた C の宣言を使って FFI オブジェクトをインスタンス化する + + + + &reftitle.description; + + public static FFIFFI::scope + stringname + + + 事前ロード中にパースされた C の宣言を使って FFI オブジェクトをインスタンス化します。 + + + FFI::scope メソッドを同じスコープに対して複数回呼んでも安全です。 + 同じスコープを指す複数の参照は同時に読み込まれるかもしれません。 + + + + + &reftitle.parameters; + + + name + + + 特殊な FFI_SCOPE define によって定義されたスコープ名。 + + + + + + + + &reftitle.returnvalues; + + 新しく作成された FFI オブジェクトを返します。 + + + + + &reftitle.seealso; + + + FFI::load + + + + + + diff --git a/reference/ffi/ffi/sizeof.xml b/reference/ffi/ffi/sizeof.xml new file mode 100644 index 0000000000..5dff77d9e4 --- /dev/null +++ b/reference/ffi/ffi/sizeof.xml @@ -0,0 +1,64 @@ + + + + + + + FFI::sizeof + C のデータサイズまたは C の型サイズを取得する + + + + &reftitle.description; + + public static intFFI::sizeof + FFI\CDataFFI\CTypeptr + + + 与えられた FFI\CData オブジェクトまたは + FFI\CType オブジェクトのサイズを返します。 + + + + + &reftitle.parameters; + + + ptr + + + C のデータまたは C の型のハンドル。 + + + + + + + + &reftitle.returnvalues; + + ptr が指すメモリ領域のサイズ。 + + + + + diff --git a/reference/ffi/ffi/string.xml b/reference/ffi/ffi/string.xml new file mode 100644 index 0000000000..791af9f83b --- /dev/null +++ b/reference/ffi/ffi/string.xml @@ -0,0 +1,98 @@ + + + + + + + FFI::string + メモリ領域から PHP の文字列を作成する + + + + &reftitle.description; + + public static stringFFI::string + FFI\CDataptr + intnullsize&null; + + + ptr が指すメモリ領域の size バイト分から + PHP の string を作成します。 + + + + + &reftitle.parameters; + + + ptr + + + string を作成する元となるメモリ領域の開始位置。 + + + + + size + + + string へコピーするバイト数。 + size を省略したり &null; を指定したりする場合、 + ptr はゼロ終端された C の char 配列でなければなりません。 + + + + + + + + &reftitle.returnvalues; + + 新しく作成された PHP の string。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + size が nullable になりました。以前は + 0 がデフォルトでした。 + + + + + + + + + diff --git a/reference/ffi/ffi/type.xml b/reference/ffi/ffi/type.xml new file mode 100644 index 0000000000..fa3eba2d51 --- /dev/null +++ b/reference/ffi/ffi/type.xml @@ -0,0 +1,91 @@ + + + + + + + FFI::type + C の宣言から FFI\CType オブジェクトを作成する + + + + &reftitle.description; + + public FFI\CTypenullFFI::type + stringtype + + + この関数は、C の型宣言を持つ string を渡すと、 + 与えられた string に対応する + FFI\CType オブジェクトを作成して返します。 + このインスタンスで宣言された任意の型が使えます。 + + + + + &reftitle.parameters; + + + type + + + 有効な C の宣言を持つ string。 + + + + + + + + &reftitle.returnvalues; + + 新しく作成された FFI\CType オブジェクトを返します。 + 失敗時には &null; を返します。 + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.3.0 + + FFI::type を static メソッドとして呼び出すのは非推奨となりました。 + + + + + + + + + + diff --git a/reference/ffi/ffi/typeof.xml b/reference/ffi/ffi/typeof.xml new file mode 100644 index 0000000000..9e03f07a85 --- /dev/null +++ b/reference/ffi/ffi/typeof.xml @@ -0,0 +1,65 @@ + + + + + + + FFI::typeof + FFI\CData の FFI\CType を取得する + + + + &reftitle.description; + + public static FFI\CTypeFFI::typeof + FFI\CDataptr + + + 与えられた FFI\CData オブジェクトの型を表す + FFI\CType オブジェクトを取得します。 + + + + + &reftitle.parameters; + + + ptr + + + C のデータ構造へのポインターのハンドル。 + + + + + + + + &reftitle.returnvalues; + + 与えられた FFI\CData オブジェクトの型を表す + FFI\CType オブジェクトを返します。 + + + + + diff --git a/reference/ffi/setup.xml b/reference/ffi/setup.xml new file mode 100644 index 0000000000..de9a9a6bbf --- /dev/null +++ b/reference/ffi/setup.xml @@ -0,0 +1,118 @@ + + + + + + &reftitle.setup; + +
+ &reftitle.required; + + この拡張には、libffi library の + インストールが必要です。 + +
+ + + &reference.ffi.configure; + + +
+ &reftitle.runtime; + &extension.runtime; + + + FFI &ConfigureOptions; + + + + &Name; + &Default; + &Changeable; + &Changelog; + + + + + ffi.enable + "preload" + INI_SYSTEM + + + + ffi.preload + "" + INI_SYSTEM + + + + +
+ &ini.php.constants; +
+ + &ini.descriptions.title; + + + + + + ffi.enable + string + + + + FFI API の使用を有効化する ("true") か + 無効化する ("false") か、 + CLI SAPI と事前ロードファイルでだけ使えるよう制限する ("preload") かを + 指定します。 + + + FFI API の利用制限は、FFI クラスにのみ影響し、 + FFI\CData オブジェクトのオーバーロードされた関数には影響しません。 + つまり、事前ロードファイルで FFI\CData オブジェクトを作成し、 + それを PHP スクリプトで直接使うことは可能だということです。 + + + + + + ffi.preload + string + + + + FFI バインディングを起動時に事前ロードできるようにします。 + opcache.preload_user が設定されている場合、 + FFI の事前ロードを FFI::load で実現することはできません。 + このディレクティブは DIRECTORY_SEPARATOR で区切られたファイル名のリストを受け付けます。 + 事前ロードされたバインディングは FFI::scope を呼ぶことでアクセスできます。 + + + + + +
+ +
+ + diff --git a/reference/fileinfo/configure.xml b/reference/fileinfo/configure.xml index a03f375386..bb482b22d4 100644 --- a/reference/fileinfo/configure.xml +++ b/reference/fileinfo/configure.xml @@ -1,14 +1,10 @@ - +
&reftitle.install; - この拡張モジュールは、PHP 5.3.0 以降デフォルトで有効となります。 - それまでは fileinfo は PECL 拡張モジュールでしたが、もう PECL ではメンテナンスされていません。 - 5.3 より前のバージョンでは、 - メンテナンスが終了した PECL 拡張モジュール - を使うこともできます。 + この拡張モジュールは、デフォルトで有効になっています。 Windows ユーザーがこの拡張モジュールを使うには、同梱されている @@ -20,32 +16,6 @@ libmagic へのパッチは libmagic.patch で、これは PHP fileinfo 拡張モジュールのソースの中に含まれています。 - - - 同梱されている libmagic ライブラリの更新履歴 - - - - PHP &Version; - libmagic &Version; - 注意 - - - - - 5.3.2 - 5.03 - - - - 5.3.0 - 5.02 - - - - -
-
- + &reftitle.constants; &extension.constants; @@ -8,7 +8,7 @@ FILEINFO_NONE - (integer) + (int) @@ -19,7 +19,7 @@ FILEINFO_SYMLINK - (integer) + (int) @@ -30,35 +30,29 @@ FILEINFO_MIME_TYPE - (integer) + (int) mime タイプを返します。 - - PHP 5.3.0 以降で使用可能です。 - FILEINFO_MIME_ENCODING - (integer) + (int) ファイルの mime エンコーディングを返します。 - - PHP 5.3.0 以降で使用可能です。 - FILEINFO_MIME - (integer) + (int) @@ -69,21 +63,21 @@ FILEINFO_COMPRESS - (integer) + (int) 圧縮されたファイルを伸張します。 - スレッドセーフに関連する問題のため、PHP 5.3.0 以降は無効化されています。 + スレッドセーフに関連する問題のため、無効化されています。 FILEINFO_DEVICES - (integer) + (int) @@ -94,7 +88,7 @@ FILEINFO_CONTINUE - (integer) + (int) @@ -105,7 +99,7 @@ FILEINFO_PRESERVE_ATIME - (integer) + (int) @@ -116,7 +110,7 @@ FILEINFO_RAW - (integer) + (int) @@ -128,7 +122,7 @@ FILEINFO_EXTENSION - (integer) + (int) @@ -147,9 +141,19 @@ + + + FILEINFO_APPLE + (int) + + + + Apple creator と type を返します + + + - - - - - finfo クラス - finfo - - - - -
- &reftitle.intro; - - このクラスは、fileinfo 関数にオブジェクト指向のインターフェイスを提供します。 - -
- - -
- &reftitle.classsynopsis; - - - - finfo - - - - - finfo - - - - - - - - - -
- -
- - &reference.fileinfo.entities.finfo; - -
- - + + + + + + finfo クラス + finfo + + + + +
+ &reftitle.intro; + + このクラスは、fileinfo 関数にオブジェクト指向のインターフェイスを提供します。 + +
+ + +
+ &reftitle.classsynopsis; + + + + + finfo + + + &Methods; + + + + + + + + + +
+ +
+ + &reference.fileinfo.entities.finfo; + +
+ diff --git a/reference/fileinfo/finfo/buffer.xml b/reference/fileinfo/finfo/buffer.xml index 02285d4622..936e3f1f3c 100644 --- a/reference/fileinfo/finfo/buffer.xml +++ b/reference/fileinfo/finfo/buffer.xml @@ -1,44 +1,44 @@ - - - - - - - finfo::buffer - finfo_buffer() &Alias; - - - - &reftitle.description; - - public stringfinfo::buffer - stringstring - intoptionsFILEINFO_NONE - resourcecontext - - - &info.function.alias; finfo_buffer() - - - - - + + + + + + + finfo::buffer + finfo_buffer() &Alias; + + + + &reftitle.description; + + public stringfalsefinfo::buffer + stringstring + intflagsFILEINFO_NONE + resourcenullcontext&null; + + + &info.function.alias; finfo_buffer() + + + + + diff --git a/reference/fileinfo/finfo/construct.xml b/reference/fileinfo/finfo/construct.xml index 8e96c07c16..4b8ed53163 100644 --- a/reference/fileinfo/finfo/construct.xml +++ b/reference/fileinfo/finfo/construct.xml @@ -1,43 +1,64 @@ - - - - - - - finfo::__construct - finfo_open &Alias; - - - - &reftitle.description; - - public finfo::__construct - intoptionsFILEINFO_NONE - stringmagic_file"" - - - &info.function.alias; finfo_open - - - - - + + + + + + + finfo::__construct + finfo_open &Alias; + + + + &reftitle.description; + + public finfo::__construct + intflagsFILEINFO_NONE + stringnullmagic_database&null; + + + &info.function.alias; finfo_open + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.3 + + magic_database は、nullable になりました。 + + + + + + + + diff --git a/reference/fileinfo/finfo/file.xml b/reference/fileinfo/finfo/file.xml index 75f9b471fc..b38cdbdfc5 100644 --- a/reference/fileinfo/finfo/file.xml +++ b/reference/fileinfo/finfo/file.xml @@ -1,44 +1,44 @@ - - - - - - - finfo::file - finfo_file() &Alias; - - - - &reftitle.description; - - public stringfinfo::file - stringfile_name - intoptionsFILEINFO_NONE - resourcecontext - - - &info.function.alias; finfo_file() - - - - - + + + + + + + finfo::file + finfo_file() &Alias; + + + + &reftitle.description; + + public stringfalsefinfo::file + stringfilename + intflagsFILEINFO_NONE + resourcenullcontext&null; + + + &info.function.alias; finfo_file() + + + + + diff --git a/reference/fileinfo/finfo/set-flags.xml b/reference/fileinfo/finfo/set-flags.xml index 111a430d9b..0d8fe33633 100644 --- a/reference/fileinfo/finfo/set-flags.xml +++ b/reference/fileinfo/finfo/set-flags.xml @@ -1,41 +1,41 @@ - - - - - - finfo::set_flags - finfo_set_flags() &Alias; - - - - &reftitle.description; - - public boolfinfo::set_flags - intoptions - - - &info.function.alias; finfo_set_flags() - - - - - + + + + + + + finfo::set_flags + finfo_set_flags() &Alias; + + + + &reftitle.description; + + public truefinfo::set_flags + intflags + + + &info.function.alias; finfo_set_flags() + + + + diff --git a/reference/fileinfo/functions/finfo-buffer.xml b/reference/fileinfo/functions/finfo-buffer.xml index 409b4a0ce2..f1f0448b10 100644 --- a/reference/fileinfo/functions/finfo-buffer.xml +++ b/reference/fileinfo/functions/finfo-buffer.xml @@ -1,6 +1,6 @@ - + @@ -11,19 +11,19 @@ &reftitle.description; &style.procedural; - - stringfinfo_buffer - resourcefinfo + + stringfalsefinfo_buffer + finfofinfo stringstring - intoptionsFILEINFO_NONE - resourcecontext + intflagsFILEINFO_NONE + resourcenullcontext&null; &style.oop; - - public stringfinfo::buffer + + public stringfalsefinfo::buffer stringstring - intoptionsFILEINFO_NONE - resourcecontext + intflagsFILEINFO_NONE + resourcenullcontext&null; @@ -38,9 +38,7 @@ finfo - - finfo_open が返す fileinfo リソース。 - + &fileinfo.parameters.finfo; @@ -52,7 +50,7 @@ - options + flags ひとつあるいは複数のFileinfo @@ -78,6 +76,29 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &fileinfo.changelog.finfo-object; + + 8.0.0 + + context は、nullable になりました。 + + + + + + + &reftitle.examples; @@ -111,7 +132,6 @@ application/x-sh; charset=us-ascii - - + finfo_close - fileinfo リソースを閉じる + fileinfo インスタンスを閉じる + + &warn.deprecated.function-8-5-0; + &reftitle.description; - + + #[\Deprecated] boolfinfo_close - resourcefinfo + finfofinfo - この関数は、finfo_open がオープンしたリソースを閉じます。 + この関数は、finfo_open がオープンしたインスタンスを閉じます。 @@ -25,9 +29,7 @@ finfo - - finfo_open が返す fileinfo リソース。 - + &fileinfo.parameters.finfo; @@ -40,8 +42,24 @@
- + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &fileinfo.changelog.finfo-object; + + + + + - + @@ -11,19 +11,19 @@ &reftitle.description; &style.procedural; - - stringfinfo_file - resourcefinfo - stringfile_name - intoptionsFILEINFO_NONE - resourcecontext + + stringfalsefinfo_file + finfofinfo + stringfilename + intflagsFILEINFO_NONE + resourcenullcontext&null; &style.oop; - - public stringfinfo::file - stringfile_name - intoptionsFILEINFO_NONE - resourcecontext + + public stringfalsefinfo::file + stringfilename + intflagsFILEINFO_NONE + resourcenullcontext&null; @@ -38,13 +38,11 @@ finfo - - finfo_open が返す fileinfo リソース。 - + &fileinfo.parameters.finfo; - file_name + filename 調べるファイルの名前。 @@ -52,7 +50,7 @@ - options + flags ひとつあるいは複数のFileinfo @@ -75,11 +73,34 @@ &reftitle.returnvalues; - file_name のテキスト表現、あるいはエラーが発生した場合に + filename のテキスト表現、あるいはエラーが発生した場合に &false; を返します。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &fileinfo.changelog.finfo-object; + + 8.0.0 + + context は、nullable になりました。 + + + + + + + &reftitle.examples; @@ -118,7 +139,6 @@ application/vnd.ms-excel - - + finfo_open finfo::__construct - 新しい fileinfo リソースを作成する + 新しい fileinfo インスタンスを作成する &reftitle.description; &style.procedural; - - resourcefinfo_open - intoptionsFILEINFO_NONE - stringmagic_file"" + + finfofalsefinfo_open + intflagsFILEINFO_NONE + stringnullmagic_database&null; &style.oop; (コンストラクタ) - + public finfo::__construct - intoptionsFILEINFO_NONE - stringmagic_file"" + intflagsFILEINFO_NONE + stringnullmagic_database&null; - この関数は、magic データベースをオープンしてそのリソースを返します。 + この関数は、magic データベースをオープンしてそのインスタンスを返します。 @@ -33,7 +33,7 @@ - options + flags ひとつあるいは複数のFileinfo @@ -42,7 +42,7 @@ - magic_file + magic_database magic データベースファイルの名前。通常は @@ -63,31 +63,41 @@ &reftitle.returnvalues; - (手続き型の場合のみ) 成功した場合に magic データベースリソース、&return.falseforfailure;。 + 成功した場合に + finfo クラスのインスタンスを返します。 + &return.falseforfailure;. - - &reftitle.notes; - - - PHP 5.3.11 および 5.4.1 で、magic データベースのフォーマットが変わりました。 - そのため、内部的な mime データベースも更新されました。 - この影響が特に及ぶのは、外部の magic を読み込んでいる場合です。 - 旧フォーマットの magic ファイルを読み込んでも動作しません。 - - また、mime タイプのテキスト表現が変わったものもあります。たとえば PHP の場合の返り値は - "PHP script text" ではなく "PHP script, ASCII text" となります。 - - - - - 一般的には、独自の magic データベースを使う必要がある場合を除いて、 - 組み込みの magic データベースを使うのが一番いい方法です - (magic_file を省略し、環境変数 MAGIC - も設定しないようにします)。 - - + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.1.0 + + finfo + クラスのインスタンスを返すようになりました。 + これより前のバージョンでは、 + &resource; を返していました。 + + + + 8.0.3 + + magic_database は、nullable になりました。 + + + + + @@ -137,6 +147,18 @@ text/plain; charset=us-ascii + + &reftitle.notes; + + + 一般的には、独自の magic データベースを使う必要がある場合を除いて、 + 組み込みの magic データベースを使うのが一番いい方法です + (magic_database を省略し、環境変数 MAGIC + も設定しないようにします)。 + + + + &reftitle.seealso; @@ -147,7 +169,6 @@ text/plain; charset=us-ascii - - + finfo_set_flags @@ -10,15 +10,15 @@ &reftitle.description; &style.procedural; - - boolfinfo_set_flags - resourcefinfo - intoptions + + truefinfo_set_flags + finfofinfo + intflags &style.oop; - - public boolfinfo::set_flags - intoptions + + public truefinfo::set_flags + intflags @@ -35,13 +35,11 @@ finfo - - finfo_open が返す fileinfo リソース。 - + &fileinfo.parameters.finfo; - options + flags ひとつあるいは複数のFileinfo @@ -55,12 +53,28 @@ &reftitle.returnvalues; - &return.success; + &return.true.always; + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + &fileinfo.changelog.finfo-object; + + + + + - - + @@ -11,8 +11,8 @@ &reftitle.description; - stringmime_content_type - stringfilename + stringfalsemime_content_type + resourcestringfilename magic.mime ファイルの情報を用いて、 @@ -85,7 +85,6 @@ text/plain - - + &reftitle.setup; - -
- &reftitle.required; - - PHP 5.3.0 より前のバージョンでは、この拡張モジュールをビルドするには - magic_open ライブラリが必要です。 - -
- - &reference.fileinfo.configure; - -
- &reftitle.runtime; - &no.config; -
- -
&reftitle.resources; - Fileinfo 拡張モジュールでは、一種類のリソースが使用されています。 - それは、finfo_open が返す magic - データベース記述子です。 + PHP 8.1.0 より前のバージョンでは、 + Fileinfo 拡張モジュールは、一種類のリソースを使っていました。 + finfo_open が返す magic データベース記述子です。
diff --git a/reference/filepro/book.xml b/reference/filepro/book.xml deleted file mode 100644 index c559145e69..0000000000 --- a/reference/filepro/book.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - filePro - - - - &reftitle.intro; - - これらの関数により、filePro データベースに保存されたデータに - 読み込みのみのアクセスが可能になります。 - - - filePro は、fP Technologies 社の登録商標です。filePro に関する詳細な情報は - &url.filepro; で得る事が出来ます。 - - - - &pecl.moved-ver;5.2.0. - - - - - - &reference.filepro.setup; - &reference.filepro.constants; - &reference.filepro.reference; - - - - - diff --git a/reference/filepro/configure.xml b/reference/filepro/configure.xml deleted file mode 100644 index 6ea2df0200..0000000000 --- a/reference/filepro/configure.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - -
- &reftitle.install; - - &pecl.moved-ver;5.2.0 - - - &pecl.info; - &url.pecl.package;filepro - -
- - diff --git a/reference/filepro/constants.xml b/reference/filepro/constants.xml deleted file mode 100644 index ebbae2c0ac..0000000000 --- a/reference/filepro/constants.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - &reftitle.constants; - &no.constants; - - - - diff --git a/reference/filepro/functions/filepro-fieldcount.xml b/reference/filepro/functions/filepro-fieldcount.xml deleted file mode 100644 index 441b4dfc93..0000000000 --- a/reference/filepro/functions/filepro-fieldcount.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - filepro_fieldcount - filePro データベース中のフィールド数を返す - - - &reftitle.description; - - intfilepro_fieldcount - - - - オープンした filePro データベースのフィールド(カラム)の数を返します。 - - - - &reftitle.returnvalues; - - オープンした filePro データベースのフィールド数、 - あるいはエラーの場合に &false; を返します。 - - - - &reftitle.seealso; - - - filepro - - - - - - diff --git a/reference/filepro/functions/filepro-fieldname.xml b/reference/filepro/functions/filepro-fieldname.xml deleted file mode 100644 index bc1b034305..0000000000 --- a/reference/filepro/functions/filepro-fieldname.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - filepro_fieldname - フィールド名を取得する - - - &reftitle.description; - - stringfilepro_fieldname - intfield_number - - - field_number に対応するフィールド名を返します。 - - - - &reftitle.parameters; - - - - field_number - - - フィールド番号。 - - - - - - - - &reftitle.returnvalues; - - フィールド名を表す文字列、あるいはエラーの場合に &false; を返します。 - - - - - diff --git a/reference/filepro/functions/filepro-fieldtype.xml b/reference/filepro/functions/filepro-fieldtype.xml deleted file mode 100644 index 7ecbebd333..0000000000 --- a/reference/filepro/functions/filepro-fieldtype.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - filepro_fieldtype - フィールド型を取得する - - - &reftitle.description; - - stringfilepro_fieldtype - intfield_number - - - field_number に対応した編集フィールド型を返します。 - - - - &reftitle.parameters; - - - - field_number - - - フィールド番号。 - - - - - - - - &reftitle.returnvalues; - - 編集フィールド型を表す文字列、あるいはエラーの場合に &false; を返します。 - - - - - diff --git a/reference/filepro/functions/filepro-fieldwidth.xml b/reference/filepro/functions/filepro-fieldwidth.xml deleted file mode 100644 index 0ea3527aac..0000000000 --- a/reference/filepro/functions/filepro-fieldwidth.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - filepro_fieldwidth - フィールド幅を取得する - - - &reftitle.description; - - intfilepro_fieldwidth - intfield_number - - - field_number に対応するフィールドの幅を返します。 - - - - &reftitle.parameters; - - - - field_number - - - フィールド番号。 - - - - - - - - &reftitle.returnvalues; - - フィールドの幅を表す整数値、あるいはエラーの場合に &false; を返します。 - - - - - diff --git a/reference/filepro/functions/filepro-retrieve.xml b/reference/filepro/functions/filepro-retrieve.xml deleted file mode 100644 index f3f3968ad5..0000000000 --- a/reference/filepro/functions/filepro-retrieve.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - filepro_retrieve - filePro データベースからデータを取得する - - - &reftitle.description; - - stringfilepro_retrieve - introw_number - intfield_number - - - データベースの指定された位置から読み込んだデータを返します。 - - ¬e.sm.uidcheck; - - - &reftitle.parameters; - - - - row_number - - - 行番号。ゼロから - 全行数マイナス 1 までの間である必要があります - (0..filepro_rowcount - 1)。 - - - - - field_number - - - フィールド番号。ゼロから - 全フィールド数マイナス 1 までの間である必要があります - (0..filepro_fieldcount - 1)。 - - - - - - - - &reftitle.returnvalues; - - 指定したデータ、あるいはエラーの場合に &false; を返します。 - - - - - diff --git a/reference/filepro/functions/filepro-rowcount.xml b/reference/filepro/functions/filepro-rowcount.xml deleted file mode 100644 index cddfc81f58..0000000000 --- a/reference/filepro/functions/filepro-rowcount.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - filepro_rowcount - filePro データベースの行の数を返します - - - &reftitle.description; - - intfilepro_rowcount - - - - オープンされた filePro データベースにおける行の数を返します。 - - ¬e.sm.uidcheck; - - - &reftitle.returnvalues; - - オープンされた filePro データベースにおける行の数を返します。 - エラーの場合は &false; を返します。 - - - - &reftitle.seealso; - - - filepro - - - - - - diff --git a/reference/filepro/functions/filepro.xml b/reference/filepro/functions/filepro.xml deleted file mode 100644 index 41964316ab..0000000000 --- a/reference/filepro/functions/filepro.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - filepro - map ファイルの読み込みと照合を行う - - - &reftitle.description; - - boolfilepro - stringdirectory - - - この関数は、map ファイルを読み込み、照合を行います。 - 続いて、フィールドの数および情報を保存します。 - - - データベースのロックを行わないため、PHP でオープンしている間は、 - filePro データベースの修正を避ける必要があります。 - - ¬e.sm.uidcheck; - - - &reftitle.parameters; - - - - directory - - - map ディレクトリ。 - - - - - - - - &reftitle.returnvalues; - - &return.success; - - - - - diff --git a/reference/filepro/reference.xml b/reference/filepro/reference.xml deleted file mode 100644 index e03578cb43..0000000000 --- a/reference/filepro/reference.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - filePro &Functions; - -&reference.filepro.entities.functions; - - - - diff --git a/reference/filepro/setup.xml b/reference/filepro/setup.xml deleted file mode 100644 index f909211390..0000000000 --- a/reference/filepro/setup.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - &reftitle.setup; - - -
- &reftitle.required; - &no.requirement; -
- - - - &reference.filepro.configure; - - - -
- &reftitle.runtime; - &no.config; -
- - - -
- &reftitle.resources; - &no.resource; -
- - -
- - - diff --git a/reference/filesystem/book.xml b/reference/filesystem/book.xml index eafaaff612..ff26c5e9eb 100644 --- a/reference/filesystem/book.xml +++ b/reference/filesystem/book.xml @@ -11,7 +11,7 @@ &reftitle.intro; - この拡張モジュールを構築するには外部ライブラリを必要としませんが、 + この拡張モジュールを構築するには外部ライブラリは必要ありませんが、 Linux 上で LFS (ラージファイル) をサポートする PHP を希望する場合は、 最新の glibc を入手し、次のコンパイラフラグ -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 diff --git a/reference/filesystem/constants.xml b/reference/filesystem/constants.xml index 5719e7b760..848f4dcef0 100644 --- a/reference/filesystem/constants.xml +++ b/reference/filesystem/constants.xml @@ -1,6 +1,6 @@ - + &reftitle.constants; &extension.constants; @@ -8,302 +8,368 @@ SEEK_SET - (integer) + (int) - + - SEEK_CUR - (integer) + SEEK_CUR + (int) - + - SEEK_END - (integer) + SEEK_END + (int) - + - LOCK_SH - (integer) + LOCK_SH + (int) - + - LOCK_EX - (integer) + LOCK_EX + (int) - + - LOCK_UN - (integer) + LOCK_UN + (int) - + - LOCK_NB - (integer) + LOCK_NB + (int) - + - + + + + + <function>file</function> の + <parameter>flags</parameter> パラメータで使える定数 + + + - GLOB_BRACE - (integer) + FILE_USE_INCLUDE_PATH + (int) - + filename を + include_path + から探します。 - + - GLOB_ONLYDIR - (integer) + FILE_NO_DEFAULT_CONTEXT + (int) - - + - GLOB_MARK - (integer) + FILE_APPEND + (int) - + 既存のファイルに追記します。 - + - GLOB_NOSORT - (integer) + FILE_IGNORE_NEW_LINES + (int) - + EOL (行末) 文字を取り除きます。 - + - GLOB_NOCHECK - (integer) + FILE_SKIP_EMPTY_LINES + (int) - + 空行を読み飛ばします。 - + + - GLOB_NOESCAPE - (integer) + FILE_BINARY + (int) - + + バイナリモード + + + この定数は何の効果もありません。 + PHP 8.1.0 以降は非推奨になっています。 + + + + + - + + + FILE_TEXT + (int) + + + + テキストモード + + + この定数は何の効果もありません。 + PHP 8.1.0 以降は非推奨になっています。 + + + + + + + + <function>glob</function> の + <parameter>flags</parameter> パラメータで使える定数 + + GLOB_AVAILABLE_FLAGS - (integer) + (int) - + 全ての GLOB_* フラグの組み合わせ。以下と等しいです: + 0 | GLOB_BRACE | + GLOB_MARK | GLOB_NOSORT | + GLOB_NOCHECK | GLOB_NOESCAPE | + GLOB_ERR | GLOB_ONLYDIR - + - PATHINFO_DIRNAME - (integer) + GLOB_BRACE + (int) - + {a,b,c} を 'a', 'b', 'c' のいずれかにマッチするように展開します。 + + + GLOB_BRACE は Solaris や Alpine Linux のような non GNU なシステムでは使えないことがあります。 + + - + - PATHINFO_BASENAME - (integer) + GLOB_ERR + (int) - + (ディレクトリが読み取れない場合のような) 読み取りエラーの場合に停止します。 + デフォルトでは、エラーは無視されます。 - + - PATHINFO_EXTENSION - (integer) + GLOB_MARK + (int) - + スラッシュ(Windows の場合はバックスラッシュ) + を返されるディレクトリに個別に追加します。 - + - PATHINFO_FILENAME - (integer) + GLOB_NOCHECK + (int) - PHP 5.2.0 以降。 + マッチするファイルが見つからない場合に、検索パターンを返します。 - + - FILE_USE_INCLUDE_PATH - (integer) + GLOB_NOESCAPE + (int) - filename を - include_path - から探します。 + バックスラッシュは、メタキャラクタをクォートしません。 - + - FILE_NO_DEFAULT_CONTEXT - (integer) + GLOB_NOSORT + (int) + ディレクトリ内に存在するかのように、ファイルを返します(ソートは行いません)。 + このフラグを使わない場合、パス名はアルファベット順でソートされます。 - + - FILE_APPEND - (integer) + GLOB_ONLYDIR + (int) - 既存のファイルに追記します。 + パターンにマッチするディレクトリエントリのみを返します。 - + + + + + <function>pathinfo</function> の + <parameter>flags</parameter> パラメータで使える定数 + + - FILE_IGNORE_NEW_LINES - (integer) + PATHINFO_ALL + (int) - EOL (行末) 文字を取り除きます。 + pathinfo の全ての情報です。 + 連想配列として返されます。 - + - FILE_SKIP_EMPTY_LINES - (integer) + PATHINFO_DIRNAME + (int) - 空行を読み飛ばします。 + ファイルのディレクトリパス - - + - FILE_BINARY - (integer) + PATHINFO_BASENAME + (int) - - バイナリモード (PHP 5.2.7 以降)。 - - - この定数は何の効果もありません。 - 前方互換性 のためだけに用意されています。 - - - + + ディレクトリ名、またはファイル名とその拡張子 + - - + - FILE_TEXT - (integer) + PATHINFO_EXTENSION + (int) - - テキストモード (PHP 5.2.7 以降)。 - - - この定数は何の効果もありません。 - 前方互換性 のためだけに用意されています。 - - - + + ファイルの拡張子 + + + + PATHINFO_FILENAME + (int) + + + + ファイル名(拡張子なし)またはディレクトリ名 + + + + + + + + <function>parse_ini_file</function> と + <function>parse_ini_string</function> の + <parameter>scanner_mode</parameter> パラメータで使える定数 + INI_SCANNER_NORMAL - (integer) + (int) - 通常の INI スキャナモード (PHP 5.3 以降)。 + 通常の INI スキャナモード @@ -311,31 +377,38 @@ INI_SCANNER_RAW - (integer) + (int) - 生の INI スキャナモード (PHP 5.3 以降)。 + 生の INI スキャナモード - + INI_SCANNER_TYPED - (integer) + (int) - 型つきの INI スキャナモード (PHP 5.6.1 以降)。 + 型つきの INI スキャナモード - + + + + + <function>fnmatch</function> の + <parameter>flags</parameter> パラメータで使える定数 + + FNM_NOESCAPE - (integer) + (int) @@ -347,7 +420,7 @@ FNM_PATHNAME - (integer) + (int) @@ -359,7 +432,7 @@ FNM_PERIOD - (integer) + (int) @@ -371,7 +444,7 @@ FNM_CASEFOLD - (integer) + (int) @@ -379,10 +452,113 @@ + + + PHP のファイルアップロード関連の定数 + + + UPLOAD_ERR_CANT_WRITE + (int) + + + + ファイルをディスクに書き込めませんでした。 + この定数の値は 7 です。 + + + + + + UPLOAD_ERR_EXTENSION + (int) + + + + PHP 拡張機能がファイルアップロードを停止させました。 + PHP はどの拡張機能がファイルアップロードを止めたのかを検出する手段を提供していません。phpinfo で表示される、ロード済みの拡張機能の一覧が手掛かりになるかもしれません。 + この定数の値は 8 です。 + + + + + + UPLOAD_ERR_FORM_SIZE + (int) + + + + アップロードされたファイルが、 + HTML フォームで指定された MAX_FILE_SIZE + を超えています。 + この定数の値は 2 です。 + + + + + + UPLOAD_ERR_INI_SIZE + (int) + + + + アップロードされたファイルが、 + &php.ini; の upload_max_filesize + を超えています。 + この定数の値は 1 です。 + + + + + + UPLOAD_ERR_NO_FILE + (int) + + + + アップロードされたファイルはありません。 + この定数の値は 4 です。 + + + + + + UPLOAD_ERR_NO_TMP_DIR + (int) + + + + テンポラリフォルダがありません。 + この定数の値は 6 です。 + + + + + + UPLOAD_ERR_OK + (int) + + + + エラーはありません。ファイルのアップロードは成功しました。 + この定数の値は 0 です。 + + + + + + UPLOAD_ERR_PARTIAL + (int) + + + + アップロードされたファイルは一部だけでした。 + この定数の値は 3 です。 + + + - - - + + + basename パスの最後にある名前の部分を返す @@ -12,7 +13,7 @@ stringbasename stringpath - stringsuffix + stringsuffix"" ファイルあるいはディレクトリへのパスを含む文字列を受け取って、 @@ -30,6 +31,8 @@ basename はロケールに依存します。 マルチバイト文字を含むパスで正しい結果を得るには、それと一致するロケールを setlocale で設定しておかなければなりません。 + 現在のロケールから見て不正な文字が path に含まれていた場合、 + basename の動作は未定義です。 @@ -115,7 +118,6 @@ echo "6) ".basename("/"); - - + - + chgrp ファイルのグループを変更する @@ -13,7 +13,7 @@ boolchgrp stringfilename - mixedgroup + stringintgroup (名前または番号で指定した)ファイル filename @@ -81,7 +81,6 @@ printf($format, $filename, date('r'), filegroup($filename)); &reftitle.notes; ¬e.no-remote; - ¬e.sm.uidcheck; Windows で通常ファイルに対してこの関数を実行すると、静かに失敗します。 @@ -100,7 +99,6 @@ printf($format, $filename, date('r'), filegroup($filename)); - - - - + + + chmod ファイルのモードを変更する @@ -13,11 +13,11 @@ boolchmod stringfilename - intmode + intpermissions 指定されたファイルのモードを - mode で指定したものに変更しようと試みます。 + permissions で指定したものに変更しようと試みます。 @@ -34,12 +34,12 @@ - mode + permissions - mode + permissions は自動的には 8 進数と見なされないので注意してください。 - 意図した操作を行うには、mode + 意図した操作を行うには、permissions の前にゼロ(0)を付ける必要があります。 "g+w" のような文字列は正常に動作しません。 @@ -57,7 +57,7 @@ chmod("/somedir/somefile", 0755); // 8 進数; 正しいモードの値 - mode 引数は 3 つの 8 進法による数値で構成され、 + permissions 引数は 3 つの 8 進法による数値で構成され、 所有者自身、所有者が属するグループ、その他のユーザーの順で アクセス制限を設定します。一つ一つの数字はそのターゲットに対し 許可を与えます。1 は実行権限、2 はファイルに対する書き込み権限、 @@ -100,6 +100,13 @@ chmod("/somedir/somefile", 0750); + + &reftitle.errors; + + 失敗時には E_WARNING が発生します。 + + + &reftitle.notes; @@ -111,14 +118,6 @@ chmod("/somedir/somefile", 0750); ¬e.no-remote; - - - &safemode; が有効な場合、操作しようとしているファイルあるいは - ディレクトリの UID(所有者)がスクリプトの実行ユーザーと同じかどうかを - PHP がチェックします。さらに、SUID・SGID や sticky ビットを - 設定することはできません。 - - @@ -134,7 +133,6 @@ chmod("/somedir/somefile", 0750); - - + - + chown ファイルの所有者を変更する @@ -13,7 +13,7 @@ boolchown stringfilename - mixeduser + stringintuser ファイルfilenameの所有者を(名前または番号で指定した) @@ -99,7 +99,6 @@ Array &reftitle.notes; ¬e.no-remote; - ¬e.sm.uidcheck; Windows で通常ファイルに対してこの関数を実行すると、静かに失敗します。 @@ -118,7 +117,6 @@ Array - - - + + clearstatcache @@ -13,7 +13,7 @@ voidclearstatcache boolclear_realpath_cache&false; - stringfilename + stringfilename"" statlstat、 @@ -73,7 +73,7 @@ clear_realpath_cache - realpath キャッシュをクリアするか否か。 + realpath キャッシュクリアするかどうか。 @@ -81,7 +81,7 @@ filename - realpath キャッシュと stat キャッシュを特定のファイル名だけに対してクリアする。 + realpath キャッシュを特定のファイル名だけに対してクリアする。 clear_realpath_cache が &true; の場合にのみ使用。 @@ -98,31 +98,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - オプションのパラメータ clear_realpath_cache - と filename が追加されました。 - - - - - - - - &reftitle.examples; @@ -165,7 +140,6 @@ UID @ Sun, 12 Oct 2008 20:48:28 +0100: ross - - + @@ -12,12 +12,12 @@ &reftitle.description; boolcopy - stringsource - stringdest - resourcecontext + stringfrom + stringto + resourcenullcontext&null; - ファイル sourcedest にコピーします。 + ファイル fromto にコピーします。 ファイルを移動したいならば、rename @@ -30,7 +30,7 @@ - source + from コピー元ファイルへのパス。 @@ -38,10 +38,10 @@ - dest + to - コピー先のパス。dest が URL の場合、 + コピー先のパス。to が URL の場合、 既存ファイルへの上書きをラッパーがサポートしていない場合にはコピーが失敗します。 @@ -71,37 +71,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.4 - - context パラメータが実際に効力を持つようになりました。 - 以前のバージョンでは、context に何を指定しても無視されていました。 - - - - 5.3.0 - - コンテキストのサポートが追加されました。 - - - - - - - - &reftitle.examples; diff --git a/reference/filesystem/functions/delete.xml b/reference/filesystem/functions/delete.xml index 6f65825607..3c1c90423b 100644 --- a/reference/filesystem/functions/delete.xml +++ b/reference/filesystem/functions/delete.xml @@ -2,10 +2,10 @@ - + delete - unlinkunset を参照してください + unlinkunset を参照ください @@ -15,7 +15,7 @@ もしあなたがファイルを削除する方法を探してこのページにたどり着いたのなら、 unlink を試してください。 ローカルスコープから変数を削除する場合は、 - unset を参照してください。 + unset を参照ください。 diff --git a/reference/filesystem/functions/dirname.xml b/reference/filesystem/functions/dirname.xml index 0b8d2e9199..d9da642536 100644 --- a/reference/filesystem/functions/dirname.xml +++ b/reference/filesystem/functions/dirname.xml @@ -1,6 +1,6 @@ - + @@ -28,9 +28,17 @@ - dirname はロケールに依存します。 - マルチバイト文字を含むパスで正しい結果を得るには、それと一致するロケールを - setlocale で設定しておかなければなりません。 + Windows では、dirname + は現在設定されているコードページに依存します。 + よって、マルチバイト文字が含まれたパスを正しく表示するには、 + それと一致するコードページが設定されていなければいけません。 + 現在のコードページから見て不正な文字が path に含まれていた場合、 + basename の動作は未定義です。 + + + Windows 以外のシステムでは、 + path はASCII と互換性があるエンコーディングでエンコードされていると想定されています。 + そうでない場合、この関数の動作は未定義です。 @@ -77,30 +85,25 @@ /component 部分を取り除いた path を返します。 - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.0.0 - - オプションのパラメータ levels が追加されました。 - - - - - - + + + この関数をトップレベルディレクトリまで走査するループで使う場合は、 + 注意が必要です。なぜなら、無限ループに陥る可能性があるからです。 + + + +]]> + + + + diff --git a/reference/filesystem/functions/disk-free-space.xml b/reference/filesystem/functions/disk-free-space.xml index 54f680e6a4..8b898a5fdf 100644 --- a/reference/filesystem/functions/disk-free-space.xml +++ b/reference/filesystem/functions/disk-free-space.xml @@ -1,6 +1,6 @@ - + disk_free_space @@ -10,7 +10,7 @@ &reftitle.description; - floatdisk_free_space + floatfalsedisk_free_space stringdirectory diff --git a/reference/filesystem/functions/disk-total-space.xml b/reference/filesystem/functions/disk-total-space.xml index 6d5f04d07e..287b23973e 100644 --- a/reference/filesystem/functions/disk-total-space.xml +++ b/reference/filesystem/functions/disk-total-space.xml @@ -1,6 +1,6 @@ - + disk_total_space @@ -10,7 +10,7 @@ &reftitle.description; - floatdisk_total_space + floatfalsedisk_total_space stringdirectory diff --git a/reference/filesystem/functions/fclose.xml b/reference/filesystem/functions/fclose.xml index 86db70fc6c..c63e902214 100644 --- a/reference/filesystem/functions/fclose.xml +++ b/reference/filesystem/functions/fclose.xml @@ -1,7 +1,7 @@ - - + + fclose オープンされたファイルポインタをクローズする @@ -11,10 +11,10 @@ &reftitle.description; boolfclose - resourcehandle + resourcestream - handleが指しているファイルをクローズします。 + streamが指しているファイルをクローズします。 @@ -23,7 +23,7 @@ - handle + stream ファイルポインタは有効なものでなければならず、また @@ -74,7 +74,6 @@ fclose($handle); - + + + + fdatasync + データをファイルに同期する(但しメタデータは除く) + + + + &reftitle.description; + + boolfdatasync + resourcestream + + + この関数は、 + stream の内容をストレージに同期します。 + fsync に似ていますが、ファイルのメタデータは同期しません。 + この点だけが、POSIX システムで唯一異なることに注意して下さい。 + Windows では、この関数は fsync のエイリアスになっています。 + + + + + &reftitle.parameters; + + + + stream + + &fs.validfp.all; + + + + + + + + &reftitle.returnvalues; + + &return.success; + + + + + &reftitle.examples; + + + <function>fdatasync</function> の例 + + +]]> + + + + + + + &reftitle.seealso; + + + fflush + fsync + + + + + + diff --git a/reference/filesystem/functions/feof.xml b/reference/filesystem/functions/feof.xml index 94212a6a2f..5543c303f0 100644 --- a/reference/filesystem/functions/feof.xml +++ b/reference/filesystem/functions/feof.xml @@ -1,8 +1,8 @@ - - - + + + feof ファイルポインタがファイル終端に達しているかどうか調べる @@ -12,7 +12,7 @@ &reftitle.description; boolfeof - resourcehandle + resourcestream ファイルポインタがファイル終端に達しているかどうかを調べます。 @@ -24,7 +24,7 @@ - handle + stream &fs.validfp.all; @@ -102,7 +102,6 @@ fclose($file); - - - + + + fflush 出力をファイルにフラッシュする @@ -11,11 +12,11 @@ &reftitle.description; boolfflush - resourcehandle + resourcestream この関数は、バッファリングされた全ての出力をファイルハンドル - handle が指すリソースに強制的に書き込みます。 + stream が指すリソースに強制的に書き込みます。 @@ -24,7 +25,7 @@ - handle + stream &fs.validfp.all; @@ -74,7 +75,6 @@ fclose($file); - - - + + + fgetc ファイルポインタから1文字取り出す @@ -10,8 +11,8 @@ &reftitle.description; - stringfgetc - resourcehandle + stringfalsefgetc + resourcestream 指定したファイルポインタから 1 文字読み出します。 @@ -23,7 +24,7 @@ - handle + stream &fs.validfp.all; @@ -35,7 +36,7 @@ &reftitle.returnvalues; - handleが指すファイルポインタから 1 文字読み出し、 + streamが指すファイルポインタから 1 文字読み出し、 その文字からなる文字列を返します。EOF の場合に &false; を返します。 &return.falseproblem; @@ -82,7 +83,6 @@ while (false !== ($char = fgetc($fp))) { - - + - + fgetcsv ファイルポインタから行を取得し、CSVフィールドを処理する @@ -11,11 +11,11 @@ &reftitle.description; - arrayfgetcsv - resourcehandle - intlength0 - stringdelimiter"," - stringenclosure'"' + arrayfalsefgetcsv + resourcestream + intnulllength&null; + stringseparator"," + stringenclosure"\"" stringescape"\\" @@ -25,11 +25,12 @@ 読み込んだフィールドを含む配列を返すという違いがあります。 - - この関数はロケール設定を考慮します。もし LC_CTYPE - が例えば en_US.UTF-8 の場合、 - 1 バイトエンコーディングのファイルは間違って読み込まれるかもしれません。 - + + この関数はロケール設定を考慮します。 + 例えば、LC_CTYPEen_US.UTF-8 の場合、 + 1 バイトエンコーディングでエンコードされたデータが + 間違って処理されるかもしれません。 + @@ -38,7 +39,7 @@ - handle + stream ファイルポインタは有効なものでなければならず、また @@ -59,16 +60,18 @@ ただし、フィールド囲いこみ文字の内部では、この分割は発生しません。 - このパラメータを省略 (もしくは PHP 5.1.0 以降で 0 を設定) すると、 + このパラメータを省略 (もしくは 0 を設定、 + PHP 8.0.0 以降では &null; を設定) すると、 最大行長は制限されません。この場合、若干動作が遅くなります。 - delimiter + separator - オプションの delimiter パラメータで、フィールドのデリミタ (1 文字のみ) を設定します。 + separator パラメータで、フィールドのデリミタを設定します。 + シングルバイト文字 1 文字のみでなければなりません。 @@ -76,7 +79,8 @@ enclosure - オプションの enclosure パラメータで、フィールド囲いこみ文字 (1 文字のみ) を設定します。 + オプションの enclosure パラメータで、フィールド囲いこみ文字を設定します。 + シングルバイト文字 1 文字のみでなければなりません。 @@ -84,8 +88,9 @@ escape - オプションの escape パラメータで、エスケープ文字 (最大で1文字) を設定します。 - 空文字列("") を指定すると、プロプライエタリなエスケープ機構が無効になります。 + オプションの escape パラメータで、エスケープ文字を設定します。 + シングルバイト文字 1 文字のみ、または空文字列でなければなりません。 + 空文字列("") を指定すると、(RFC 4180 に準拠していない) 独自仕様のエスケープ機構が無効になります。 @@ -99,16 +104,26 @@ 特別な意味はありません。それ自身をエスケープする意味ですらありません。 + + + PHP 8.4.0 以降では、escape + のデフォルト値に依存することは非推奨となりました。 + 位置指定の引数か、名前付き引数 + を使用して明示的に指定する必要があります。 + + + &warning.csv.escape-parameter; &reftitle.returnvalues; 読み込んだフィールドの内容を含む数値添字配列を返します。 + &return.falseforfailure; @@ -118,11 +133,18 @@ ¬e.line-endings; - - fgetcsv は、無効な handle - を受け取った場合に &null; を返します。 - また、ファイルの終端に達した場合を含めたその他のエラー時には &false; を返します。 - + + + + &reftitle.errors; + + separator または enclosure が + 1 バイト長ではない場合、ValueError をスローします。 + + + escape が 1 バイト長、または空文字列ではない場合、 + ValueError をスローします。 + @@ -138,34 +160,38 @@ - 7.4.0 + 8.4.0 - escape パラメータが空文字列を受け入れるようになりました。 - この場合、プロプライエタリなエスケープ機構が無効になります。 + escape のデフォルト値に依存することは、 + 非推奨になりました。 - 5.3.0 + 8.3.0 - escape パラメータが追加されました。 + 最後のフィールドが、 + 閉じられていないフィールド囲いこみ文字だけの場合、 + null バイト 1 つの文字列ではなく、空文字列を返すようになりました。 - 5.1.0 + 8.0.0 - length が必須ではなくなりました。 - デフォルトは 0 で、これは長さの制限がないことを表します。 - + length は、nullable になりました。 + + + + 7.4.0 + + escape パラメータが空文字列を受け入れるようになりました。 + この場合、(RFC 4180 に準拠していない) 独自仕様のエスケープ機構が無効になります。 + &warning.csv.escape-parameter; @@ -197,19 +223,20 @@ if (($handle = fopen("test.csv", "r")) !== FALSE) { &reftitle.seealso; - - - str_getcsv - explode - file - pack - fputcsv - - + + fputcsv + str_getcsv + SplFileObject::fgetcsv + SplFileObject::fputcsv + SplFileObject::setCsvControl + SplFileObject::getCsvControl + explode + file + pack + - - + @@ -11,9 +11,9 @@ &reftitle.description; - stringfgets - resourcehandle - intlength + stringfalsefgets + resourcestream + intnulllength&null; ファイルポインタから 1 行取得します。 @@ -25,7 +25,7 @@ - handle + stream &fs.validfp.all; @@ -35,7 +35,7 @@ 読み出しは、length - 1 - バイト読み出したか、(返り値に含まれる) + バイト読み出したか、(戻り値に含まれる) 改行文字を検出したか、EOF に達したかのいずれかが起こった時点で終了します。 length が指定されない場合は、行末に達するまで読み続けます。 @@ -48,7 +48,7 @@ &reftitle.returnvalues; - handle で指定したファイルポインタから最大 + stream で指定したファイルポインタから最大 length - 1 バイト読み出し、 その文字列を返します。ファイルポインタから読み込むデータがもうない場合は &false; を返します。 @@ -66,16 +66,21 @@ ]]> diff --git a/reference/filesystem/functions/fgetss.xml b/reference/filesystem/functions/fgetss.xml index 58476b9437..359192c010 100644 --- a/reference/filesystem/functions/fgetss.xml +++ b/reference/filesystem/functions/fgetss.xml @@ -1,6 +1,6 @@ - + @@ -9,7 +9,7 @@ - &warn.deprecated.function-7-3-0; + &warn.deprecated.function-7-3-0.removed-8-0-0; diff --git a/reference/filesystem/functions/file-exists.xml b/reference/filesystem/functions/file-exists.xml index 6cbe9e90fc..eaf288fdbb 100644 --- a/reference/filesystem/functions/file-exists.xml +++ b/reference/filesystem/functions/file-exists.xml @@ -1,7 +1,7 @@ - - + + file_exists @@ -52,18 +52,6 @@ &false; を返します。 - - - この関数は セーフモード - の制限のためファイルにアクセスできない場合 &false; を返します。 - しかし safe_mode_include_dir - で指定されたディレクトリに存在する場合は - include - することができます。 - - チェックは、実効ユーザーではなく実ユーザーの UID/GID @@ -73,6 +61,11 @@ &fs.file.32bit; + + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -95,11 +88,6 @@ if (file_exists($filename)) { - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; ¬e.clearstatcache; @@ -114,6 +102,7 @@ if (file_exists($filename)) { is_writable is_file file + SplFileInfo diff --git a/reference/filesystem/functions/file-get-contents.xml b/reference/filesystem/functions/file-get-contents.xml index 4f6952f0a3..24e19efb43 100644 --- a/reference/filesystem/functions/file-get-contents.xml +++ b/reference/filesystem/functions/file-get-contents.xml @@ -1,6 +1,6 @@ - + @@ -11,17 +11,17 @@ &reftitle.description; - stringfile_get_contents + stringfalsefile_get_contents stringfilename booluse_include_path&false; - resourcecontext + resourcenullcontext&null; intoffset0 - intmaxlen + intnulllength&null; この関数は file と似ていますが、 offset で指定した場所から開始し - maxlen バイト分だけ + length バイト分だけ ファイルの内容を文字列に読み込むという点が異なります。 失敗した場合、file_get_contents は &false; を返します。 @@ -59,7 +59,7 @@ を使用して インクルードパス から探すことができます。 この定数を使うことは、強い型付け + linkend="language.types.declarations.strict">強い型付け が有効になっている場合は不可能です。なぜなら、 FILE_USE_INCLUDE_PATHint だからです。 &true; を代わりに使いましょう。 @@ -92,7 +92,7 @@ - maxlen + length 読み込むデータの最大バイト数。 @@ -116,10 +116,45 @@ &reftitle.errors; - filename が見つからない場合、maxlength + filename が見つからない場合、length がゼロより小さい場合、あるいはストリーム内での指定した offset へのシークが失敗した場合に E_WARNING レベルのエラーが発生します。 + + file_get_contents 関数がディレクトリに対して呼び出されると、 + Windows では E_WARNING レベルのエラーが発生していました。 + PHP 7.4 以降では、Windows 以外のオペレーティングシステムでも同じ動きになっています。 + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.0.0 + + length は、nullable になりました。 + + + + 7.1.0 + + 負の offset をサポートするようになりました。 + + + + + + @@ -173,13 +208,13 @@ string(14) "lle Bjori Ro" array( - 'method'=>"GET", - 'header'=>"Accept-language: en\r\n" . - "Cookie: foo=bar\r\n" - ) -); +$opts = [ + 'http' => [ + 'method' => "GET", + 'header' => "Accept-language: en\r\n" . + "Cookie: foo=bar", + ] +]; $context = stream_context_create($opts); @@ -192,37 +227,6 @@ $file = file_get_contents('http://www.example.com/', false, $context); - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.1.0 - - 負の offset をサポートするようになりました。 - - - - 5.1.0 - - offset と - maxlen パラメータが追加されました。 - - - - - - - - &reftitle.notes; ¬e.bin-safe; diff --git a/reference/filesystem/functions/file-put-contents.xml b/reference/filesystem/functions/file-put-contents.xml index 5cfec957a0..d169ff9405 100644 --- a/reference/filesystem/functions/file-put-contents.xml +++ b/reference/filesystem/functions/file-put-contents.xml @@ -1,7 +1,7 @@ - - + + file_put_contents @@ -11,11 +11,11 @@ &reftitle.description; - intfile_put_contents + intfalsefile_put_contents stringfilename mixeddata intflags0 - resourcecontext + resourcenullcontext&null; この関数は、fopenfwrite、 @@ -44,11 +44,11 @@ data - 書き込むデータ。文字列, 配列 - もしくは ストリーム リソースのいずれかを指定可能です。 + 書き込むデータ。string, array + もしくは stream リソースのいずれかを指定可能です。 - dataストリーム リソースの場合は、 + datastream リソースの場合は、 ストリームのバッファに残っている内容が指定したファイルにコピーされます。 これは、stream_copy_to_stream の挙動と似ています。 @@ -175,32 +175,6 @@ file_put_contents($file, $person, FILE_APPEND | LOCK_EX); - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.1.0 - - LOCK_EX のサポートが追加され、 - data - パラメータにストリームリソースを指定することが可能になりました。 - - - - - - - - &reftitle.notes; ¬e.bin-safe; diff --git a/reference/filesystem/functions/file.xml b/reference/filesystem/functions/file.xml index 59413aea24..2c97d19a85 100644 --- a/reference/filesystem/functions/file.xml +++ b/reference/filesystem/functions/file.xml @@ -1,6 +1,6 @@ - + @@ -11,10 +11,10 @@ &reftitle.description; - arrayfile + arrayfalsefile stringfilename intflags0 - resourcecontext + resourcenullcontext&null; ファイル全体を配列に読み込みます。 @@ -77,6 +77,16 @@ + + + FILE_NO_DEFAULT_CONTEXT + + + + デフォルトのストリームコンテキストを使いません。 + + + @@ -84,12 +94,7 @@ context - - stream_context_create 関数で作成したコンテキストリソース。 - - - ¬e.context-support; - + ¬e.context-support; @@ -114,11 +119,39 @@ &reftitle.errors; + + PHP 8.3.0 以降では、flags に不正な値、 + たとえば FILE_APPEND のような値が含まれていた場合、 + ValueError がスローされます。 + ファイルが存在しない場合は E_WARNING レベルのエラーが発生します。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.3.0 + + flags に不正な値が含まれている場合、 + ValueError がスローされるようになりました。 + + + + + + + &reftitle.examples; @@ -136,10 +169,7 @@ foreach ($lines as $line_num => $line) { echo "Line #{$line_num} : " . htmlspecialchars($line) . "
\n"; } -// 他の例として、Webページを文字列に取り込みます。file_get_contents()も参照してください。 -$html = implode('', file('http://www.example.com/')); - -// オプションのパラメータは PHP 5 以降で使用できます +// オプションのパラメータを使う $trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); ?> ]]> @@ -157,11 +187,11 @@ $trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); &reftitle.seealso; + file_get_contents readfile fopen fsockopen popen - file_get_contents include stream_context_create diff --git a/reference/filesystem/functions/fileatime.xml b/reference/filesystem/functions/fileatime.xml index 4a66c96ede..bbe6143ac4 100644 --- a/reference/filesystem/functions/fileatime.xml +++ b/reference/filesystem/functions/fileatime.xml @@ -1,6 +1,6 @@ - + @@ -11,7 +11,7 @@ &reftitle.description; - intfileatime + intfalsefileatime stringfilename @@ -43,6 +43,11 @@
+ + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -66,11 +71,6 @@ if (file_exists($filename)) { - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; diff --git a/reference/filesystem/functions/filectime.xml b/reference/filesystem/functions/filectime.xml index 8a78bbc300..4cb218b620 100644 --- a/reference/filesystem/functions/filectime.xml +++ b/reference/filesystem/functions/filectime.xml @@ -1,6 +1,6 @@ - + @@ -11,7 +11,7 @@ &reftitle.description; - intfilectime + intfalsefilectime stringfilename @@ -43,6 +43,11 @@ + + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -66,11 +71,6 @@ if (file_exists($filename)) { - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; diff --git a/reference/filesystem/functions/filegroup.xml b/reference/filesystem/functions/filegroup.xml index 534d55bfff..569c0eeb5e 100644 --- a/reference/filesystem/functions/filegroup.xml +++ b/reference/filesystem/functions/filegroup.xml @@ -1,7 +1,8 @@ - - + + + filegroup ファイルのグループを取得する @@ -10,11 +11,11 @@ &reftitle.description; - intfilegroup + intfalsefilegroup stringfilename - ファイルのグループを取得します。返り値は、数値形式のグループ ID です。 + ファイルのグループを取得します。戻り値は、数値形式のグループ ID です。 グループ名を取得するには posix_getgrgid を使用します。 @@ -46,6 +47,13 @@ + + &reftitle.errors; + + 失敗時には E_WARNING レベルのエラーを発行します。 + + + &reftitle.examples; @@ -63,13 +71,6 @@ print_r(posix_getgrgid(filegroup($filename))); - - &reftitle.errors; - - 失敗時には E_WARNING レベルのエラーを発行します。 - - - &reftitle.notes; ¬e.clearstatcache; @@ -82,13 +83,11 @@ print_r(posix_getgrgid(filegroup($filename))); fileowner posix_getgrgid - safe_mode_gid - - + fileinode @@ -10,7 +10,7 @@ &reftitle.description; - intfileinode + intfalsefileinode stringfilename @@ -41,6 +41,11 @@ + + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -60,11 +65,6 @@ if (getmyinode() == fileinode($filename)) { - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; ¬e.clearstatcache; diff --git a/reference/filesystem/functions/filemtime.xml b/reference/filesystem/functions/filemtime.xml index 046b2ac226..027ef4a9ed 100644 --- a/reference/filesystem/functions/filemtime.xml +++ b/reference/filesystem/functions/filemtime.xml @@ -1,6 +1,6 @@ - + filemtime @@ -10,7 +10,7 @@ &reftitle.description; - intfilemtime + intfalsefilemtime stringfilename @@ -38,12 +38,17 @@ &reftitle.returnvalues; - ファイルの最終更新時刻を返し、&return.falseforfailure; + ファイルの最終更新時刻を返し、&return.falseforfailure;。 時間は Unix タイムスタンプとして返されます。 この関数の結果は date 等で使用できます。 + + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -65,11 +70,6 @@ if (file_exists($filename)) { - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; ¬e.filesystem-time-res; diff --git a/reference/filesystem/functions/fileowner.xml b/reference/filesystem/functions/fileowner.xml index 3892352ab5..d07c7ab8e0 100644 --- a/reference/filesystem/functions/fileowner.xml +++ b/reference/filesystem/functions/fileowner.xml @@ -1,6 +1,6 @@ - + fileowner @@ -10,7 +10,7 @@ &reftitle.description; - intfileowner + intfalsefileowner stringfilename @@ -43,6 +43,11 @@ + + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -60,11 +65,6 @@ print_r(posix_getpwuid(fileowner($filename))); - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; ¬e.clearstatcache; diff --git a/reference/filesystem/functions/fileperms.xml b/reference/filesystem/functions/fileperms.xml index 10c5f952a2..de6b549d03 100644 --- a/reference/filesystem/functions/fileperms.xml +++ b/reference/filesystem/functions/fileperms.xml @@ -1,7 +1,8 @@ - - + + + fileperms ファイルのパーミッションを取得する @@ -10,7 +11,7 @@ &reftitle.description; - intfileperms + intfalsefileperms stringfilename @@ -45,11 +46,19 @@ POSIX システム (Linux や macOS など) で調べる方法です。 - ローカルファイルの場合、その返り値は C ライブラリ関数 stat + ローカルファイルの場合、その戻り値は C ライブラリ関数 stat が返す構造体の st_mode メンバーの値となります。 どのビットがセットされるかはプラットフォームによって異なるので、 パーミッション部分以外のビットをパースしたい場合は各プラットフォームのドキュメントを参照することをおすすめします。 + + 失敗時に &false; を返します。 + + + + + &reftitle.errors; + &fs.emits.warning.on.failure; @@ -141,11 +150,6 @@ echo $info; - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; ¬e.clearstatcache; @@ -164,7 +168,6 @@ echo $info; - - - - + + + filesize ファイルのサイズを取得する @@ -11,7 +11,7 @@ &reftitle.description; - intfilesize + intfalsefilesize stringfilename @@ -44,6 +44,11 @@ &fs.file.32bit; + + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -65,11 +70,6 @@ echo $filename . ': ' . filesize($filename) . ' bytes'; - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; ¬e.clearstatcache; @@ -86,7 +86,6 @@ echo $filename . ': ' . filesize($filename) . ' bytes'; - - - + + + filetype ファイルタイプを取得する @@ -10,7 +11,7 @@ &reftitle.description; - stringfiletype + stringfalsefiletype stringfilename @@ -48,6 +49,11 @@ + + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -57,21 +63,24 @@ ]]> + &example.outputs; + + + - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; ¬e.clearstatcache; @@ -94,7 +103,6 @@ echo filetype('/etc/'); // ディレクトリ - - + - + flock 汎用のファイルロックを行う @@ -12,18 +12,18 @@ &reftitle.description; boolflock - resourcehandle + resourcestream intoperation - intwouldblock + intwould_block&null; flock を使うと、(ほとんどの Unix、そして Windows さえ含む) 事実上すべてのプラットフォームで使用可能な、簡易な読み手/書き手モデルを実現できます。 - PHP 5.3.2 より前のバージョンでは、fclose - でロックの解放も行います - (これは、スクリプトが終了した場合にも自動的にコールされます)。 + ロックの解放は、fclose が実行されるか、 + stream + がガベージコレクションされた段階で行われます。 PHP は、恣意的にファイルをロックする汎用の手段を提供します @@ -40,7 +40,7 @@ - handle + stream &fs.file.pointer; @@ -80,7 +80,7 @@ - wouldblock + would_block ロックがブロックされた (errno が EWOULDBLOCK となった) @@ -99,37 +99,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.5.22, 5.6.6 - - wouldblock パラメータを、Windows でもサポートするようになりました。 - - - - 5.3.2 - - ファイルのリソースハンドルを閉じたときにロックを自動的に解放する機能が削除されました。 - ロックの解放は、常に手動で行わなければなりません。 - - - - - - - - &reftitle.examples; @@ -210,14 +179,14 @@ fclose($fp); - 一連のコードで別の値を handle 引数に代入すると、 + 一連のコードで別の値を stream 引数に代入すると、 それ以降のコードでロックを解放します。 いくつかのオーペレーティングシステムでflock - はプロセスレベルで実装されています。ISAPIのようなマルチスレッド + はプロセスレベルで実装されています。マルチスレッド 型のサーバーAPIを使用している場合、同じサーバーインスタンスの並 列スレッドで実行されている他のPHPスクリプトに対してファイルを保 護する際に flockを使用することはできません! @@ -228,10 +197,16 @@ fclose($fp); これらの環境の場合は常に&false;を返すことになります。 + + + Windows では、 + ロックするプロセスが同じファイルを二回オープンする場合、 + ファイルをアンロックするまで二番目のハンドルではアクセスできません。 + + - - - + + + fnmatch ファイル名がパターンにマッチするか調べる @@ -12,11 +13,11 @@ boolfnmatch stringpattern - stringstring + stringfilename intflags0 - fnmatchstring + fnmatchfilename で指定された文字列が pattern で指定されたシェルワイルドカードにマッチするかどうかチェックします。 @@ -31,12 +32,95 @@ pattern - シェルのワイルドカードパターン。 + マッチさせるパターン。 + 通常、pattern には + '?''*' + のようなワイルドカードを含めます。 + + + <parameter>pattern</parameter> で使えるワイルドカード + + + + + ワイルドカード + &Description; + + + + + + ? + + + クエスチョンマークは、1文字にマッチします。 + たとえば、 + "file?.txt""file1.txt" + や "fileA.txt" にはマッチしますが、 + "file10.txt" にはマッチしません。 + + + + + * + + + アスタリスクは、0文字以上の文字にマッチします。 + たとえば、 + "foo*.xml" は + "foo.xml" や + "foobar.xml" にマッチします。 + + + + + [ ] + + + 角括弧は、アスキー文字のコードポイントや、 + 文字の集合を表すのに使います。 + たとえば、"index.php[45]" + は "index.php4" や + "index.php5" にマッチしますが、 + "index.phpt" にはマッチしません。 + よく知られている文字の範囲として + [0-9], [a-z], + [A-Z] が挙げられます。 + 複数の集合や範囲は、同時に使うことができます。 + たとえば [0-9a-zABC] のように使えます。 + + + + + ! + + + エクスクラメーションマークは、 + 角括弧内の文字を否定するのに使います。 + たとえば、"[!A-Z]*.html" は + "demo.html" にマッチしますが、 + "Demo.html" にはマッチしません。 + + + + + \ + + + バックスラッシュは、特別な文字をエスケープするのに使います。 + たとえば、"Name\?" は + "Name?" にマッチしますが、 + "Names" にはマッチしません。 + + + + +
- string + filename 調べたい文字列。この機能は特にファイル名のマッチに便利ですが、 @@ -113,30 +197,6 @@
- - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - この関数は Windows プラットフォームでも動作するようになりました。 - - - - - - - - &reftitle.examples; @@ -179,7 +239,6 @@ if (fnmatch("*gr[ae]y", $color)) {
- - + @@ -11,11 +11,11 @@ &reftitle.description; - resourcefopen + resourcefalsefopen stringfilename stringmode booluse_include_path&false; - resourcecontext + resourcenullcontext&null; fopen は、filename @@ -44,15 +44,15 @@ そのファイルはPHPからアクセスできるものでなければなりません。 ファイルのパーミッションが (パラメータで指定された) アクセスを許可されているかどうか確認する必要があります。 - &safemode; または open_basedir - を有効にしている場合は更なるアクセス制限が加えられることがあります。 + open_basedir + を有効にしている場合は、更なるアクセス制限が加えられることがあります。 filename が登録されているプロトコルを示していると PHP が判断し、かつそのプロトコルがネットワーク URL として登録されていれば、 PHP は allow_url_fopen が有効となっているかどうかチェックします。 - もしこれがオフになっていると、PHP は warning を発行し fopen は失敗します。 + もしこれがオフになっていると、PHP は warning を発行し fopen は失敗します。 @@ -125,9 +125,7 @@ $handle = fopen("c:\\folder\\resource.txt", "r"); 'w+' 読み込み/書き出し用でオープンします。 - ファイルポインタをファイルの先頭に置き、 - ファイルサイズをゼロにします。 - ファイルが存在しない場合には、作成を試みます。 + それ以外の振る舞いは、'w' と同じです。 @@ -166,7 +164,7 @@ $handle = fopen("c:\\folder\\resource.txt", "r"); 'x+' 読み込み/書き出し用でオープンします。 - それ以外のふるまいは 'x' と同じです。 + それ以外の振る舞いは 'x' と同じです。 @@ -186,7 +184,7 @@ $handle = fopen("c:\\folder\\resource.txt", "r"); 'c+' 読み込み/書き出し用でオープンします。 - それ以外のふるまいは 'c' と同じです。 + それ以外の振る舞いは 'c' と同じです。 @@ -196,6 +194,13 @@ $handle = fopen("c:\\folder\\resource.txt", "r"); POSIX.1-2008 準拠のシステムでコンパイルされた PHP でのみ利用可能です。 + + 'n' + + オープンされたファイル記述子に non-blocking フラグを設定します。 + POSIX.1-2008 準拠のシステムでコンパイルされた PHP でのみ利用可能です。 + + @@ -243,13 +248,22 @@ $handle = fopen("c:\\folder\\resource.txt", "r"); 強く推奨されます。 + + + php://output, + php://input, php://stdin, + php://stdout, php://stderr, + php://fd ストリームラッパーについては、 + mode は無視されます。 + + use_include_path - オプションの3番目の引数use_include_pathに'1'又は + オプションの3番目の引数use_include_pathに &true; を設定することにより、include_path のファイルの検索も行うこともできます。 @@ -296,13 +310,6 @@ $handle = fopen("c:\\folder\\resource.txt", "r"); 'e' が追加されました。 - - 5.2.6 - - 'c' および 'c+' - が追加されました。 - - @@ -331,7 +338,6 @@ $handle = fopen("ftp://user:password@example.com/somefile.txt", "w"); &reftitle.notes; &warn.ssl-non-standard; - ¬e.sm.uidcheck.dir; ファイルの読みこみ・書きこみ時に問題が発生し、 diff --git a/reference/filesystem/functions/fpassthru.xml b/reference/filesystem/functions/fpassthru.xml index 87fa48dffc..c64bf9e53d 100644 --- a/reference/filesystem/functions/fpassthru.xml +++ b/reference/filesystem/functions/fpassthru.xml @@ -1,8 +1,8 @@ - - - + + + fpassthru ファイルポインタ上に残っているすべてのデータを出力する @@ -12,7 +12,7 @@ &reftitle.description; intfpassthru - resourcehandle + resourcestream 与えられたファイルポインタを EOF まで読み、結果を出力バッファに書き出します。 @@ -35,7 +35,7 @@ - handle + stream &fs.validfp.all; @@ -47,9 +47,8 @@ &reftitle.returnvalues; - エラーが起こった場合、fpassthru は &false; を返します。 - それ以外の場合、fpassthruhandle - から読み込んだ文字の数を返し、出力へ渡します。 + fpassthrustream + から読み込み、出力に渡した文字数を返します。 @@ -111,7 +110,6 @@ exit; - - + - + fputcsv 行を CSV 形式にフォーマットし、ファイルポインタに書き込む @@ -11,18 +11,19 @@ &reftitle.description; - intfputcsv - resourcehandle + intfalsefputcsv + resourcestream arrayfields - stringdelimiter"," - stringenclosure'"' - stringescape_char"\\" + stringseparator"," + stringenclosure"\"" + stringescape"\\" + stringeol"\n" fputcsv は、行(fields - 配列として渡されたもの)を CSV としてフォーマットし、それを - handle で指定したファイルに書き込みます - (いちばん最後に改行を追加します)。 + 配列として渡されたもの)を CSV としてフォーマットし、それを、 + 指定した stream に書き込みます + (いちばん最後に eol を追加します)。 @@ -31,7 +32,7 @@ - handle + stream &fs.validfp.all; @@ -44,40 +45,31 @@ + + + + + + + + + - delimiter + eol - オプションの delimiter はフィールド区切り文字 - (一文字だけ) を指定します。 - - - - - enclosure - - - オプションの enclosure はフィールドを囲む文字 - (一文字だけ) を指定します。 - - - - - escape_char - - - オプションの escape_char は、エスケープ文字 - (最大で一文字) を指定します。 - 空文字("") を指定すると、プロプライエタリなエスケープ機構が無効になります。 + eol は、 + カスタムの行末シーケンスを設定するオプションの引数です。 + &warning.csv.escape-parameter; enclosure がフィールド内に含まれる場合は、同じ文字を二度続けることでエスケープします。 - ただし、その直前に escape_char がある場合は別です。 + ただし、その直前に escape がある場合は別です。
@@ -89,6 +81,10 @@
+ + + + &reftitle.changelog; @@ -101,17 +97,21 @@ + + + - 7.4.0 + 8.1.0 - escape_char パラメータが、 - プロプライエタリなエスケープ機構を無効にするために空文字列を受け入れるようになりました。 + オプションの引数 eol が追加されました。 - 5.5.4 + 7.4.0 - escape_char パラメータが追加されました。 + escape パラメータが、 + (RFC 4180 に準拠していない) 独自仕様のエスケープ機構を無効にするため、 + 空文字列を受け入れるようになりました。 @@ -129,16 +129,16 @@ - - &reftitle.notes; - ¬e.line-endings; - - &reftitle.seealso; - - - fgetcsv - - + + fgetcsv + str_getcsv + SplFileObject::fgetcsv + SplFileObject::fputcsv + SplFileObject::setCsvControl + SplFileObject::getCsvControl +
- - - + + + fread バイナリセーフなファイルの読み込み @@ -10,12 +11,12 @@ &reftitle.description; - stringfread - resourcehandle + stringfalsefread + resourcestream intlength - fread は、handle + fread は、stream が指すファイルポインタから最高 length バイト読み込みます。 以下のいずれかの条件を満たしたら、読み込みを終了します。 @@ -53,7 +54,7 @@ - handle + stream &fs.file.pointer; @@ -133,7 +134,6 @@ fclose($handle); fscanf file fpassthru + fseek ftell rewind unpack @@ -199,7 +200,6 @@ fclose($handle); - - + - + fscanf フォーマットに基づきファイルからの入力を処理する @@ -11,21 +11,20 @@ &reftitle.description; - mixedfscanf - resourcehandle + arrayintfalsenullfscanf + resourcestream stringformat - mixed... + mixedvars 関数fscanfsscanf - に似ていますが、handle が指すファイルから入力を取得し、 + に似ていますが、stream が指すファイルから入力を取得し、 指定したフォーマット format に基づき解釈を行います。 - フォーマットについては sprintf に解説されています。 フォーマット文字列におけるあらゆる空白は 入力ストリームのあらゆる空白にマッチします。 - これはつまりフォーマット文字列の\t(タブ)すらも + これはつまりフォーマット文字列のタブ (\t) すらも 入力ストリームの空白1個にマッチしてしまうことを意味します。 @@ -38,14 +37,14 @@ - handle + stream &fs.file.pointer; - &strings.parameter.format; + &strings.scanf.parameter.format; - ... + vars オプションで代入する値。 @@ -64,6 +63,11 @@ この関数は、代入された値の数を返します。 オプション引数は参照渡しとする必要があります。 + + string で利用可能な部分文字列よりも、 + format で期待された部分文字列の数が多い場合は、&null; が返されます。 + その他のエラーが発生した場合は、&false; が返されます。 + @@ -115,7 +119,6 @@ luigi florist it - - - - + + + fseek ファイルポインタを移動する @@ -12,12 +12,12 @@ &reftitle.description; intfseek - resourcehandle + resourcestream intoffset - intwhenceSEEK_SET + intwhenceSEEK_SET - handle が指しているファイルのファイル位置識別子を + stream が指しているファイルのファイル位置識別子を ファイル・ストリーム中の offset バイト目に セットします。新規位置は、ファイルの先頭からのバイト数で 測られます。これは whence で指定した位置に @@ -37,7 +37,7 @@ - handle + stream &fs.file.pointer; @@ -62,9 +62,9 @@ whence の値は以下のようになります。 - SEEK_SET - 位置を offset バイト目に設定する - SEEK_CUR - 現在の位置に offset を加えた位置に設定する - SEEK_END - ファイル終端に offset を加えた位置に設定する + SEEK_SET - 位置をファイルの先頭から offset バイト目に設定する + SEEK_CUR - 現在の位置に offset バイトを加えた位置に設定する + SEEK_END - ファイル終端に offset バイトを加えた位置に設定する @@ -76,8 +76,15 @@ &reftitle.returnvalues; - 成功すると 0 を返し、そうでなければ -1 を返します。 + 成功すると 0 を返し、 + そうでなければ -1 を返します。 + + + この関数は、同じ名前のC言語の関数を真似る目的で作られています。 + PHP で期待される戻り値と異なることに注意してください。 + + @@ -134,7 +141,6 @@ fseek($fp, 0); - - - - + + + fstat オープンしたファイルポインタからファイルに関する情報を取得する @@ -11,11 +11,11 @@ &reftitle.description; - arrayfstat - resourcehandle + arrayfalsefstat + resourcestream - ファイルポインタhandleによりオープンされたファイルの統計情報を取得します。 + ファイルポインタstreamによりオープンされたファイルの統計情報を取得します。 この関数は関数statに似ていますが、 ファイル名の代わりにオープンされたファイルポインタを指定するところが異なります。 @@ -26,7 +26,7 @@ - handle + stream &fs.file.pointer; @@ -40,6 +40,7 @@ ファイルの統計情報の配列を返します。配列のフォーマットについては statのマニュアルをご覧ください。 + 失敗時に &false; を返します。 @@ -98,7 +99,6 @@ Array - + + + + fsync + データをファイルに同期する(メタデータも含む) + + + + &reftitle.description; + + boolfsync + resourcestream + + + この関数は、 + 変更をメタデータも含めてファイルに同期します。 + fflush に似ていますが、 + この関数はオペレーティングシステムに対し、 + ストレージに書き込むことを指示することも行います。 + + + + + &reftitle.parameters; + + + + stream + + &fs.validfp.all; + + + + + + + + &reftitle.returnvalues; + + &return.success; + + + + + &reftitle.examples; + + + <function>fsync</function> の例 + + +]]> + + + + + + + &reftitle.seealso; + + + fdatasync + fflush + + + + + + diff --git a/reference/filesystem/functions/ftell.xml b/reference/filesystem/functions/ftell.xml index 71453689e1..628660735b 100644 --- a/reference/filesystem/functions/ftell.xml +++ b/reference/filesystem/functions/ftell.xml @@ -1,8 +1,8 @@ - - - + + + ftell ファイルの読み書き用ポインタの現在位置を返す @@ -11,11 +11,11 @@ &reftitle.description; - intftell - resourcehandle + intfalseftell + resourcestream - handle ファイルの読み書き用ポインタの現在位置を返します。 + stream ファイルの読み書き用ポインタの現在位置を返します。 @@ -24,7 +24,7 @@ - handle + stream ファイルポインタは有効なものでなければならず、また @@ -42,7 +42,7 @@ &reftitle.returnvalues; - handle が示すファイルポインタの位置、 + stream が示すファイルポインタの位置、 すなわちファイル・ストリーム上のオフセットを整数値で返します。 @@ -89,7 +89,6 @@ fclose($fp); - - - - + + + ftruncate ファイルを指定した長さに丸める @@ -13,11 +13,11 @@ &reftitle.description; boolftruncate - resourcehandle + resourcestream intsize - ファイルポインタhandleを引数とし、 + ファイルポインタstreamを引数とし、 ファイルを指定した長さ、サイズに丸めます。 @@ -27,14 +27,14 @@ - handle + stream ファイルポインタ。 - handle は書き込みモードでオープンする必要があります。 + stream は書き込みモードでオープンする必要があります。 @@ -109,7 +109,6 @@ fclose($handle); - - + @@ -11,14 +11,14 @@ &reftitle.description; - intfwrite - resourcehandle - stringstring - intlength + intfalsefwrite + resourcestream + stringdata + intnulllength&null; - fwritestringの内容を - handleが指しているファイル・ストリームに書き込みます。 + fwritedataの内容を + streamが指しているファイル・ストリームに書き込みます。 @@ -27,13 +27,13 @@ - handle + stream &fs.file.pointer; - string + data 書き込む文字列。 @@ -44,17 +44,11 @@ length - lengthパラメータが与えられている場合、 + lengthパラメータが数値の場合、 lengthバイト数分の書き込みが完了したか、 - stringが終わりに達したかのいずれか早い方の + dataが終わりに達したかのいずれか早い方の 事象により書き込みは中止されます。 - - length パラメータが指定されている場合、 - magic_quotes_runtime - 構成オプションは無視され、stringからの - スラッシュ文字の取り除きは行われないことに注意してください。 - @@ -65,19 +59,92 @@ &reftitle.returnvalues; fwrite は、 - 書き込んだバイト数、またはエラー時に &false; を返します。 + 書き込んだバイト数を返します。 + &return.falseforfailure; + + &reftitle.errors; + + fwrite は、 + 失敗した場合に E_WARNING を発生させます。 + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + length は、nullable になりました。 + + + + + + + + + &reftitle.examples; + + + 簡単な <function>fwrite</function> の例 + + +]]> + + + + + &reftitle.notes; ネットワークストリームへの書き込みは、 すべての文字列を書き込み終える前に終了する可能性があります。 - fwrite の返り値を確かめるようにしましょう。 + fwrite の戻り値を確かめるようにしましょう。 - - + (Windowsのように)バイナリとテキストファイルの形式が異なるシステムにおいては、ファイルをオープンする際に @@ -103,9 +170,9 @@ function fwrite_stream($fp, $string) { fopen を使用して追記モードでオープンした - handle の場合、 + stream の場合、 fwrite はアトミックになります - (ただし、一部のプラットフォームにおいて string + (ただし、一部のプラットフォームにおいて data がファイルシステムのブロックサイズを超えない場合、 そしてローカルファイルシステム上のファイルである場合に限ります)。 アトミックであるとは、つまり fwrite @@ -133,48 +200,6 @@ fclose($fp); - - &reftitle.examples; - - - 簡単な <function>fwrite</function> の例 - - -]]> - - - - - &reftitle.seealso; diff --git a/reference/filesystem/functions/glob.xml b/reference/filesystem/functions/glob.xml index ebdeec71ed..cc66bf8222 100644 --- a/reference/filesystem/functions/glob.xml +++ b/reference/filesystem/functions/glob.xml @@ -1,17 +1,16 @@ - - - + + glob パターンにマッチするパス名を探す - + &reftitle.description; - arrayglob + arrayfalseglob stringpattern intflags0 @@ -21,6 +20,12 @@ pattern にマッチする全てのパス名を検索します。 ルールは、一般のシェルで使われるルールと似ています。 + + Unix システムと macOS での振る舞いは、 + システムの glob() の実装によって決まります。 + Windows の実装は、POSIX 1003.2 の glob() の定義を満たしており、 + 範囲を否定する規約 [!...] を扱うための拡張も含んでいます。 + @@ -34,7 +39,7 @@ パターン。チルダの展開やパラメータ置換は行いません。 - Special characters: + 特殊文字は以下のとおりです: @@ -53,6 +58,11 @@ グループにないあらゆる文字にマッチします。 + + + {a,b,c} - GLOB_BRACE フラグを使った場合に、コンマで区切った文字列のグループのうち、ひとつにマッチします。 + + \ - 次に来る文字をエスケープします。 @@ -67,49 +77,7 @@ flags - 有効なフラグは次のとおりです。 - - - - GLOB_MARK - 各ディレクトリにスラッシュ (Windows ではバックスラッシュ) を追加します - - - - - GLOB_NOSORT - ディレクトリに存在するファイルを返します - (ソートはされません)。このフラグを使わない場合は、パス名をアルファベット順にソートします。 - - - - - GLOB_NOCHECK - - 検索パターンにマッチするファイルが見つからない場合に、 - 検索パターン自身を返します - - - - - GLOB_NOESCAPE - バックスラッシュによるメタ文字のクォートを行いません - - - - - GLOB_BRACE - - {a,b,c} を展開し「a」、「b」あるいは「c」のいずれかにマッチさせます - - - - - GLOB_ONLYDIR - パターンにマッチするディレクトリのみを返します - - - - - GLOB_ERR - (ディレクトリが読めないなどの) - 読み込みエラー時に停止します。デフォルトではエラーは無視されます。 - - - + GLOB_* 定数のいずれか @@ -123,35 +91,8 @@ マッチするファイル/ディレクトリを含む配列を返します。 マッチするファイルがなかった場合には空の配列、 そして失敗した場合には &false; を返します。 - - - - システムによっては、何もマッチしなかった場合とエラーが発生した場合を区別できないものもあります。 - - - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.1.0 - - GLOB_ERR が追加されました。 - - - - - + GLOB_NOSORT を使わない限り、 + 名前はアルファベット順にソートされます。 @@ -161,7 +102,7 @@ <function>glob</function> が <function>opendir</function> - と関連する関数群の代替策になるかを示す簡便な方法 + と関連する関数群をどのように置き換えられるかを示す簡便な方法 + + + + + もっと複雑なパターンを使う例 + + + +]]> + + &example.outputs.similar; + + @@ -192,12 +157,6 @@ quickref.txt size 137820 この関数が使用できないシステムも存在します (例: 昔の Sun OS など)。 - - - GLOB_BRACE フラグは、Solaris - などの非 GNU システムでは動作しないことがあります。 - - @@ -213,7 +172,6 @@ quickref.txt size 137820 - - - + + is_dir @@ -30,7 +30,7 @@ ファイルへのパス。filename が相対パスの場合は、現在の作業ディレクトリからの相対パスとして処理します。 filename がシンボリックリンクあるいはハードリンクの場合は、 - リンク先を解決して処理します。&safemode; あるいは + リンク先を解決して処理します。 open_basedir を有効にすると、 さらに制限がかかるでしょう。 @@ -48,6 +48,11 @@ + + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -75,11 +80,6 @@ bool(true) - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; ¬e.clearstatcache; diff --git a/reference/filesystem/functions/is-executable.xml b/reference/filesystem/functions/is-executable.xml index 28619355d7..34efc48a0a 100644 --- a/reference/filesystem/functions/is-executable.xml +++ b/reference/filesystem/functions/is-executable.xml @@ -1,6 +1,6 @@ - + @@ -40,9 +40,17 @@ ファイルが存在し、かつそれが実行可能な場合に &true;、 エラー時に &false; を返します。 + POSIX 準拠のシステムでは、 + ファイルパーミッションの実行ビットが立っているものが実行可能です。 + Windows については、下記を参照ください。 + + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -67,15 +75,24 @@ if (is_executable($file)) { - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; ¬e.clearstatcache; &tip.fopen-wrapper.stat; + + + Windows では、Windows API GetBinaryType() + が適切に実行可能ファイルと報告した場合に、実行可能と見なされます。 + 後方互換のため、拡張子 .bat や + .cmd が付いたファイルも同様に実行可能と見なされます。 + PHP 7.4.0 より前のバージョンでは、 + 拡張子 .bat や + .cmd + が付いた空でないファイルは実行可能と見なされていました。 + 環境変数 PATHEXT + は、is_executable と無関係なことに注意が必要です。 + + diff --git a/reference/filesystem/functions/is-file.xml b/reference/filesystem/functions/is-file.xml index 6234c4415a..2b9c068f8d 100644 --- a/reference/filesystem/functions/is-file.xml +++ b/reference/filesystem/functions/is-file.xml @@ -1,6 +1,6 @@ - + @@ -16,6 +16,8 @@ 指定したファイルが通常のファイルかどうかを調べます。 + filename がシンボリックリンクの場合、 + リンクは解決され、それが参照しているファイルの情報を返します。 @@ -44,6 +46,11 @@ &fs.file.32bit; + + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -68,11 +75,6 @@ bool(false) - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; ¬e.clearstatcache; @@ -85,6 +87,7 @@ bool(false) is_dir is_link + SplFileInfo diff --git a/reference/filesystem/functions/is-link.xml b/reference/filesystem/functions/is-link.xml index ec3fba3a83..1091917f34 100644 --- a/reference/filesystem/functions/is-link.xml +++ b/reference/filesystem/functions/is-link.xml @@ -1,6 +1,6 @@ - + @@ -43,6 +43,11 @@ + + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -54,7 +59,7 @@ $link = 'uploads'; if (is_link($link)) { - echo(readlink($link)); + echo readlink($link); } else { symlink('uploads.php', $link); } @@ -65,11 +70,6 @@ if (is_link($link)) { - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; ¬e.clearstatcache; @@ -83,6 +83,7 @@ if (is_link($link)) { is_dir is_file readlink + symlink diff --git a/reference/filesystem/functions/is-readable.xml b/reference/filesystem/functions/is-readable.xml index 9b070ce476..7c1478071d 100644 --- a/reference/filesystem/functions/is-readable.xml +++ b/reference/filesystem/functions/is-readable.xml @@ -1,6 +1,6 @@ - + @@ -45,6 +45,11 @@ + + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -66,17 +71,11 @@ if (is_readable($filename)) { - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; PHP は、Web サーバーを実行しているユーザー ID (たいていは 'nobody') でファイルにアクセスすることを覚えておいてください。 - PHP 5.1.5 より前のバージョンでは、セーフモードの制限は働きません。 ¬e.clearstatcache; &tip.fopen-wrapper.stat; diff --git a/reference/filesystem/functions/is-uploaded-file.xml b/reference/filesystem/functions/is-uploaded-file.xml index b57fed79e6..8c126d5302 100644 --- a/reference/filesystem/functions/is-uploaded-file.xml +++ b/reference/filesystem/functions/is-uploaded-file.xml @@ -28,8 +28,8 @@ 暴かれる可能性があるため、特に重要です。 - 適切に動作させるため、関数 is_uploaded_file - は $_FILES['userfile']['tmp_name'] のような引数を必要とします。 + 適切に動作させるために、関数 is_uploaded_file + には $_FILES['userfile']['tmp_name'] のような引数が必要です。 アップロードされたファイルのクライアントマシン上での名前 $_FILES['userfile']['name'] では動作しません。 diff --git a/reference/filesystem/functions/is-writable.xml b/reference/filesystem/functions/is-writable.xml index f36fce103f..444ebc46f2 100644 --- a/reference/filesystem/functions/is-writable.xml +++ b/reference/filesystem/functions/is-writable.xml @@ -1,6 +1,6 @@ - + @@ -22,7 +22,6 @@ PHP は、Web サーバーが実行されているユーザー ID('nobody' が多い) でファイルにアクセスすることを覚えておいてください。 - セーフモードの制限は働きません。 @@ -50,6 +49,11 @@ + + &reftitle.errors; + &fs.emits.warning.on.failure; + + &reftitle.examples; @@ -71,11 +75,6 @@ if (is_writable($filename)) { - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; diff --git a/reference/filesystem/functions/lchgrp.xml b/reference/filesystem/functions/lchgrp.xml index 84e8371520..3be6a12753 100644 --- a/reference/filesystem/functions/lchgrp.xml +++ b/reference/filesystem/functions/lchgrp.xml @@ -1,7 +1,8 @@ - - + + + lchgrp シンボリックリンクのグループ所有権を変更する @@ -12,7 +13,7 @@ boollchgrp stringfilename - mixedgroup + stringintgroup シンボリックリンク filename のグループを @@ -79,7 +80,6 @@ lchgrp($link, 8); &reftitle.notes; ¬e.no-remote; - ¬e.sm.uidcheck; ¬e.no-windows; @@ -96,7 +96,6 @@ lchgrp($link, 8); - - - + + + lchown シンボリックリンクの所有者を変更する @@ -12,7 +13,7 @@ boollchown stringfilename - mixeduser + stringintuser シンボリックリンク filename の所有者を @@ -77,7 +78,6 @@ lchown($link, 8); &reftitle.notes; ¬e.no-remote; - ¬e.sm.uidcheck; ¬e.no-windows; @@ -94,7 +94,6 @@ lchown($link, 8); - - - + + link @@ -51,28 +51,12 @@ - - &reftitle.changelog; + + &reftitle.errors; - - - - - &Version; - &Description; - - - - - 5.3.0 - - この関数は、Windows プラットフォーム - (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。 - - - - - + link が既に存在していたり、 + target が存在しない場合には、 + この関数は失敗し E_WARNING が発生します。 @@ -114,6 +98,7 @@ link($target, $link); symlink readlink linkinfo + unlink diff --git a/reference/filesystem/functions/linkinfo.xml b/reference/filesystem/functions/linkinfo.xml index 0945fca509..790cf5c216 100644 --- a/reference/filesystem/functions/linkinfo.xml +++ b/reference/filesystem/functions/linkinfo.xml @@ -1,8 +1,8 @@ - + - + linkinfo リンクに関する情報を取得する @@ -11,7 +11,7 @@ &reftitle.description; - intlinkinfo + intfalselinkinfo stringpath @@ -54,31 +54,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - この関数は、Windows プラットフォーム - (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。 - - - - - - - - &reftitle.examples; @@ -109,7 +84,6 @@ echo linkinfo('/vmlinuz'); // 835 - - - - + + + lstat ファイルあるいはシンボリックリンクの情報を取得する @@ -11,7 +11,7 @@ &reftitle.description; - arraylstat + arrayfalselstat stringfilename @@ -47,6 +47,14 @@ シンボリック先のファイルのステータスではなく、 シンボリックリンクのステータスが返されるところが異なります。 + + 失敗時に &false; を返します。 + + + + + &reftitle.errors; + &fs.emits.warning.on.failure; @@ -86,11 +94,6 @@ Array - - &reftitle.errors; - &fs.emits.warning.on.failure; - - &reftitle.notes; ¬e.clearstatcache; @@ -107,7 +110,6 @@ Array - - - + + mkdir @@ -12,13 +12,13 @@ &reftitle.description; boolmkdir - stringpathname - intmode0777 + stringdirectory + intpermissions0777 boolrecursive&false; - resourcecontext + resourcenullcontext&null; - 指定したディレクトリを作成します。 + directory で指定したディレクトリを作成します。 @@ -27,30 +27,32 @@ - pathname + directory ディレクトリのパス。 + &tip.fopen-wrapper; - mode + permissions - モードは 0777 がデフォルトです。 + パーミッションは 0777 がデフォルトです。 これは最も緩やかなアクセス制限を意味します。 - モードに関する詳細は chmod をご覧ください。 + パーミッションに関する詳細は chmod をご覧ください。 - Windows では mode は無視されます。 + Windows では permissions は無視されます。 - モードを八進数で指定したくなることもあるかもしれません。 + permissions を八進数で指定したくなることもあるかもしれません。 その場合は先頭にゼロをつける必要があります。 - また、モードは、現在設定されている umask の影響も受けます。 + また permissions は、 + 現在設定されている umask の影響も受けます。 umask を変更するには umask を使用します。 @@ -59,7 +61,10 @@ recursive - pathname で、入れ子構造のディレクトリの作成を許可します。 + &true; を指定すると、 + directory + で指定されたディレクトリの、 + 全ての親ディレクトリも同じパーミッションで作成されます。 @@ -78,6 +83,25 @@ &return.success; + + + 作成しようとしたディレクトリが既に存在している場合、 + エラーとみなされ、&false; が返されます。 + 作成しようとする前に、既にディレクトリが存在するかをチェックするには + is_dirfile_exists + を使ってください。 + + + + + + &reftitle.errors; + + ディレクトリが既に存在する場合は E_WARNING レベルのエラーが発生します。 + + + ディレクトリの作成権限がない場合は E_WARNING レベルのエラーが発生します。 + @@ -100,14 +124,14 @@ mkdir("/path/to/my/dir", 0700); - - &reftitle.errors; - - ディレクトリが既に存在する場合は E_WARNING レベルのエラーが発生します。 - - - ディレクトリの作成権限がない場合は E_WARNING レベルのエラーが発生します。 - - - - - &reftitle.notes; - ¬e.sm.uidcheck.dir; - - &reftitle.seealso; rmdir + umask diff --git a/reference/filesystem/functions/move-uploaded-file.xml b/reference/filesystem/functions/move-uploaded-file.xml index 3db34babad..2cd170c640 100644 --- a/reference/filesystem/functions/move-uploaded-file.xml +++ b/reference/filesystem/functions/move-uploaded-file.xml @@ -1,8 +1,8 @@ - - - + + + move_uploaded_file アップロードされたファイルを新しい位置に移動する @@ -12,15 +12,15 @@ &reftitle.description; boolmove_uploaded_file - stringfilename - stringdestination + stringfrom + stringto - この関数は、filename + この関数は、from で指定されたファイルが (PHP の HTTP POST アップロード機構によりアップロードされたという意味で) 有効なアップロードファイルであるかどうかを確認します。 - そのファイルが有効な場合、destination + そのファイルが有効な場合、to で指定したファイル名に移動されます。 @@ -35,7 +35,7 @@ - filename + from アップロードしたファイルのファイル名。 @@ -43,7 +43,7 @@ - destination + to ファイルの移動先。 @@ -60,12 +60,12 @@ 成功した場合に &true; を返します。 - filename が有効なアップロードファイルでない場合、 + from が有効なアップロードファイルでない場合、 処理は行われず、move_uploaded_file は &false; を返します。 - filename が有効なアップロードファイルであるが、 + from が有効なアップロードファイルであるが、 何らかの理由により、移動できない場合、処理は行われず、 move_uploaded_file は &false; を返します。加えて、警告が出力されます。 @@ -101,12 +101,11 @@ foreach ($_FILES["pictures"]["error"] as $key => $error) { &reftitle.notes; - move_uploaded_file は &safemode; と - open_basedir - の両者を考慮しています。 + move_uploaded_file は + open_basedir を考慮しています。 しかしながら、アップロードされたファイルを移動する - destination パスのみ制限が設けられます。 - そこでは filename + to パスのみ制限が設けられます。 + そこでは from がそれらの制限に抵触する可能性があるためです。 move_uploaded_file は PHP を通じてアップロードされたファイルのみを移動できるようにすることで @@ -131,7 +130,6 @@ foreach ($_FILES["pictures"]["error"] as $key => $error) { - - + - + parse_ini_file 設定ファイルをパースする @@ -11,10 +11,10 @@ &reftitle.description; - arrayparse_ini_file + arrayfalseparse_ini_file stringfilename boolprocess_sections&false; - intscanner_modeINI_SCANNER_NORMAL + intscanner_modeINI_SCANNER_NORMAL parse_ini_file は、 @@ -24,6 +24,15 @@ ini ファイルの構造は、&php.ini; の構造と同じです。 + + + この関数は、信頼できない入力に対して使用してはいけません。 + ただし、scanner_mode が + INI_SCANNER_RAW の場合を除きます。 + パース済みの出力には、データベースパスワードを保持する定数など、 + 機密性の高い定数の値が含まれる可能性があるためです。 + + @@ -35,6 +44,9 @@ パースしたい ini ファイルのファイル名。 + 相対パスが指定された場合、 + 現在のディレクトリから相対的な位置として評価され、 + さらに include_path からファイルを探します。 @@ -71,62 +83,6 @@ - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.0.0 - - ハッシュマーク (#) をコメントとみなさないようになりました。 - - - - 5.6.1 - - INI_SCANNER_TYPED モードが新たに追加されました。 - - - - 5.3.0 - - オプションのパラメータ scanner_mode が追加されました。 - シングルクォートも変数の代入に使うことができます。 - ハッシュ記号 (#) はコメントとしては扱われなくなり、 - もし使うと警告が発生します。 - - - - 5.2.7 - - 構文エラーが発生した場合は、空の配列ではなく - &false; を返すようになりました。 - - - - 5.2.4 - - 数字から始まるキーおよびセクション名は、PHP では - 整数 として評価されます。 - よって、0 で始まる数字は 8 進数として評価され、0x で始まる数字は - 16 進数として評価されます。 - - - - - - - - &reftitle.examples; @@ -160,10 +116,12 @@ urls[git] = "http://git.php.net" <function>parse_ini_file</function> の例 - 定数も ini ファイル上でパースされます。 + 定数 + (但し __FILE__ のような "マジック定数" は除く) + も ini ファイル上でパースされます。 そのため、parse_ini_file をコールする前に - ini ファイル上の値として定数を定義した場合、返り値に統合されます。 - ini ファイル上の値だけが評価されます。以下は例です: + ini ファイル上の値として定数を定義した場合、戻り値に統合されます。 + ini ファイル上の値だけが評価されます。この値は定数でなければなりません。以下は例です: + + + ini ファイルの値の補完 + + 定数を評価することに加えて、文字によっては ini ファイルの値として特別な意味を持つものがあります。 + さらに、環境変数や以前定義された設定オプション + (get_cfg_var も参照ください) は、 + ${} を使って読み取ることができます。 + + + + + + + + + 文字をエスケープする + + 文字によっては、ダブルクォートで囲まれた文字列の中で特別な意味を持つ場合があり、 + その場合、バックスラッシュでエスケープしなければなりません。 + 特別な意味を持つのは、文字列の境目の印となるダブルクォート "、 + および、バックスラッシュ \ (この文字の後に特別な文字がひとつ続きます) そのものです。 + + + + + + Windows ライクなパスについては例外があります。 + クォートされた文字列のすぐ後に改行文字が続いた場合、 + 末尾のバックスラッシュはエスケープする必要がないというものです。 + + + + + + 複数行にまたがる値で、改行文字が直後にあるダブルクォート文字をエスケープする必要がある場合、 + 次のようにして値を連結することでそれを実現できます。 + (ダブルクォートで囲まれた文字列がひとつあり、その直後にもうひとつの文字列が続きます) + + + + + + 特別な意味を持つ別の文字として、$ (ドル記号) があります。 + これは、開き括弧が続く場合、エスケープしなければいけません: + + + + + + 文字のエスケープは、 + INI_SCANNER_RAW モードではサポートされていません。 + (このモードでは、全ての文字が "そのまま" 処理されます) + + + ini ファイルのパーサーは、標準的なエスケープシーケンス + (\n, \t, など) をサポートしていないことに注意して下さい。 + そのサポートが必要な場合、parse_ini_file の処理結果を + stripcslashes で処理するようにして下さい。 + + + @@ -307,7 +358,7 @@ echo '(loaded) magic_quotes_gpc = ' . yesno(get_cfg_var('magic_quotes_gpc')) . P および false"" となり、 on, yes および true"1" となります。 - ただし、INI_SCANNER_TYPED モードを使っている場合 (PHP 5.6.1 以降) は別です。 + ただし、INI_SCANNER_TYPED モードを使っている場合は別です。 次の文字 ?{}|&~!()^" は、キーで使ってはいけません。 また、値の中で特別な意味を持ちます。 @@ -322,6 +373,16 @@ echo '(loaded) magic_quotes_gpc = ' . yesno(get_cfg_var('magic_quotes_gpc')) . P そのため、この項目は無視されます。 + + + ini ファイルは、一般的にWebサーバーからはプレーンテキストとして扱われます。 + よって、ini ファイルにリクエストがあった場合、ブラウザにそのまま表示されます。 + これは、セキュリティを考慮すると、 + ini ファイルはドキュメントルートの外側に置くか、 + Webサーバーがそれを返さないように設定を変更しなければならないということです。 + そうしないと、セキュリティ上のリスクが発生する可能性があります。 + + @@ -334,7 +395,6 @@ echo '(loaded) magic_quotes_gpc = ' . yesno(get_cfg_var('magic_quotes_gpc')) . P - - - + + + parse_ini_string 設定文字列をパースする @@ -10,18 +11,27 @@ &reftitle.description; - arrayparse_ini_string - stringini + arrayfalseparse_ini_string + stringini_string boolprocess_sections&false; - intscanner_modeINI_SCANNER_NORMAL + intscanner_modeINI_SCANNER_NORMAL parse_ini_string は、文字列 - ini の設定を連想配列で返します。 + ini_string の設定を連想配列で返します。 文字列の構造は、&php.ini; の構造と同じです。 + + + この関数は、信頼できない入力に対して使用してはいけません。 + ただし、scanner_mode が + INI_SCANNER_RAW の場合を除きます。 + パース済みの出力には、データベースパスワードを保持する定数など、 + 機密性の高い定数の値が含まれる可能性があるためです。 + + @@ -29,7 +39,7 @@ - ini + ini_string パースしたい ini ファイルの内容。 @@ -98,7 +108,6 @@ - - - + + + pathinfo ファイルパスに関する情報を返す @@ -10,13 +11,13 @@ &reftitle.description; - mixedpathinfo + arraystringpathinfo stringpath - intoptionsPATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME + intflagsPATHINFO_ALL pathinfo は、path - に関する情報を返します。options + に関する情報を返します。flags によって連想配列あるいは文字列のどちらかとなります。 @@ -26,6 +27,19 @@ のセクションをご覧ください。 + + + pathinfo は入力された文字列をそのまま扱います。 + よって、実際のファイルシステムや + ".." のようなパスコンポーネントも認識しません。 + + + + + Windows システムでのみ、\ 文字はディレクトリのセパレータとして解釈されます。 + それ以外のシステムでは、他の文字と同じように扱われます。 + + pathinfo はロケールを考慮して処理を行います。 @@ -48,7 +62,7 @@ - options + flags 指定する場合は、どの要素を返すのかを @@ -59,7 +73,7 @@ のいずれかで指定します。 - options を省略した場合はすべての要素を返します。 + flags を省略した場合はすべての要素を返します。 @@ -70,7 +84,7 @@ &reftitle.returnvalues; - options パラメータを渡さなかった場合は、次の要素を含む連想配列を返します。 + flags パラメータを渡さなかった場合は、次の要素を含む連想配列を返します。 dirnamebasenameextension (存在すれば)、そして filename @@ -98,35 +112,11 @@ - options を指定すると、 + flags を指定すると、 要求した要素を文字列で返します。 - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.2.0 - - 定数 PATHINFO_FILENAME が追加されました。 - - - - - - - - &reftitle.examples; @@ -140,7 +130,7 @@ $path_parts = pathinfo('/www/htdocs/inc/lib.inc.php'); echo $path_parts['dirname'], "\n"; echo $path_parts['basename'], "\n"; echo $path_parts['extension'], "\n"; -echo $path_parts['filename'], "\n"; // PHP 5.2.0 以降 +echo $path_parts['filename'], "\n"; ?> ]]> @@ -198,8 +188,35 @@ Array [dirname] => /some/path [basename] => .test [extension] => test - [filename] => + [filename] => ) +]]> + + + + + + 配列の分解機能を、<function>pathinfo</function> と一緒に使う例 + + flags パラメータは、ビットマスクではありません。 + 単一の値だけを指定できます。 + パース済みの値の限られた一部を選択したい場合、 + 配列を分解する機能を以下のようにして使います: + + + $basename, 'dirname' => $dirname] = pathinfo('/www/htdocs/inc/lib.inc.php'); + +var_dump($basename, $dirname); +?> +]]> + + &example.outputs.similar; + + @@ -219,7 +236,6 @@ Array - - - + + + popen プロセスへのファイルポインタをオープンする @@ -10,7 +11,7 @@ &reftitle.description; - resourcepopen + resourcefalsepopen stringcommand stringmode @@ -35,7 +36,17 @@ mode - モード。 + モード。読み取りを行う場合は 'r' を。 + 書き込みを行う場合は 'w' を指定します。 + + + Windows では、popen はデフォルトでテキストモードになります。 + つまり、パイプから \n 文字を読み込んだり、書き込んだりすると、 + \r\n に変換されるということです。 + この振る舞いを望まない場合は、 + mode にバイナリモードを指定し、強制することが出来ます。 + 読み取りのバイナリモードは 'rb' を。 + 書き込みのバイナリモードは'wb' をそれぞれ指定します。 @@ -109,8 +120,6 @@ pclose($handle); proc_open を使用してください。 - ¬e.exec-path; - &warn.sm.exec; @@ -125,7 +134,6 @@ pclose($handle); - - + @@ -11,10 +11,10 @@ &reftitle.description; - intreadfile + intfalsereadfile stringfilename booluse_include_path&false; - resourcecontext + resourcenullcontext&null; ファイルを読んで標準出力に書き出します。 @@ -46,9 +46,7 @@ context - - コンテキストストリームリソース。 - + ¬e.context-support; @@ -115,7 +113,6 @@ if (file_exists($file)) { &tip.fopen-wrapper; - ¬e.context-support; diff --git a/reference/filesystem/functions/readlink.xml b/reference/filesystem/functions/readlink.xml index 8ab54f25f8..43c7e2b0d3 100644 --- a/reference/filesystem/functions/readlink.xml +++ b/reference/filesystem/functions/readlink.xml @@ -1,8 +1,8 @@ - + - + readlink シンボリックリンク先を返す @@ -11,7 +11,7 @@ &reftitle.description; - stringreadlink + stringfalsereadlink stringpath @@ -49,31 +49,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - この関数は、Windows プラットフォーム - (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。 - - - - - - - - &reftitle.examples; @@ -105,7 +80,6 @@ echo readlink('/vmlinuz'); - - + realpath_cache_get @@ -18,6 +18,11 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; diff --git a/reference/filesystem/functions/realpath-cache-size.xml b/reference/filesystem/functions/realpath-cache-size.xml index 7cec4406fa..35cd5c4011 100644 --- a/reference/filesystem/functions/realpath-cache-size.xml +++ b/reference/filesystem/functions/realpath-cache-size.xml @@ -1,6 +1,6 @@ - + realpath_cache_size @@ -18,6 +18,11 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; diff --git a/reference/filesystem/functions/realpath.xml b/reference/filesystem/functions/realpath.xml index de577e829d..60faf759fe 100644 --- a/reference/filesystem/functions/realpath.xml +++ b/reference/filesystem/functions/realpath.xml @@ -1,8 +1,8 @@ - - - + + + realpath 正規化された絶対パス名を返す @@ -11,7 +11,7 @@ &reftitle.description; - stringrealpath + stringfalserealpath stringpath @@ -75,44 +75,14 @@ そのようなパスは、実際のパスではなく仮想パスになるからです。 + + + Windows では、ディレクトリへのシンボリックリンクとジャンクションは、ひとつ分しか展開されません。 + + &fs.file.32bit; - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - これより前のバージョンでは、*BSD システムでは realpath - は最後の path - コンポーネントのみが存在しない場合には失敗となりませんでした。 - このバージョン以降では失敗となります。 - - - - 5.2.1 - - これより前のバージョンでは、path が空文字列あるいは &null; の場合に - realpath は &false; を返していました。 - - - - - - - - - &reftitle.examples; @@ -174,7 +144,6 @@ C:\Program Files - - + @@ -12,15 +12,15 @@ &reftitle.description; boolrename - stringoldname - stringnewname - resourcecontext + stringfrom + stringto + resourcenullcontext&null; - oldname を - newname にリネームし、必要ならディレクトリを移動しようと試みます。 - ファイル名の変更かつ newname が存在する場合、上書きされます。 - ディレクトリ名の変更かつ newname が存在する場合、 + from を + to にリネームし、必要ならディレクトリを移動しようと試みます。 + ファイル名の変更かつ to が存在する場合、上書きされます。 + ディレクトリ名の変更かつ to が存在する場合、 この関数は警告を発します。 @@ -30,25 +30,33 @@ - oldname + from 変更前の名前。 - oldname で使用されるラッパーは、 - newname で使用するラッパーと適合 + from で使用されるラッパーは、 + to で使用するラッパーと適合 している必要があります - newname + to 変更後の名前。 + + + Windows では、to が既に存在する場合、 + そのファイルは書き込み可能でなければなりません。 + 書き込み可能でない場合、rename は失敗し、 + E_WARNING が発生します。 + + @@ -69,31 +77,6 @@ - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.1 - - rename は - Windows で別のドライブにリネームできるようになりました。 - - - - - - - - &reftitle.examples; diff --git a/reference/filesystem/functions/rewind.xml b/reference/filesystem/functions/rewind.xml index f2631bb38f..397b2b63bd 100644 --- a/reference/filesystem/functions/rewind.xml +++ b/reference/filesystem/functions/rewind.xml @@ -1,8 +1,8 @@ - - - + + + rewind ファイルポインタの位置を先頭に戻す @@ -12,10 +12,10 @@ &reftitle.description; boolrewind - resourcehandle + resourcestream - handle のファイル位置指示子を、 + stream のファイル位置指示子を、 ファイルストリームの先頭にセットします。 @@ -32,7 +32,7 @@ - handle + stream ファイルポインタは有効なものでなければならず、 @@ -96,7 +96,6 @@ Foolly long sentence. - - + @@ -12,11 +12,11 @@ &reftitle.description; boolrmdir - stringdirname - resourcecontext + stringdirectory + resourcenullcontext&null; - dirnameで指定されたディレクトリを + directoryで指定されたディレクトリを 削除しようと試みます。ディレクトリは空でなくてはならず、また 適切なパーミッションが設定されていなければなりません。 失敗した場合は E_WARNING レベルのエラーが発生します。 @@ -28,7 +28,7 @@ - dirname + directory ディレクトリへのパス。 @@ -72,11 +72,6 @@ rmdir('examples'); - - &reftitle.notes; - ¬e.sm.uidcheck.dir; - - &reftitle.seealso; diff --git a/reference/filesystem/functions/stat.xml b/reference/filesystem/functions/stat.xml index b611bd982b..f5f2b98c1f 100644 --- a/reference/filesystem/functions/stat.xml +++ b/reference/filesystem/functions/stat.xml @@ -1,8 +1,8 @@ - + - + stat ファイルに関する情報を取得する @@ -11,7 +11,7 @@ &reftitle.description; - arraystat + arrayfalsestat stringfilename @@ -75,7 +75,7 @@ 2 mode - inode プロテクトモード + inode プロテクトモード(*****) 3 @@ -152,6 +152,16 @@ よって、オーバーフローする可能性があります。 これより前のバージョンでは、この値は常に 0 でした。 + + ***** Windows では、 + 読み取り専用のファイル属性に従って、 + 書き込み可能のパーミッションビットが設定されます。 + そして、この値は全てのユーザ、グループ、 + オーナーについて、同じ値が報告されます。 + is_writable + とは異なり、ACL は考慮されません。 + + mode の値は、複数の関数によって読まれる情報が含まれています。 8進数の場合、一番右の桁から評価され、はじめの3桁が chmod によって返されます。 @@ -166,6 +176,10 @@ + + 0140000 + ソケット + 0120000 リンク @@ -182,6 +196,10 @@ 0040000 ディレクトリ + + 0020000 + キャラクタデバイス + 0010000 fifo @@ -316,12 +334,12 @@ if (!$stat) { fstat filemtime filegroup + SplFileInfo - - - + + symlink @@ -53,28 +53,13 @@ - - &reftitle.changelog; + + &reftitle.errors; - - - - - &Version; - &Description; - - - - - 5.3.0 - - この関数は、Windows プラットフォーム - (Vista 以降、あるいは Server 2008 以降) でも動作するようになりました。 - - - - - + link が既に存在する場合には、この関数は失敗し、 + E_WARNING が発生します。 + Windows では target が存在しない場合にも、この関数は失敗し、 + E_WARNING が発生します。 @@ -98,24 +83,15 @@ echo readlink($link); - - &reftitle.notes; - - - Windows ユーザーは注意しましょう。この関数が動作するのは、Windows Vista/Windows Server 2008 - 以降で PHP を動作させている場合のみです。それより前のバージョンの - Windows では、シンボリックリンクをサポートしていません。 - - - - &reftitle.seealso; + is_link link readlink linkinfo + unlink diff --git a/reference/filesystem/functions/tempnam.xml b/reference/filesystem/functions/tempnam.xml index f3e0d635f4..c384a9950c 100644 --- a/reference/filesystem/functions/tempnam.xml +++ b/reference/filesystem/functions/tempnam.xml @@ -1,8 +1,8 @@ - + - + tempnam 一意なファイル名を生成する @@ -11,8 +11,8 @@ &reftitle.description; - stringtempnam - stringdir + stringfalsetempnam + stringdirectory stringprefix @@ -29,7 +29,7 @@ - dir + directory テンポラリファイルを作成したいディレクトリ。 @@ -44,7 +44,7 @@ - プレフィックスの最初の63文字のみを使用します。 + プレフィックスの最初の63文字のみを使用し、残りは無視されます。 Windows では、プレフィックスの最初の 3 文字のみを使用します。 @@ -61,6 +61,30 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 7.1.0 + + tempnam は、 + システムのテンポラリディレクトリにフォールバックした場合に + 警告を生成するようになりました。 + + + + + + + &reftitle.examples; @@ -89,10 +113,10 @@ unlink($tmpfname); &reftitle.notes; - PHP が指定されたパラメータ dir + PHP が指定されたパラメータ directory にファイルを生成することができない場合、 システム標準のフォールバックが実行されます。 - NTFS では、指定した dir + NTFS では、指定した directory に 65534 を超える数のファイルが存在する場合にも同じことが起こります。 @@ -110,7 +134,6 @@ unlink($tmpfname); - - + @@ -11,11 +11,11 @@ &reftitle.description; - resourcetmpfile + resourcefalsetmpfile - 書き込み可のモード (w+) でユニークな名前を有するテンポラリファイルを作成し、 + 読み書き可、かつバイナリモード (w+b) でユニークな名前を有するテンポラリファイルを作成し、 ファイルハンドルを返します。 @@ -29,6 +29,11 @@ + + &reftitle.parameters; + &no.function.parameters; + + &reftitle.returnvalues; diff --git a/reference/filesystem/functions/touch.xml b/reference/filesystem/functions/touch.xml index e820953d63..907f49e823 100644 --- a/reference/filesystem/functions/touch.xml +++ b/reference/filesystem/functions/touch.xml @@ -1,6 +1,7 @@ - + + touch @@ -12,12 +13,12 @@ booltouch stringfilename - inttimetime() - intatime + intnullmtime&null; + intnullatime&null; filename で指定されたファイルの最終更新日を、 - time で指定された値に + mtime で指定された値に セットしようと試みます。 パラメータの数にかかわらず、アクセス時刻は 常に変更されることに注意しましょう。 @@ -40,12 +41,12 @@ - time + mtime 設定する時刻。 - time を省略した場合は、 - 現在時刻を使用します。 + mtime が &null; の場合は、 + 現在時刻 (time) を使用します。 @@ -53,10 +54,11 @@ atime - 指定されたファイルの最終アクセス時刻が存在する場合は、 - その値が atime にセットされます。 - 存在しない場合は time に渡した値となります。 - どちらも存在しない場合は、現在のシステム時刻を使います。 + この値が &null; でない場合、 + 指定されたファイルの最終アクセス時刻が + atime にセットされます。 + 存在しない場合は mtime に渡した値となります。 + どちらも &null; の場合は、現在のシステム時刻を使います。 @@ -73,26 +75,27 @@ &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.3.0 - - Windows 環境でディレクトリの最終更新日が変更できるようになりました。 - - - - - - + + + + + &Version; + &Description; + + + + + 8.0.0 + + mtime + と + atime + は、nullable になりました。 + + + + + @@ -115,7 +118,7 @@ if (touch($filename)) { - <function>touch</function> で <parameter>time</parameter> パラメータを使用する例 + <function>touch</function> で <parameter>mtime</parameter> パラメータを使用する例 &reftitle.notes; ¬e.filesystem-time-res; - - - PHP 5.3.0 より前のバージョンでは、Windows 環境のもとでは - この関数によってディレクトリの最終更新日を変更することはできませんでした。 - - diff --git a/reference/filesystem/functions/umask.xml b/reference/filesystem/functions/umask.xml index db3c799ddf..1dfae9c9a2 100644 --- a/reference/filesystem/functions/umask.xml +++ b/reference/filesystem/functions/umask.xml @@ -1,6 +1,6 @@ - + @@ -12,7 +12,7 @@ &reftitle.description; intumask - intmask + intnullmask&null; umask は PHP の umask を @@ -42,11 +42,34 @@ &reftitle.returnvalues; - umaskを引数無しで実行すると、単に現在の - umask値を返します。 + mask が &null; の場合、 + umaskは単に現在の umask 値を返します。 + そうでない場合、元の umask 値を返します。 + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + mask は、nullable になりました。 + + + + + + + &reftitle.examples; diff --git a/reference/filesystem/functions/unlink.xml b/reference/filesystem/functions/unlink.xml index 058e348c42..0beafeec11 100644 --- a/reference/filesystem/functions/unlink.xml +++ b/reference/filesystem/functions/unlink.xml @@ -1,6 +1,6 @@ - + @@ -13,7 +13,7 @@ boolunlink stringfilename - resourcecontext + resourcenullcontext&null; filename を削除します。 @@ -32,6 +32,11 @@ ファイルへのパス。 + + ファイルがシンボリックリンクの場合、シンボリックリンクが削除されます。 + Windows では、ディレクトリへのシンボリックリンクを削除するには + rmdir を使う必要があります。 + diff --git a/reference/filesystem/ini.xml b/reference/filesystem/ini.xml index 9b2d29681e..efcbea631b 100644 --- a/reference/filesystem/ini.xml +++ b/reference/filesystem/ini.xml @@ -1,6 +1,6 @@ - +
&reftitle.runtime; @@ -21,44 +21,44 @@ allow_url_fopen "1" - PHP_INI_SYSTEM + INI_SYSTEM allow_url_include "0" - PHP_INI_SYSTEM - PHP 5.2.0 から利用可能です。PHP 7.4.0 以降は非推奨になりました。 + INI_SYSTEM + PHP 7.4.0 以降は非推奨になりました。 user_agent NULL - PHP_INI_ALL + INI_ALL default_socket_timeout "60" - PHP_INI_ALL + INI_ALL from "" - PHP_INI_ALL + INI_ALL auto_detect_line_endings "0" - PHP_INI_ALL - + INI_ALL + PHP 8.1.0 以降は非推奨になりました。 sys_temp_dir "" - PHP_INI_SYSTEM - PHP 5.5.0 から使用可能です。 + INI_SYSTEM + @@ -72,7 +72,7 @@ allow_url_fopen - boolean + bool @@ -90,7 +90,7 @@ allow_url_include - boolean + bool @@ -123,7 +123,7 @@ default_socket_timeout - integer + int @@ -150,7 +150,7 @@ auto_detect_line_endings - boolean + bool diff --git a/reference/filesystem/reference.xml b/reference/filesystem/reference.xml index 616df78ec1..67ee1c6c2d 100644 --- a/reference/filesystem/reference.xml +++ b/reference/filesystem/reference.xml @@ -11,11 +11,11 @@ 関連する関数については、ディレクトリ およびプログラム実行の節を - 参照してください。 + 参照ください。 リモートファイルとして使用することができる種々のURLラッパーの一覧 - と説明については、も参照してください。 + と説明については、も参照ください。 diff --git a/reference/filesystem/setup.xml b/reference/filesystem/setup.xml index 7e4c9489a4..3819730059 100644 --- a/reference/filesystem/setup.xml +++ b/reference/filesystem/setup.xml @@ -1,25 +1,11 @@ - + &reftitle.setup; - -
- &reftitle.required; - &no.requirement; -
- - - -
- &reftitle.install; - &no.install; -
- - &reference.filesystem.ini; diff --git a/reference/filter/book.xml b/reference/filter/book.xml index 796e8ef99c..e38093953d 100644 --- a/reference/filter/book.xml +++ b/reference/filter/book.xml @@ -1,55 +1,65 @@ - - + データのフィルタリング - Filter + フィルタ &reftitle.intro; - + この拡張モジュールは、データの検証や除去を行います。 未知の (外部からの) データ、たとえばユーザーの入力などを扱う際に便利です。 - HTML フォームから送られてくるデータなどがこれにあたります。 - - + HTML フォームから送られてくるデータなどがこれにあたります。 + + フィルタリングの方式には、大きく分けて 検証 (validation)除去 (sanitization) のふたつがあります。 - - - 検証 は、 + + + 検証フィルタは、 データが何らかの条件を満たしているかどうかをチェックします。 + 検証フィルタは、 + FILTER_VALIDATE_* + 定数によって識別できます。 たとえば FILTER_VALIDATE_EMAIL を渡すと、 データがメールアドレスとして正しい形式かどうかを調べます。 データ自体には何も手を加えません。 - - - 除去 は、 - 望まれていない文字を除去するなどしてデータを変更します。 + + + 一方除去フィルタは、データを"綺麗に"します。 + よって、入力データに文字を追加/削除することでデータを変更します。 + 除去フィルタは、 + FILTER_SANITIZE_* + 定数によって識別できます。 たとえば FILTER_SANITIZE_EMAIL を渡すと、 メールアドレスとして無効な文字が含まれている場合にそれを除去します。 - つまり、データの検証を行うわけではありません。 - - - 検証および除去のいずれについても、必要に応じて フラグ - を使用して挙動を変更することができます。たとえば URL - のフィルタリング時に FILTER_FLAG_PATH_REQUIRED - を渡すと、パス (http://example.org/foo における + しかし、除去済みのデータ自体が、 + 正しいメールアドレスの形式かどうかを調べるわけではありません。 + + + ほとんどのフィルタには、 + オプションの フラグ があり、 + その振る舞いを細かく調整できるようになっています。 + こうしたフラグは、 + FILTER_FLAG_* + 定数によって識別できます。 + たとえば、検証フィルタ FILTER_VALIDATE_URL + と一緒に FILTER_FLAG_PATH_REQUIRED + を使うと、URL に特定のパス + (http://example.org/foo における /foo など) を必須とすることができます。 - + &reference.filter.setup; - &reference.filter.filters; &reference.filter.constants; &reference.filter.examples; &reference.filter.reference; - - diff --git a/reference/filter/configure.xml b/reference/filter/configure.xml index 5d81349db9..cd0132d323 100644 --- a/reference/filter/configure.xml +++ b/reference/filter/configure.xml @@ -1,17 +1,12 @@ - +
&reftitle.install; - filter 拡張モジュールは PHP 5.2.0 以降デフォルトで有効となります。 - filter 拡張モジュールを無効にするには、 - を使ってください。 - - - PHP 5.2.0 より前のバージョンでは実験的な PECL 拡張モジュールを使用していましたが、 - PECL 版はもはや非推奨ですし、更新もされません。 + &installation.enabled.disable; +
diff --git a/reference/filter/constants.xml b/reference/filter/constants.xml index 8480d96d30..9724d89584 100644 --- a/reference/filter/constants.xml +++ b/reference/filter/constants.xml @@ -1,16 +1,23 @@ - + - + + &reftitle.constants; &extension.constants; + 入力にまつわる定数 + + 以下の定数は、 + filter_input と + filter_input_array で使います。 + INPUT_POST - (integer) + (int) @@ -21,7 +28,7 @@ INPUT_GET - (integer) + (int) @@ -32,7 +39,7 @@ INPUT_COOKIE - (integer) + (int) @@ -43,7 +50,7 @@ INPUT_ENV - (integer) + (int) @@ -54,7 +61,7 @@ INPUT_SERVER - (integer) + (int) @@ -65,31 +72,35 @@ INPUT_SESSION - (integer) + (int) - SESSION 変数 - (まだ実装されていません)。 + SESSION 変数。 + (PHP 8.0.0 以降で削除されました。それより前のバージョンでも実装されていませんでした) INPUT_REQUEST - (integer) + (int) - REQUEST 変数 - (まだ実装されていません)。 + REQUEST 変数。 + (PHP 8.0.0 以降で削除されました。それより前のバージョンでも実装されていませんでした) + + + + 一般的なフィルタフラグ FILTER_FLAG_NONE - (integer) + (int) @@ -100,557 +111,1143 @@ FILTER_REQUIRE_SCALAR - (integer) + (int) - 入力値としてスカラーを要求するために使用するフラグ。 + フィルタの入力値がスカラーであることを要求するフラグ。 FILTER_REQUIRE_ARRAY - (integer) + (int) - 入力として配列を要求します。 + フィルタの入力値が配列であることを要求するフラグ。 FILTER_FORCE_ARRAY - (integer) + (int) - 常に配列として返します。 + 配列を操作するフィルタのために、 + スカラーの入力を配列でラップし、 + 要素を一つ持つ配列にします。 FILTER_NULL_ON_FAILURE - (integer) + (int) - 失敗した場合に FALSE ではなく NULL を使用します。 + 失敗時には、&false; ではなく &null; を返します。 - - - - - FILTER_VALIDATE_INT - (integer) - - - "int" フィルタの ID。 + 任意の検証フィルタ + FILTER_VALIDATE_* + と一緒に使うと便利です。 - - - FILTER_VALIDATE_BOOLEAN - (integer) - - - - "boolean" フィルタの ID。 - - - - - - FILTER_VALIDATE_FLOAT - (integer) - - - - "float" フィルタの ID。 - - - - - - FILTER_VALIDATE_REGEXP - (integer) - - - - "validate_regexp" フィルタの ID。 - - - - + + + + 除去フィルタのフラグ + - FILTER_VALIDATE_URL - (integer) + FILTER_FLAG_STRIP_LOW + (int) - "validate_url" フィルタの ID。 + ASCII 値が 32 未満の文字を取り除きます。 - + - FILTER_VALIDATE_DOMAIN - (integer) + FILTER_FLAG_STRIP_HIGH + (int) - "validate_domain" フィルタの ID。 - (PHP 7.0.0 以降で利用可能) + ASCII 値が 127 より大きい文字を取り除きます。 - - + - FILTER_VALIDATE_EMAIL - (integer) + FILTER_FLAG_STRIP_BACKTICK + (int) - "validate_email" フィルタの ID。 + バッククォート文字(`)を取り除きます。 - + - FILTER_VALIDATE_IP - (integer) + FILTER_FLAG_ENCODE_LOW + (int) - "validate_ip" フィルタの ID。 + ASCII 値が 32 未満の文字をエンコードします。 - + - FILTER_VALIDATE_MAC - (integer) + FILTER_FLAG_ENCODE_HIGH + (int) - "validate_mac_address" フィルタの ID。 - (PHP 5.5.0 以降で使用可能) + ASCII 値が 127 より大きい文字をエンコードします。 - + - FILTER_DEFAULT - (integer) + FILTER_FLAG_ENCODE_AMP + (int) - デフォルト ("unsafe_raw") フィルタの ID。 - これは FILTER_UNSAFE_RAW と同等です。 + & をエンコードします。 - + - FILTER_UNSAFE_RAW - (integer) + FILTER_FLAG_NO_ENCODE_QUOTES + (int) - "unsafe_raw" フィルタの ID。 + ' および " をエンコードしません。 - + - FILTER_SANITIZE_STRING - (integer) + FILTER_FLAG_EMPTY_STRING_NULL + (int) - "string" フィルタの ID。 + + 除去フラグを適用した結果が空文字列だった場合、 + その値を &null; に変換します。 - + + + + 検証フィルタ + + - FILTER_SANITIZE_STRIPPED - (integer) + FILTER_VALIDATE_BOOL + (int) - "stripped" フィルタの ID。 + "1", + 2進数、8進数、16進数記法の 1, + 1.0, + "true", true, + "on", + "yes" + に対して、&true; を返します。 - - - - - FILTER_SANITIZE_ENCODED - (integer) - - - "encoded" フィルタの ID。 + "0", + 2進数、8進数、16進数記法の 0, + 0.0, + "false", false, + "off", + "no", + "" に対して、&false; を返します。 - - - - - FILTER_SANITIZE_SPECIAL_CHARS - (integer) - - - "special_chars" フィルタの ID。 + 文字列の値は、大文字小文字の区別をせず比較されます。 + このフィルタが boolean 以外を返すかどうかは、 + FILTER_NULL_ON_FAILURE の値次第です。 + この値が設定されていると、&null; を返します。 + そうでない場合、&false; を返します。 - - - - - FILTER_SANITIZE_EMAIL - (integer) - - + + 利用可能なオプション + + default + + + フィルタが失敗した場合に返す値 + + + + - "email" フィルタの ID。 + PHP 8.0.0 以降で利用可能です。 - + + - FILTER_SANITIZE_URL - (integer) + FILTER_VALIDATE_BOOLEAN + (int) - "url" フィルタの ID。 + &Alias; FILTER_VALIDATE_BOOL。 + このエイリアスは、正規化された名前が実装される前の + PHP 8.0.0 より前のバージョンで利用可能でした。 - + + - FILTER_SANITIZE_NUMBER_INT - (integer) + FILTER_VALIDATE_INT + (int) - "number_int" フィルタの ID。 + 値が整数値かどうかを検証します。 + 検証が成功すると、int 型に変換されます。 + + + + 文字列の値は、検証する前に trim を実行します。 + + + + + 利用可能なオプション + + default + + + フィルタが失敗した場合に返す値 + + + + + min_range + + + 指定した値と等しい、 + またはそれより大きな場合にのみ値が正しいとみなされます。 + + + + + max_range + + + 指定した値と等しい、 + またはそれより小さな場合にのみ値が正しいとみなされます。 + + + + + + オプションのフラグ + + + FILTER_FLAG_ALLOW_OCTAL + (int) + + + + + 8 進表記 (0[0-7]+) を許可します。 + + + + + + FILTER_FLAG_ALLOW_HEX + (int) + + + + 16 進表記 (0x[0-9a-fA-F]+) を許可します。 + + + + - + + - FILTER_SANITIZE_NUMBER_FLOAT - (integer) + FILTER_VALIDATE_FLOAT + (int) - "number_float" フィルタの ID。 + 値が浮動小数点数かどうかを検証します。 + 検証が成功すると、float 型に変換されます。 + + + + 文字列の値は、検証する前に trim を実行します。 + + + + + 利用可能なオプション + + default + + + フィルタが失敗した場合に返す値 + + + + + decimal + + + + + + + + min_range + + + 指定した値と等しい、 + またはそれより大きな場合にのみ値が正しいとみなされます。 + PHP 7.4.0 以降で利用可能です。 + + + + + max_range + + + 指定した値と等しい、 + またはそれより小さな場合にのみ値が正しいとみなされます。 + PHP 7.4.0 以降で利用可能です。 + + + + + + オプションのフラグ + + + FILTER_FLAG_ALLOW_THOUSAND + (int) + + + + 桁区切り文字 (,) を許可します。 + これは通常、1000ごとに桁を区切るのに使われます。 + + + + - + - FILTER_SANITIZE_MAGIC_QUOTES - (integer) + FILTER_VALIDATE_REGEXP + (int) - "magic_quotes" フィルタの ID。 - (PHP 7.3.0 以降は非推奨になりました。代わりに FILTER_SANITIZE_ADD_SLASHES を使ってください) + regexp オプションによって、 + 指定した正規表現にマッチするかを検証します。 + + + 利用可能なオプション + + default + + + フィルタが失敗した場合に返す値 + + + + + regexp + + + PCRE 互換の正規表現 + + + + - + + - FILTER_SANITIZE_ADD_SLASHES - (integer) + FILTER_VALIDATE_URL + (int) - "add_slashes" フィルタの ID。 - (PHP 7.3.0 以降で利用可能) + URL が + RFC 2396 + に照らして正しいかを検証します。 + + 利用可能なオプション + + default + + + フィルタが失敗した場合に返す値 + + + + + + オプションのフラグ + + + FILTER_FLAG_SCHEME_REQUIRED + (int) + + + + URL に scheme 部分を必須とします。 + + + + PHP 7.3.0 以降は非推奨になり、 + PHP 8.0.0 で削除されました。 + FILTER_VALIDATE_URL + フィルタが常にこの処理を含んでいたからです。 + + + + + + + FILTER_FLAG_HOST_REQUIRED + (int) + + + + URL に host 部分を必須とします。 + + + + PHP 7.3.0 以降は非推奨になり、 + PHP 8.0.0 で削除されました。 + FILTER_VALIDATE_URL + フィルタが常にこの処理を含んでいたからです。 + + + + + + + FILTER_FLAG_PATH_REQUIRED + (int) + + + + URL に path 部分を必須とします。 + + + + + + FILTER_FLAG_QUERY_REQUIRED + (int) + + + + URL に query 部分を必須とします。 + + + + + + + 正しい URL であっても、 + HTTP プロトコル (http://) + を指定しない場合があります。 + よって、URL + が期待通りのプロトコルを使っているかについては、 + 追加の検証が必要です。 + たとえば ssh://mailto: + の検証がその例です。 + + + + + このフィルタは + ASCII で構成された + URL に対してのみ動作します。 + つまり、Internationalized Domain Names (IDN) + は常に拒否されるということです。 + + - + - FILTER_CALLBACK - (integer) + FILTER_VALIDATE_DOMAIN + (int) - "callback" フィルタの ID。 + ドメイン名が + RFC 952, + RFC 1034, + RFC 1035, + RFC 1123, + RFC 2732, + RFC 2181 + に照らして正しいかを検証します。 + + 利用可能なオプション + + default + + + フィルタが失敗した場合に返す値 + + + + + + オプションのフラグ + + + FILTER_FLAG_HOSTNAME + (int) + + + + アルファベットと数字から始まり、 + アルファベットと数字およびハイフンだけを含むホスト名を必須とします。 + + + + - + - FILTER_FLAG_ALLOW_OCTAL - (integer) + FILTER_VALIDATE_EMAIL + (int) - "int" フィルタで 8 進表記 (0[0-7]+) を許可します。 + 値が "正しい" メールアドレスかどうかを検証します。 - - - - - FILTER_FLAG_ALLOW_HEX - (integer) - - + - "int" フィルタで 16 進表記 (0x[0-9a-fA-F]+) を許可します。 + RFC 822 + の addr-spec syntax に照らして検証は行われます。 + しかし、コメントやホワイトスペースのフォールディング、 + ドットなしのドメイン名はサポートされていません。 + よってこれらは拒否されます。 + + + 利用可能なオプション + + default + + + フィルタが失敗した場合に返す値 + + + + + + オプションのフラグ + + + FILTER_FLAG_EMAIL_UNICODE + (int) + + + + local の部分に Unicode を許可します。 + PHP 7.1.0 以降で利用可能です。 + + + + + + + + メールアドレスの検証は複雑なので、 + メールアドレスが正しく、かつ存在するかを確認する唯一の方法は、 + そのアドレスにメールを送信することです。 + + - + + - FILTER_FLAG_STRIP_LOW - (integer) + FILTER_VALIDATE_IP + (int) - - ASCII 値が 32 未満の文字を取り除きます。 - + + 値が IPアドレス かどうかを検証します。 + + + 利用可能なオプション + + default + + + フィルタが失敗した場合に返す値 + + + + + + オプションのフラグ + + + FILTER_FLAG_IPV4 + (int) + + + + IPv4 アドレスを許可します。 + + + + + + FILTER_FLAG_IPV6 + (int) + + + + IPv6 アドレスを許可します。 + + + + + + FILTER_FLAG_NO_RES_RANGE + (int) + + + + 予約済みアドレスを拒否します。 + + + RFC 6890 + で Reserved-By-Protocol + としてマークされているアドレスが該当します。 + + + IPv4 については、以下の範囲が該当します: + + 0.0.0.0/8 + 169.254.0.0/16 + 127.0.0.0/8 + 240.0.0.0/4 + + + + IPv6 については、以下の範囲が該当します: + + ::1/128 + ::/128 + ::FFFF:0:0/96 + FE80::/10 + + + + + + + FILTER_FLAG_NO_PRIV_RANGE + (int) + + + + プライベートアドレスを拒否します。 + + + IPv4 については、以下の範囲が該当します: + + 10.0.0.0/8 + 172.16.0.0/12 + 192.168.0.0/16 + . + + + IPv6 については、 + FDFC + から始まるものが該当します。 + + + + + + FILTER_FLAG_GLOBAL_RANGE + (int) + + + + グローバルアドレスのみを許可します。 + RFC 6890 で、 + Global 属性が True + になっているものが該当します。 + PHP 8.2.0 以降で利用可能です。 + + + + - + + - FILTER_FLAG_STRIP_HIGH - (integer) + FILTER_VALIDATE_MAC + (int) - ASCII 値が 127 より大きい文字を取り除きます。 + 値が MACアドレス かどうかを検証します。 + + + 利用可能なオプション + + default + + + フィルタが失敗した場合に返す値 + + + + - + + + + 除去フィルタ + - FILTER_FLAG_STRIP_BACKTICK - (integer) + FILTER_UNSAFE_RAW + (int) - バックティック文字を取り除きます。 - (PHP 5.3.2 以降で利用可能) + このフィルタは何もしません。 - - - - - FILTER_FLAG_ENCODE_LOW - (integer) - - - ASCII 値が 32 未満の文字をエンコードします。 + しかし、FILTER_FLAG_STRIP_* + や FILTER_FLAG_ENCODE_* + と一緒に使うと、特殊な文字を除去したり、エンコードしたりできます。 - + - FILTER_FLAG_ENCODE_HIGH - (integer) + FILTER_DEFAULT + (int) - ASCII 値が 127 より大きい文字をエンコードします。 + &Alias; FILTER_UNSAFE_RAW. - + - FILTER_FLAG_ENCODE_AMP - (integer) + FILTER_SANITIZE_STRING + (int) - & をエンコードします。 + このフィルタは、タグを除去したり、 + ダブルクォートやシングルクォートを HTML-エンコードしたりします。 - - - - - FILTER_FLAG_NO_ENCODE_QUOTES - (integer) - - - ' および " をエンコードしません。 + フィルタ除去フラグ + FILTER_FLAG_STRIP_*, + FILTER_FLAG_ENCODE_* + と一緒に使うことで、特殊文字を除去したり、エンコードしたりもできます。 - - - - - FILTER_FLAG_EMPTY_STRING_NULL - (integer) - - - (現在は使用されていません) + クォートをエンコードする際の振る舞いは、 + フィルタフラグ FILTER_FLAG_NO_ENCODE_QUOTES + を使うことで無効にできます。 + + + PHP 8.1.0 以降は、このフィルタは 推奨されません。 + 代わりに、htmlspecialchars を使いましょう。 + + + + + このフィルタがタグを除去する方法は、 + strip_tags と同じではありません。 + + - + - FILTER_FLAG_ALLOW_FRACTION - (integer) + FILTER_SANITIZE_STRIPPED + (int) - "number_float" フィルタで小数を許可します。 + &Alias; FILTER_SANITIZE_STRING. + + + PHP 8.1.0 以降は、このフィルタは 推奨されません。 + 代わりに、htmlspecialchars を使いましょう。 + + - + - FILTER_FLAG_ALLOW_THOUSAND - (integer) + FILTER_SANITIZE_ENCODED + (int) - "number_float" フィルタで桁区切り文字 (,) を許可します。 + このフィルタは、文字列をURLエンコードします。 - - - - - FILTER_FLAG_ALLOW_SCIENTIFIC - (integer) - - - "number_float" フィルタで科学記法 (e, E) - を許可します。 + このフィルタは、フィルタ除去フラグ + FILTER_FLAG_STRIP_*, + FILTER_FLAG_ENCODE_* + と一緒に使うことで、特殊文字をエンコードしたり除去することができます。 - + - FILTER_FLAG_PATH_REQUIRED - (integer) + FILTER_SANITIZE_SPECIAL_CHARS + (int) + + 以下のHTMLエンコードおよび、ASCII 値が32より小さい値をフィルタします。 + + ' + " + < + > + & + + FILTER_SANITIZE_FULL_SPECIAL_CHARS + と異なり、 + FILTER_SANITIZE_SPECIAL_CHARS + フィルタは + FILTER_FLAG_NO_ENCODE_QUOTES + フラグを無視します。 + - "validate_url" フィルタでパスを必須とします。 + 除去フラグ + FILTER_FLAG_STRIP_* + と一緒に使うことで、特殊文字を除去できます。 + そして、 + FILTER_FLAG_ENCODE_HIGH + と一緒に使うと、ASCII 値 127より大きな値をエンコードできます。 - + - FILTER_FLAG_QUERY_REQUIRED - (integer) + FILTER_SANITIZE_FULL_SPECIAL_CHARS + (int) - "validate_url" フィルタでクエリ文字列を必須とします。 + このフィルタは、 + htmlspecialchars + を ENT_QUOTES + と一緒にコールした場合と同じです。 - - - - - FILTER_FLAG_SCHEME_REQUIRED - (integer) - - - "validate_url" フィルタで scheme を必須とします。 - ("validate_url" フィルタに含まれるようになったため、PHP 7.3 以降は非推奨になりました。) + クォートをエンコードする際の振る舞いは、 + フィルタフラグ + FILTER_FLAG_NO_ENCODE_QUOTES + を使うと無効にできます。 + + + htmlspecialchars と同様に、 + このフィルタは INI 設定 + default_charset + を認識します。 + 現在の文字セットに照らして不正なバイトシーケンスが検知された場合、 + 文字列全体が拒否され、空の文字列が返されます。 + + - + - FILTER_FLAG_HOST_REQUIRED - (integer) + FILTER_SANITIZE_EMAIL + (int) - "validate_url" フィルタで host 部分を必須とします。 - ("validate_url" フィルタに含まれるようになったため、PHP 7.3 以降は非推奨になりました。) + ラテン文字 ([a-zA-Z]), + 数字 ([0-9]), + そして特殊文字 + !#$%&'*+-=?^_`{|}~@.[] + 以外の文字を全て除去します。 - + - FILTER_FLAG_HOSTNAME - (integer) + FILTER_SANITIZE_URL + (int) - アルファベットと数字から始まり、アルファベットと数字およびハイフンだけを含むホスト名を必須とします。 - (PHP 7.0.0 以降で利用可能です) + ラテン文字 ([a-zA-Z]), + 数字 ([0-9]), + そして特殊文字 + $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=. + 以外の文字を全て除去します。 - + - FILTER_FLAG_IPV4 - (integer) + FILTER_SANITIZE_NUMBER_INT + (int) - "validate_ip" フィルタで IPv4 アドレスのみを許可します。 + ([0-9]), (+), + (-) 以外の文字を全て除去し余す。 - + - FILTER_FLAG_IPV6 - (integer) + FILTER_SANITIZE_NUMBER_FLOAT + (int) - "validate_ip" フィルタで IPv6 アドレスのみを許可します。 + ([0-9]), (+), + (-) 以外の文字を全て除去し余す。 + + + オプションのフラグ + + + FILTER_FLAG_ALLOW_FRACTION + (int) + + + + ドット文字 (.) を許可します。 + これは通常、整数部分と少数部分の区切りを表します。 + + + + + + FILTER_FLAG_ALLOW_THOUSAND + (int) + + + + 桁区切り文字 (,) を許可します。 + これは通常、1000ごとに桁を区切るのに使われます。 + + + + + + FILTER_FLAG_ALLOW_SCIENTIFIC + (int) + + + + eE 文字を許可することで、 + 科学的記法の数値を許可します。 + + + + + + + FILTER_FLAG_ALLOW_FRACTION フラグを使わない場合、 + 10進数のセパレータは削除され、変更された値を受け取ることになります。 + + + + +]]> + + &example.outputs; + + + + + - + + - FILTER_FLAG_NO_RES_RANGE - (integer) + FILTER_SANITIZE_ADD_SLASHES + (int) - "validate_ip" フィルタで予約済みアドレスを拒否します。 + 入力に対して addslashes を適用します。 + PHP 7.3.0 以降で利用可能です。 - + + - FILTER_FLAG_NO_PRIV_RANGE - (integer) + FILTER_SANITIZE_MAGIC_QUOTES + (int) - "validate_ip" フィルタでプライベートアドレスを拒否します。 + &Alias; FILTER_SANITIZE_ADD_SLASHES. + + + PHP 7.3.0 以降は非推奨になり、 + PHP 8.0.0 以降 削除 されています。 + + - + + + + ユーザー定義のフィルタ + - FILTER_FLAG_EMAIL_UNICODE - (integer) + FILTER_CALLBACK + (int) - "validate_email" フィルタで、ローカルパートに Unicode 文字を許可します。 - (PHP 7.1.0 以降で利用可能) + このフィルタは、フィルタリング処理をユーザー定義の関数に委譲します。 + options パラメータの 'options' + キー経由で callable を渡します。 + + コールバックは、以下のシグネチャを持ちます: + + mixedcallback + stringvalue + + + + value + + + フィルタされる値 + + + + + + + + コールバックから返される値が、 + フィルタ関数の呼び出しで返される値になります。 + + + + + ログイン名を検証するために + <constant>FILTER_CALLBACK</constant> + を使う例 + + += 5 && ctype_alnum($value)) { + return $value; + } + return null; +} + +$login = "val1dL0gin"; +$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']); +var_dump($filtered_login); + +$login = "f&ke login"; +$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']); +var_dump($filtered_login); +?> +]]> + + &example.outputs; + + + + + + + このフィルタは、 + FILTER_NULL_ON_FAILURE + のような他のフィルタフラグと一緒には使えません。 + + - - + @@ -153,17 +153,6 @@ if (filter_var($sanitized_c, FILTER_VALIDATE_EMAIL)) {
- - - デフォルトのフィルタの設定 - - - - -
diff --git a/reference/filter/filters.xml b/reference/filter/filters.xml deleted file mode 100644 index b869959237..0000000000 --- a/reference/filter/filters.xml +++ /dev/null @@ -1,809 +0,0 @@ - - - - - - フィルタの型 - - -
- 検証フィルタ - - - 検証用のフィルタの一覧 - - - - ID - 名前 - オプション - フラグ - 説明 - - - - - FILTER_VALIDATE_BOOLEAN - "boolean" - - default - - - FILTER_NULL_ON_FAILURE - - - - "1"、"true"、"on" および "yes" の場合に &true;、 - それ以外の場合に &false; を返します。 - - - FILTER_NULL_ON_FAILURE が設定されている場合は、 - &false; が返されるのは - "0"、"false"、"off"、"no" および "" の場合のみとなります。 - boolean 以外の値については &null; を返します。 - - - - - FILTER_VALIDATE_EMAIL - "validate_email" - - default - - - FILTER_FLAG_EMAIL_UNICODE - - - - 値が妥当な e-mail アドレスであるかどうかを検証します。 - - - この検証は、e-mail アドレスが RFC 822 に沿った形式であるかどうかを確かめます。 - ただし、コメント、空白の折り返し (whitespace folding) および - ドットなしドメイン名 (dotless domain name) には対応していません。 - - - - - FILTER_VALIDATE_FLOAT - "float" - - default, - decimal, - min_range, - max_range - - - FILTER_FLAG_ALLOW_THOUSAND - - 値が float - であるかどうかを検証し、オプションで指定された範囲にあるかを調べます。成功した場合は値を float に変換します。 - - - FILTER_VALIDATE_INT - "int" - - default, - min_range, - max_range - - - FILTER_FLAG_ALLOW_OCTAL, - FILTER_FLAG_ALLOW_HEX - - 値が整数であるかどうか、オプションで指定した範囲内にあるかどうかを検証し、成功した場合は整数に変換します。 - - - FILTER_VALIDATE_IP - "validate_ip" - - default - - - FILTER_FLAG_IPV4, - FILTER_FLAG_IPV6, - FILTER_FLAG_NO_PRIV_RANGE, - FILTER_FLAG_NO_RES_RANGE - - - 値が IP アドレスであるかどうかを検証します。 - オプションで IPv4 あるいは IPv6 のみの指定、 - プライベートアドレスや予約済みアドレスではないことの指定もできます。 - - - - FILTER_VALIDATE_MAC - "validate_mac_address" - - default - - - 値が MAC アドレスであるかどうかを検証します。 - - - FILTER_VALIDATE_REGEXP - "validate_regexp" - - default, - regexp - - - - 値が、Perl 互換の - 正規表現 regexp に一致するかどうかを検証します。 - - - - FILTER_VALIDATE_URL - "validate_url" - - default - - - FILTER_FLAG_SCHEME_REQUIRED, - FILTER_FLAG_HOST_REQUIRED, - FILTER_FLAG_PATH_REQUIRED, - FILTER_FLAG_QUERY_REQUIRED - - - 値が URL 形式である (&url.rfc;2396 に準拠している) かどうか、 - オプションで、必須コンポーネントが含まれているかどうかを検証します。 - 妥当な URL が、HTTP プロトコル http:// を指定しているとは限りません。 - つまり、その URL が期待通りのプロトコル - (ssh://mailto: など) - を使っているかどうか、さらなる検証が必要だということです。 - この関数は、ASCII の URL のみを正しいとみなすことに注意しましょう。 - 国際化ドメイン名 (非 ASCII 文字を含むもの) は失敗します。 - - - - -
-
- - - PHP 5.4.11 移行、数値 +0 および -0 はどちらも、整数としても float としても有効と見なされるようになりました - (FILTER_VALIDATE_FLOAT や - FILTER_VALIDATE_INT を使った場合)。 - それより前のバージョンでは、(FILTER_VALIDATE_FLOAT を使った場合に)float としてしか有効と見なされませんでした。 - - - オプションに default を設定すると、値が検証されなかったときに default の値を使います。 - - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.4.0 - - FILTER_VALIDATE_FLOAT 向けに - min_range and max_range - オプションが追加されました。 - - - - 7.0.0 - - FILTER_FLAG_HOSTNAME が追加されました。 - - - - 5.5.0 - - FILTER_VALIDATE_MAC が追加されました。 - - - - 5.2.1 - - FILTER_VALIDATE_URL のデフォルトが - FILTER_FLAG_SCHEME_REQUIRED および - FILTER_FLAG_HOST_REQUIRED となりました。 - - - - - - - - -
- - - -
- 除去フィルタ - - - 除去フィルタの一覧 - - - - ID - 名前 - フラグ - 説明 - - - - - FILTER_SANITIZE_EMAIL - "email" - - - 英字、数字および - !#$%&'*+-=?^_`{|}~@.[] - 以外のすべての文字を取り除きます。 - - - - FILTER_SANITIZE_ENCODED - "encoded" - - FILTER_FLAG_STRIP_LOW, - FILTER_FLAG_STRIP_HIGH, - FILTER_FLAG_STRIP_BACKTICK, - FILTER_FLAG_ENCODE_LOW, - FILTER_FLAG_ENCODE_HIGH - - - 文字列を URL エンコードします。オプションで、 - 特殊文字を取り除いたりエンコードしたりします。 - - - - FILTER_SANITIZE_MAGIC_QUOTES - "magic_quotes" - - addslashes を適用します。 - - - FILTER_SANITIZE_NUMBER_FLOAT - "number_float" - - FILTER_FLAG_ALLOW_FRACTION, - FILTER_FLAG_ALLOW_THOUSAND, - FILTER_FLAG_ALLOW_SCIENTIFIC - - - 数字、+- および - オプションで .,eE - 以外のすべての文字を取り除きます。 - - - - FILTER_SANITIZE_NUMBER_INT - "number_int" - - - 数字、プラス記号、マイナス記号 - 以外のすべての文字を取り除きます。 - - - - FILTER_SANITIZE_SPECIAL_CHARS - "special_chars" - - FILTER_FLAG_STRIP_LOW, - FILTER_FLAG_STRIP_HIGH, - FILTER_FLAG_STRIP_BACKTICK, - FILTER_FLAG_ENCODE_HIGH - - - '"<>& および - ASCII 値が 32 未満の文字を HTML エスケープします。オプションで、 - 特殊文字を取り除いたりエンコードしたりします。 - - - - FILTER_SANITIZE_FULL_SPECIAL_CHARS - "full_special_chars" - - FILTER_FLAG_NO_ENCODE_QUOTES, - - - htmlspecialcharsENT_QUOTES を指定してコールするのと同じです。 - クォートのエンコードを無効にするには - FILTER_FLAG_NO_ENCODE_QUOTES を設定します。 - htmlspecialchars と同様、このフィルタは - default_charset に対応しています。 - 現在の文字セットで無効な文字となるバイトシーケンスが検出されると文字列全体を拒否し、 - 結果は長さ 0 の文字列となります。 - このフィルタをデフォルトのフィルタとして使う場合は、以下の警告を参考にして - デフォルトのフラグを 0 に設定しましょう。 - - - - FILTER_SANITIZE_STRING - "string" - - FILTER_FLAG_NO_ENCODE_QUOTES, - FILTER_FLAG_STRIP_LOW, - FILTER_FLAG_STRIP_HIGH, - FILTER_FLAG_STRIP_BACKTICK, - FILTER_FLAG_ENCODE_LOW, - FILTER_FLAG_ENCODE_HIGH, - FILTER_FLAG_ENCODE_AMP - - - タグを取り除きます。オプションで、 - 特殊文字を取り除いたりエンコードしたりします。 - - - - FILTER_SANITIZE_STRIPPED - "stripped" - - "string" フィルタのエイリアス。 - - - FILTER_SANITIZE_URL - "url" - - - 英字、数字および - $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&= - 以外のすべての文字を取り除きます。 - - - - FILTER_UNSAFE_RAW - "unsafe_raw" - - FILTER_FLAG_STRIP_LOW, - FILTER_FLAG_STRIP_HIGH, - FILTER_FLAG_STRIP_BACKTICK, - FILTER_FLAG_ENCODE_LOW, - FILTER_FLAG_ENCODE_HIGH, - FILTER_FLAG_ENCODE_AMP - - - 何もせず、オプションで特殊文字を取り除いたりエンコードしたりします。 - FILTER_DEFAULT は、このフィルタのエイリアスです。 - - - - -
-
- - - これらのフィルタのいずれかを ini ファイルやウェブサーバーの設定でデフォルトフィルタとして使用すると、 - デフォルトのフラグは - FILTER_FLAG_NO_ENCODE_QUOTES となります。 - デフォルトでクォートをエンコードさせるには、 - 明示的に filter.default_flags を 0 としなければなりません。 - - デフォルトのフィルタを htmlspecialchars と同様の挙動にする設定 - - - - - - - - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 5.2.11/5.3.1 - - スラッシュ (/) が - FILTER_SANITIZE_EMAIL から取り除かれました。これより前のバージョンでは、スラッシュも含まれていました。 - - - - - - - - -
- - - -
- その他のフィルタ - - - その他のフィルタの一覧 - - - - ID - 名前 - オプション - フラグ - 説明 - - - - - FILTER_CALLBACK - "callback" - callable 関数あるいはメソッド - - ユーザー定義の関数をコールしてデータをフィルタリングします。 - - - -
-
-
- - - -
- フィルタフラグ - - - - フィルタフラグの一覧 - - - - ID - 使える場所 - 説明 - - - - - FILTER_FLAG_STRIP_LOW - - FILTER_SANITIZE_ENCODED, - FILTER_SANITIZE_SPECIAL_CHARS, - FILTER_SANITIZE_STRING, - FILTER_UNSAFE_RAW - - - コードが 32 未満の文字を除去します。 - - - - FILTER_FLAG_STRIP_HIGH - - FILTER_SANITIZE_ENCODED, - FILTER_SANITIZE_SPECIAL_CHARS, - FILTER_SANITIZE_STRING, - FILTER_UNSAFE_RAW - - - コードが 127 より大きい文字を除去します。 - - - - FILTER_FLAG_STRIP_BACKTICK - - FILTER_SANITIZE_ENCODED, - FILTER_SANITIZE_SPECIAL_CHARS, - FILTER_SANITIZE_STRING, - FILTER_UNSAFE_RAW - - - バックティック文字を除去します。 - - - - FILTER_FLAG_ALLOW_FRACTION - - FILTER_SANITIZE_NUMBER_FLOAT - - - ピリオド (.) を数値の小数点として許可します。 - - - - FILTER_FLAG_ALLOW_THOUSAND - - FILTER_SANITIZE_NUMBER_FLOAT, - FILTER_VALIDATE_FLOAT - - - カンマ (,) を数値の桁区切り文字として許可します。 - - - - FILTER_FLAG_ALLOW_SCIENTIFIC - - FILTER_SANITIZE_NUMBER_FLOAT - - - e あるいは E を、 - 科学記法の数値として許可します。 - - - - FILTER_FLAG_NO_ENCODE_QUOTES - - FILTER_SANITIZE_STRING - - - このフラグを指定すると、シングルクォート (') - およびダブルクォート (") をエンコードしません。 - - - - FILTER_FLAG_ENCODE_LOW - - FILTER_SANITIZE_ENCODED, - FILTER_SANITIZE_STRING, - FILTER_SANITIZE_RAW - - - コードが 32 未満のすべての文字をエンコードします。 - - - - FILTER_FLAG_ENCODE_HIGH - - FILTER_SANITIZE_ENCODED, - FILTER_SANITIZE_SPECIAL_CHARS, - FILTER_SANITIZE_STRING, - FILTER_SANITIZE_RAW - - - コードが 127 より大きいすべての文字をエンコードします。 - - - - FILTER_FLAG_ENCODE_AMP - - FILTER_SANITIZE_STRING, - FILTER_SANITIZE_RAW - - - アンパサンド (&) をエンコードします。 - - - - FILTER_NULL_ON_FAILURE - - FILTER_VALIDATE_BOOLEAN - - - boolean 値として認識できない値の場合に &null; を返します。 - - - - FILTER_FLAG_ALLOW_OCTAL - - FILTER_VALIDATE_INT - - - ゼロ (0) で始まる入力を八進数とみなします。 - ゼロの後には 0-7 しか続けることができません。 - - - - FILTER_FLAG_ALLOW_HEX - - FILTER_VALIDATE_INT - - - 0x あるいは - 0X で始まる入力を十六進数とみなします。 - 後に続けられる文字は a-fA-F0-9 だけです。 - - - - FILTER_FLAG_EMAIL_UNICODE - - FILTER_VALIDATE_EMAIL - - - Allows the local part of the email address to contain Unicode characters. - - - - - FILTER_FLAG_IPV4 - - FILTER_VALIDATE_IP - - - IPv4 形式の IP アドレスを許可します。 - - - - FILTER_FLAG_IPV6 - - FILTER_VALIDATE_IP - - - IPv6 形式の IP アドレスを許可します。 - - - - FILTER_FLAG_NO_PRIV_RANGE - - FILTER_VALIDATE_IP - - - - IPv4 プライベート領域 - 10.0.0.0/8, 172.16.0.0/12 および - 192.168.0.0/16 - を許可しません。 - - - FD あるいは FC - ではじまる IPv6 アドレスを許可しません。 - - - - - FILTER_FLAG_NO_RES_RANGE - - FILTER_VALIDATE_IP - - - - 予約済みの IPv4 範囲 - 0.0.0.0/8, 169.254.0.0/16, - 127.0.0.0/8 および 240.0.0.0/4 - を許可しません。 - - - 予約済みの IPv6 範囲 - ::1/128::/128、 - ::ffff:0:0/96 および fe80::/10 - を許可しません。 - - - - - FILTER_FLAG_SCHEME_REQUIRED - - FILTER_VALIDATE_URL - - - URL がスキームを含むことを要求します。 - - - - FILTER_FLAG_HOST_REQUIRED - - FILTER_VALIDATE_URL - - - URL がホストを含むことを要求します。 - - - - FILTER_FLAG_PATH_REQUIRED - - FILTER_VALIDATE_URL - - - URL で、パス部分を必須とします。 - - - - FILTER_FLAG_QUERY_REQUIRED - - FILTER_VALIDATE_URL - - - URL で、クエリ文字列を必須とします。 - - - - FILTER_REQUIRE_SCALAR - - - - 値がスカラーであることを必須とします。 - - - - FILTER_REQUIRE_ARRAY - - - - 値が配列であることを必須とします。 - - - - FILTER_FORCE_ARRAY - - - - 値がスカラーである場合は、スカラー値をひとつだけ持つ配列として扱います。 - - - - -
-
- - - &reftitle.changelog; - - - - - - &Version; - &Description; - - - - - 7.3.0 - - FILTER_FLAG_SCHEME_REQUIRED - と FILTER_FLAG_HOST_REQUIRED - を明示的に使用することは推奨されなくなりました。 - - - - 7.1.0 - - FILTER_FLAG_EMAIL_UNICODE が追加されました。 - - - - 5.3.2 - - FILTER_FLAG_STRIP_BACKTICK が追加されました。 - - - - 5.2.10 - - FILTER_FLAG_NO_RES_RANGE が IPv6 アドレスにも対応するようになりました。 - - - - - - - -
- -
- - diff --git a/reference/filter/functions/filter-has-var.xml b/reference/filter/functions/filter-has-var.xml index dad4647b85..c44ee36ac7 100644 --- a/reference/filter/functions/filter-has-var.xml +++ b/reference/filter/functions/filter-has-var.xml @@ -1,6 +1,6 @@ - + @@ -11,8 +11,8 @@ &reftitle.description; boolfilter_has_var - inttype - stringvariable_name + intinput_type + stringvar_name @@ -21,7 +21,7 @@ - type + input_type INPUT_GETINPUT_POST、 @@ -31,7 +31,7 @@ - variable_name + var_name 調べたい変数の名前。 @@ -49,7 +49,6 @@ - - + @@ -10,8 +10,8 @@ &reftitle.description; - intfilter_id - stringfiltername + intfalsefilter_id + stringname @@ -20,7 +20,7 @@ - filtername + name 取得したいフィルタの名前。 @@ -47,7 +47,6 @@ - - - - + + filter_input_array 外部から変数を受け取り、オプションでそれらをフィルタリングする + &reftitle.description; - mixedfilter_input_array + arrayfalsenullfilter_input_array inttype - mixeddefinition + arrayintoptionsFILTER_DEFAULT booladd_empty&true; @@ -20,178 +20,61 @@ filter_input を繰り返しコールする必要がなくなるので便利です。 + &reftitle.parameters; - - - - type - - - INPUT_GETINPUT_POST、 - INPUT_COOKIEINPUT_SERVER あるいは - INPUT_ENV のいずれか。 - - - - - definition - - - 引数を定義する配列。配列のキーとして使用できるのは - 変数名を string で表したものです。 - 対応する値に使用できるのは、フィルタの型か配列 (フィルタ・フラグ・オプションを指定したもの) です。 - 配列の値として配列を使用する場合に使用できるキーは、 - filter (フィルタの型)、 - flags (フィルタに適用するフラグ) - および options (フィルタに適用するオプション) - です。理解を深めるために、以下の例を参照ください。 - - - このパラメータには、フィルタ定数 を表す整数値を指定することもできます。 - こうすると、入力配列のすべての値がそのフィルタで処理されます。 - - - - - add_empty - - - 存在しないキーは &null; として返り値に追加します。 - - - - - + + + type + + + 定数 + INPUT_* + のうちのひとつ。 + + + + フィルタされるスーパーグローバルの内容は、 + ユーザーがスーパーグローバルに手を加える前の、 + SAPI が提供する "生の" ものです。 + 変更されたスーパーグローバルの値をフィルタするには、 + filter_var_array を代わりに使います。 + + + + + + + + + + + + &reftitle.returnvalues; - + 成功した場合は要求された変数の値を含む配列。 - - FILTER_NULL_ON_FAILURE フラグが指定されない場合、 - かつ type で指定された入力値の配列が得られなかった場合は、 - この関数は &null; を返します。 + + + 失敗した場合、&false; を返します。 type で指定された入力値の配列が得られなかった場合、 かつ FILTER_NULL_ON_FAILURE フラグが指定されていた場合は、 - この関数は &false; を返します。その他の理由で失敗した場合でも &false; を返します。 - - + 例外的に &null; を返します。 + + + 入力された配列に欠けているエントリがあった場合、 + add_empty が &true; のときは返される配列に追加されます。 + この場合、欠けているエントリには、FILTER_NULL_ON_FAILURE + を使わない限り &null; が設定されます。 + FILTER_NULL_ON_FAILURE を使った場合には、&false; が設定されます。 + + フィルタが失敗した場合、配列の値は &false; になります。 - 変数が設定されていない場合は、&null; になります。 - フラグ FILTER_NULL_ON_FAILURE - が指定されている場合は、変数が設定されていないときに &false;、 - フィルタリングに失敗した場合に &null; となります。 - add_empty パラメータが &false; の場合、 - 配列の要素は追加されません。 - - - - - - &reftitle.examples; - - - <function>filter_input_array</function> の例 - - 'libgd