صندوق التنبيهات أو للإعلان

استخدم دالة printf في لغة الـ PHP لطباعة النصوص بطريقة ديناميكية

تعليق واحد4:22 ص, مرسلة بواسطة Smart
بسم الله الرحمن الرحيم
والصلاة والسلام علي اشرف المرسلين سيدنا محمد اما بعد

في لغة البي اتش بي توجد عدة طرق لعرض مانريد في المتصفح فقد نستخدم الدالة echo او الدالة print ولكن ما سنتحدث عنه اليوم هو استخدام الدالة printf لعرض ما نريد بطريقة سهلة واكثر تحكم .

فائدتها وكيفية استخدامها :

نوع الدالة : string function

توافق الدالة : PHP 4, PHP 5

فائدة الدالة : تقوم بطباعة الجمل والعبارات في بي اتش بي مثل echo و print ولكن الفرق هنا انها افضل بكثير اذا كنت تريد كتابة جمل وعبارات ممزوجة مع متغيرات او دوال او ان صح التعبير فأن printf تستخدم اذا اردت دمج عبارات ثابته مع متغيرات ديناميكية (كالمتغييرات والدوال )

اهم فائدة لتلك الدالة انها تجعلك تستطيع الفصل التام بين العبارات الثابتة والديناميكية وانها تعطيك قدر كبير جدا من التحكم في التطبيق الذي تقوم به فتستطيع بكل سهولة التحكم في المتغييرات الخاصة بك وتحويلها من integer الي float او حتي string اذا اردت بكل سهولة كما يمكنك تحويل النظام الرقمي الي binary او hexa-decimal او octal بالاضافة الي متحكمات كثيرة جدا فيمكنك مثلا تحديد عدد الارقام التي تريد اظهارها بعد العلامة العشرية اذا كان الرقم float (غير صحيح) وسنري في الامثلة كيف يتم ذلك.

شكل الدالة وما تاخذه من مدخلات :


int printf ( string $format [, mixed $args [, mixed $... ]] )

الان ناخذ بعض الامثلة التوضيحية علي كيفية استخدام تلك الدالة:




المثال الاول :



printf("welcome to %s",php);
//outpot : welcome to php


وسيكون الناتج كما هو واضح في التعليق :

welcome to php

حيث كما هو واضح كتبنا الجملة التي نريدها وهي welcome to ثم دمجنا معها قيمة الـ %s والتي حددناها بـ php
نلاحظ ان %s خاصة باخراج الـ strings

يوجد ايضا اكثر من معرف يمكننا استخدام للتحكم في المتغيير الذي تم كتابته مثلا :

%% : يقوم باظهار العلامة المئوية
%b – يظهر رقم ثنائي
%c – ASCII خاصة بكود الـ
%d – يظهر رقم عشري صحيح
%o – يظهر الرقم بنظام الاوكتال اي النظام الثماني
%s - string يظهر
%x – يظهر الرقم السدس عشري المقابل للرقم الذي تم وضعه
%X – نفس الشيء لكن بالحروف الكبيرة

طبعا الامثلة توضح اكثر :

$str = "ahmed";
$intg = 5;
printf("hello %s . the number is %d",$str,$intg);

وسيكون الناتج بالمتصفح :
hello ahmed . the number is 5

مثال اخر يوضح تحويل رقم صحيح الي رقم ثنائي :

$intg = 432;
printf("the binary number of the decimal number %d is %b",$intg,$intg);

وسيكون الناتج :

the binary number of the decimal number 432 is 110110000

نلاحظ شيء هام جدا انه نحن عندما نحدد نوع المتغير الذي نستخدمه فان البي اتش بي سترجع هذا النوع وان كنت انت واضع نوع اخر بمعني
اذا قمنا نحن بعمل متغير
$num = 33;

ثم احضرنا بالمحدد %f وهو خاص باحضار الاعداد الغير صحيحة التي تحتوي علي كسور فان الـ printf سترجع float كما سنري بالمثال :

$intg = 33;
printf("see the result of %f",$intg);

وسيكون الناتج :
see the result of 33.000000

نلاحظ هنا ان الـ %f قامت بارجاع عدد float ونري انها تظهر 6 ارقام بعد العلامة العشرية ولكن يتوفر لدينا الخيار لتحديد كم رقم نريد بالضبط بعد العلامة العشرية فاذا اردنا اظهار رقمين نقوم بكتابتها هكذا
%.2f
واذا اردنا ثلاثة ارقام نكتب :
%.3f
وهكذا تسير الامور .

توجد محددات كثيرة جدا سواء لتحديد كم عدد الارقام التي نريدها بعد العلامة في الاعداد الغير صحيحة او غير ذلك الكثير هذة كانت مقدمة بسيطة
في النهاية سنضع مثال بسيط جدا لالة حاسبة تقوم بالعمليات الاساسية كالجمع والطرح والضرب والقسمة واحضار باقي القسمة للاعداد الصحيحة والثنائية والثمانية والسدس عشرية معتمدين اعتماد كلي علي الـ printf وطبعا المثال قابل للتعديل وقمت بوضعه فقط لاظهار خصائص الـ printf
المثال :

class calculator{
public $num1;
public $num2;
public $operator;
public $result;
function values($n1,$n2){
$this->num1 = $n1;
$this->num2 = $n2;
}
function operator($op){
$this->operator = $op;
}
function calc(){
switch ($this->operator)
{
case '+':
$this->result = $this->num1 + $this->num2;
printf("the add result of %.2f + %.2f is
in float %.2f
in integer %d
in binary %b
in octal %o
in hexa %x",$this->num1,$this->num2,$this->result,$this->result,$this->result,$this->result,$this->result);
break;
case '-':
$this->result = $this->num1 - $this->num2;
printf("the substract result of %.2f - %.2f is
in float %.2f
in integer %d
in binary %b
in octal %o
in hexa %x",$this->num1,$this->num2,$this->result,$this->result,$this->result,$this->result,$this->result);
break;
case '*':
$this->result = $this->num1 * $this->num2;
printf("the multiplication result of %.2f * %.2f is
in float %.2f
in integer %d
in binary %b
in octal %o
in hexa %x",$this->num1,$this->num2,$this->result,$this->result,$this->result,$this->result,$this->result);
break;
case '/':
$this->result = $this->num1 / $this->num2;
if ($this->num2 == 0) echo "error!! divided by zero";
else printf("the divide result of %.2f / %.2f is
in float %.2f
in integer %d
in binary %b
in octal %o
in hexa %x",$this->num1,$this->num2,$this->result,$this->result,$this->result,$this->result,$this->result);
break;
}
}
}
$simple = new calculator();
$simple->values(500,232);
$simple->operator('*');
$simple->calc();


للمزيد من المعلومات : PHP: printf - Manual
ارجو تكونوا استفدتو وشكرا

تعديل الرسالة…

تعليق واحد على { استخدم دالة printf في لغة الـ PHP لطباعة النصوص بطريقة ديناميكية }

خالد - مطور مواقع يقول...
5 أغسطس 2010 في 4:45 ص [حذف]

درس رائع ماشاء الله فعلا

هل تريد التعليق على التدوينة ؟