質問編集履歴

1

コード修正

2022/05/24 04:26

投稿

nikuatsu
nikuatsu

スコア177

test CHANGED
File without changes
test CHANGED
@@ -50,24 +50,39 @@
50
50
  ### 私の場合
51
51
  私は独学で素人で(なのでここでやり方を述べるのは恐縮ですが)、これまで「基本はBでまとめるけど、関数が長くなりすぎたらAで分ける」というなんとなくな方法でした。
52
52
 
53
- または次のような感じで、Aのように分けると、引数のキーが`$args = ['id'=>1',name'=>'a','age'=>20,,,,]` などと多いときに同じ展開処理が複数の関数で重複するため、これを嫌ってBでまとめること多いです。(PHPなら`extract`がありますが、どの変数が`extract`で展開されたものなのかわかりにくいので使いたくない派です。)
53
+ または次のような感じで、Aのように分けると、引数のキーが`$args = ['id'=>1',name'=>'a','age'=>20,,,,]` などと多いときに同じ展開処理が複数の関数で重複するため、これを嫌ってBでまとめること多いです。(PHPなら`extract`がありますが、どの変数が`extract`で展開されたものなのかわかりにくいので使いたくない派です。)
54
-
55
54
 
56
55
  ```php
56
+ // A:機能ごとに関数を分ける
57
57
  function insert_row( $args ){
58
+ // ここでも展開
58
59
  $id = $args['id'];
59
60
  $name = $args['name'];
60
61
  $age = $args['age'];
61
62
  }
62
63
  function delete_row( $args ){
64
+ // ここでも展開
63
65
  $id = $args['id'];
64
66
  $name = $args['name'];
65
67
  $age = $args['age'];
66
68
  }
67
69
  function update_row( $args ){
70
+ // ここでも展開
68
71
  $id = $args['id'];
69
72
  $name = $args['name'];
70
73
  $age = $args['age'];
71
74
  }
75
+
76
+ // B:機能を引数で渡して分岐し関数はまとめる
77
+ function apply_row( $type, $args ){
78
+ // 展開がこの1回で済む
79
+ $id = $args['id'];
80
+ $name = $args['name'];
81
+ $age = $args['age'];
82
+
83
+ if( $type === 'insert' ){}
84
+ else if( $type === 'delete' ){}
85
+ else if( $type === 'update' ){}
86
+ }
72
87
  ```
73
88
  AとBの使い分けについて、統一的なルールや一般的な慣習や個人的なご意見など、幅広くお聞かせいただければ幸いです。よろしくお願い致します。