クラス/オブジェクト関数編  is_a()関数 とis_subclass_of() 関数で注意すべきポイント

※この記事は読者によって投稿されたユーザー投稿のため、編集部の見解や意向と異なる場合があります。また、編集部はこの内容について正確性を保証できません。

ヒューマンリソシア株式会社はコラム「クラス/オブジェクト関数編  is_a()関数 とis_subclass_of() 関数で注意すべきポイント」を公開しました。
さて前回の続きです。

PHPマニュアルのis_a()関数の変更履歴をみると、ちょっと気になる事が書いてあります。
端的に要約しますと「一端、5.0.0で非推奨となり、その後5.3.0で非推奨ではなくなった」という経緯が見て取れます。

解除されたとはいえ、一端「非推奨になる」というのはそれなりに理由があるわけなのですが、
果たして何があったのでしょうか?

正確なところは、Zend社にインタビューなりをして…という流れになると思うのですが。
ここで1つ、気になり、かつ重要なところで「CVE-2011-3379」の脆弱性があります。
autoloadのお話を詳しく、はまたいずれ行いますが、まずここで簡単におさらいをしながら、
どんな脆弱性であるか、を確認していきましょう。

autoload(クラスのオートローディング)の機能は、物凄く簡単に書きますと「各スクリプト(プログラム)の先頭でincludeやrequireを書かなくても、未定義のクラス/インターフェイスを使用しようとした時に 自動的にファイルをincludeしたりrequireしたりしてくれる機能」となります。
__autoload() 関数や spl_autoload_register() 関数によって、独自の処理を定義することも可能です。

実際の所、昨今の「実務で用いられる程度に」複雑なプログラムでは、多くのクラス(ファイル)を必要とします。
そのために、結構大量のrequireを書く必要があることも多く、これが結構な作業上の圧迫となります。
また「なにをrequireしてなにをreqireしていないか」を考えるのが面倒で「全てのファイルをreqireする」といった無駄Tips(大変残念なことに、現存します)が生まれたりする事も少なくないのが現状です。
それ以外にも「autoloadとrequire_onceとの性能比較」で、多くの場合に「autoloadが性能がよい」というのもまた、見逃せないポイントです。

この続きは以下をご覧ください
http://resocia.jp/column/740/

この記事が役に立ったらシェア!
みんなが読んでるWeb担メルマガで、あなたも最新情報をチェック
  • SEOやデジタルマーケの最新情報をゲット
  • 事例やインタビューも見逃さない
  • 要チェックのセミナー情報も届く
みんなが読んでるWeb担メルマガで、あなたも最新情報をチェック
  • SEOやデジタルマーケの最新情報をゲット
  • 事例やインタビューも見逃さない
  • 要チェックのセミナー情報も届く

Web業界の転職情報

人気記事トップ10(過去7日間)

今日の用語

アクセス権
ファイル、ディレクトリ、Webページ、プログラムなどに対して、読み出し/書き込み ...→用語集へ

連載/特集コーナーから探す

インフォメーション

Web担のメルマガを購読しませんか?
Web担の記事がコンパクトに毎週届くメールマガジン「Web担ウィークリー」は、10万人が読んでいる人気メルマガ。忙しいあなたの情報収集力をアップさせる強い味方で、お得な情報もいち早く入手できます。

Web担に広告を掲載しませんか?
購読者数10万人のメールマガジン広告をはじめとする広告サービスで、御社の認知向上やセミナー集客を強力にお手伝いいたします。

サイトマップ
RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]