Saya mempelajari struktur MVC hari ini dan mendapati bahawa apabila memanggil kaedah dalam kelas dalam kod, kelas mesti dibuat seketika dahulu, dan akhirnya kaedah kelas dipanggil
Contohnya:
$xxxxx = new xxxxx();
$xxxxx->ccc('hello wolrd');
Tetapi tidak bolehkah ia dipanggil terus seperti berikut?
xxxxx::ccc('hello wolrd');
Mengapa ia mesti disegerakan? Apa yang boleh dibawa oleh instantiasi kepada kita? Apakah faedah berbanding dengan memanggilnya secara terus? Minta Allah jelaskan keraguan saya
->
,插入式解引用操作符(infix dereference operator),将对象的引用指向对象,例如对象->对象的方法。::
,作用域解析操作符(Scope Resolution operator),用于调用类的静态成员变量或是类之间的调用。详见博文。
也是说
$xxxxx->ccc('hello wolrd');
为调动类中的普通方法,要先实例化类的实例。xxxxx::ccc('hello wolrd')
Untuk memanggil kaedah statik dalam kelas, ia boleh dipanggil terus tanpa membuat instantiate kelas.Selepas membuat seketika kelas, anda boleh mengakses kaedah dan sifat kelas.
Kaedah statik boleh melengkapkan operasi tanpa kewarganegaraan secara bebas.
Lebih berkaitan kaedah statik dan kaedah instantiated.
OOP idea pengaturcaraan, berikan contoh
Kelebihan menggunakan statik adalah lebih mudah jika ia adalah kelas alat
Poster yang sangat comel dan soalan yang dia tanya pun sangat comel kenapa nak bersusah payah dengan soalan macam ni...
Jelas sekali, kaedah berikut juga boleh dipanggil, kedua-duanya mungkin, tetapi perbezaannya ialah hanya fungsi ahli statik kelas boleh dipanggil dalam kaedah berikut
Mengenai mengapa ia perlu segera, saya rasa penanya tidak 'tidak faham sama sekali. Apa itu kelas?
Saya benar-benar tidak merendah diri, saya tidak boleh memberikan terlalu banyak penjelasan falsafah dan terperinci, saya hanya boleh katakan
Sebab mengapa kami ingin meringkaskan secara abstrak ciri-ciri manusia adalah untuk membolehkan kami mempelajari cara melakukannya dengan lebih baik Contohnya, jika anda seorang doktor, anda boleh merawat setiap individu dengan lebih baik (kuncinya adalah untuk menjadikan Objek). , sudah tentu setiap individu berbeza, anda boleh membaca dokumentasi dan jawapan lain yang lebih terperinci
Terutamanya untuk tujuan berorientasikan objek, anda boleh membuat seketika objek melalui beberapa parameter Anda membuat panggilan statik dan objek itu tidak wujud
Instantiation adalah seperti TV dengan banyak program Sekarang anda ingin menonton TV, anda perlu menghidupkan TV Kemudian anda perlu kata kunci baharu untuk membuat seketika Objek ini supaya kita boleh menonton program TV dan mengendalikan fungsi di dalam TV.
Berbanding dengan panggilan langsung, panggilan instantiasi boleh memberikan akses kepada kaedah di dalam kelas pengubah suai:
awam (awam, lalai)
dilindungi
peribadi
Dan memanggilnya secara terus tidak memerlukan perubahan contoh, ia hanya mudah digunakan.
Andaikan anda mentakrifkan kelas
Car
, maka kelas ini ialah lukisan Anda tidak boleh menjual lukisan, jadi anda perlubaharu
menghasilkan kereta untuk Hanya dengan. jual boleh buka. Kerana anda boleh merujuk lukisan ini untuk menghasilkan banyak kereta.Car
类,那么这个类是一个图纸,你不能拿一个图纸出去卖吧,所以你需要new
生产出一辆车,才能卖,才能开。因为你可以参照这个图纸,生产很多车啊。当然这个
Sudah tentu,Car
可能会有一些静态方法或者属性,这是你不需要生产汽车就可以使用的,比如你要看图纸,那就是Car
的静态方法show
show
. 🎜Jika anda menggunakan kaedah statik, tiada perkara seperti pembina.
Anda perlukan corak singleton