これで一日中机から頭をぶつけてきました。
// Iterate over project array to populate release data
for ($i = 0; $i < count($data); $i++) {
$data[$i]->setProjectReleaseSchedule( $proj_scheds[$i] );
//Get each projects Est and Act hours
$options = new stdClass;
$options->default = true;
$options->project_id = $data[$i]->getProjectId();
$options->department_id = $person_dm->getPersonDepartmentId();
//works; AKA: property get assigned an int thatr incriments evern loop
//$data[$i]->data->proj_hours = $this->counter++;
//$weekly_report_dm->getProjectHours returns an object w/ populated properties
$data[$i]->data->proj_hours = $weekly_report_dm->getProjectHours($options);
//As a test, this dumps what is expected...
echo'<pre>';
print_r( $data[$i]->data->proj_hours );
echo'</pre>';
}
echo'<pre>';
//After the loop completes and I try to dump the data the property $data->data->proj_hours is assigned an object..
//but the object properties are all null :(.
print_r( $data );
echo'</pre>';
exit;
ご覧のとおり、Imはオブジェクトの配列をループしています。オブジェクトごとに、データ用の別のメソッドを取得しました。これは、期待されるデータを返します。「print_r($ data [$ i]-> data-> proj_hours);」。ただし、ループが終了してデータをダンプしようとすると、オブジェクトは親に割り当てられますが、そのオブジェクトのプロパティはnull/空白になります。
したがって、質問:INT、STRINGSなどをobjectsプロパティに割り当てることができ、それらはforeachループの外で存続するのはなぜですか。しかし、foreachループ内の親オブジェクトに割り当てられた場合、オブジェクトのプロパティは保持されませんか?