skillup

技術ブログ

PHP プログラミング全般

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

投稿日:

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

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

ソース

メモ

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

参考リンク

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

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

執筆者:


comment

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

関連記事

no image

CakePHP3系でのテスト処理

以前CakePHP2系のテストは書きましたが、3系は若干仕様が違いますので、3について書こうと思います。例によってエントリーレベルですが。 Contents1 準備1.1 phpunit1.2 テスト …

no image

PHP_CodeSnifferによるコードチェック

昨日の記事でphpmdという静的解析ツールを調査したんですが、それ以外にも規約にのっとっているかどうかコーディングをチェックできるツールはあります。 PHP_CodeSniffer https://g …

no image

CakePHP3でのコレクションに関して

プログラミングにおいて基礎となるのは配列、ハッシュの処理とオブジェクト指向の使いこなしです。 配列、ハッシュの処理に関しては自前でメソッドを書いてもよいですが、バグの温床になりやすいので、ライブラリを …

no image

PHPメモリ測定

プログラムのメモリ測定に関して。今回はWordPressの処理に関してです。 まずはソースから。 処理を入れているファイルはルートディレクトリ直下のindex.phpです。 [crayon-5e801 …

no image

SQSのキュー登録とworkコマンドに関して

SQSでのキューの登録に関して以前やりましたが、再度扱うことがあったので、調査を。 リンク SQSについて Queueの登録と実際の処理に関して Contents1 キューの登録2 キューの監視 キュ …