日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php是否直接支持函数的重载,php函数重载的替代方法--伪重载详解

發布時間:2025/4/5 php 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php是否直接支持函数的重载,php函数重载的替代方法--伪重载详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于弱類型語言來說,PHP函數重載,并不像一般的OOP那樣。而弱類型本來就不區分,所以無法通過這些來實現。但是,可以通過下面的方法來實現簡單的偽重載吧。

函數重載的替代方法-偽重載,下面看一個具體的實例代碼。

php

//函數重載的替代方法-偽重載

//

//確實,在PHP中沒有函數重載這個概念,讓很多時候我們無法進行一些處理,甚至有時候不得不在函數后面定義好N個參數

//在看到了func_get_arg,func_get_args,func_num_args,這三個函數的時候,,你們是不是想起了什么?

function testOne ( $a ) {

echo (' 一個參數就這樣 ');

}

function testTwo ( $a , $b ){

echo (' 兩個參數的就這樣 ');

}

function testThree ($a, $b, $c ) {

echo (' 黑黑,這是三個參數的 ');

}

function test () {

$argNum = func_num_args ();

// 這一段其實可以用 $_arg = func_get_args() 來獲得所有的參數,只是要用數組而已,不方便我下面的表達,呵呵

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 ( ' 這是沒有參數的情況 ' );

break ;

}

}

test();

echo ( ' ' );

test( 1 );

echo ( ' ' );

test( 1 , 2 );

echo ( ' ' );

test( 1 , 2 , 3 );

// 這些只是在函數中的運用,其實最主要的還是在類中的運用

//如果這些用到類里面我就不需要擔心構造函數是否有幾個參數了,不是嗎?

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 ;

}

}

?>

以上所述就是本文的全部內容了,希望大家能夠喜歡。

總結

以上是生活随笔為你收集整理的php是否直接支持函数的重载,php函数重载的替代方法--伪重载详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。