PHP,传递变量的范围解析

PHP,传递变量的范围解析,php,symfony1,Php,Symfony1,致命错误:访问未声明的静态属性:ExamHistoryper::$columnToChange 你们中有谁能告诉我为什么这个不能用,以及如何让它用起来 ExamHistoryPer::$columnToChangePHP认为您希望获得的静态属性不是常量。这是因为$登录examhistoryper::$columnToChange 相反,使用常量('ExamHistoryPer::columnToChange')获取该常量的值。PHP认为您希望获取的是静态属性而不是常量。这是因为$登录examhi

致命错误:访问未声明的静态属性:ExamHistoryper::$columnToChange

你们中有谁能告诉我为什么这个不能用,以及如何让它用起来
ExamHistoryPer::$columnToChange

PHP认为您希望获得的静态属性不是常量。这是因为
$
登录
examhistoryper::$columnToChange


相反,使用
常量('ExamHistoryPer::columnToChange')
获取该常量的值。

PHP认为您希望获取的是静态属性而不是常量。这是因为
$
登录
examhistoryper::$columnToChange


而是使用
常量('ExamHistoryPer::columnToChange')
获取该常量的值。

您可以这样做吗

$columnToChange = $this->getColumnName($questionNo); //Gets EXAMHIST_Q2_JUGDGE
    $conn = Propel::getConnection(ExamHistoryPeer::DATABASE_NAME);
        //Update the approriate question with user answer in exam history table;
        $selectCriteria = new Criteria();   
        $selectCriteria->add(ExamHistoryPeer::EXAM_HISTORY_ID, $examHist->getExamHistoryId());
        $updateCriteria = new Criteria();   
        //This shows fatal error
        $updateCriteria->add(ExamHistoryPeer::$columnToChange, $userAnswer); 
        //$updateCriteria->add(ExamHistoryPeer::EXAMHIST_Q2_JUGDGE, $userAnswer); //This works
        BasePeer::doUpdate($selectCriteria, $updateCriteria, $conn);

你可以这么做吗

$columnToChange = $this->getColumnName($questionNo); //Gets EXAMHIST_Q2_JUGDGE
    $conn = Propel::getConnection(ExamHistoryPeer::DATABASE_NAME);
        //Update the approriate question with user answer in exam history table;
        $selectCriteria = new Criteria();   
        $selectCriteria->add(ExamHistoryPeer::EXAM_HISTORY_ID, $examHist->getExamHistoryId());
        $updateCriteria = new Criteria();   
        //This shows fatal error
        $updateCriteria->add(ExamHistoryPeer::$columnToChange, $userAnswer); 
        //$updateCriteria->add(ExamHistoryPeer::EXAMHIST_Q2_JUGDGE, $userAnswer); //This works
        BasePeer::doUpdate($selectCriteria, $updateCriteria, $conn);