PHP可變函數(shù)的使用詳解
更新時(shí)間:2013年06月14日 16:14:49 作者:
本篇文章是對(duì)PHP中可變函數(shù)的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
PHP 支持可變函數(shù)的概念。這意味著如果一個(gè)變量名后有圓括號(hào),PHP 將尋找與變量的值同名的函數(shù),并且嘗試執(zhí)行它??勺兒瘮?shù)可以用來實(shí)現(xiàn)包括回調(diào)函數(shù),函數(shù)表在內(nèi)的一些用途。
變量函數(shù)不能用于語言結(jié)構(gòu),例如 echo() ,print() ,unset() ,isset() ,empty() ,include() ,require() 以及類似的語句。需要使用自己的包裝函數(shù)來將這些結(jié)構(gòu)用作變量函數(shù)。
Example #1 可變函數(shù)示例
<?php
function foo () {
echo "In foo()<br />/n" ;
}
function bar ( $arg = '' ) {
echo "In bar(); argument was ' $arg '.<br />/n" ;
}
// 使用 echo 的包裝函數(shù)
function echoit ( $string )
{
echo $string ;
}
$func = 'foo' ;
$func (); // This calls foo()
$func = 'bar' ;
$func ( 'test' ); // This calls bar()
$func = 'echoit' ;
$func ( 'test' ); // This calls echoit()
?>
還可以利用可變函數(shù)的特性來調(diào)用一個(gè)對(duì)象的方法。
Example #2 可變方法范例
<?php
class Foo
{
function Variable ()
{
$name = 'Bar' ;
$this -> $name (); // This calls the Bar() method
}
function Bar ()
{
echo "This is Bar" ;
}
}
$foo = new Foo ();
$funcname = "Variable" ;
$foo -> $funcname (); // This calls $foo->Variable()
?>
變量函數(shù)不能用于語言結(jié)構(gòu),例如 echo() ,print() ,unset() ,isset() ,empty() ,include() ,require() 以及類似的語句。需要使用自己的包裝函數(shù)來將這些結(jié)構(gòu)用作變量函數(shù)。
Example #1 可變函數(shù)示例
復(fù)制代碼 代碼如下:
<?php
function foo () {
echo "In foo()<br />/n" ;
}
function bar ( $arg = '' ) {
echo "In bar(); argument was ' $arg '.<br />/n" ;
}
// 使用 echo 的包裝函數(shù)
function echoit ( $string )
{
echo $string ;
}
$func = 'foo' ;
$func (); // This calls foo()
$func = 'bar' ;
$func ( 'test' ); // This calls bar()
$func = 'echoit' ;
$func ( 'test' ); // This calls echoit()
?>
還可以利用可變函數(shù)的特性來調(diào)用一個(gè)對(duì)象的方法。
Example #2 可變方法范例
復(fù)制代碼 代碼如下:
<?php
class Foo
{
function Variable ()
{
$name = 'Bar' ;
$this -> $name (); // This calls the Bar() method
}
function Bar ()
{
echo "This is Bar" ;
}
}
$foo = new Foo ();
$funcname = "Variable" ;
$foo -> $funcname (); // This calls $foo->Variable()
?>
相關(guān)文章
php中3種方法統(tǒng)計(jì)字符串中每種字符的個(gè)數(shù)并排序
3種方法,統(tǒng)計(jì)字符串中每種字符的個(gè)數(shù)并排序,多種解法喲~ str_split()函數(shù)很重要2012-08-08
提示Trying to clone an uncloneable object of class Imagic的解決
使用網(wǎng)上流傳的一個(gè)程序?qū)崿F(xiàn)pdf截圖為png,需要使用Imagic擴(kuò)展,安裝后出現(xiàn)Trying to clone an uncloneable object of class Imagic提示,下面是具體的解決方法分享。2011-10-10
php實(shí)現(xiàn)的一個(gè)簡(jiǎn)單json rpc框架實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)的一個(gè)簡(jiǎn)單json rpc框架實(shí)例,本文給出了RPC服務(wù)端和客戶端代碼以及應(yīng)用實(shí)例,需要的朋友可以參考下2015-03-03
Php output buffering緩存及程序緩存深入解析
在php中有時(shí)為了控制程序的輸出顯示順序,提供了output buffering緩存(php自身緩存機(jī)制)。若Ob緩存開啟,需要輸出的就先存在ob緩存里,再到程序緩存里。若沒有開啟,則直接進(jìn)入程序緩存,程序執(zhí)行完畢,按照順序從程序緩存里輸出2013-07-07
分析PHP中單雙引號(hào)的誤區(qū)和雙引號(hào)小隱患
PHP中單雙引號(hào)常常會(huì)給人帶來很多的誤區(qū),其中雙引號(hào)還有些小隱患,下面是小編給大家整理的,需要的可以參考。2016-07-07
PHP中通過ADODB庫實(shí)現(xiàn)調(diào)用Access數(shù)據(jù)庫之修正版本
PHP中通過ADODB庫實(shí)現(xiàn)調(diào)用Access數(shù)據(jù)庫之修正版本...2006-12-12

