Send ve GetAttr PHP eşdeğer?

2 Cevap php

Ruby bir partiye davet ve getiriyor alırsa:

foobarobject.send('foomethod') 

.. Ve Python aynı partiye davet ve getiriyor alır:

getattr(foobarobject, 'foomethod')()

.. PHP partiye getirmek için ne var?

Ruby ve Python, PHP parti iyilik kıskanan var ise Bonus question:, ne İngilizce terimler onlar PHP'nin arkasından bunun hakkında konuşmak için PHP'nin belgelerinde aramak istiyorsunuz?

2 Cevap

PHP Bu getiriyor:

$foobarobject->{"foomethod"}();

... Ve kola ve cips.

EDIT:

Yukarıda terim olmasına rağmen variable variables there is nothing specifically talking about doing it to an object in the manual. However, you can achieve the same thing with call_user_func :

call_user_func(array($foobarobject, "foomethod"));

Yöntemi adını tutmak için değişken kullanma. Hemen hemen bu konuda Paolo'nun ilk örnek olarak aynı, ama belki çok açık değildir bilmedikçe.

$method = "foomethod";
$foobarobject->$method();

Ayrıca Reflection classes var.

$method = new ReflectionMethod('Foobar', 'foomethod');
$method->invoke(null);