所以我已经阅读了太多这样的问题,并且还阅读了PHP: Passing by reference manual,但仍然无法弄清楚为什么我会看到这个问题。
所以我有PHP Class
class ProfileTranslator extends EntityTranslator {
public function getProfile($identifier) {
try {
$stmt = $this->dbConn->prepare("CALL get_profile(?)");
$stmt->bindParam(1, $identifier, \PDO::PARAM_STR);
$stmt->execute();
$rows = $stmt->fetchAll(\PDO::FETCH_ASSOC);
unset($stmt);
$count = count($rows);
if ($count == 1) {
$row = $rows[0];
$profile = new entity\Profile();
$this->assignProfileData($row, $profile);
// more stuff below...
}
private function assignProfileData($row, $profile) {
$profile->setProfileId($row['profileid']);
// do some more ->setXYZ's()
$this->getAccount($profile); // GETTING ERROR HERE (THIS IS LINE 119)
}
private function getAccount($profile) {
// get the account stuff here
}
}
错误:
(!)严格标准:只应通过引用传递变量 在ProfileTranslator.php中 在第119行
此代码有什么问题? $profile
不是变量吗?
答案 0 :(得分:0)
$profile
是一个变量,但它包含一个对象,一个由$profile->setProfileId
$profile = new entity\Profile();
严格标准不应该通过引用传递,如在函数中:
$this->getAccount($profile);