Masalah pembina kelas PHP
PHP中文网
PHP中文网 2017-05-16 12:02:46
0
6
579
class upload{
   protected $name;
    protected $sex;

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

Mengapa ia tidak boleh ditulis seperti ini?

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

Bolehkah saya juga menulis seperti ini? Sekiranya terdapat terlalu banyak parameter di atas, tahun, kuda dan bulan apakah yang perlu ditulis?

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

Mengapa anda mesti menambah nilai lalai pada pembina, jika tidak, ralat akan dilaporkan! ! ! Saya sudah biasa menulis js, jadi saya tidak faham sedikit pembina php. Terangkan, adakah perlu untuk menetapkan nilai lalai kepada parameter?


PHP中文网
PHP中文网

认证0级讲师

membalas semua(6)
Peter_Zhu

Tiada kaitan dengan pembina.
Selagi parameter fungsi tidak diberikan nilai lalai, anda mesti lulus parameter apabila menggunakannya.

Tidak betul untuk mengatakan bahawa ia lebih menyusahkan daripada js Dalam js (sebelum ES6), menetapkan nilai lalai untuk fungsi adalah lebih menyusahkan daripada php;

Selain itu, kaedah ketiga yang anda nyatakan ialah menghantar objek atau tatasusunan sebagai parameter Pendekatan ini sudah tentu, anda boleh menggunakan gelung apabila menetapkan nilai dan bukannya menulisnya satu demi satu.

黄舟

Anda tidak perlu memberikan nilai lalai peraturan. (Untuk perincian, sila rujuk dokumen)

2. Masuk Sudah tentu objek juga boleh

大家讲道理

Ini tiada kaitan dengan pembina
Jika anda tidak lulus parameter semasa mentakrifkan fungsi, ralat akan dilaporkan

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

$name mesti diluluskan, $age tidak diperlukan. $name必传,$age不用。
至于为什么,PHP语法规定Mengenai sebabnya, peraturan sintaks PHP


Sintaks PHP tidak melaporkan ralat Cuba jalankan jika PHP melaporkan ralat, siarkan mesej ralat

某草草

Jika fungsi PHP dinyatakan secara eksplisit dan parameter tidak diberikan nilai lalai, parameter mesti diluluskan semasa membuat panggilan. Jika terdapat nilai lalai, anda boleh membaca nilai lalai tanpa menghantar parameter semasa memanggil.

Jika anda mendapati sukar untuk menghantar parameter secara eksplisit, anda boleh menggunakan fungsi func_get_args() untuk membaca parameter.

Selepas PHP5.6, anda juga boleh menggunakan borang fungsi A(...$args) untuk membaca parameter.

巴扎黑

Pembina ialah fungsi yang dipanggil secara lalai apabila anda mencipta objek baharu

Parameter fungsi mesti diluluskan jika tiada nilai lalai Ini adalah peraturan tatabahasa

Semua fungsi adalah seperti ini Tidak kira berapa banyak parameter yang anda ada, anda perlu lulus satu demi satu

Semua bahasa yang saya tahu mempunyai peraturan ini

大家讲道理

Boleh pakai array

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan