在下面的代码中,formatDates()方法没有返回任何内容,但是当我在getMeetData()中执行var_dump时,日期被格式化。为什么是这样?我一直认为,由于变量范围操作发生在一个方法中的变量中,因此保持在该方法中。不会影响它之外的任何方法中的变量。
我明显误解了某些东西&虽然我怀疑部分原因是我不知道如何说出搜索词。
我的搜索没有找到任何帮助。public function getMeetData($limit = NULL){
$meet_data = $this->retrieve_meets->retrieveBasicMeetData($limit);
$this->formatDates($meet_data);
var_dump($meet_data);
}
protected function formatDates($meet_data){
foreach($meet_data as $key => $value){
$meet_data[$key]->start_date = date("d/m/Y", strtotime($value->start_date));
$meet_data[$key]->end_date = date("d/m/Y", strtotime($value->end_date));
}
}
我已经从getMeetData()中获取了var_dump的结果,而没有调用formatDates(我在下面注释了$ this-> formatDates($ meet_data); out):
array (size=5)
0 =>
object(stdClass)[76]
public 'title' => string 'Meeting' (length=22)
public 'slug' => string 'meeting-november-2015' (length=36)
public 'start_date' => string '2015-10-30' (length=10)
public 'end_date' => string '2015-10-30' (length=10)
public 'activities' =>
array (size=1)
0 => string 'Meeting' (length=7)
以下是上面使用的相同数据的结果,但是调用了formatDates()
array (size=5)
0 =>
object(stdClass)[76]
public 'title' => string 'Meeting' (length=22)
public 'slug' => string 'meeting-november-2015' (length=36)
public 'start_date' => string '30/10/2015' (length=10)
public 'end_date' => string '30/10/2015' (length=10)
public 'activities' =>
array (size=1)
0 => string 'Meeting' (length=7)
答案 0 :(得分:1)
$ meet_data是一个对象,在PHP中“默认情况下通过引用传递对象”。见http://php.net/manual/en/language.oop5.references.php