🔥یلدا با راکت با (( ۷۰ درصد )) تخفیف! یلدا طولانی است، اما این تخفیف نه.
مشاهده دورههاسلام من چهار تابع دارم با چهار اسم مختلف
میخام اسم تابع رو توی یک متغیر ذخیره کنم و با اون متغیر اون تابع رو فراخونی کنم- آیا این کار شدنیه ؟
البته میدونم که میتونم با switchCase این عمل رو شبیه سازی کنم اما خواستم بپرسم پیشرفتهتر و داینامیک تر هم میشه این کار رو کرد؟
$functionName="functionOne";// functionTwo , functionThree , functionFour
$functionName();
بله شدنی هست.. میتونید استفاده کنید
یک نمونه اش هم کد زیر:
<?php
function myFunction(){
echo "Hello World";
}
$call = 'myFunction';
$call();
?>
سلام به مثالهای زیر از سایت php.net توجه بفرمایید :
https://www.php.net/manual/en/functions.variable-functions.php
<?php
function foo() {
echo "In foo()<br />\n";
}
function bar($arg = '')
{
echo "In bar(); argument was '$arg'.<br />\n";
}
// This is a wrapper function around echo
function echoit($string)
{
echo $string;
}
$func = 'foo';
$func(); // This calls foo()
$func = 'bar';
$func('test'); // This calls bar()
$func = 'echoit';
$func('test'); // This calls echoit()
?>
اگر داخل کلاس می خواهید این کار رو انجام بدید ، میتونید از Magic Function __call استفاده کنید. یه راه دیگر هم داخل کلاس ها اینه که متدها رو تعریف کرده باشید و بعد برای فراخوانی به صورت زیر عمل کنید ( در حالت کلاس و تابع غیر استاتیک مثلا ):
public function invoke($functionName, $inputs)
{
try {
return $this->{$functionName}($inputs);
}catch (\Exception $exception) {
throw $exception;
}
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟