Я новичок в PHP, но пришел из Java-фона и пытаюсь реализовать простой шаблон стратегии в OO-PHP.
У меня проблема с областью действия переменной и назначением объектав собственность класса.Я получаю сообщение о том, что свойство $ стратегии не определено при попытке доступа из конструктора метрик.Может ли кто-нибудь помочь?
Спасибо, Джон
Код шаблона стратегии:
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);
}