読者です 読者をやめる 読者になる 読者になる

PHPでインクルードしたときの変数のスコープ

PHP

あんまりお近づきになりたくない言語だが、仕事でちょっと触ることになった。それもpearフレームワークも何にも使えない環境なので結構面倒そうだ。DBアクセスはPDOでやれという事らしいが、pearでインストールしなくても置くだけで使えるO/Rマッパってないですかねー??

ま、実際、適当なpearライブラリをダウンロードして置けば動きそうな気もするけどな。

軽くPHPを弄ってみて、ちょっと変というか面白いなーと思ったのは、クラスHogeのメソッドの中で別のPHPスクリプトをincludeすると、インクルードされたスクリプトは、クラスHogeのインスタンスのスコープで実行されること。なので、インクルードされた側から $this を通して、インクルード元のインスタンスにアクセスできるんですねー。

index.php

<?php
class Hoge {

  private $piyo;

  function fuga() {
    $this->piyo = "ぴよぴよ";
    include("view.php");
  }
}
?>

view.php

<html><body><?= $this->piyo; ?></body></html>

こーいう事ができるならPHP自身をテンプレートに使って、ちょっとしたMVCパターンも簡単に実装できそうだなー