PHP アクセス権

クラスのメンバーにはプロパティとメソッドがある。 キーワードを指定することで各メンバーへのアクセス権を設定できる。 キーワードはpublic,private,protectedの3種類。定義時にキーワードを宣言する。

あるクラスのメソッドを呼び出したいとき、 メソッドをpublicにしておけば、インスタンスからアクセスすることができる。 privateだと直接アクセスできない。(そのクラス内からしかアクセスできない)

<?php

class MyClass
{
  public function PublicFunc()
  {
    echo "useful function." , PHP_EOL;
  }

  private function PrivateFunc()
  {
    echo "another useful function." , PHP_EOL;
  }
}

$obj = new Myclass();
$obj->PublicFunc(); //呼び出せる
$obj->PrivateFunc(); //Fatal error

ただ、安易にpublicにするのは危険な気がする。どういう危険があるのか、どういうときならpublicにしてもいいのか、わかったら書こう。

<追記>
単にメソッドを使いまわしたいな、というときは、staticを宣言したほうがインスタンスを作らずに済むので良い。

<?php

class MyUtil
{
  public static function StaticFunc()
  {
    echo "useful function." , PHP_EOL;
  }
}

MyUtil::StaticFunc(); //=> "useful function."