Çekirdek neden yankı yerine baskı kullanıyor?


24

Bir yerlerde okudum ve nerede olduğunu hatırlamıyorum, bunun echodaha sonra veri vermenin daha etkili bir yolu olduğunu print.

Drupal çekirdeği neden bu printkadar çok kullanıyor? Bunun arkasında özel bir sebep var mı?


1
Bir sidenote üzerinde: baskı her zaman değer olarak 1 değerini döndürür, yankı hiçbir şey döndürmez. Bazı durumlarda bu yararlı olabilir sanırım.
Bart,

Ne tür bir dava olabilir?
jayarjo

Ben de merak ettim! İyi soru!
aendrew

Yanıtlar:


25

echosadece akademik ortamlarda daha hızlıdır. Fark çok marjinaldir. Az önce yaptığım hızlı bir değerlendirme: 2000'den fazla düğümü olan bir tablodan bir satır getirme süresi 1 birimdir.

1 birim iyileştirme elde etmek için yaklaşık 3.700.000 (3 milyondan fazla) printifadeyi değiştirmem gerekir echo. Başka bir deyişle, performans iyileştirmeleri istiyorsanız, başlamak için zor bir yer.

O printzaman çok daha geniş bir yelpazede kullanılabilecek görüldüğü için echo, ilk önce bazı avantajlar vardır. Size üç seçenek bırakıyor:

  • Her zaman kullan print
  • echoMümkün olduğunda kullanın ve geri dönüşprint
  • echoHer zaman kullanın ve echokullanılamıyorsa kodunuzu yeniden yazın.

Drupal, ilkinde varsayılan olarak belirledi.

Asıl sorunuzu bunun neden seçildiğine göre yanıtlamak için: Öyle değildi. Sadece bu şekilde büyüdü.


Echo'nun ne zaman kullanılamayacağına dair bir örnek verebilir misiniz? Sadece şu anda hiçbirini hayal edemiyorum.
jayarjo

6
En açık olanı if (! print some_method() ) {print some_other_method()}. Baskı gerçekten bir şey bastırdıysa TRUE döndürür. Echo hiçbir şey döndürmez, bu yüzden de daha hızlı. Göreceğiniz bir başka örnek return print $somevalue, durumu döndürecek bir yöntemin sonunda.
berkes
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.