PHP模拟到C++;成员指针? PHP是否有类似C++成员指针的东西?我想使用PHP对象的一个成员,其名称(成员的,而不是对象的)我只在运行时知道。例如: $object = new stdClass(); $object->NewMember = "value"; $member = 'NewMember'; // I don't know whether this is valid PHP, // but you get what I'm trying to do. echo $object->$member;
不,PHP不支持(成员)指针。不管你怎么用 正如你在其他答案中看到的,你也可以写:PHP模拟到C++;成员指针? PHP是否有类似C++成员指针的东西?我想使用PHP对象的一个成员,其名称(成员的,而不是对象的)我只在运行时知道。例如: $object = new stdClass(); $object->NewMember = "value"; $member = 'NewMember'; // I don't know whether this is valid PHP, // but you get what I'm trying to do. echo $object->$member;,php,Php,不,PHP不支持(成员)指针。不管你怎么用 正如你在其他答案中看到的,你也可以写: class MyClass { ... } $method = 'doSth'; $obj = new MyClass(); $obj->$method('arg1', 'arg2'); 但是我真的不推荐那样做。它很棘手,晦涩难懂,调试和维护起来也困难得多。不,PHP不支持(成员)指针。不管你怎么用 正如你在其他答案中看到的,你也可以写: class MyClass { ... } $method
class MyClass { ... }
$method = 'doSth';
$obj = new MyClass();
$obj->$method('arg1', 'arg2');
但是我真的不推荐那样做。它很棘手,晦涩难懂,调试和维护起来也困难得多。不,PHP不支持(成员)指针。不管你怎么用
正如你在其他答案中看到的,你也可以写:
class MyClass { ... }
$method = 'doSth';
$obj = new MyClass();
$obj->$method('arg1', 'arg2');
但是我真的不推荐那样做。这是一个棘手的、模糊的、更难调试和维护的问题。通过引用将$this作为变量传递,您可以访问该类的成员。通过引用将$this作为变量传递,您可以访问该类的成员。您可以在成员调用中使用变量
$methodName = 'some_method';
$myObj->$methodName($param);
不确定这是否能满足您的需要。您可以在成员调用中使用变量
$methodName = 'some_method';
$myObj->$methodName($param);
<?php
class Test
{
public $foo = 'bar';
}
$var = 'foo';
$test = new Test();
echo $test->$var;
不确定这是否能满足您的需要。
在下面的代码中,我正在运行时设置$memberToGet
:
<?php
class Test
{
public $foo = 'bar';
}
$var = 'foo';
$test = new Test();
echo $test->$var;
class Person
{
public $foo = 'default-foo';
public $bar = 'default-bar';
}
$p = new Person();
$memberToGet = 'foo';
print "The Person's $memberToGet is [" . $p->$memberToGet . "]\n";
$memberToGet = 'bar';
print "The Person's $memberToGet is [" . $p->$memberToGet . "]\n";
在以下代码中,我正在运行时设置$memberToGet
:
class Person
{
public $foo = 'default-foo';
public $bar = 'default-bar';
}
$p = new Person();
$memberToGet = 'foo';
print "The Person's $memberToGet is [" . $p->$memberToGet . "]\n";
$memberToGet = 'bar';
print "The Person's $memberToGet is [" . $p->$memberToGet . "]\n";
我不要指针。我希望能帮助我实现在C++中用成员指针实现的东西。@克罗津:我只需要实现一个函数,它可以打印一个类似对象的数组到HTML表。在这种情况下,使用反射API会给我带来什么好处?@Eduardo León:在这种特殊情况下,它会使您的代码更冗长,更不复杂。而且处理错误应该更容易。@Crozin:我有一个很大的问题。我想调用的属性实际上是魔法属性。@Eduardo León:所以它们可能不应该是魔法属性。魔法是邪恶的,因为它使你的代码变魔术,而魔法代码很难理解和维护。魔法机制可以用于某种回退机制或保持向后兼容性。我不想要指针。我希望能帮助我实现在C++中用成员指针实现的东西。@克罗津:我只需要实现一个函数,它可以打印一个类似对象的数组到HTML表。在这种情况下,使用反射API会给我带来什么好处?@Eduardo León:在这种特殊情况下,它会使您的代码更冗长,更不复杂。而且处理错误应该更容易。@Crozin:我有一个很大的问题。我想调用的属性实际上是魔法属性。@Eduardo León:所以它们可能不应该是魔法属性。魔法是邪恶的,因为它使你的代码变魔术,而魔法代码很难理解和维护。魔法机制可以用于某种回退机制或保持向后兼容性。在变量名中添加一个符号,&,例如:&$this。然而,我使用的是内存,所以可能不完全准确。在变量名中添加一个符号,&,因此类似于:&$this。但是我是根据记忆来做的,所以可能不完全准确,它叫做记忆