Ne zaman ve ne zaman kullanmamalısınız wp_list_pluck ()?


10

Meta veri tembel yüklemeyi öğrenirken, şu kod satırlarıyla tanıştım :

// Don't use `wp_list_pluck()` to avoid by-reference manipulation.
$comment_ids = array();
if ( is_array( $comments ) ) {
    foreach ( $comments as $comment ) {
        if ( $comment instanceof WP_Comment ) {
            $comment_ids[] = $comment->comment_ID;
        }
    }
} 

Bu konuyla ilgili olduğunu düşündüm ama burada referans yok ve tek foreachdöngü bir fonksiyonun içine sarılmış, bu durumda nasıl referans manipülasyonu olabilir?

Ve en iyi uygulama için wp_list_pluck()işlevi ne zaman kullanmalıyız ?


Ben seninleyim, fwiw. İşlev kaynağına, codex ve dev belgelerine baktım ve bu yorumun ne anlama geldiğini göremiyorum.
Andy Macaulay-Brook

Yanıtlar:


3

Herhangi bir foreachdöngüde, döngüdeki dizinin son değeri foreachdöngü sona erdikten sonra kalır . Bu yüzden foreachdöngü bittikten sonra bu değer her zaman ayarlanmamalıdır .

wp_list_pluck()ayrıca geçilmezse sadece temel bir foreachdöngüdür $index_key. Ayrıca, herhangi bir foreachdöngüde olduğu gibi , dizinin son değeri foreachdöngü sona erdikten sonra kalır ve bu satırın kodeksinde neyi ifade ettiğini düşünüyorum.

Ancak, bu varsayım yanlıştır. Fonksiyonlar bağımsız kod parçalarıdır ve globaller dışında bir fonksiyonun içindeki bu kod parçaları sadece fonksiyonun kendisi tarafından kullanılabilir. wp_list_pluck()intenal değerlerinden ( değişkenler ) hiçbirini globalleştirmez , bu nedenle dizinin son değeri foreachişlevin içindeki döngüden sonra da kullanılabilir olsa ve ayarlanamazsa , işlev dışındaki herhangi bir kod parçası için kullanılamaz, Bu nedenle, kodeksinde bu satırda açıklandığı gibi, başvuru yoluyla geçme sorununa sahip olamazsınız.

wp_list_pluck()herhangi bir basit foreachdöngü kadar geçerli . Seçim size kalmış. Şahsen ben wp_list_pluck()kod tasarrufu kaydeder tercih ve daha sonra kabus hata ayıklama yol açabilir değişkenleri unutma hatırlamak gerekmez.

Sadece son bir not, işleve geçirilirse aynı şekilde çalıştığından wp_list_pluck()da değiştirilebilirarray_column$index_key


Ayarı sıfırla veya sıfırla?
fuxia

@toscho AFAIK ve öğrendiğim kadarıyla, unset( $value )bir sonraki foreachdöngü, wp_reset_postdata()kullandığınız takdirde setup_postdata( $post )bir de foreachdöngü ve reset() bir dizideki ilk öğeye iç işaretçi geri ayarlar. Eğer yanılıyorsam, ya da eklemek için başka bir şey ya da farklı bir şey varsa, bunu bir cevapta yapmalısınız ki hepimiz bundan faydalanalım. IMHO, bu, topluluğun çoğunun yararlanabileceği bir soru ve eğer yanılıyorsam, beni düzeltin ve uygun bir cevap gönderin
Pieter Goosen
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.