public static function instantiate($record){
$object = new self;
// $object->id = $record['UserID'];
// $object->username = $record['Username'];
// $object->password = $record['Password'];
// $object->first_name = $record['Fname'];
// $object->last_name = $record['Lname'];
// $object->email = $record['Email'];
foreach (array_unique($record) as $attribute => $value) {
if($object->has_attribute($attribute)){
$object->$attribute = $value;
//var_dump($attribute);echo '<br>';
}
}
return $object;
}
在這個函數中,我從兩個方面獲得這個$對象的值。從註釋部分和從未註釋(obv)開始的短路的漫長過程。PHP對象給一個字符串的值從一個mysqli_fetch_array
長方式給出了良好的結果作爲這樣的:
對象(用戶)#5(6){[ 「ID」] =>串(1)爲 「1」[ 「用戶名」] = > string(6)「Parley」[「password」] => string(5)「12345」[「first_name」] => string(8)「Cristian」[「last_name」] => string(8)「Pirloaga」 [ 「電子郵件」] =>串(27) 「[email protected]」}
短的方式給出了一個壞的結果作爲這樣的:
INT(0) INT(1) INT(2) INT(3) INT(4) INT(5) INT(6) 對象(用戶)#5(13){[ 「ID」] => NULL [ 「=」NULL [「password」] => NULL [「first_name」] => NULL [「last_name」] => NULL [「email」] => NULL [「0」] => string(1) 「1」[「1」] => string(8)「Cristian」[「2」] => string(8)「Pirloaga」[「3」] => string(27)「[email protected] 「[」4「] => string(6)」Parley「[」5「] => string(5)」12345「[」6「] => string(19)」2016-02-12 05:04: 22「}
int(1).. int(6)是$屬性值,after是對象。
我試圖匹配$屬性值與長途的這些領域。我該怎麼做? 這是一個來自教程的實際代碼,它適用於他而不是我。
我有第二個問題。 foreach循環總是將值加倍。在這種情況下,如果我刪除array_unique函數,它將在數據庫中顯示該結果兩次,它只有一行。爲什麼?
我知道這不是你的問題,但是如果你想要一個包含你的數據的對象使用'mysqli_fetch_object'而不是'mysqli_fetch_array'。 –