Upgrade to Pro — share decks privately, control downloads, hide ads and more …

可変変数との向き合い方 $$変数名が踊り出す$$ / php conference Varia...

Avatar for Gunji Gunji
July 06, 2025

可変変数との向き合い方 $$変数名が踊り出す$$ / php conference Variable variables

Avatar for Gunji

Gunji

July 06, 2025
Tweet

Other Decks in Programming

Transcript

  1. 5 CONFIDENTIAL - © 2022 CoDMON Inc. 5 1. 可変変数との出会い

    $$ ↓ 「変数名が別の変数の中身によって決まる」
  2. 7 CONFIDENTIAL - © 2022 CoDMON Inc. 7 2. 可変変数とは

    $partner = "wife"; $$partner = "素敵な笑顔"; echo $wife;
  3. 8 CONFIDENTIAL - © 2022 CoDMON Inc. 8 2. 可変変数とは

    $partner = "wife"; $$partner = "素敵な笑顔"; echo $wife; ☺ "素敵な笑顔 "
  4. 9 CONFIDENTIAL - © 2022 CoDMON Inc. 9 2. 可変変数とは

    $partner = "wife"; $$partner = "素敵な笑顔"; echo $wife; $$partner → $wife → "素敵な笑顔"
  5. 10 CONFIDENTIAL - © 2022 CoDMON Inc. 10 2. 可変変数とは

    $name = "user1"; $$name = "Alice"; $name = "user2"; $$name = "Bob"; echo $user1; // 出力: Alice echo $user2; // 出力: Bob 動的に変数名を決めて 複数の関連する値を扱いたいときに使いたくなる?
  6. 11 CONFIDENTIAL - © 2022 CoDMON Inc. 11 2. 可変変数とは

    $name = "user1"; ←「変数名」に対して値を保存 $$name = "Alice"; ←「変数名」自体が変数の値になる $name = "user2"; $$name = "Bob"; echo $user1; // 出力: Alice echo $user2; // 出力: Bob 可変変数は「変数名」自体が変数の値になる
  7. 12 CONFIDENTIAL - © 2022 CoDMON Inc. 12 2. 可変変数とは

    $name = "user1"; ←「変数名」に対して値を保存 $$name = "Alice"; ←「変数名」自体が変数の値になる $name = "user2"; $$name = "Bob"; echo $user1; // 出力: Alice echo $user2; // 出力: Bob おもしれー変数 可変変数は「変数名」自体が変数の値になる
  8. 14 CONFIDENTIAL - © 2022 CoDMON Inc. 14 3. すれ違い

    $wife = 'mood'; $mood = 'notAngry'; $notAngry = 'butActually'; $butActually = 'angry'; echo $$$$wife;
  9. 15 CONFIDENTIAL - © 2022 CoDMON Inc. 15 3. すれ違い

    $wife = 'mood'; $mood = 'notAngry'; $notAngry = 'butActually'; $butActually = 'angry'; echo $$$$wife; $$$$wife → $$$mood → $$notAngry → $butActually →
  10. 16 CONFIDENTIAL - © 2022 CoDMON Inc. 16 3. すれ違い

    $wife = 'mood'; $mood = 'notAngry'; $notAngry = 'butActually'; $butActually = 'angry'; echo $$$$wife; $$$$wife → $$$mood → $$notAngry → $butActually → angry 😤
  11. 17 CONFIDENTIAL - © 2022 CoDMON Inc. 17 3. すれ違い

    $color = "red"; $$color = "apple"; echo $red; // apple •可読性の低下 •バグを生みやすい •セキュリティリスク
  12. 18 CONFIDENTIAL - © 2022 CoDMON Inc. 18 可変変数と夫婦関係 •見た目上の名前と実際の変数名が異なる

     →表面的な言葉と本当の感情が異なる •変数の中身がぱっと見ではっきりしない  →伝えたい意図が明確ではない  →当たり前だと思い伝え切れていない
  13. 19 CONFIDENTIAL - © 2022 CoDMON Inc. 19 4. 向き合い方

    $name = "user1"; $$name = "Alice"; $name = "user2"; $$name = "Bob"; echo $user1; echo $user2; $users = []; $users['user1'] = "Alice"; $users['user2'] = "Bob"; echo $users['user1']; echo $users['user2']; → 関連するデータが構造化されている配列にまとまっていて把握しやすい キーによって値を管理するので変数名が明確
  14. 20 CONFIDENTIAL - © 2022 CoDMON Inc. 20 4. 向き合い方

    • PHPが開発された当初は、柔軟さや手軽さを重視していたため、そ の中で多くの便利機能が追加されていった内の1つなのでは • ただし、現代においては配列や連想配列の発展によりその必要性は 薄くなった ここでこそ可変変数の出番!に心当たりある方は、 ぜひ懇親会で教えてください!
  15. 21 CONFIDENTIAL - © 2022 CoDMON Inc. 21 まとめ •

    可変変数とは「変数名が別の変数の中身によって決まる」仕組み ◦ 配列や連想配列を使った方がより構造が明確 ◦ 現代において、使い所は非常に限られてくる • コードも夫婦関係も... ◦ 伝えたい意図を明確に ◦ 疑問があれば都度確認 ◦ 素直に気持ちを伝え合う