skillup

技術ブログ

PHP プログラミング全般

クラスメソッドとインスタンスメソッド

投稿日:

以前staticメソッドを定義したときに、記法がインスタンスメソッドの呼び方でも呼べてしまうことがあったので、これを機にインスタンス・クラス×変数・メソッドちょっと調べてみました。

言葉で書くよりコードを見たほうがわかりやすいかも。

ソース

メモ

  • クラスメソッドとインスタンスメソッドの違いはメモリの確保のされ方
  • クラスメソッドは当然インスタンスから独立しているので、どのインスタンスからよんでも同一のデータにアクセスする
  • インスタンスはインスタンスごとにメモリ上に置かれるため、クラスメソッド(static)からは基本的にアクセスできない
  • インスタンスの中にはクラスメソッドが入っているのでインスタンスからクラスメソッドを呼ぶことは当然できる
  • 上記の場合(インスタンスからクラスメソッドを呼ぶ場合)、記法は正確にはインスタンス::クラスメソッドだがインスタンス->クラスメソッドという呼び方でもOK

参考リンク

PHPの静的変数 (static変数) の挙動まとめ

-PHP, プログラミング全般

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

テストのダミーデータ作成

データベースに大量のデータを作りたいときにいつもあああやhoge,aaaですとデータという感じがしないですし、抽出や集計ができません。 なるべく自然に近いデータが欲しいのですが、簡単に作れる方法があり …

no image

フレームワーク作成時の注意ポイント

以前も多分書いていますが、フレームワーク作成時のポイントなどを列挙。 次元が違うものも多々含まれているかも。 ルーティング機能 基本設定情報の読み込み キャッシュ機能 データベース Form情報の管理 …

no image

オブジェクト指向設計 依存関係の管理

オブジェクト指向シリーズ。読みにくい本が多い中でオブジェクト指向設計実践ガイドは勉強になるなー。 Contents1 依存関係の管理1.1 メモ1.2 実際のコーディング上のコツ1.3 感想 依存関係 …

no image

inotifyによる検知

以前、pynotifyというpythonの検知プログラムを書きましたが、元々はinotifyというLinux上のパッケージのライブラリが元になっています。 以前調べたリンク 監視検知処理に関して 実務 …

no image

PHPでのPDF出力 テーブル

PDFで何かを出力する場合、ほとんどが納品書や請求書などの帳票でしょう。 これらもfpdfで出力することができます。 Contents1 ソース2 サンプル3 参考リンク ソース [crayon-5c …