এক্সট্রাক্ট (শর্টকোড_্যাটস (অ্যারে (করণীয় কী করে?


28

কোডেক্স বলেছেন

shortcode_atts()ব্যবহারকারীর শর্টকোড বৈশিষ্ট্যগুলিকে পরিচিত বৈশিষ্ট্যগুলির সাথে একত্রিত করে এবং প্রয়োজনে ডিফল্টগুলিতে পূরণ করে। ফলাফলটিতে শর্টকোড বৈশিষ্ট্যগুলির মানগুলির সাথে একত্রীভূত জ্ঞাত বৈশিষ্ট্যগুলি থেকে প্রতিটি কী থাকবে।

এটি আমার কাছে খুব একটা বোঝায় না (আমি একজন নবাগত)।

এখানে একটি উদাহরণ:

function wps_trend($atts) {
extract( shortcode_atts( array(
'w' => '500', 
'h' => '330',
'q' => '',
'geo' => 'US',
), $atts));
$h = (int) $h;
$w = (int) $w;
$q = esc_attr($geo);
ob_start();  

আপনি কি ব্যাখ্যা করতে পারেন?

উত্তর:


35

shortcode_atts()এর মতো কাজ করে array_merge(): এটি আর্গুমেন্টের দ্বিতীয় তালিকাকে প্রথমটিতে একীভূত করে। পার্থক্যটি হ'ল: এটি প্রথম আর্গুমেন্টে উপস্থিত কীগুলি একত্রিত করে ( $default)।

extract()তারপরে অ্যারে কীগুলি নেয়, এগুলি ভেরিয়েবলের নাম এবং তাদের মানগুলিকে ভেরিয়েবল মান হিসাবে সেট করে। 'w' => '500'আপনার উদাহরণ হয়ে যায় $w = '500'

ব্যবহার করবেন না extract()। এই খুব খারাপ কোড শৈলী। এমনকি এটির ব্যবহারের মূল অবমূল্যও ছিল , এবং এর অর্থ কিছু ... :)

আপনার উদাহরণটি এই হিসাবে লেখা উচিত:

$args = shortcode_atts( 
    array(
        'w'   => '500',
        'h'   => '330',
        'q'   => '',
        'geo' => 'US',
    ), 
    $atts
);
$w = (int) $args['w'];
$h = (int) $args['h'];
$q = esc_attr( $args['q'] );

1
ধন্যবাদ. আমি জানতাম না extract, তাই এর জন্যও ধন্যবাদ!
mattnewbie

5
extract()ডাব্লুপি কোডিং মান দ্বারা নিরুৎসাহিত হয়। Make.wordpress.org/core/handbook/best-practices/…
17'9

সতর্কবাণী! ব্যবহারকারীর ইনপুট এর মতো অবিশ্বস্ত ডেটাতে এক্সট্রাক্ট () ব্যবহার করবেন না। অনিরাপদ এবং আপনি প্রচুর দ্বন্দ্ব তৈরি করতে পারেন এবং আপনার আগে যা কিছু কোড রয়েছে সেগুলিও ওভাররাইট করতে পারেন। এটি কেবল কোডের এমন কিছু রিয়েল, রিয়েলি, রিয়েলি সুরক্ষিত অংশে ব্যবহার করা যেতে পারে যেখানে আপনি কী আশা করবেন এবং আপনার কী প্রয়োজন তা জানতে পারবেন।
আইভিজন স্টিফান স্টিপিয়ি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.