【发布时间】:2016-02-09 04:43:17
【问题描述】:
我已经尝试了几个小时将数组更改为对象,但它不起作用。然而,我的第二个功能,其中代码几乎相同的工作完美。 这是类和函数:
class Job {
private $connection;
function __construct($mysqli){
$this->connection = $mysqli;
}
function getJobModal() {
$stmt = $this->connection->prepare("SELECT id, name, description, company, county, parish, location, address FROM job_offers WHERE id=?");
$stmt->bind_param("i", $job_id);
$stmt->bind_result($id_from_db, $name_from_db, $desc_from_db, $company_from_db, $county_from_db, $parish_from_db, $location_from_db, $address_from_db);
$stmt->execute();
$array = array();
while($stmt->fetch()) {
$job = new StdClass();
$job->id = $id_from_db;
$job->name = $name_from_db;
$job->description = $desc_from_db;
$job->company = $company_from_db;
$job->county = $county_from_db;
$job->parish = $parish_from_db;
$job->location = $location_from_db;
$job->address = $address_from_db;
array_push($array, $job);
}
return $array;
$stmt->close();
}
}
isset,创建一个变量,将数组变成对象
if(isset($_GET["view"])) {
$Job->getJobModal($_GET["view"]);
}
$job_single_array = $Job->getJobModal();
问一些对象,我尝试了不同的方法,如你所见
echo $job_single_array->id;
echo $job_single_array->name;
echo $job_single_array[$i]->company;
echo $job_single_array['id'];
var_dump($job_single_array);
表格,注意:$job_array 工作正常
for($i = 0; $i < count($job_array); $i++) {
echo "<form action='jobs.php' method='get'>";
echo "<a class='list-group-item' href='?view=".$job_array[$i]->id."'>";
echo "<h4 class='list-group-item-heading' name='job_id'>".$job_array[$i]->id."</h4>";
echo "<h4 class='list-group-item-heading'>".$job_array[$i]->name."</h4>";
echo "<p class='list-group-item-text'>".$job_array[$i]->company.", ".$job_array[$i]->county.", ".$job_array[$i]->parish."</p>";
echo "</a>";
echo "</form>";
}
错误
Notice: Trying to get property of non-object in /.../jobs.php on line 105
Notice: Trying to get property of non-object in /.../jobs.php on line 106
Notice: Undefined offset: 5 in /.../jobs.php on line 107 Notice: Trying to get property of non-object in /.../jobs.php on line 107
Notice: Undefined index: id in /.../jobs.php on line 108
array(0) { }
【问题讨论】:
-
对
$Job->getJobModal($_GET["view"]);的调用的返回值没有被分配给任何东西......而且将$_GET["view"]作为参数传递给$Job->getJobModal()也没有多大意义,因为你不要用它做任何事情 -
而 getJobModal() 不接受任何参数...你如何传递 $_GET["view "] ?不管怎样,你能指出第 105/106 行写的是什么吗?
-
你试过
(object)$myArray吗? -
其他问题:你正在做 $stmt->bind_param("i", $job_id);,但是 $job_id 是在哪里定义的?你可能没有结果,所以你有一个空数组。
-
第 105 和 106 行是 echo $job_single_array->id; echo $job_single_array->name;