很多人說php4不能支持函數重載
很多人說php4不能支持函數重載,但是并非如此,先看一下例子: 我記得有人說過“關鍵是人本身的思想,不是說你熟悉了C++、Rose就能夠做出好的設計,相反如果你具備了很高的素質,你可以用C寫出比別人用C++更加模塊化的程序?!?我很同意這種說法~~看看*nix 我
很多人說php4不能支持函數重載,但是并非如此,先看一下例子:
我記得有人說過 “關鍵是人本身的思想,不是說你熟悉了
C++、Rose就能夠做出好的設計,相反如果你具備了很高的素質,你可以用C寫出比別人用
C++更加模塊化的程序?!?
我很同意這種說法~~看看 *nix
我用了那么久 的 php 覺得它有點像 c ,可以說 c 什么都不能做(如果你想像
java 那樣有大量的class 的話),但它什么都能做,主要是看你怎么用,它給你很大的自由.
[code:1:7c1e1f17c0]
<?php
############################
#PHP 重載
############################
class
測試類{
//================================
function 測試類(){//構造函數
$參數個數 =func_num_args();
$參數列表 = func_get_args();
switch ($參數個數){
case 0: $this->構造函數0(); break;
case 1: $this->構造函數1($參數列表[0]);break;
case 2: $this->構造函數2($參數列表[0],$參數列表[1]);break;
case 3: $this->構造函數3($參數列表[0],$參數列表[1],$參數列表[2]);break;
}
}
//=============Function End ===========
//================================
function 構造函數0(){
printf("我是構造函數0");
}
//=============Function End ===========
//================================
function 構造函數1($參數1){
printf($參數1);
}
//=============Function End ===========
//================================
function 構造函數2($參數1,$參數2){
printf($參數1.$參數2);
}
//=============Function End ===========
//================================
function 構造函數3($參數1,$參數2,$參數3){
printf($參數1.$參數2.$參數3);
}
//=============Function End ===========
}
$測試 = new 測試類();
echo "<br>";
$測試1 = new 測試類("這是2吧!"," 是2不錯");
echo "<br>";
$測試2 = new 測試類("這是2吧!"," 是2不錯!"," 錯~~是3");
echo "<br>";
############################
?>
[/code:1:7c1e1f17c0]
夜貓子 回復于:2003-10-28 12:40:02
|
有創意,我想想看還能不能再發揮
|
longnetpro 回復于:2003-10-29 09:48:03
|
其實有一個最通用的辦法
function construct($args = null){
if($args === null) {null constructor; return something;}
if(!is_array($args)){ do... something ...; return something;}
$argc = count($args);
switch($argc){
case 1: do something 1; break;
case 2: do something 2; break;
default: do default; break;
}
return something;
}
然后還可以對參數判斷類型等等。都沒有什么問題的。
其實PHP也有自己重載的方法,不過用起來有點煩,而且我認為安全性不好,因此我不用它,一般我都用上面我寫的辦法。
|
wubai 回復于:2003-10-29 17:23:48
|
[quote:f4829cfc97="longnetpro"]其實有一個最通用的辦法
function construct($args = null){
if($args === null) {null constructor; return something;}
if(!is_array($args)){ do... something ...; return something;}
$argc = coun..........[/quote:f4829cfc97]
我也覺得這樣不錯,使用默認值。
|
geel 回復于:2003-10-30 13:17:06
|
不錯不錯
php發展的已經快可以跟jsp媲美了
|
wubai 回復于:2003-10-30 16:58:42
|
[quote:8d87f08872="geel"]不錯不錯
php發展的已經快可以跟jsp媲美了[/quote:8d87f08872]
呵呵??! 只不過是表面形式而已!
|
tonera 回復于:2003-10-30 18:10:42
|
個人覺得jsp是航空母艦!
|
geel 回復于:2003-10-31 08:12:29
|
php5.0已經開始支持很多特性了。赫赫。
不過不希望像jsp那樣純面向對象。
看著 i.toString 就別扭,呵呵,雖然代碼寫出來很好看。
簡單而強大應該是php這么風靡的原因吧?
|
原文轉自:http://www.anti-gravitydesign.com
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97
|