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

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

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

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

Q&A

解決済

1回答

174閲覧

クラス内から定義したメソッドは呼べるでしょうか。

toll_tree

総合スコア199

PHP

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

1グッド

0クリップ

投稿2019/06/26 17:51

以下のコードにおきまして、お聞きしたいことがあります。

<?php // Your code here! class Test{ private $test; public function index(){ $this->test = new DateTime('2000-01-01'); } $this->index(); echo $test; }

こちらのコードはエラーとなってしまいますが、何故クラス内からは「$this->index()」のようにしてメソッドを呼ぶことができないのでしょうか?
PHPマニュアルを参照したのですが、いまいち分かりませんでした。
どなたかご回答頂けましたら幸いです。
よろしくお願いします。

newyee👍を押しています

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

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

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

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

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

m.ts10806

2019/06/27 00:41 編集

>エラーとなってしまいますが エラーを提示しましょう。「質問するときのヒント」読んでください。 https://teratail.com/help/question-tips ※既に解決済みになっていますが、今後同じような質問の仕方をされても困るのであえて書いています。ルールです。守ってください。質問内容がどんどん雑になってきているように思います。 それでは解決するものも解決しません。見る人は全て他人です。あなた専用のサポートセンターではありません。
guest

回答1

0

ベストアンサー

クラス内からは呼べるけどそもそも書き方がおかしいです
せっかくマニュアルまで目を通しているならもっとしっかり読めば済むことです
実際に質問文に貼られているマニュアルのリンク先も間違ってないし、割と冒頭で以下の文章があります

クラスの中には、 定数 や 変数 ("プロパティ" といいます) そして関数 ("メソッド" といいます) を含めることができます。

ドキュメントはもっと落ち着いて読みましょう

投稿2019/06/26 18:18

hentaiman

総合スコア6421

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

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

toll_tree

2019/06/26 18:26

ご回答ありがとうございます。 「クラスの中には、 定数 や 変数 ("プロパティ" といいます) そして関数 ("メソッド" といいます) を含めることができます。」 こちらの部分は理解しているのですが、クラス内でindexメソッドを実行したいのですが、そこの部分が分からない状況でして... どのようにすれば呼ぶことができるのでしょうか?
hentaiman

2019/06/26 18:30

class A{ echo 1; } これがおかしいのは分かりますか?今はこの書き方をしている状態です > どのようにすれば呼ぶことができるのでしょうか? classの中にindex以外のfunctionを作ってその中から呼び出すこと事はできます
toll_tree

2019/06/26 18:35 編集

いえ...提示頂いたコードがおかしいというのは分からないです... あ...もしかして、何故ご回答にマニュアルの引用を提示してもらったのかが分かった気がします... つまり、クラス内にはプロパティやメソッド以外、単独でechoなどの処理は記述することができないということなのでしょうか...?
hentaiman

2019/06/26 18:41

その通りです。 「単独のecho」という理解の仕方ではなく、マニュアルの右側に「式」とかのリンクがあるので読むといいですね。
toll_tree

2019/06/26 18:49

どうもです!取り敢えず、マニュアルの「式」の項目など読んでみたいと思います。
m.ts10806

2019/06/26 23:58 編集

「定義をする場所であって処理を書く場所ではない」くらいの説明でも良かったかもしれないですね。 (と言うか、Laravel学習中の人には思えないくらいの初歩ミスです) 1回Javaとかできちんとオブジェクト志向を学んだ方が良さそう。PHPだけでは見えてこない部分もあるでしょうし。 私はJavaも扱いはじめて理解が一気に進みました。(JavaからPHPに来た人は組み込みも早いです)
miyabi_takatsuk

2019/06/27 01:02 編集

横槍失礼します。 > 1回Javaとかできちんとオブジェクト志向を学んだ方が良さそう。PHPだけでは見えてこない部分もあるでしょうし。 これめちゃくちゃ禿同です。 私も、ベクトルは違うかもですが、 JavaScriptだけやっていた段では、プログラムのプの字も理解できておらず、Objective-Cやって、オブジェクト指向理解しましたから。 スクリプト言語は制約が緩いから、本格的な構文書こうとした時、ケッつまづくような気がします・・・。 toll_treeさん、けっこう何回も、同じような箇所につまづかれているとお見受けします。 mts10806さんが他の質問でも何度もアドバイスしていただいていることを、学び、理解されるのがよろしいかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問