سؤال

ممكن مكررة:
المرجع:مقارنة PHP الطباعة و صدى

هل هناك أي رئيسية و الفرق الأساسي بين هاتين الوظيفتين في PHP?

هل كانت مفيدة؟

المحلول

من:http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40

  1. السرعة.هناك فرق بين الاثنين ، ولكن السرعة-الحكمة يجب أن تكون ذات صلة إلى أي واحد يمكنك استخدام.صدى هامشيا أسرع لأنه لا قيمة الإرجاع إذا كنت تريد حقا للحصول على وصولا الى لب الموضوع.

  2. التعبير. print() يتصرف مثل وظيفة في التي يمكنك القيام بها:$ret = print "Hello World"$ret سوف يكون 1.وهذا يعني أن طباعة يمكن استخدامها كجزء من أكثر تعقيدا التعبير حيث صدى لا.وهو على سبيل المثال من PHP دليل:

$b ? print "true" : print "false";

الطباعة هو أيضا جزء من الأسبقية الجدول الذي ينبغي أن يكون إذا كان في مجمع التعبير.هو فقط في الجزء السفلي من الأسبقية قائمة على الرغم من.فقط "" ، و ، أو و XOR أقل.

  1. المعلمة(s).النحوي هو: echo expression [, expression[, expression] ... ] ولكن echo ( expression, expression ) غير صالح.هذا من شأنه أن تكون صحيحة: echo ("howdy"),("partner");نفس: echo "howdy","partner";(وضع بين قوسين في هذا المثال البسيط يقدم لا الغرض حيث لا يوجد مشغل الأسبقية مشكلة مع واحد مصطلح مثل ذلك.)

لذا صدى دون قوسين يمكن أن تأخذ العديد من المعالم التي تحصل متسلسلة:

   echo  "and a ", 1, 2, 3;   // comma-separated without parentheses
   echo ("and a 123");        // just one parameter with parentheses

print() يمكن أن يستغرق سوى معلمة واحدة:

   print ("and a 123");
   print  "and a 123";

نصائح أخرى

وهم:

  • طباعة يستغرق سوى معلمة واحدة ، في حين صدى يمكن أن يكون العديد من المعلمات.
  • طباعة بإرجاع القيمة (1), بحيث يمكن استخدامها بوصفها التعبير.
  • الصدى هو أسرع قليلا.

إضافة إلى الإجابات أعلاه ، في حين الطباعة يمكن أن يستغرق سوى معلمة واحدة ، وسوف تسمح لسلسلة من قيم متعددة ، أي:

$count = 5;

print "This is " . $count . " values in " . $count/5 . " parameter";

هذا هو 5 القيم في 1 المعلمة

أعتقد print() أبطأ من echo.

أود أن استخدام print() فقط في حالات مثل:

 echo 'Doing some stuff... ';
 foo() and print("ok.\n") or print("error: " . getError() . ".\n");

كما PHP.net ويقترح دليل ، تأخذ قراءة من هذا النقاش.

والفرق الوحيد هو أن echo يمكن أن يستغرق عدة معلمات الإخراج.E. g.:

echo 'foo', 'bar';   // Concatenates the 2 strings
print('foo', 'bar'); // Fatal error

إذا كنت تبحث عن تقييم نتائج الناتج البيان (أدناه) استخدام print.إذا لم تستخدم echo.

$res = print('test');
var_dump($res); //bool(true)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top