質問するログイン新規登録

Q&A

解決済

1回答

1607閲覧

PHPの静的メソッド呼び出し時に、エラーが表示されます

akashi-seijuro

総合スコア24

PHP

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

0グッド

0クリップ

投稿2020/01/05 05:53

編集2020/01/05 07:31

0

0

下記のクラス内に, staticを付けたメソッドを定義しました。

Error.phpという名前のファイルに、下記のクラスを定義しています。

PHP

1class ERROR{ 2 3 const ERROR_MESSAGES = array( 4 'login' => 'ユーザー名かパスワードが間違っています。' 5 ); 6 7 public static function getMessage($error_type){ 8 9 return self::ERROR_MESSAGES[$error_type]; 10 11 } 12}

このクラスファイルを下記のように読み込み、実行すると、コード下にあるエラーが表示されます。

PHP

1require_once('Error.php'); 2 3header("location: login.php?error=" . ERROR::getMessage('login'));

Fatal error: Cannot declare class ERROR, because the name is already in use in C:\xampp\htdocs\sample\loginCheck.php on line 5

調べた限りでは、staticメソッドの定義の仕方や、呼び出し方を調べましたが、エラーを解決できません。
解決方法と、何が原因であるか教えてください。

よろしくお願い致します。

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

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

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

guest

回答1

0

ベストアンサー

提示の物はとりあえず下記部分が間違っています。

PHP

1// header("location: login.php?error=" . ERROR::getMessage('login')”); 2// ↑ 無駄な全角ダブルクォート 3 header("location: login.php?error=" . ERROR::getMessage('login'));

また、ERRORという名前は大丈夫でしょうか。オンラインIDEで下記エラーが出ました。

Error

1Fatal error: Cannot declare class ERROR, because the name is already in use in

投稿2020/01/05 06:56

kei344

総合スコア69653

akashi-seijuro

2020/01/05 07:17

kei344さん 回答ありがとうございます。 クラス名はERRORで間違いないです。 この静的メソッドを呼び出しているファイルとは別のPHPファイルで、ERRORクラスを定義しています。 その別ファイルを, requireやincludeで読み込むと、提示していただいたエラーが出ます。
kei344

2020/01/05 10:41

エラーの通りで、名前を変えましょう。
akashi-seijuro

2020/01/06 13:15

kei344さん 回答ありがとうございます。 解決できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.25%

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

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

質問する

関連した質問