PHP gcm Class

PHP の Class は、C言語に準じた本格的な仕様です。

プログラムの作成

Class_Gcm.php のソースコードを Shift-JIS でタイプして c:\DATA\PHP\ に格納して下さい。
<?php
class  gcm_class
{
    var $gcm;   // 最大公約数
    var $lcm;   // 最小公倍数
    var $w;     // 作業領域
    // Constructor
    function gcm_class($n,$m)
    {   $this->w = $n;
        $this->gcm = $m;
        $this->lcm = $n*$m;
        while($this->w<>$this->gcm)
        {   if ($this->w>$this->gcm)  $this->w-= $this->gcm;
            else    $this->gcm-= $this->w;
        }
        $this->lcm = $this->lcm/$this->gcm; 
    }
    function gcm()
    {   return($this->gcm);
    }
    function lcm()
    {   return($this->lcm);
    }
}
?>

<?php
    $cls = new gcm_class(32,24);
    print "GCM(32,24)=". $cls->gcm(). "\r\n";
    print "LCM(32,24)=". $cls->lcm(). "\r\n";
?>

【実行画面】
コマンドプロンプトを起動して Class_Gcm.php をコンパイルします。
Class_Gcm.php の実効結果です。
C:\DATA\PHP>php Class_Gcm.php
GCM(32,24)=8
LCM(32,24)=96

C:\DATA\PHP>

プログラムの説明

  1. gcm_class の定義と領域の宣言です。
    <?php
    class  gcm_class
    {
        var $gcm;   // 最大公約数
        var $lcm;   // 最小公倍数
        var $w;     // 作業領域
    
  2. Constructor でデータを受け取って GCM, LCM を計算します。
    gcm, lcm 関数で直接計算する方法は PHP gcm Function を参照して下さい。
    $this は現在のインスタンスで、class の領域は $this で参照します。
        // Constructor
        function gcm_class($n,$m)
        {   $this->w = $n;
            $this->gcm = $m;
            $this->lcm = $n*$m;
            while($this->w<>$this->gcm)
            {   if ($this->w>$this->gcm)  $this->w-= $this->gcm;
                else    $this->gcm-= $this->w;
            }
            $this->lcm = $this->lcm/$this->gcm; 
        }
    
  3. gcm() メソッドと lcm() メソッドは $gcm($lcm) の値をリターンするだけです。
        function gcm()
        {   return($this->gcm);
        }
        function lcm()
        {   return($this->lcm);
        }
    }
    ?>
    
  4. gcm_class の呼び出し方です。
    $cls = new gcm_class(32,24) でクラスを生成します。
    クラスの領域やメソッドは $cls-> で修飾します。
    <?php
        $cls = new gcm_class(32,24);
        print "GCM(32,24)=". $cls->gcm(). "\r\n";
        print "LCM(32,24)=". $cls->lcm(). "\r\n";
    ?>
    
  5. GCM の説明は GCM, LCM 関数 を参照して下さい。
    今回は HTML タグを使っていませんが、Class の定義は <head> の中で、呼び出しは <body> に記述する例を良く見かけます。
    PHP のソースコードは、HTML 文の任意の箇所に挿入することが出来ます。
    HTML と組み合わせて画像を描画する Class は IMG Class を参照して下さい。

前田稔の超初心者のプログラム入門
PHP Program