当我知道myobject
将要声明 of 的属性时,为什么我不能执行以下操作:
define('title','boats');
myobject->title
;
但这有效:
myobject->boats
这甚至是一种好习惯吗?
当我知道myobject
将要声明 of 的属性时,为什么我不能执行以下操作:
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( );
编辑:啊,我似乎误解了。我的版本是用于调用名称在常量中定义的方法,而您正在寻找一种调用属性的方法。好吧,无论如何我都会把它留在这里以备将来参考。