クラスをインスタンス化するには、new
を使用する必要があります。 $classinstring = 'Foo'
割り当て$classinstring
"Foo"
文字列リテラルを書く
$classinstring = new Foo();
。
名前空間は、クラスのショートカットです。これらの2つのステートメントは同じです:
namespace x\y\z;
use x\y\z\h\Foo;
$bar = new Foo();
と
$bar = new \x\y\z\h\Foo();
また、あなたのクラス名は、ファイル名とまったく同じに綴られていることを確認してください。
スタティックメソッドを使用するためにインスタンス化する必要はありません。クラス名から直接呼び出すことができます。これはネイティブのPHPグローバル関数であり、静的メソッドとして呼び出すことはできませんが、
あなたは、クラス内で独自のgetType()
メソッドが定義されていない限り、一例としてgetType()
を使用しています。
class Foo
{
public function getType()
{
echo 'This is my own function.';
}
public static function callAnywhere()
{
echo 'You don't have to make a new one to use one.';
}
}
これは、クラスメソッドを呼び出す必要がある場合に適しています。
Foo::callAnywhere() // prints 'You don't have to make a new one to use one.';
$bar = new Foo();
$bar->getType(); // prints 'This is my own function.'
$other = new stdClass();
echo getType($other); // prints 'object';