في لغة PHP، السلاسل النصية (Strings) هي متواليات من الأحرف، حيث يُمثّل كل حرف بايت واحد. هذا يعني أن PHP تدعم فقط مجموعة أحرف 256 حرفًا، وبالتالي لا تُقدّم دعمًا أصيلًا لترميز يونيكود بشكل افتراضي (إلا باستخدام دوال خاصة).

تعريف السلسلة النصية:

أبسط طريقة لإنشاء سلسلة نصية هي وضع النص بين علامتي اقتباس مفردة (') أو مزدوجة ("). على سبيل المثال:

PHP
$string1 = 'Hello World!';
$string2 = "This is a string.";

الفرق بين علامتي الاقتباس المفردة والمزدوجة:

  • علامات الاقتباس المفردة: تُعامل النص كما هو تمامًا، ولا يتم تفسير أي متغيرات أو رموز خاصة بداخله.
  • علامات الاقتباس المزدوجة: يتم تفسير المتغيرات وبعض الرموز الخاصة (مثل \n للسطر الجديد و \t للجدولة).

مثال على الفرق:

PHP
$name = "John";
echo 'My name is $name.'; // Output: My name is $name.
echo "My name is $name."; // Output: My name is John.

الهروب (Escaping):

عند استخدام علامات الاقتباس المزدوجة، تحتاج إلى "تهريب" بعض الأحرف الخاصة باستخدام الخط المائل العكسي (\). على سبيل المثال:

  • \": لإدراج علامة اقتباس مزدوجة داخل سلسلة نصية مُحاطة بعلامات اقتباس مزدوجة.
  • \\: لإدراج خط مائل عكسي.
  • \n: سطر جديد.
  • \r: العودة إلى بداية السطر.
  • \t: مسافة جدولة أفقية.

مثال:

PHP
echo "He said, \"Hello!\""; // Output: He said, "Hello!"

العمليات على السلاسل النصية:

توفر PHP العديد من الدوال للتعامل مع السلاسل النصية، منها:

  • . (نقطة): عامل دمج السلاسل النصية (Concatenation).
PHP
$greeting = "Hello";
$name = "World";
$message = $greeting . " " . $name . "!"; // $message becomes "Hello World!"
  • strlen(): إرجاع طول السلسلة النصية.
PHP
$text = "Example";
echo strlen($text); // Output: 7
  • strpos(): البحث عن موقع سلسلة نصية فرعية داخل سلسلة نصية.
PHP
$text = "Hello World";
echo strpos($text, "World"); // Output: 6
  • str_replace(): استبدال جزء من سلسلة نصية بجزء آخر.
PHP
$text = "Hello World";
$newText = str_replace("World", "PHP", $text); // $newText becomes "Hello PHP"
  • substr(): اقتطاع جزء من سلسلة نصية.
PHP
$text = "Hello World";
echo substr($text, 0, 5); // Output: Hello
  • strtolower() و strtoupper(): تحويل السلسلة النصية إلى أحرف صغيرة أو كبيرة على التوالي.
PHP
$text = "Hello";
echo strtolower($text); // Output: hello
echo strtoupper($text); // Output: HELLO
  • trim(): إزالة المسافات البيضاء من بداية ونهاية السلسلة النصية.

ملاحظات إضافية:

  • يمكن أن يصل حجم السلسلة النصية في PHP إلى 2 جيجابايت كحد أقصى.
  • بدءًا من PHP 7، تم تحسين أداء التعامل مع السلاسل النصية بشكل كبير.
  • لدعم يونيكود بشكل كامل، يُنصح باستخدام دوال مثل mb_string (Multi-Byte String).

هذا شرح مُفصّل للسلاسل النصية في PHP. آمل أن يكون هذا مفيدًا. إذا كان لديك أي أسئلة أخرى، فلا تتردد في طرحها.