現象:調動方法,在return之前有輸出值,但是在調用方法中就沒有相應的返回值
解決辦法:折騰了好久,原來在構造方法中已經傳遞了需要的變量,在方法中再次傳遞變量,在構造方法中有輸出值,但是在方法中因為參數傳遞錯誤無法正常得到返回值。代碼如下
public function __construct ( $usrid, $firmid=0, $depart=0 ) {
$usrid = abs(intval($usrid));
parent::__construct($usrid);
$firmid = abs(intval($firmid));
$depart = abs(intval($depart));
if ( empty($firmid) ) $firmid = FirmStaff::club($usrid);
if ( empty($depart) ) $depart = FirmStaff::work4firm($usrid, $firmid);
$this->_usrid = $usrid;
}
public function joinurl ($userid) {
if ( empty($userid) ) throw new Exception('查詢的主鍵信息不能為空');
$clubid = FirmStaff::club($userid);
if ( !isset($clubid) || empty($clubid) ) throw new Exception( '該用戶沒有公司,請聯系公司的HR' );
debug_print_backtrace();die();
$firmobj = new CMFirm($clubid);
$nmroad = $firmobj->challengemap(null,false,true);
$roadlinks = UtilRoad::roadmaplinks();
return isset($roadlinks[$nmroad]) ? $roadlinks[$nmroad] : '/acteam/index';
}
反思:這種寫代碼方式是需要避免的,在構造方法中已經實例化的參數不要在在方法參數中添加,這樣做會是問題復雜化。