回答編集履歴

2

誤字の修正

2022/01/28 09:35

投稿

sleepsheep
sleepsheep

スコア310

test CHANGED
@@ -25,4 +25,4 @@
25
25
  unset($user);
26
26
  var_dump($users);
27
27
  ```
28
- ループを抜けた後にunser()が必要だったり、気を付けないといけない箇所があるので、他の方法のほうが処理がシンプルになりそうですね。
28
+ ループを抜けた後にunset()が必要だったり、気を付けないといけない箇所があるので、他の方法のほうが処理がシンプルになりそうですね。

1

コードの追加

2022/01/27 13:36

投稿

sleepsheep
sleepsheep

スコア310

test CHANGED
@@ -2,3 +2,27 @@
2
2
  ```PHP
3
3
  function hoge($type, &$user){
4
4
  ```
5
+ 他の部分も合わせて記載しました。
6
+ ```PHP
7
+ // 引数$userに&を付けて参照渡しにする
8
+ function hoge($type, &$user){
9
+ if($type==='a'){
10
+ $user['name'] = 'changed';
11
+ }elseif($type==='b'){
12
+ $user['age'] = 10;
13
+ }
14
+
15
+ // $userを直接変更するのでreturnは無くてもよい
16
+ //return $user;
17
+ }
18
+
19
+ foreach( $users as &$user){
20
+ // $userは$usersの一要素を参照した状態で関数に渡される
21
+ hoge('b', $user);
22
+ }
23
+
24
+ // $userが最後の要素を参照したままになっているのを解除
25
+ unset($user);
26
+ var_dump($users);
27
+ ```
28
+ ループを抜けた後にunser()が必要だったり、気を付けないといけない箇所があるので、他の方法のほうが処理がシンプルになりそうですね。