ます’s Blog - どうでもいい記事100選

どうでもいい記事100選

「パラメーターのプロパティ渡し」でプログラムを読みやすくする、というアイデアはどうだろうを読んでみて

この辺()を読んでみて思った事。
要は呼び出し側で引数が多いと呪文のように見えるので何とかしたいねぇ、という風に解釈しました。
しもさんを初め色んな方が案を出していますが、これで事足りるのではないだろうか。。。超適当なんですが、要は分かりやすければ良い訳なので。

% cat ./tako1.php
<?php

final class Fish
{
 public function __construct( $speed, $direction, $x, $y, $minDistance, $maxInfluence )
 {
  echo "spped is ".        $speed ."\n";
  echo "direction is ".    $direction."\n";
  echo "x is ".            $x."\n";
  echo "y is ".            $y."\n";
  echo "minDistance is ".  $minDistance."\n";
  echo "maxInfluence is ". $maxInfluence."\n";
  echo "---------------------------------------------\n\n";
 }
}

$fish = new Fish( $speed = 2, $direction = 180, $x = 20, $y = 20, $minDistance = 16, $maxInfluence = 40 );

echo "spped is ".        $speed ."\n";
echo "direction is ".    $direction."\n";
echo "x is ".            $x."\n";
echo "y is ".            $y."\n";
echo "minDistance is ".  $minDistance."\n";
echo "maxInfluence is ". $maxInfluence."\n";
echo "---------------------------------------------\n";

?>


結果
----
spped is 2
direction is 180
x is 20
y is 20
minDistance is 16
maxInfluence is 40
---------------------------------------------

spped is 2
direction is 180
x is 20
y is 20
minDistance is 16
maxInfluence is 40
---------------------------------------------

変数汚染が非常にダサい。低レベルで失礼しました。<(_ _)>
ただ、変数名が適当になると(どのみち)一緒なんじゃないのかなぁ。。。と思ってみたり。

cat ./tako2.php
<?php

final class Fish
{
 public function __construct( $no1, $no2, $no3, $no4, $no5, $no6 )
 {
  echo "no1 is ". $no1 ."\n";
  echo "no2 is ". $no2 ."\n";
  echo "no3 is ". $no3 ."\n";
  echo "no4 is ". $no4 ."\n";
  echo "no5 is ". $no5 ."\n";
  echo "no6 is ". $no6 ."\n";
 }
}

$fish = new Fish( $no1 = 2, $no2 = 180, $no3 = 20, $no4 = 20, $no5 = 16, $no6 = 40 );

?>


結果
----
no1 is 2
no2 is 180
no3 is 20
no4 is 20
no5 is 16
no6 is 40

変数名は超重要、という事で。
個人的には渡すパラメータが多い場合は連想配列にして渡しています。
そろそろPHPにも引数の数が一致していない場合はワーニングを出すようにして欲しい今日この頃。