با سلام و خسته نباشی خدمت شما کاربران گرامی ، امیدوارم که روز خوبی تا به اینجا سپری کرده باشید. با آموزش برنامه نویسی PHP در خدمت شماهستیم.این فصل تفاوت ها و شباهت ها ی عمده بین PHP و PERL را تشریح می کند. این بخش به برنامه نویسان PERL کمک می کند تا PHP را بهتر بفهمند و از این طریق از وقوع خیلی از اشتباهات جلوگیری شود.
شباهت ها
Compiled scripting language {زبان های اسکریپت نویسی ترجمه} : PHP و PERL هر دو زبان های اسکریپت نویسی هستند. یعنی از آن ها برای نوشتن، {فایل} اجرایی های بومی مستقل {native standalone executable} قبل از اجرا نمی توان استفاده کرد.
syntax {دستور نحوی، گرامر} : دستور نحوی پایه ای PHP و PERL بسیار به هم نزدیک هستند و هر دوی این زبان ها از لحاظ دستور نحوی و گرامر بسیار شبیه به C هستند. کُد نسبت به جای خالی بی تفاوت است ، دستورها به نقطه ویرگول {؛} ختم می شوند و آکولاد {} چند دستور را هم زمان در داخل یک بلوک قرار داده و سازمان می دهد.فراخوانی تابع {function call} با اسم تابع آغاز می شود و به دنبال آن خود آرگومان ها {argument} محصور شده در پرانتز و جدا شده توسط ویرگول {، } می آید.
Dollar sign variables {متغیر علامت دلار $} : تمام متغیرهای PHP در PERL شبیه متغیرهای عددی {scalar variable} هستند: یک اسم که جلوی آن یک علامت دلار $ قرار می گیرد.
no declaration of variables {عدم وجود تعریف متغیر} : مثل PERL، نیازی نیست نوع متغیر PHPرا پیش از به کار گیری معرفی کنید.
loose typing of variable {تایپ آزاد و نادقیق متغیرها} : همانند PERL، متغیرهای PHP نوع ذاتی {intrinsic type} به جز مقدار {value} جاری خود، ندارند. عدد یا رشته را می توانید در همان یک متغیر ذخیره کنید.
strings and variable interpolation {گنجاندن متغیرها در دنباله ها} : PHP و PERL هر دو بیشتر از رشته هایی استفاده می کنند که در داخل ” string ” {علامت نقل و قول دو تایی ” “} قرار گرفته باشند تا ‘string’ {علامت نقل وقول ‘ ‘ یکی}.
تفاوت ها
PHP HTML-embedded {پی اچ پی گنجانده شده در HTML } : اگرچه می توان با اجرای PHP از خط فرمان {command line}، task {کار} های اختیاری {دلخواه و arbitrary} انجام داد، PHP معمولاً به وِب سِروِر وصل است و برای طراحی صفحات وِب به کار می رود.اگر قبلاً با Perl، CGI اسکریپت نوشته اید، باید آگاه باشید که فرق PHP در این است که شما دیگر مجبور نیستید با پرینت یا دستورهای heredoc {heredoc statement} بلوک های بزرگ HTML ایستا {blocks of static HTML} بنویسید، بلکه به راحتی می توانید تنها خود HTML را بیرون از بلوک کد PHP {PHP code block} بنویسید.
no @ or % variable {هیچ متغیر @ یا % ندارد} : PHP فقط یک نوع متغیر دارد که با علامت $ آغاز می شود. تمام یا هر نوع داده {datatype} زبان چه عددی {scalar} و چه مرکب {compound} در همین متغیرها ذخیره می شود.
arrays vs hashes {آرایه ها در مقابل هش ها} : PHP فقط یک نوع داده به نام آرایه دارد و همین نوع داده نقش arrays/lists و hash را در Perl ایفا می کند.
Specifying arguments to function : فراخوانی تابع {function call} در PHP حکم فراخوانی های زیر روال {subroutine} در Perl را دارد. از سوی دیگر، تعریف تابع { definition} در PHP نیاز به یک نوع لیست از آرگومان {argument
{ های رسمی که در C و Java معمول هستند دارد، که این مسئله در مورد PERL حکم نمی کند.
Variable scoping in functions {دامنه ی متغیر در تابع ها} : دامنه ی پیش فرض {default scope} برای متغیر در Perl سراسری {global} است. به این معنا که متغیرهای سطح بالا {top-level variable} در زیرروال ها {subroutine} قابل مشاهده هستند.این امر قالباً منجر به استفاده ی بی قاعده از عمومی ها {globals} در سرتاسر همه تابع ها می شود. در PHP، دامنه ی متغیر در تعریف توابع به صورت پیش فرض، محلی است.
no module system as such {هیچ سیستم ماژول و پیمانه ای به آن صورت نیست} : در PHP هیچ تفاوت عمده ای بین فایل کد {code file} عادی و فایل کدی که به عنوان یک کتابخانه وارد شده {imported library} قلم داد می شود، وجود ندارد.
Break and continue rather than next and last {استفاده از دستور ادامه و قطع به جای قبلی و بعدی} : PHP مانند C از دستورهای break و continueاستفاده می کند نه از next و last.
no elsif : یک تفاوت املایی کوچک : در Perl، elsif و در PHP elseif، داریم.
انواع مختلف comment : PHP علاوه بر توضیح های تک خطی سبک Perl(#) {Perl-style single line comment}، توضیحات چند خطی سبک C {multi-line Cstyle comments} /* comment */ و توضیحات تک خطی سبک Java
Java-style single-line comment{ (// comment).} هم در اختیار برنامه نویس قرار می دهد.
Regular expressions {عبارات عادی} : PHP یک دستور نحوی توکار یا ذاتی built-in { syntax} مختصِ عبارات عادی ندارد، ولی بیشتر همان قابلیت را در تابع عبارات عادی”Perl-compatible” حفظ می کند.