Mengapa core menggunakan print daripada echo?


24

Saya sudah membaca di suatu tempat, dan saya tidak ingat di mana, itu echoadalah cara yang lebih efisien untuk menghasilkan data print.

Mengapa inti Drupal menggunakan printbegitu banyak? Apakah ada alasan khusus di balik itu?


1
Pada sidenote: cetakan akan selalu mengembalikan 1 sebagai nilai, gema tidak akan mengembalikan apa pun. Saya kira itu mungkin berguna dalam beberapa kasus.
Bart

Kasus seperti apa itu?
jayarjo

Saya juga bertanya-tanya! Pertanyaan bagus!
aendrew

Jawaban:


25

echohanya lebih cepat di lingkungan akademik. Perbedaannya sangat marjinal. Tolok ukur cepat yang baru saja saya lakukan: Waktu untuk mengambil satu baris dari sebuah tabel dengan lebih dari 2000 node adalah 1 unit.

Untuk mendapatkan peningkatan 1 unit, saya harus mengganti sekitar 3.700.000 (lebih dari 3 juta) printpernyataan dengan echo. Dengan kata lain, jika Anda menginginkan peningkatan kinerja, ini bukan tempat yang tepat untuk memulai.

Terlihat yang printdapat digunakan dalam berbagai kasus yang jauh lebih luas echo, yang pertama memiliki beberapa kelebihan. Ini memberi Anda tiga pilihan:

  • Selalu gunakan print
  • Gunakan echojika memungkinkan dan mundurprint
  • Gunakan echoselalu dan perbaiki kode Anda jika echotidak dapat digunakan, untuk menggunakannya

Drupal telah gagal pada yang pertama.

Untuk menjawab pertanyaan Anda yang sebenarnya mengapa ini dipilih: Tidak. Itu tumbuh begitu saja.


Bisakah Anda memberikan contoh kapan gema tidak dapat digunakan? Hanya saja saya tidak bisa membayangkan apa pun saat ini.
jayarjo

6
Yang paling jelas adalah if (! print some_method() ) {print some_other_method()}. Sejak cetak mengembalikan TRUE jika itu benar-benar mencetak sesuatu. Echo tidak mengembalikan apa-apa, itu sebabnya lebih cepat juga. Contoh lain yang akan Anda lihat adalah return print $somevaluedi akhir metode untuk mengembalikan status.
berkelanjutan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.