代入と値

目次
  • 解説
  • 1. 代入とは
  • 2. 代入する値
問題に挑戦!
進捗を変更する




解説

1. 代入とは


変数に値を入れることを代入すると言います。代入には代入演算子=(イコール)」を使用し、数学と同じように左辺に変数を置き、右辺に代入する値を置きます。

代入演算子用例処理内容
=A = BAにBを代入する

代入は何度も行うことが可能で、代入の度に変数の中身は上書きされます。そのため、プログラムの途中で「今は何が入っているのか」を頭の中でシミュレーションできるようになりましょう。

    static function practiceSubstitution01() {
        $message = 'あなたの';
        Logger::echo($message);
        $message = '私の';
        Logger::echo($message);
        $message = $message . '名前は';
        Logger::echo($message);
        $message = $message . 'でぃぐすきるです。';
        Logger::echo($message);
    }
[2020/12/31 12:34:56] あなたの                  // 最初に代入した内容
[2020/12/31 12:34:56] 私の                      // 上書き代入した内容
[2020/12/31 12:34:56] 私の名前は                // 結合して再代入した内容
[2020/12/31 12:34:56] 私の名前はでぃぐすきるです。

2. 代入する値


代入する際には値そのものだけでなく、以下のような方法で値の代入が可能です。2つ目以降の詳細は今後学習しますので、それまでは「右辺では代入する値を作っているのだな」と覚えておきましょう。

値そのものを代入

スカラー型およびnull型の形式で表現された「値そのもの」のことをリテラルと呼びます。下記は右辺にそれぞれの型に応じた形式の値=リテラルを置き、直接代入している例です。

    static function practiceSubstitution02() {
        $customerName = 'でぃぐすきる';
        Logger::echo($customerName);
        $intValue = 10;
        Logger::echo($intValue);
        $floatValue = 9.9;
        Logger::echo($floatValue);
    }

式の結果を代入

数値の計算や文字列の結合などを数学と同じようにと呼びます。下記は式を右辺に置き、式の結果を代入している例です。

    static function practiceSubstitution02() {
        ~ 前半省略 ~
        $displayMessage = 'こんにちは、' . $customerName . 'さん!';
        Logger::echo($displayMessage); // 文字列結合式の結果
        $calculateResult = $floatValue + 0.1;
        Logger::echo($calculateResult); // 計算式の結果
        $isSameValue = ($intValue == $calculateResult);
        Logger::echo($isSameValue); // 比較式の結果 trueなら1 falseならnull(表示されない)
    }

他のメソッドの実行結果を代入

メソッドは呼び出し元に実行した結果などを戻すことができ、これを戻り値と言います。下記はメソッドの呼び出しを右辺に置き、メソッドの戻り値を代入している例です。

    static function practiceSubstitution03() {
        $addResult = self::addMethod(100, 200); // 呼び出す際に整数を2つ渡す
        Logger::echo($addResult);         // 受け取った戻り値を出力
    }

    static function addMethod(int $a, int $b) {
        return $a + $b; // 受け取った2つの整数を加算して「return」で戻す
    }

クラスの実体を代入

内部にデータを保持してそれを操作するようなクラスの場合、クラスを設計図として、その実体(インスタンス)を作ってから操作を行います。下記はそのインスタンスの作成処理を右辺に置き、作成されたインスタンスを代入している例です。

    static function practiceSubstitution04() {
        // 同じクラスを設計図としてnewで別々の実態を作り代入している
        $obj1 = new stdClass;
        $obj2 = new stdClass;
        
        // 実体が異なるため、同じ仕組みでも別々の文字列を保持できている
        $obj1->name = 'でぃぐすきる';
        $obj2->name = 'DigSkill';
        
        // どちらの実体のnameを呼び出すかで結果が変わる
        Logger::echo($obj1->name);
        Logger::echo($obj2->name);
    }

問題

確認問題


確認問題

この中で変数aに代入された値が最終的に「"あいうえお"」とならないものはどれか?