যেমনটি উল্লেখ করা হয়েছে , পিএইচপি 5.6+ হিসাবে আপনি আর্গুমেন্টের অ্যারে সহ কোনও ফাংশন সহজেই কল করতে ...
টোকেন (ওরফে "স্প্ল্যাট অপারেটর", বৈকল্পিক ফাংশন কার্যকারিতার অংশ ) ব্যবহার করতে পারেন:
<?php
function variadic($arg1, $arg2)
{
// Do stuff
echo $arg1.' '.$arg2;
}
$array = ['Hello', 'World'];
// 'Splat' the $array in the function call
variadic(...$array);
// 'Hello World'
দ্রষ্টব্য: অ্যারে আইটেমগুলি তাদের কীগুলি নয়, অ্যারেতে অবস্থান অনুসারে আর্গুমেন্টগুলিতে ম্যাপ করা হয় ।
অনুযায়ী CarlosCarucce এর মন্তব্য , যুক্তি আন-প্যাক এই ধরনের পর্যন্ত দ্রুততম পদ্ধতি সব ক্ষেত্রে। কিছু তুলনায় এটি 5x এরও বেশি দ্রুত call_user_func_array
।
সরাইয়া
কারণ আমি মনে করি এটি সত্যই দরকারী (যদিও প্রশ্নের সাথে সরাসরি সম্পর্কিত নয়): পাস করা মানগুলি একটি নির্দিষ্ট ধরণের সাথে মেলে কিনা তা নিশ্চিত করতে আপনি আপনার ফাংশন সংজ্ঞায় স্প্লট অপারেটর প্যারামিটারটি টাইপ-ইঙ্গিত দিতে পারেন।
(কেবল মনে রাখবেন এটি করার ফলে এটি আপনাকে নির্ধারণ করা শেষ প্যারামিটার হতে হবে এবং এটি ফাংশনে পাস হওয়া সমস্ত প্যারামিটারকে অ্যারেতে স্থান করে দেবে))
অ্যারেটিতে একটি নির্দিষ্ট ধরণের আইটেম রয়েছে তা নিশ্চিত করার জন্য এটি দুর্দান্ত:
<?php
// Define the function...
function variadic($var, SomeClass ...$items)
{
// $items will be an array of objects of type `SomeClass`
}
// Then you can call...
variadic('Hello', new SomeClass, new SomeClass);
// or even splat both ways
$items = [
new SomeClass,
new SomeClass,
];
variadic('Hello', ...$items);