myobject
のプロパティが既に宣言されることがわかっているのに、なぜ次のようなことができないのですか。
define('title','boats');
myobject->title
;
しかし、これは機能します:
myobject->boats
これも良い習慣ですか?
myobject
のプロパティが既に宣言されることがわかっているのに、なぜ次のようなことができないのですか。
define('title','boats');
myobject->title
;
しかし、これは機能します:
myobject->boats
これも良い習慣ですか?
使えません
$myobject->title
title
これは、オブジェクトのプロパティにアクセスしようとしているためです。このプロパティが存在しない場合、エラーが発生します。
使用できます
$myobject->{title}
ただし、定数の代わりに変数を使用することをお勧めします。
$title = 'boats';
echo $myobject->$title;
理想的には、アクセスするプロパティを把握し、その名前を適切に使用します。
$myobject->boats
myobject のプロパティが既に宣言されていることがわかっているのに、なぜ次のようなことができないのでしょうか。
おそらく、PHP がメソッド名で呼び出すことを想定しているためです。ただし、オプションがあります。
<?php
define( 'METHOD', 'bar' );
class Foo {
public function bar( ) {
echo "Foo->bar( ) called.\n";
}
}
$foo = new Foo;
call_user_func( array( $foo, METHOD ) );
// or
$method = METHOD;
$foo->$method( );
EDIT:ああ、私は誤解しているようです。私のバージョンは、名前が定数で定義されているメソッドを呼び出すためのものですが、プロパティを呼び出す方法を探していました。まあ、今後の参考のためにここに残しておきます。