引数があるメンバメソッド

広告

メンバメソッドには引数を取る事もできます。その場合の構文は下記のようになります。

class クラス名{
  public メンバ変数名;

  function メンバメソッド名(引数1, 引数2, ...){
    // クラスの中で行う処理
  }
}

メソッド名の後の括弧の中に、引数として受け取るための変数を記述します。複数ある場合はカンマ(,)で区切って並べて記述して下さい。

例として新しいチャンネルを設定するメソッドを定義してみます。

class Television{
  public $channelNo;

  function dispChannel(){
    print('現在のチャンネルは'.$this->channelNo);
  }

  function setChannel($channel){
    $this->channelNo = $channel;
    $this->dispChannel();
  }
}

上記では"setChannel"メソッド内で、引数で渡されてきた値をメンバ変数にセットし、そして同じクラス内の"dispChannel"メソッドを呼び出してチャンネルを表示しています。

なお、クラス内でメンバメソッドを呼び出すには"this"を使って下記のように記述します。

$this->メンバメソッド();

そしてオブジェクトからメソッドを呼び出す時に、メソッドに渡したい値を括弧の中に記述してメソッドを呼び出します。

$tv = new Television();
$tv->setChannel(5);

class Television(){
  public $channelNo;

  function dispChannel(){
    print('現在のチャンネルは'.$this->channelNo);
  }

  function setChannel($channel){
    $this->channelNo = $channel;
    $this->dispChannel();
  }
}

サンプルプログラム

では実際に試してみましょう。

classtest2.php

<html>
<head><title>PHP TEST</title></head>
<body>

<?php

$tv = new Television();
$tv->setChannel(5);

class Television{
  public $channelNo;

  function dispChannel(){
    print('現在のチャンネルは'.$this->channelNo);
  }

  function setChannel($channel){
    $this->channelNo = $channel;
    $this->dispChannel();
  }
}

?>
</body>
</html>

上記のファイルをWWWサーバに設置しブラウザ経由で見ると下記のように表示されます。

引数のあるメソッド

PHP入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)