質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

953閲覧

PHPにおけるthrow文の厳密な定義をご教授ください。

ryuuji_n

総合スコア10

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/06/26 06:44

前提

PHPの例外について学習していますが、自分自身の学習方法として言葉の意味や定義を一つづつ理解していく方法をとっています。
例えばechoやprintは関数ではなく言語構造として扱われている。
他にはどんな言語構造があるのかなといった感じで、参考書と同時進行で調べていく方法です。

困った事

PHPマニュアルにて調べてみたところ例外についての説明ページへ飛びましたので読みながら考えてみたのですが、throw文それ自体に対する細かい記述を発見することが出来ませんでした。
該当ページurlリンク内容

マニュアルにて発見できない場合、不確かな情報をあさり続けるよりも皆さんのお力を借りた方が正確かと考え質問しました。

求めている回答

使い方などでなく、throw文の定義が知りたいです。
throw文とはこういったものの一群で、存在するならば近いものはこんなのがある。
といった形で教えていただけるとありがたいです。


参考書はオライリーはじめてのPHPを使用しているのですが、
初心者向けの為くわしい記述が記載されていないだけでしたら申し訳ないです。

ご回答お願いいただけたらと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

archiver

2020/06/26 07:54

>存在するならば近いものはこんなのがある。 >といった形で教えていただけるとありがたいです。 とありますが、他のプログラミング言語の経験があるということですか? もしそうだとしたら、経験のあるプログラミング言語を提示していただけませんか。 (「これに当てはめれば理解できそう」と読めたので)
ryuuji_n

2020/06/26 14:36

archiver さん ご投稿ありがとうございます。 言葉足らずだったようです。 PHPの範囲内で近いものがあれば、その近いもので調べなおして理解しやすくなる可能性がある事を期待していました。 ありがとうございました。
guest

回答2

0

自分自身の学習方法として言葉の意味や定義を一つづつ理解していく方法をとっています。

残念ながら、PHPの学習法としてそれは向かないと考えます。厳密な解釈に耐えるだけのドキュメントがないです。

投稿2020/06/26 06:56

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/06/26 07:00 編集

PHPは「プログラミング言語を作るつもりなどなかった」ところから進化してきたという、まれに見る言語です。C言語やJava、JavaScriptなどのように、厳密(すぎて読みづらいぐらい)に仕様が定められた言語とは、やはり違う部分があります。
ryuuji_n

2020/06/26 07:26

maisumakun さん ご回答ありがとうございます。 予想外な回答であることと、1つ1つやっていかなと理解が追い付かない自分としては非常にショッキングな事実です。 throw文に関して言えばthrow文はthrow文であり、独立した存在である可能性もあるんですね。 正直とても困惑しています。 迅速なご回答ありがとうございました。
maisumakun

2020/06/26 07:40

PHP公式に出てこないようなものは、「なんとなく、こんなもの」ぐらいの理解で、実際にコードを組む際にどうしても引っかかるところが出てきたら調べる、ぐらいの態度でいいかと思います。
ryuuji_n

2020/06/26 07:45

maisumakun さん とりあえず使い方はわかるのでそのまま先に進もうと思います。 アドバイスのとおりそういった存在として理解していく事にします。 今日一日は質問を開放しておいて、答えがでなかった場合はmaisumakun さんをベストアンサーにいたします。
m.ts10806

2020/06/26 10:01

使い方がわかれば十分だと思います。 (本当に仕様まで知りたければC言語で書かれたPHPの元ソースを読み解くしかないと思います。私はそこまでしたことないですが)
ryuuji_n

2020/06/26 14:42

m.ts10806 さん ご回答ありがとうございます。 可能ならば知りたいと考えていました。 今の状況でC言語を学習してPHPの元ソースを読み解くのはかなり厳しく感じるので、そういった存在として納得する事になりそうです。 ありがとうございました。
guest

0

ベストアンサー

使い方などでなく、throw文の定義が知りたいです。

公式サイトにねーわけねーだろwと思って調べてみたら、無いですね^^;
かろうじて以下が参考になるかと。

THROW

いや、参考にならんね^^;

Exception 側から理解を深めるしか無いように思います。

ちなみに、こんな情報もあります。
【PHP8.0】throw文がthrow式になる

おまけ

例えばechoやprintは関数ではなく言語構造として扱われている。

上記に対する回答としては正しくない気もしますが、注意する関数っぽいやつのリストという意味では、以下のページが参考になると思います。

キーワードのリスト - php.net

上記の()付きの奴らがやばいヤツラです。コイツラは関数っぽく見えて、関数じゃないので、通常の関数群と異なった動きをしやがります。例外を吐かなかったり、エラーを出さなかったり、返り値が変だったりするので注意してください。

投稿2020/06/26 11:12

編集2020/06/26 15:12
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryuuji_n

2020/06/26 14:58

te2ji さん ご回答ありがとうございます。 自分もマニュアルのどこかに記載があるはずと考え、探し回ったのですが結局見つからず質問しました。 たしかに例外を勉強し始めて早い段階で質問してしまったので、Exception側から攻めていけば個人的な納得を得られる可能性を感じてきました。 このアイデアで行こうと思います。 throwが式になるのは選択肢が増えるという事だと思いますので、大歓迎です。 キーワードのリストのurlもありがとうございます。 おっしゃるとおりこの中で関数と勘違いしていたものがありました。 理解したつもりになっているとマニュアルを確認してない場合もあるので、この手のurlは非常にありがたいです。 Exceptionから攻めていくアイデアを選ばせていただきますので、te2jiさんをベストアンサーとさせていただきます。 ご回答とおまけの情報もありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問