1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【超初心者】クラス-メソッドと疑似変数$this

Posted at

はじめに

SLスタジオでPHP・WEB開発を独学中のアラフィフ主婦の忘備録です。

クラス-メソッドと疑似変数$this-

処理内容

MathOperationクラスに定義されているaddメソッドを呼び出す。addメソッドの引数には、それぞれプロパティの値とprocessメソッドに渡された引数の値を使用する。

解答・解説 のサンプルソース

変数名など一部変更しています。

class MathOperation
{
    public $value = 10;

    function add($value1, $value2)
    {
        echo $value1 . ' + ' . $value2 . ' = ' . ($value1 + $value2) . "\n";
    }

    // process メソッドを追加
    function process($value)
    {
        $this->add($this->value, $value);
    }
}

$operation = new MathOperation();
$operation->process(5);

出力結果

10 + 5 = 15

疑問点

$valueの種類が多すぎて訳が分からない

public $value = 10;
function process($value)
$this->add($this->value, $value);

順番に見ていきましょう

  • クラスの中で一番初めに定義されていますが、
public $value = 10;

これはそのまんま$valueの値は10

  • 次の$valueの値は
function process($value)

$operation->process(5);で引き渡された5が入ります。

  • 一番ややこしいのが↓の$this->value$valueという2つの引数。
$this->add($this->value, $value);

$this->valuevalueはこのクラスの中で定義された$valueが入るので10
$valueの方には$operation->process(5);で引き渡された5が入ります。

なので、引数にはこのような値↓が入っていることになります。

$this->add(10, 5);

引数を代入する

計算式のadd関数(メソッド)に先ほどの引数を入れます。
$value1 に10
$value2 に5

    function add(10, 5)
    {
        echo 10. ' + ' . 5 . ' = ' . (10 + 5) . "\n";
    }

出力結果

10 + 5 = 15

function process($num)←ここの変数と
{
$this->add($this->value, $num);←2つ目の引数は同じ
}
変数名を変えると分かりやすい

まとめ

同じ変数名を使った問題が多くてややこしいから、どれとどれが同じものか分けて考えて、変数名を変更するのも手。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?