国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php 的class建構(gòu)子問題
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-05-16 12:02:46
0
6
665
class upload{
   protected $name;
    protected $sex;

 public function __construct($name='默認(rèn)值',$sex='默認(rèn)值'){
     $this->name=$name;
     $this->sex=$sex;
  }
}

為什麼不能這樣寫?

 public function __construct($name,$sex){
     $this->name=$name;
     $this->sex=$sex;
  }

還有我可以這樣寫嗎?如果上面的參數(shù)過多,要寫何年馬月?

public function __construct($opt){
     $this->name=$opt->name;
     $this->sex=$opt->sex;
  }

為什麼必須給建構(gòu)函式加預(yù)設(shè)值,否則會(huì)報(bào)錯(cuò)! ! !寫慣了js,php的建構(gòu)子是在是有點(diǎn)不懂。解釋下必須要給參數(shù)賦默認(rèn)值嗎?


PHP中文網(wǎng)
PHP中文網(wǎng)

認(rèn)證0級(jí)講師

全部回覆(6)
Peter_Zhu

與建構(gòu)子無關(guān)。
只要函數(shù)的參數(shù)沒有給預(yù)設(shè)值,你使用的時(shí)候就必須傳參數(shù)。

要說比js麻煩,這種說法是不太對(duì)的,在js中(ES6之前),給函數(shù)設(shè)定預(yù)設(shè)值就比php要麻煩;這又怎麼說呢?

另外,你說到的第三種,參數(shù)傳一個(gè)對(duì)象,或者是數(shù)組,這種做法是可以的;當(dāng)然賦值的時(shí)候可以用循環(huán)而不必一個(gè)一個(gè)寫。

黃舟

1.可以不給預(yù)設(shè)值,你這裡報(bào)錯(cuò)應(yīng)該是因?yàn)槟愕牡谝粋€(gè)參數(shù)給了預(yù)設(shè)值,有預(yù)設(shè)值的參數(shù)應(yīng)該都放在後方,語法規(guī)定.(詳細(xì)參看文件)
2.傳入對(duì)象當(dāng)然也是可以的

大家講道理

這跟建構(gòu)子無關(guān)
你在定義函數(shù)的時(shí)候不傳參就報(bào)錯(cuò)

function a($name,$age = 1)
{
}

$name必傳,$age不用。 $name必傳,$age不用。
至于為什么,PHP語法規(guī)定至於為什麼,PHP語法規(guī)定


PHP語法不報(bào)錯(cuò),你運(yùn)行一下試試,PHP報(bào)錯(cuò)的話,把錯(cuò)誤訊息貼出來

某草草

PHP函數(shù)如果明確指定,參數(shù)沒有給預(yù)設(shè)值,呼叫的時(shí)候都必須傳參數(shù)。如果有預(yù)設(shè)值,在呼叫的時(shí)候可不給傳參,讀取預(yù)設(shè)值。

如果你感顯式傳參麻煩,可以使用func_get_args()函式讀取參數(shù)。

PHP5.6以後也可以使用 function A(...$args)形式讀取參數(shù)。

巴扎黑

建構(gòu)函式就是你new 一個(gè)物件的時(shí)候 預(yù)設(shè)呼叫的函式

函數(shù)的參數(shù) 如果沒有預(yù)設(shè)值 必傳 這是語法規(guī)定

所有的函數(shù)都是這樣 再多參數(shù)你也要一個(gè)個(gè)傳

我所知道的所有的語言 都是這麼規(guī)定的

大家講道理

可以穿一個(gè)陣列咩

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板