php函數(shù)重載的替代方法--偽重載詳解
更新時(shí)間:2015年05月08日 11:25:58 投稿:hebedich
對(duì)于弱類型語(yǔ)言來說,PHP函數(shù)重載,并不像一般的OOP那樣。而弱類型本來就不區(qū)分,所以無法通過這些來實(shí)現(xiàn)。但是,可以通過下面的方法來實(shí)現(xiàn)簡(jiǎn)單的偽重載吧。
函數(shù)重載的替代方法-偽重載,下面看一個(gè)具體的實(shí)例代碼。
<? php
//函數(shù)重載的替代方法-偽重載
//
//確實(shí),在PHP中沒有函數(shù)重載這個(gè)概念,讓很多時(shí)候我們無法進(jìn)行一些處理,甚至有時(shí)候不得不在函數(shù)后面定義好N個(gè)參數(shù)
//在看到了func_get_arg,func_get_args,func_num_args,這三個(gè)函數(shù)的時(shí)候,你們是不是想起了什么?
function testOne ( $a ) {
echo (' 一個(gè)參數(shù)就這樣 ');
}
function testTwo ( $a , $b ){
echo (' 兩個(gè)參數(shù)的就這樣 ');
}
function testThree ($a, $b, $c ) {
echo (' 黑黑,這是三個(gè)參數(shù)的 ');
}
function test () {
$argNum = func_num_args ();
// 這一段其實(shí)可以用 $_arg = func_get_args() 來獲得所有的參數(shù),只是要用數(shù)組而已,不方便我下面的表達(dá),呵呵
for ( $i = 0 ; $i < $argNum ; $i ++ ) {
$_arg_ { $i } = func_get_arg ( $i );
}
switch ( $argNum ) {
case 1 :
testOne( $_arg_1 );
break ;
case 2 :
testTwo( $_arg_1, $_arg_2 );
break ;
case 3 :
testThree( $_arg_1, $_arg_2, $_arg_3 );
break ;
default :
echo ( ' 這是沒有參數(shù)的情況 ' );
break ;
}
}
test();
echo ( ' ' );
test( 1 );
echo ( ' ' );
test( 1 , 2 );
echo ( ' ' );
test( 1 , 2 , 3 );
// 這些只是在函數(shù)中的運(yùn)用,其實(shí)最主要的還是在類中的運(yùn)用
//如果這些用到類里面我就不需要擔(dān)心構(gòu)造函數(shù)是否有幾個(gè)參數(shù)了,不是嗎?
class test {
var $a = 0 ;
var $b = 0 ;
function test () {
$argNum = func_num_args ();
$_arg = func_get_args ();
switch ($argNum ) {
case 1 :
$this -> test1( $_arg [ 0 ] );
break ;
case 2 :
$this -> test2( $_arg [ 0 ] , $_arg [ 1 ]);
break ;
default :
$this -> a = 0 ;
$this -> b = 1 ;
break ;
}
}
function test1 ($a) {
$this -> a = $a ;
}
function test2 ($a, $b) {
$this -> a = $a ;
$this -> b = $b ;
}
}
?>
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
您可能感興趣的文章:
- 解決PHP Opcache 緩存刷新、代碼重載出現(xiàn)無法更新代碼的問題
- php 使用 __call實(shí)現(xiàn)重載功能示例
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)模擬一般面向?qū)ο笳Z(yǔ)言中的方法重載(overload)示例
- PHP面相對(duì)象中的重載與重寫
- PHP中子類重載父類的方法【parent::方法名】
- PHP面向?qū)ο缶幊讨钊肜斫夥椒ㄖ剌d與方法覆蓋(多態(tài))
- php繼承中方法重載(覆蓋)的應(yīng)用場(chǎng)合
- PHP使用方法重載實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建屬性的get和set方法
- PHP利用func_get_args和func_num_args函數(shù)實(shí)現(xiàn)函數(shù)重載實(shí)例
- php面向?qū)ο笕ヂ?(八)重載新的方法
- php面向?qū)ο蟮姆椒ㄖ剌d兩種版本比較
- PHP重載基礎(chǔ)知識(shí)回顧
相關(guān)文章
PHP驗(yàn)證碼函數(shù)代碼(簡(jiǎn)單實(shí)用)
這篇文章主要分享了php中簡(jiǎn)單的驗(yàn)證碼函數(shù)實(shí)現(xiàn)代碼,代碼比較短,但效果卻不錯(cuò),喜歡的朋友可以試試2013-09-09
php實(shí)現(xiàn)的九九乘法口訣表簡(jiǎn)潔版
這篇文章主要介紹了php實(shí)現(xiàn)的九九乘法口訣表簡(jiǎn)潔版,代碼簡(jiǎn)潔易懂,可以用來回答面試題哦,需要的朋友可以參考下2014-07-07
解決thinkphp5未定義變量會(huì)拋出異常,頁(yè)面錯(cuò)誤,請(qǐng)稍后再試的問題
今天小編就為大家分享一篇解決thinkphp5未定義變量會(huì)拋出異常,頁(yè)面錯(cuò)誤,請(qǐng)稍后再試的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10
PHP 圖片上傳實(shí)現(xiàn)代碼 帶詳細(xì)注釋
PHP 圖片上傳實(shí)現(xiàn)代碼 帶詳細(xì)注釋,喜歡的朋友可以學(xué)習(xí)下。2010-04-04

