رشتهها (PHP Strings)
رشتهها: دستکاریِ متنها با ظرافت 🧵📖
بیشترِ فعالیتهای وب بر پایهیِ نمایشِ متن است. PHP توابعِ قدرتمندی برایِ کار با رشتهها (Strings) در اختیار دارد.
توابعِ پرکاربرد:
strlen():طولِ رشته را برمیگرداند.str_word_count():تعدادِ کلماتِ یک جمله را میشمارد.strrev():متن را وارونه (معکوس) میکند.strpos():موقعیتِ یک کلمه را در متن پیدا میکند.str_replace():یک کلمه را با کلمهیِ دیگری جایگزین میکند.
الحاق (Concatenation) 🔗
برخلافِ جاوااسکریپت که از + استفاده میکند، در PHP برایِ چسباندنِ دو رشته به هم از نقطه (.) استفاده میکنیم.
" محصور شده، خودِ علامت " را چاپ کنید، باید از " استفاده کنید.
تغییرِ حالت:
{code_block('echo strtoupper("hello"); // HELLO')}mb_ شروع میشوند (مثل mb_strlen) استفاده کنید تا حروفِ فارسی درست شمرده شوند.
بخش تخصصی: کالبدشکافی زبان PHP و موتور Zend 🐘⚙️
درکِ عمیقِ PHP نیازمند آشنایی با آن چیزی است که در پشتِ صحنه اتفاق میافتد. PHP یک زبانِ تفسیری (Interpreted) است که توسط موتور قدرتمند Zend Engine اجرا میشود.
۱. چرخه عمر درخواست (Request Lifecycle)
در هر بار لود شدنِ صفحه، PHP مراحلِ زیر را طی میکند:
- Lexing/Scanning: تبدیلِ کدها به توکنهایِ معنادار.
- Parsing: ساختِ یک ساختارِ درختی از کدها (AST).
- Compilation: تبدیلِ درختِ کد به OpCodes (دستورالعملهایِ سطحِ پایین).
- Execution: اجرایِ OpCodeها توسط مفسرِ Zend.
۲. مدیریت حافظه (Zend Memory Manager)
PHP برخلافِ زبانهایی مثل C، مدیریتِ حافظه را به صورتِ خودکار انجام میدهد. با استفاده از تکنیکِ Reference Counting و یک Garbage Collector هوشمند، اشیاء و متغیرهایی که دیگر استفاده نمیشوند را از حافظه پاک میکند تا سرور دچارِ کراش نشود.
۳. سیستمِ تایپِ پویا (Dynamic Typing)
در PHP، متغیرها نوعِ ثابتی ندارند. این انعطافپذیری به لطفِ ساختارِ دادهای به نام zval (Zend Value) ممکن شده است که در هر لحظه میتواند اطلاعاتی درباره نوع و مقدارِ داده را در خود نگه دارد.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
تابع مناسبی را برای معکوس کردن رشتهیِ "PHP" بنویسید (خروجی باید PHP وارونه باشد).
<?php
echo strrev("PHP");
?>
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.