クラス定数にアクセスする際に問題が発生しているようです。私はその後、クラス内からの定数へのアクセス
class Application {
/** @var Config **/
private $config;
public function __construct(Config $config) {
$this->config = $config;
}
public function execute() {
$this->transferFile($this->obtainTextFile());
}
private function obtainTextFile() {
//connect to database and write results to text file
return $textFile; //path to the generated file
}
private function transferFile($textFile) {
//return whether the file was successfully SFTP
}
}
最後にこれらの定数を使用する必要がありますアプリケーションクラスを持っている
<?php
class Config
{
//define my constants
const DB_HOST = "127.0.0.1";
}
いくつかの定数を定義しコンフィグクラスを持って、私は物事
<?php
require __DIR__ . "/../config/Config.php";
require __DIR__ . "/../classes/Application.php";
$config = new Config();
$app = new Application($config);
$app->execute();
を実行するPHPスクリプトファイルを持っています
アプリケーションクラス内で、定数にアクセスしようとしています。このクラスを波平した場合、私は一般的に、クラス内にあるこの
$config::DB_HOST
ような何かをするだろうが、それは$設定が定義されていないと言われます。それでは次の論理的なステップがあります
$this->config::DB_HOST
しかし、それは私に教えてくれます統一変数構文は、PHP 7でのみ利用可能です。だから、私は試しました
self::DB_HOST
しかし、これは何も返していないようです。どうすればこれらの定数にアクセスできますか?実際にアクセスするには、Configクラス内でゲッターを作成する必要がありますか?
アドバイスあり
本当に?だから私はConfigオブジェクトをアプリケーションコンストラクタに渡す必要がありますか? –
あなたがその目的のためにそれをしたら、それは全く必要ではありません。 http://php.net/manual/en/language.oop5.constants.php –
パーフェクトをご覧ください。 Configがアプリケーションとは別のフォルダにある場合は、自動ロードする必要がありますか? –