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?
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
$name
mesti diluluskan,$age
tidak diperlukan.$name
必传,$age
不用。至于为什么,
PHP语法规定
Mengenai sebabnya,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 iniBoleh pakai array