クラスのプロパティを使用できるように戻したいだけです。私のプロジェクトでは、mysql テーブル データのすべての結果を取得して返したいと考えています。うまく機能しますが、戻りデータを変更すると、以下に示すエラーメッセージが表示されます。
Trying to get property of non-object in E:\xampp\htdocs\myProject\new_27_03\login_con.php on line 26
私のコード::
nonClass.php
<?php
$doc = new Dortor(); // object
$doc->result("SELECT * FROM doctor"); // function call
foreach( $doc as $doctor ) {
echo $doctor->doc_name; // error msg: Trying to get property of non-object in
//E:\xampp\htdocs\myProject\new_27_03\login_con.php on line 26
}
?>
dotor.php
<?php
class Dortor extends DatabaseObject {
public $table_name = "doctor";
public $id;
public $doc_name;
public $doc_pass;
public $doc_img; // image directory
public function result($sql="") {
$result = $database->query($sql); // run query from mysql database
$result_array = array();
while( $row = $database->fetch_array($result) ) { // this while loop return actual result
$result_array[] = $this->get_table_value($row);
}
return $result_array;
}
}
?>
データベースオブジェクト.php
<?php
class DatabaseObject {
public function get_table_value($record) {
$className = get_called_class(); // get the class name
$object = new $className; // object call
$arrayValue = array();
$i=0; // inital array position
foreach( $object as $key => $value ) {
$arrayValue[$i] = $key; // get the class's object attributes
$i++;
}
$i = 1;
foreach ($record as $key => $value) { // fetch the database result
if(array_key_exists($key, $arrayValue) ) { // check if database's column name is exist on 'arrayValue' array,
$object->$arrayValue[$i] = $value; // if exist then, store value in 'Doctor' class's object attributes
$i++;
}
}
return $object;
}
}
?>