PHP可变函数学习小结
在上篇文章给大家介绍了php可变变量,今天通过本篇文章给大家介绍php可变函数,具体详情如下。
PHP支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP将寻找与变量的值同名的函数,并且尝试执行它。可变函数可以用来实现包括回调函数,函数表在内的一些用途。
可变函数不能用于例如echo,print,unset(),isset(),empty(),include,require以及类似的语言结构。需要使用自己的包装函数来将这些结构用作可变函数。
Example#1可变函数示例
<?php functionfoo(){ echo"Infoo()<br/>\n"; } functionbar($arg=''){ echo"Inbar();argumentwas'$arg'.<br/>\n"; } //使用echo的包装函数 functionechoit($string) { echo$string; } $func='foo'; $func();//Thiscallsfoo() $func='bar'; $func('test');//Thiscallsbar() $func='echoit'; $func('test');//Thiscallsechoit() ?>
也可以用可变函数的语法来调用一个对象的方法。
<?php classFoo { functionVariable() { $name='Bar'; $this->$name();//ThiscallstheBar()method } functionBar() { echo"ThisisBar"; } } $foo=newFoo(); $funcname="Variable"; $foo->$funcname();//Thiscalls$foo->Variable() ?>
当调用静态方法时,函数调用要比静态属性优先:
Example#3Variable方法和静态属性示例
<?php classFoo { static$variable='staticproperty'; staticfunctionVariable() { echo'MethodVariablecalled'; } } echoFoo::$variable;//Thisprints'staticproperty'.Itdoesneeda$variableinthisscope. $variable="Variable"; Foo::$variable();//Thiscalls$foo->Variable()reading$variableinthisscope. ?>
可以使用可变函数的方法列表如下:
<?php array_diff_assoc() array_diff_key() array_diff_uassoc() array() array_intersect_ukey() array_map() array_merge() array_merge_recursive() array_multisort() array_push() array_replace() array_replace_recursive() array_unshift() call_user_func() call_user_method() compact() dba_open() dba_popen() echo() forward_static_call() fprintf() fscanf() httprequestpool_construct() ibase_execute() ibase_set_event_handler() ibase_wait_event() isset() list() maxdb_stmt_bind_param() maxdb_stmt_bind_result() mb_convert_variables() newt_checkbox_tree_add_item() newt_grid_h_close_stacked() newt_grid_h_stacked() newt_grid_v_close_stacked() newt_grid_v_stacked() newt_win_choice() newt_win_entries() newt_win_menu() newt_win_message() newt_win_ternary() pack() printf() register_shutdown_function() register_tick_function() session_register() setlocale() sprintf() sscanf() unset() var_dump() w32api_deftype() w32api_init_dtype() w32api_invoke_function() wddx_add_vars() wddx_serialize_vars()
下面给大家介绍下PHPMath函数
phpmath简介
数学(Math)函数能处理integer和float范围内的值。
phpmath函数
PHP:指示支持该函数的最早的PHP版本。