次のようなコード スニペットがあります。
var_dump($download2);
$this->download->filename = $download2->filename.'.'.$ext;
$this->download->filepath = $this->tmpDir.'/'.$this->download->filename;
var_dump($download2);
私の最初のvar_dump
リターンはこれです:
object(stdClass)#730 (2) {
["filename"]=>
string(10) "ol8kw2q55b"
["filepath"]=>
string(66) "a/path/storage/photos/tmp/ol8kw2q55b"
}
2番目var_dump
はこれを返します:
object(stdClass)#730 (2) {
["filename"]=>
string(15) "ol8kw2q55b.jpeg"
["filepath"]=>
string(71) "a/path/storage/photos/tmp/ol8kw2q55b.jpeg"
}
$this->download->filename = $download2->filename.'.'.$ext;
変数を更新しているのはなぜですか$download2
(その行を削除すると、両方ともvar_dump
同じ値が返されます)。
私のクラスは次のようになります(一部のコードを削除しました):
<?php
class MyClass {
protected $download;
public function download($url) {
$filename = $this->newHash();
$this->download = (object)[
'filename' => $filename,
'filepath' => $this->tmpDir.'/'.$filename
];
return $this->download;
}
public function addExtension($download2) {
$ext = $this->allowedMimes[$mimeType];
var_dump($download2);
$this->download->filename = $download2->filename.'.'.$ext;
$this->download->filepath = $this->tmpDir.'/'.$this->download->filename;
var_dump($download2);
return $this->download;
}
}
私はこれでそれを実行します:
$class = new MyClass;
$var = $class->download("http://...");
$class->addExtension($var);