2017-10-01 13 views
0

私はクロージャーについてもっと学び、Laravelのルート関数に似た何かを再作成したいと思います。キャッチ可能な致命的なエラー:クラスClosureのオブジェクトを文字列に変換できませんでした

ので、私は次のコードを持っている:

<?php 



Class Foo{ 


    public static function show($second, $third){ 

     return "First " . $second . $third; 

    } 

} 


echo $my_var = Foo::show("Second ", function(){ 

    return "Third "; 

}); 

を私はそれを実行した場合、私は「キャッチできる致命的なエラー:クラス閉鎖のオブジェクトは、文字列に変換することができませんでした」取得エラー。

Foo :: show関数から変数$ 3を削除した場合、エラーは発生しませんが、3番目の変数は表示されません。

私は結果を期待していました。

何がありますか?私は勉強しています。.. :) $thirdとして

答えて

0

機能で、それが返されます取得する値 - あなたはそれを呼び出す必要があります。関数呼び出しは通常()で行われ、その変更があるさ:

がここ
return "First " . $second . $third(); 

は、$third引数として渡された関数が実行され、文字列Third返され、前の文字列と連結。

+0

素晴らしい!このように考えたことはありませんが、今はとても単純です。ありがとう、たくさんの男! – EldinPHP

+0

答えを受け入れることを忘れないでください。 –

+0

完了:投票は私が考えるより評判が高くなるまで公に表示されません:) – EldinPHP

関連する問題

 関連する問題