可変関数について

可変関数とは、色々読み解き方があるようですが、

要するに 後ろに()をつけたら同名の関数を検索して実行する仕組み
です。

php.netにあるように、コールバック等の実装や
入力した関数名を実行させる (比較的安全なevalみたいな) 時などにも
活躍します。
 

しかし、あまり使われてるのを見たことが無いです

(もしかして非推奨?)
(可読性の面から避けることもあるらしい)
 

是非知ってもらいたい仕様です。
 

説明や紹介するのは長いので
基本的な使用法と簡単な実行結果を添えたコード例を載せておきます。

(見にくかったらすみません<(_ _*)>)

↓↓↓

<?php

$a = 'example';

$a(); //"-message"

$a($a); //"example-message"

$a("a", "i", "u", 1, 2, 3); //"aiu123-message"

'example'("test"); //"test-message"

$class = new Hoge();
$hoge = 'hogehoge';

$class::$hoge(); //"Success!"


function example(){
    $args = func_get_args();
    $message = "";
    foreach($args as $text){$message .= $text;}
    echo $message.'-message';
}

class Hoge {
    static function hogehoge(){echo 'Success!';}
}
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.