忍者ブログ

カウンター

プロモーション

カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

AntinomyMy の実験室

   私のWEBアプリ実験室です!

ブログ内検索

楽天でお買い物

twitter

最新トラックバック

最新コメント

忍者アナライズ

ウェザーニュース

バーコード

本を買う

アクセス解析

Google+

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


  • 2024/11/23 22:41

PHPで関数名を引数にとる関数 って簡単に作れるじゃんって話^w^;

PHP の調べ物

なんだか関数に引数を取るPHPの関数はコールバック関数として
いくつか存在しています。

それらの関数を使わないと、
例えば関数magicFunc()の引数に関数の名前runFuncを入れて、
magicFunc('runFunc')として
その関数の中で
runFunc を実行できないのか?と考えました。

これ、すんなり出来るんです^w^;

なんじゃそりゃ!?wwwと思ったのでφ(..)メモメモしました(PHP5.3.5くらいですw)。

function runFunc($valArray){
    
var_dump($valArray);
}

function 
magicFunc($funcName,$valArray){
    
$funcName($valArray);
}

magicFunc('runFunc',array('て','す','と'));


これをすると

array
  0 => 
string
 'て' (length=3)
  1 => 
string
 'す' (length=3)
  2 => 
string
 'と' (length=3)
なった@w@;

つまり、引数で渡した変数と化した関数名が入った値を、
そのまま()を付けて関数っぽく使うと、
それがそのまま関数になるのですね!!!

おぉ!えくせれんと(謎

という事で、もしも引数の数なども判断した関数を作りたければ
PHP5.6 からはunctions.variable-arg-listにある
可変長引数リストが非常に便利ですがそれ以前(5.5)な場合は
func_num_args()func_get_arg()func_get_args() 
を使えば何でも作れそうです。

後、引数名が入った引数も$を一つ多く書いて$$で名前の変数を参照できるので
$sole='heart is power';
$body='sole'

としておいて
var_dump($$body);


string
 'heart is power' (length=14)
と参照できるので、もっと出来る事は広がりますd^v^b

面白そうなφ(..)メモメモでしたぁ~

お粗末<_ _>

拍手[0回]

PR


  • 2015/02/03 04:32

コメント一覧

  • お名前
  • Email

  • コメント

  • Vodafone絵文字 i-mode絵文字 Ezweb絵文字
  • パスワード
[PR]