کمک printf

o0LTIMAT0Ro

New Member
سلام
از دوستان کسی میتونه کمک کنه این کد رو برای من توضیح بده
PHP:
<?php
$heading1 = "Label 1";
$heading2 = "Label 2";

$value1 = "31298";
$value2 = "98";

print "<pre>\n";
printf ("%'.-15.15s%'.6.6s\n", $heading1, $value1);
printf ("%'.-15.15s%'.6.6s\n", $heading2, $value2);
print "</pre>\n";
?>

 

amir_red

Member
سلام.

همونطور كه از نمايش تست اين كد پيداست كار اين تايع اينه كه يه فهرست ايجاد مي كنه. فهرستي مثل فهرست صفحات كتاب و ميشه گفت يه نوع دسته بندي مثل همين دسته بندي فهرست مطالب يك كتاب ايجاد مي كنه.

به اين صورت كه $heading ها مثل عنوان صفحه در فهرست مطالب كتاب عمل مي كنند و $value ها به عنوان شماره ي صفحه.

با استفاده از اون دو مقدار 15 و 6 ترتيب ميشه تعداد كل كاراكتر ها و حداكثر تعداد كاراكترهاي شماره صفحه رو انتخاب كرد
 

peyman1987

Member
تابع printf همون کاری رو میکنه که تابع print میکنه فقط سینتکسشون فرق میکنه. printf یه فرمت میگیره و بعد متغیرهایی که توی اون فرمت ازشون استفاده شده رو میگیره و توی فرمت جایگزین میکنه و چاپ میکنه. مثلا این دو خط یه مقدار رو برمیگردونن.

PHP:
$temp = 'Peyman';
print("Hello, $temp"); //-> Hello, Peyman
printf('Hello, %s',$temp); //-> Hello, Peyman

توی خط سوم کد بالا s% با مقدار متغیر temp$ جایگزین میشه.

اطلاعات بیشتر هم اینجا هست:
http://ir.php.net/printf
http://ir.php.net/manual/en/function.sprintf.php
 

k2-4u

Well-Known Member
سلام دوست عزیز
پیمان جان جسارت نباشه ولی تابع printf خیلی با print فرق میکنه
این تابع . چند آرگومان میگیره و کار های زیادی از جمله گرد گردن عدد . های اعشار و ... اینجام میده
معمولا کتاب های آموزش php
6/7 صفحه رو به این تابع اختصاص میدن
http://ir.php.net/printf
 

peyman1987

Member
سلام دوست عزیز
پیمان جان جسارت نباشه ولی تابع printf خیلی با print فرق میکنه
این تابع . چند آرگومان میگیره و کار های زیادی از جمله گرد گردن عدد . های اعشار و ... اینجام میده
معمولا کتاب های آموزش php
6/7 صفحه رو به این تابع اختصاص میدن
http://ir.php.net/printf

شما دقیقا درست میگین منم منظورم این بود که هر دو کارشون چاپ کردن مقدار هست ولی هر کدوم یه جور این کار رو انجام میدن و پارامترهای متفاوت دارن.
 

o0LTIMAT0Ro

New Member
1-اگه قبل از فانکشنی & قرار بگیره چه فرقی میکنه با وقتی نداشته باشه
2-عملگرهای >> & << چی کار میکنن
3-چطور 9^12 میشه 5 ؟
 

peyman1987

Member
1-اگه قبل از فانکشنی & قرار بگیره چه فرقی میکنه با وقتی نداشته باشه
2-عملگرهای >> & << چی کار میکنن
3-چطور 9^12 میشه 5 ؟

1- اگر قبل از یه متغیر & باشه یعنی اون متغیر بصورت By Reference پاس میشه به یه تابع. یعنی آدرس اون متغیر توی حافظه فرستاده میشه و مقدارش فرستاده نمیشه. اینجوری اگر مقدار اون متغیر داخل تابع تغییر کنه متغیر بیرونی هم مقدارش عوض میشه. تو حالت عادی مقدار داخل متغیر کپی میشه توی پارامتر و با تغییرش مقدار متغیر اول تغییر نمیکنه.

2- اینا عملگرهای بیتی برای شیفت هستن یعنی >> مقدار متغیر رو یک بیت به چپ شیفت میده و << مقدار متغیر رو یک بیت به سمت راست شیفت میده. با یک شیفت به چپ مقدار متغیر ضرب در 2 میشه و با شیفت به راست تقسیم بر دو میشه.

3- این معادل XOR میشه یعنی تک تک بیتهای دو مقدار با هم XOR میشن مثلا توی اون مثالی که شما زدی میشه:

کد:
12 ^ 9 = 1100 ^ 1001 = 0101 = 5
 

o0LTIMAT0Ro

New Member
سلام مرسی:rose:
1-من گفته بودم قبل از فانکشن.نه متغیر.فانکشن هم همین طوریه؟
2-راستش دومی رو اصلا نفهمیدم چی گفتی:shock:
3-1100-1001=0101=5
اینها رو از کجا آوردی؟؟؟:green:
 

peyman1987

Member
سلام مرسی:rose:
1-من گفته بودم قبل از فانکشن.نه متغیر.فانکشن هم همین طوریه؟
2-راستش دومی رو اصلا نفهمیدم چی گفتی:shock:
3-1100-1001=0101=5
اینها رو از کجا آوردی؟؟؟:green:

خوب فکر نمیکنم اینا اصلا لازم بشه توی کد نویسی و توضیح دادنش هم چون مربوط به مباحث سخت افزار و زبان ماشین میشه زیاد ربطی به این انجمن نداره ولی خوب دیگه:

1- قبل از فانکشن ندیدم این علامت گذاشته بشه اگر کد نمونه داری بزار
2- شیفت به چپ یعنی عدد رو به مبنای دو ببر بعد اولین بیت از سمت چپ رو حذف کن و یه صفر به سمت راستش اضافه کن که گفتم به زبان ساده شیفت به چپ یعنی عدد ضرب در 2. مثلا:

کد:
5 << 3 = 5 * 2 * 2 * 2 = 40

3- 1001 میشه مبنای دوی عدد 9 و 1100 هم میشه مبنای دوی عدد 12.
 

جدیدترین ارسال ها

بالا