PHP可變函數(shù)的使用詳解
更新時(shí)間:2013年06月14日 16:14:49 作者:
本篇文章是對(duì)PHP中可變函數(shù)的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
PHP 支持可變函數(shù)的概念。這意味著如果一個(gè)變量名后有圓括號(hào),PHP 將尋找與變量的值同名的函數(shù),并且嘗試執(zhí)行它??勺兒瘮?shù)可以用來(lái)實(shí)現(xiàn)包括回調(diào)函數(shù),函數(shù)表在內(nèi)的一些用途。
變量函數(shù)不能用于語(yǔ)言結(jié)構(gòu),例如 echo() ,print() ,unset() ,isset() ,empty() ,include() ,require() 以及類似的語(yǔ)句。需要使用自己的包裝函數(shù)來(lái)將這些結(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ù)的特性來(lái)調(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ù)不能用于語(yǔ)言結(jié)構(gòu),例如 echo() ,print() ,unset() ,isset() ,empty() ,include() ,require() 以及類似的語(yǔ)句。需要使用自己的包裝函數(shù)來(lái)將這些結(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ù)的特性來(lái)調(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 文件狀態(tài)緩存帶來(lái)的問(wèn)題
當(dāng)使用以下函數(shù)時(shí),會(huì)因?yàn)槲募顟B(tài)緩存,導(dǎo)致結(jié)果錯(cuò)誤2008-12-12Thinkphp5和Thinkphp3的區(qū)別對(duì)比以及單字母函數(shù)對(duì)應(yīng)的助手函數(shù)
TP5在很多方面相比TP3升級(jí)和提升。盡管TP3已經(jīng)有一定的市場(chǎng)和用戶群體,但新項(xiàng)目還是建議使用TP5。thinkphp3.2中一些快捷大寫單字母函數(shù),比如 U(),I() , C(),M() , D() , W()等,這些在thinkphp5 中已經(jīng)不再使用,而是改用助手函數(shù)來(lái)代替。2023-07-07讓你的WINDOWS同時(shí)支持MYSQL4,MYSQL4.1,MYSQL5X
讓你的WINDOWS同時(shí)支持MYSQL4,MYSQL4.1,MYSQL5X...2006-12-12解決phpmyadmin 亂碼,支持gb2312和utf-8
解決phpmyadmin 亂碼,支持gb2312和utf-8...2006-11-11PHP7 preg_replace 出錯(cuò)及解決辦法
在本篇文章里小編給大家整理的是一篇關(guān)于PHP7 preg_replace 出錯(cuò)及解決辦法,有需要的朋友們可以跟著學(xué)習(xí)下。2021-12-12淺析php插件 Simple HTML DOM 用DOM方式處理HTML
本篇文章是對(duì)php插件Simple HTML DOM 用DOM方式處理HTML進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07