我是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 2012-03-21 15:43:26
@cfmjohn無後顧之憂。歡迎來到PHP和SO! – liquorvicar 2012-03-21 16:01:48