私はPHPを使い慣れていますが、Javaのバックグラウンドから来ており、OO-PHPで簡単な戦略パターンを実装しようとしています。PHPと戦略パターンコンストラクタでプロパティを設定しようとすると、未定義の変数
可変スコープに問題があり、クラスプロパティにオブジェクトを割り当てています。メトリックコンストラクタからアクセスしようとすると、$ strategyというプロパティが定義されていないというエラーが表示されます。誰も助けることができますか?
おかげで、 ジョン
戦略パターンコード:これはから呼び出さ/構築されて
interface iMetric{
public function calculateReadability($text);
}
/*Context - strategy pattern.*/
class metric{
private $strategy;
function __construct($metric){
$this->$strategy = $metric;
}
function calculateReadability($text){
return $this->$strategy->calculateReadability($text);
}
}
: クラスfleschEaseはiMetric {
function calculateReadability($text){
require_once('textstats/TextStatistics.php');
$statistics = new TextStatistics();
return $statistics->flesch_kincaid_reading_ease($text);
}
}
require_once('metrics.php');
// Flesch Reading Ease
if(strlen($fleschReadingEase)==0){
$metric = new metric(new fleschEase());
$fleschReadingEase = $metric->calculateReadability($content);
}
ありがとうございました! - すぐに問題を解決しました。それは、年齢の面で私を見つめている。 – cfmjohn
@cfmjohn心配はいりません。 PHPとSOへようこそ! – liquorvicar