PDA

View Full Version : دریافت 4 خروجی از تابع حروف و اعداد رندوم



karbar98
جمعه 31 خرداد 1392, 14:53 عصر
سلام دوستان
تابعی که در زیر گذاشته ام فقط یک خروجی به من می دهد اما من احتیاج دارم 4 خروجی کاملا متفاوت از آن دریافت کنم ایا راهی برای اینکار وجود دارد ؟




function rand_str($size)
{
$feed = "0123456789abcdefghijklmnopqrstuvwxyz";
for ($i=0; $i < $size; $i++)
{
$rand_str .= substr($feed, rand(0, strlen($feed)-1), 1);
}
return $rand_str;
}

$folder_rand = rand_str(40);

MMSHFE
جمعه 31 خرداد 1392, 15:41 عصر
باید از پارامترهای ارجاعی استفاده کنید چون با return بیش از یک خروجی نمیشه داشته باشین. مثال:


function rand_str($size, &$output1, &$output2, &$output3, &$output4) {
$feed = '0123456789abcdefghijklmnopqrstuvwxyz';
$output1 = '';
$output2 = '';
$output3 = '';
$output4 = '';
for ($i = 0; $i < $size; $i++) {
$output1 .= substr($feed, rand(0, strlen($feed) - 1), 1);
$output2 .= substr($feed, rand(0, strlen($feed) - 1), 1);
$output3 .= substr($feed, rand(0, strlen($feed) - 1), 1);
$output4 .= substr($feed, rand(0, strlen($feed) - 1), 1);
}
}
rand_str(40, $o1, $o2, $o3, $o4);

qartalonline
جمعه 31 خرداد 1392, 19:00 عصر
میتونید خروجی رو بصورت آرایه داشته باشید.

karbar98
شنبه 01 تیر 1392, 14:52 عصر
بسیار ممنون از دوستان
با کد جناب آقای شهرکی کارم راه افتاد

Nima0711
شنبه 01 تیر 1392, 16:22 عصر
میتونید خروجی رو بصورت آرایه داشته باشید.


این روش بهتری می باشد نسبت به پاس دادن پوینتر به تابع

MMSHFE
یک شنبه 02 تیر 1392, 08:16 صبح
این روش بهتری می باشد نسبت به پاس دادن پوینتر به تابع
میشه دلیلتون رو بگین؟ متغیرهای ارجاعی یکی از نقاط قوت زبان PHP هستن که خیلی جاها بدرد میخورن. یک مورد کاربردشون همین پارامترهای ارجاعی هست. دوست دارم دلیل اینکه میگین بازگشت یک آرایه بهتر از متغیرهای ارجاعیه رو بدونم چون ساخت آرایه، Overheadهایی مثل حافظه بیشتر برای نگهداری اطلاعات آرایه و کد طولانیتر برای دسترسی به عناصر و... رو داره.