teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

説明を追記

2019/12/06 04:53

投稿

tacsheaven
tacsheaven

スコア13707

answer CHANGED
@@ -1,7 +1,13 @@
1
1
  clone ではなく、$sheet->copy() を使ってみてください。
2
- PHPSpreadsheet のリファレンスでも
2
+ [PHPSpreadsheet のリファレンス](https://phpoffice.github.io/PhpSpreadsheet/master/PhpOffice/PhpSpreadsheet/Spreadsheet.html#method_copy)でも
3
3
 
4
4
  >
5
5
  Copy workbook (!= clone!).
6
6
 
7
- と書いてあるように clone とは挙動が異なります。
7
+ と書いてあるように clone とは挙動が異なります。
8
+
9
+ 本来 clone(により呼び出される __clone)は、
10
+ >
11
+ Implement PHP __clone to create a deep clone, not just a shallow copy.
12
+
13
+ とあるように、shallow copy ではなく deep copy を返すように組まれているようなのですが、正しく動作していない感じです。確実に deep copy を返している copy() を使った方が確実です。