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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

2回答

383閲覧

eclipse & phpのクラス名に変数を使用したときの構文エラー

SNRI_DUO

総合スコア15

PHP

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2017/07/09 23:48

Eclipseでのphp開発を行っておりますが
クラス名に変数を使用した場合

php

1class {$id}_test{ 2 // プロパティの宣言 3 public $var = 'a default value'; 4 5 // メソッドの宣言 6 public function displayVar() { 7 echo $this->var; 8 } 9}

クラスの最初の「{」の時点で

構文エラー, unexpected '{', expecting 'identifier'

と発生していしまいます。

これは、eclipseの設定に問題があるのでしょうか、
もしくは、クラス名にそもそも変数を使用しての動的な処理がNGなのでしょうか??

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

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

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

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

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

guest

回答2

0

そもそも定義に変数は使ってはいかんのではと。
eclipseというよりPHPの構文上のNGです。

呼び出すときに下記のような記述はOK

php

1$obj = new "{$id}_test";

$idを動的に使って何かしたいのであればtestクラスを作ってコンストラクタに$idを渡してやるとか工夫次第で動的な内容として扱うことは出来ます。

余談のソース:

php

1class test{ 2  public $id = null; 3 function __construct($id) { 4 $this->id = $id; 5 } 6} 7 8$obj = new test($id); 9

投稿2017/07/10 00:04

編集2017/07/10 00:07
m.ts10806

総合スコア80765

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

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

0

クラス名に変数は基本的に使えません。
…ただ、変数を使っているというのが新鮮だったので、
変数を使う方法を考えました。

php

1eval('class ' . $id . '_test { 2 // プロパティの宣言 3 public $var = \'a default value\'; 4 // メソッドの宣言 5 public function displayVar() { 6 echo $this->var; 7 } 8}');

これで動きますが、実務で使うことはないと思います。

投稿2017/07/10 00:44

naga3

総合スコア1293

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

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

maisumakun

2017/07/10 01:02

CodeIgniterのコアコードで、コンフィグによって動的に基底クラスを変える必要がある、という状況で、クラス定義をevalしているのを見たことがあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問