1. TOPTOP
  2. Webサービス
  3. PHP

PHPでオブジェクト指向プログラミングをしようと全然だめだった話

|

PHP

世界のナベアツ問題(新しいタブで開く)以外にも、PHPでオブジェクト指向プログラミングにもチャレンジしています。

saikoro

課題はサイコロアプリを書き直すこと

最初の課題は、手続き型プログラミングを、オブジェクト指向プログラミングで書き直す、という課題を設定してみました。もともとはたった4行のコードです。


<?php  
$dice1 = mt_rand(1, 6);  
$dice2 = mt_rand(1, 6);  
echo "サイコロの目は".$dice1."です。"; 
echo "サイコロの目は".$dice2."です。";  
?>

2つのサイコロの目を出して、その目がゾロ目であるかどうか、判定する内容です。

サイコロの目を出すために書き換えた内容

とりあえず、最初に書き換えた構文はこのようなりました。


<?php  
class Dice { 	     
    public $dice1; 	     
    public $dice2; 	       
 
    public function __construct() { 	           
        $this->dice1 = $dice1;
	$this->dice2 = $dice2;
    }

    // サイコロ1の目を取得
    public function getShake1() {
	$this->dice1 = mt_rand(1, 6);
    }

     // サイコロ2の目を取得
     public function getShake2() {
	$this->dice2 = mt_rand(1, 6);
     }
}

$saikoro1 = new Dice($dice1);
$saikoro2 = new Dice($dice2);

echo $saikoro1->getShake1();
echo $saikoro2->getShake2();
?>?

もちろん、このコードを実行するとエラーが出ます。何がエラーの原因かというより、オブジェクト指向そのものがよく分かってないって感じですね。

saikoro3

コードをどうするかと言うよりも、まず、オブジェクト指向でコードを書くときの考え方からしてやり直しです。

〔参考サイト〕