Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
458 views
in Technique[技术] by (71.8m points)

php - Can I use a variable to call a method?

Can I call a method when the method name is stored in a variable? What's the syntax? Suppose I have the following PHP code:

class MyClass {
    public $default;

    function index() {
        /* call method named by $this->default */
    }
    function method_1() {}
    function method_2() {}
    ...
}

index() is called by default when the class is initialised if no other method is specifically called.

How can I call one of the methods from within index() using the MyClass->$default property? That is, if I would ordinarily write:

function index() { $this->method_1(); }

can I use my default variable to call the correct method?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Can i use a variable to call a method?

Yes you can. For example, inside an object:

$method = "method_1";

if (method_exists($this, $method))
 $this->{$method}();

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...