cari

Rumah  >  Soal Jawab  >  teks badan

Masalah pembina kelas PHP

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中文网2820 hari yang lalu582

membalas semua(6)saya akan balas

  • 天蓬老师

    天蓬老师2017-05-16 12:04:46

    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.

    balas
    0
  • 黄舟

    黄舟2017-05-16 12:04:46

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

    2. Masuk Sudah tentu objek juga boleh

    balas
    0
  • 大家讲道理

    大家讲道理2017-05-16 12:04:46

    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

    balas
    0
  • 某草草

    某草草2017-05-16 12:04:46

    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.

    balas
    0
  • 巴扎黑

    巴扎黑2017-05-16 12:04:46

    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

    balas
    0
  • 大家讲道理

    大家讲道理2017-05-16 12:04:46

    Boleh pakai array

    balas
    0
  • Batalbalas