কখন এবং কখন আপনার উচিত নয়, wp_list_pluck () ব্যবহার করবেন?


10

মেটাডেটা অলস-লোডিংয়ের বিষয়ে শিখতে গিয়ে আমি কোডের এই লাইনগুলি পেয়েছি :

// 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;
        }
    }
} 

আমি ভেবেছিলাম এটি এই বিষয়ের সাথে সম্পর্কিত তবে এখানে কোনও রেফারেন্স নেই এবং একমাত্র foreachলুপটি কোনও ফাংশনের অভ্যন্তরে আবৃত হয়, কীভাবে বাই-রেফারেন্স ম্যানিপুলেশন এই ক্ষেত্রে ঘটতে পারে?

এবং, সর্বোত্তম অনুশীলনের জন্য, আমাদের কখন wp_list_pluck()ফাংশন ব্যবহার করা উচিত ?


আমি তোমার সাথে আছি আমি ফাংশন উত্স, কোডেক্স এবং ডেভ ডক্স দেখেছি এবং মন্তব্যটি কী বোঝায় তা দেখতে পাচ্ছি না।
অ্যান্ডি ম্যাকোলে-ব্রুক 21

উত্তর:


3

যে কোনও foreachলুপে, অ্যারের শেষ মানটি লুপ হয়ে যাওয়ার পরে foreachলুপটি শেষ হয়ে যায় । এজন্য foreachলুপটি শেষ হওয়ার পরে কারও কাছে সর্বদা সেই মানটি আনসেট করা উচিত।

wp_list_pluck()পাস না করা foreachহলে $index_keyএটি কেবল একটি বেসিক লুপ op এছাড়াও, যে কোনও foreachলুপের মতো, অ্যারের শেষ মানটি foreachলুপ শেষ হওয়ার পরে থেকে যায় এবং আমি মনে করি এটি কোডেক্সে এই লাইনটিকে বোঝায়।

তবে, এই অনুমানটি ভুল is ফাংশনগুলি স্বয়ংক্রিয়ভাবে কোডের টুকরোগুলি থাকে এবং গ্লোবালগুলি ব্যতীত কোনও ফাংশনের অভ্যন্তরে এই কোডগুলির এই টুকরা কেবল ফাংশনটিতেই উপলব্ধ। wp_list_pluck()এর কোনও ইচ্ছাকৃত মান ( ভেরিয়েবল ) বিশ্বায়ন করে না , সুতরাং যদি অ্যারের শেষ মানটি foreachফাংশনের অভ্যন্তরে লুপের পরেও উপলব্ধ থাকে এবং সেটটি না পেয়ে থাকে তবে এটি কার্যের বাইরে কোনও কোডের টুকরোতে উপলব্ধ নয়, সুতরাং আপনার কোডেক্সের সেই লাইনে বর্ণিত পাস-বাই-রেফারেন্স সমস্যা থাকতে পারে না।

wp_list_pluck()যে কোনও সাধারণ foreachলুপ হিসাবে ব্যবহার করার মতো বৈধ । পছন্দ আপনার। wp_list_pluck()কোডে সংরক্ষণ করার সাথে সাথে আমি ব্যক্তিগতভাবে পছন্দ করি এবং আপনার ভেরিয়েবলগুলি আনসেট করার দরকার নেই যা পরবর্তীকালে ডিবাগিং দুঃস্বপ্নের দিকে নিয়ে যেতে পারে।

কেবলমাত্র একটি চূড়ান্ত নোট, ফাংশনে পাস করা হলে এটি একইরূপে যেমন কাজ করে তেমন wp_list_pluck()প্রতিস্থাপন করতে পারেarray_column$index_key


আনসেট না রিসেট?
ফুসিয়া

@ টসচো এএফাইক এবং আমি যা শিখেছি তা থেকে, unset( $value )একটি foreachলুপের পরে , wp_reset_postdata()যদি আপনি setup_postdata( $post )কোনও foreachলুপ ব্যবহার করেন এবং reset() অভ্যন্তরীণ পয়েন্টারটিকে অ্যারেতে প্রথম আইটেমে সেট করেন। যদি আমি ভুল হয়ে থাকি, বা আপনার কাছে যুক্ত করার মতো অন্য কিছু বা আলাদা থাকে তবে আপনার উত্তরে এমনটি করা উচিত যাতে আমরা সকলে সেখান থেকে উপকৃত হব। আইএমএইচও, এটি এমন একটি প্রশ্ন যা সম্প্রদায়ের বেশিরভাগ লোকেরা উপকৃত হতে পারে এবং যদি আমি ভুল হয়ে থাকি তবে আমাকে সংশোধন করে একটি যথাযথ উত্তর পোস্ট করুন
পিটার গুজন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.