ثابت ها در PHP – مقدمه:
در ادامه بخش های آموزش php فقط در ۱۰ مرحله، می خواهیم با تعریف ثابت ها در php آشنا شویم. این دومین بخش از اولین مرحله از این سری آموزشی می باشد.
در این آموزش می آموزیم که به چه نحوی باید ثابت ها در php تعریف شوند. همچنین با نحوه استفاده از ثابت ها در پی اچ پی آشنا می شویم.
سپس با ثابت های از پیش تعریف شده زبان php آشنا می شویم که با آن ها Predefined Constants گفته می شود. همچنین می آموزیم که چگونه از این ثابت ها در php استفاده کنیم.
این مطلب در تاریخ ۱۷ فروردین ۱۳۹۹ مجددا بازنگری و آپدیت شده و کدهای آن به روزرسانی شده و نکات جدید به همراه فیلم به آن اضافه شده است.
در انتها با ثابت های جادویی php آشنا می شویم که به آن ها Magic Constants گفته می شود و نحوه استفاده از این ثابت ها در php را مورد بررسی قرار می دهیم.
چند نکته قبل از شروع آموزش ثابت ها در PHP
شما برای آشنایی با انواع ثابت ها و همین طور نحوه تعریف آن ها درPHP، می توانید از مقاله این صفحه استفاده کنید.
این مقاله یکی از جامع ترین مقالات و کاربردی ترین آن ها در سطح وب فارسی می باشد. با خواندن این مقاله به راحتی به همه مفاهیم ثابت ها و انواع آن در PHP آشنا می شوید و عملا نیازی به سورس های اضافه تر نخواهید داشت.
فیلم ابتدایی قرار داده شده در این مقاله، بخش هایی از دوره آموزش PHP است که بخشی از دوره وبمستران وردپرس (دوره حضوری) می باشد.
برای تهیه کامل این فیلم، می توانید به سایت کلوپ وبمستران وردپرس (که مرجع آموزش های حرفه ای وبمستری برای وردپرس) می باشد، مراجعه کنید.
فیلم آموزش انواع ثابت در PHP
بخش اول: تعریف ثابت ها در PHP
در بخش اول نکات مربوط به تعریف ثابت ها در php را بیان خواهیم کرد. این نکات به صورت لیست وار در ادامه آمده است:
ثابت ها در PHP چیستند؟
ثابت در واقع یک شناسه یا یک نام برای یک مقدار ساده است. این مقدار در طول اجرای برنامه یا همان اسکریپت ثابت بوده و تغییر نمی کند.
نحوه نام گذاری ثابت ها در PHP
قوانین نام گذاری ثابت ها در php همانند قوانین نام گذاری متغیرها بوده با این تفاوت که حرف اول نام ثابت ها در php باید با یک حرف یا Underscore آغاز گردد.
حوزه تعریف و فعالیت ثابت ها در PHP
برخلاف متغیرها در php ، ثابت ها در php به صورت خودکار به صورت سراسری در همه برنامه قابل دسترس هستند. در واقع با تعریف یک ثابت در پی اچ پی این ثابت به صورت global تعریف می شود.
تعریف ثابت ها در PHP
برای تعریف ثابت در php از تابع define به صورت زیر استفاده می کنید. پارامتر سوم این تابع مربوط به case-sensitive بودن می باشد که در حالت پیش فرض برابر false می باشد.
در صورتی که این مقدار برابر true قرار داده شود، فرقی نمی کند که از حروف بزرگ یا کوچک برای فراخوانی ثابت در php استفاده کنیم.
Best Practice ها در تعریف ثابت ها در PHP
عموما best practice برای تعریف ثابت این می باشد که نام گذاری ثابت با حروف بزرگ انجام شده و بین هر کلمه (در صورت چند بخشی بودن) با Underscore از کلمه بعدی جدا گردد.
//Syntax of define constant in php define(name, value, case-insensitive); define('MSN_INTEGER',100); echo MSN_INTEGER; //it will print 100 in output define('MSN_INTEGER',100,true); echo MSN_INTEGER; echo Msn_InTeger; echo msn_integer; //results of all are the same
global بودن کلیه ثابت ها در php
ثابت ها پس از تعریف در php به صورت اتوماتیک دارای scope سراسری یا همان global scope خواهند بود و می توانند در همه جا مورد استفاده قرار بگیرند.
به عنوان مثال اگر ثابتی در خارج از یک تابع تعریف شده باشد، شما به راحتی می تواند درون تابع از آن استفاده کنید.
define("MSN_WELCOME", "Welcome to WPWebmaster site."); function msnTest() { echo MSN_WELCOME; } msnTest(); //it will print related message in output
بخش دوم: ثابت های از پیش تعریف شده PHP
زبان پی اچ پی دارای ثابت های از پیش تعریف شده می باشد که به آن ها Predefined Constants گفته می شود. این ثابت ها در هسته زبان php تعریف شده و قابل استفاده در همه بخش های یک برنامه می باشند.
در ادامه به چند تا از مهم ترین ثابت های از پیش تعریف شده در پی اچ پی اشاره خواهیم کرد. برای دیدن لیست کامل Predefined Constants می توانید به بخش پایین مراجعه کنید.
ثابت PHP_VERSION
این ثابت ورژن فعلی که پی اچ پی از آن استفاده می کند را نمایش می دهد.
ثابت PHP_OS
ثابت PHP_OS نوع سیستم عاملی که php بر روی آن اجرا می شود را به نمایش در می آورد.
ثابت PHP_EOL
ثابت PHP_EOL بسته به نوع سیستم عامل عمل می کند. این ثابت در ویندوز معادل کاراکترهای \r\n شناخته می شود و در سیستم عامل های خانواده لینوکس به عنوان \n شناخته می شود.
ثابت PHP_INT_MAX
ثابت PHP_INT_MAX در واقع بزرگترین عدد صحیح که پی اچ پی می تواند از آن پشتیبانی کند را به نمایش در می آورد.
ثابت PHP_FLOAT_MAX
ثابت PHP_FLOAT_MAX بزرگترین عدد اعشاری که پی اچ پی از آن پشتیبانی می کند را نمایش می دهد.
ثابت TRUE
ثابت TRUE برای نمایش مقدار بولین true مورد استفاده قرار می گیرد.
ثابت FALSE
ثابت FALSE برای نمایش مقدار بولین false مورد استفاده قرار می گیرد.
ثابت NULL
ثابت NULL برای نمایش مقدار بولین null مورد استفاده قرار می گیرد.
PHP_VERSION (string) //The current PHP version as a string in "major.minor.release[extra]" notation. PHP_MAJOR_VERSION (integer) //The current PHP "major" version as an integer (e.g., int(5) from version "5.2.7-extra"). Available since PHP 5.2.7. PHP_MINOR_VERSION (integer) //The current PHP "minor" version as an integer (e.g., int(2) from version "5.2.7-extra"). Available since PHP 5.2.7. PHP_RELEASE_VERSION (integer) //The current PHP "release" version as an integer (e.g., int(7) from version "5.2.7-extra"). Available since PHP 5.2.7. PHP_VERSION_ID (integer) //The current PHP version as an integer, useful for version comparisons (e.g., int(50207) from version "5.2.7-extra"). Available since PHP 5.2.7. PHP_EXTRA_VERSION (string) //The current PHP "extra" version as a string (e.g., '-extra' from version "5.2.7-extra"). Often used by distribution vendors to indicate a package version. Available since PHP 5.2.7. PHP_ZTS (integer) //Available since PHP 5.2.7. PHP_DEBUG (integer) //Available since PHP 5.2.7. PHP_MAXPATHLEN (integer) //The maximum length of filenames (including path) supported by this build of PHP. Available since PHP 5.3.0. PHP_OS (string) //The operating system PHP was built for. PHP_OS_FAMILY (string) //The operating system family PHP was built for. Either of 'Windows', 'BSD', 'Darwin', 'Solaris', 'Linux' or 'Unknown'. Available as of PHP 7.2.0. PHP_SAPI (string) //The Server API for this build of PHP. See also php_sapi_name(). PHP_EOL (string) //The correct 'End Of Line' symbol for this platform. Available since PHP 5.0.2 PHP_INT_MAX (integer) //The largest integer supported in this build of PHP. Usually int(2147483647) in 32 bit systems and int(9223372036854775807) in 64 bit systems. Available since PHP 5.0.5 PHP_INT_MIN (integer) //The smallest integer supported in this build of PHP. Usually int(-2147483648) in 32 bit systems and int(-9223372036854775808) in 64 bit systems. Available since PHP 7.0.0. Usually, PHP_INT_MIN === ~PHP_INT_MAX. PHP_INT_SIZE (integer) //The size of an integer in bytes in this build of PHP. Available since PHP 5.0.5 PHP_FLOAT_DIG (integer) //Number of decimal digits that can be rounded into a float and back without precision loss. Available as of PHP 7.2.0. PHP_FLOAT_EPSILON (float) //Smallest representable positive number x, so that x + 1.0 != 1.0. Available as of PHP 7.2.0. PHP_FLOAT_MIN (float) //Smallest representable floating point number. Available as of PHP 7.2.0. PHP_FLOAT_MAX (float) //Largest representable floating point number. Available as of PHP 7.2.0. DEFAULT_INCLUDE_PATH (string) PEAR_INSTALL_DIR (string) PEAR_EXTENSION_DIR (string) PHP_EXTENSION_DIR (string) PHP_PREFIX (string) //The value "--prefix" was set to at configure. PHP_BINDIR (string) //Specifies where the binaries were installed into. PHP_BINARY (string) //Specifies the PHP binary path during script execution. Available since PHP 5.4. PHP_MANDIR (string) //Specifies where the manpages were installed into. Available since PHP 5.3.7. PHP_LIBDIR (string) PHP_DATADIR (string) PHP_SYSCONFDIR (string) PHP_LOCALSTATEDIR (string) PHP_CONFIG_FILE_PATH (string) PHP_CONFIG_FILE_SCAN_DIR (string) PHP_SHLIB_SUFFIX (string) //The build-platform's shared library suffix, such as "so" (most Unixes) or "dll" (Windows). PHP_FD_SETSIZE (string) //The maximum number of file descriptors for select system calls. Available as of PHP 7.1.0. E_ERROR (integer) //Error reporting constant E_WARNING (integer) //Error reporting constant E_PARSE (integer) //Error reporting constant E_NOTICE (integer) //Error reporting constant E_CORE_ERROR (integer) //Error reporting constant E_CORE_WARNING (integer) //Error reporting constant E_COMPILE_ERROR (integer) //Error reporting constant E_COMPILE_WARNING (integer) //Error reporting constant E_USER_ERROR (integer) //Error reporting constant E_USER_WARNING (integer) //Error reporting constant E_USER_NOTICE (integer) //Error reporting constant E_RECOVERABLE_ERROR (integer) //Error reporting constant. Available since PHP 5.2.0 E_DEPRECATED (integer) //Error reporting constant. Available since PHP 5.3.0 E_USER_DEPRECATED (integer) //Error reporting constant. Available since PHP 5.3.0 E_ALL (integer) //Error reporting constant E_STRICT (integer) //Error reporting constant __COMPILER_HALT_OFFSET__ (integer) //Available since PHP 5.1.0 TRUE (boolean) FALSE (boolean) NULL (null)
بخش سوم: متغیرهای جادویی در PHP
به دسته ای از ثابت های از پیش تعریف شده در زبان php ، ثابت های جادویی یا همان Magic Constants گفته می شود.
در واقع ثابت های جادویی ثابت هایی هستند که بسته به اینکه کجا مورد استفاده قرار گیرند، مقدار آن ها تفاوت خواهد کرد.
به عنوان مثال خروجی ثابت __LINE__ به این بستگی دارد که این ثابت در کدام خط کد مورد استفاده قرار گرفته شده باشد.
مهم ترین ثابت های جادویی در php عبارتند از:
ثابت __LINE__
ثابت __LINE__ شماره خط جاری در اجرای برنامه را بازگشت می دهد.
echo "Line number " . __LINE__ . "<br>"; // Displays: Line number 1 echo "Line number " . __LINE__ . "<br>"; // Displays: Line number 2 echo "Line number " . __LINE__ . "<br>"; // Displays: Line number 3 echo "Line number " . __LINE__ . "<br>"; // Displays: Line number 4
ثابت __FILE__
ثابت __FILE__ مسیر کامل فایلی که در حال اجرا می باشد را بر می گرداند. این مسیر شامل نام فایل مورد نظر نیز می باشد. در واقع ثابت __FILE__ به عنوان خروجی full path و نام فایل php که در آن اجرا می شود را به عنوان خروجی بر می گرداند.
ثابت __DIR__
ثابت __DIR__ دایرکتوری فایلی که در حال اجرا می باشد را به عنوان خورجی باز می گرداند.
ثابت __FUNCTION__
ثابت __FUNCTION__ ، نام تابعی که در حال اجرا می باشد را به عنوان خروجی باز می گرداند.
echo "The full path of this file is: " . __FILE__; // Displays the absolute path of this file echo "The directory of this file is: " . __DIR__; // Displays the directory of this file function msnFunction(){ echo "The function name is - " . __FUNCTION__; } msnFunction(); // Displays: The function name is: msnFunction
ثابت __CLASS__
ثابت __CLASS__ نام کلاس جاری را که در حال اجراست به عنوان خروجی باز می گرداند.
class MsnClass { public function getClassName(){ return __CLASS__; } } $sample_object = new MsnClass(); echo $sample_object->getClassName(); // Displays: MsnClass
ثابت __METHOD__
ثابت __METHOD__ نام متد جاری که در حال استفاده از آن می باشد را به عنوان خروجی بازگشت می دهد.
class MsnSample { public function msnMethod(){ echo __METHOD__; } } $sample_object = new MsnSample(); $sample_object->msnMethod(); // Displays: Sample::msnMethod
ثابت __NAMESPACE__
ثابت __NAMESPACE__ ، نام namespace ای را که در حال حاضر در آن هستیم را به عنوان خروجی باز می گرداند.
namespace MsnNamespace; class MsnClass { public function getNamespace(){ return __NAMESPACE__; } } $sample_object = new MyClass(); echo $sample_object->getNamespace(); // Displays: MsnNamespace
نتیجه گیری برای مقاله تعریف ثابت ها در PHP
در این مقاله به صورت خلاصه در مورد انواع ثابت ها در php صحبت شد. همچنین در مورد نحوه تعریف ثابت ها در پی اچ پی به صورت کامل با مثال بحث شد.
در ادامه با ثابت های پیش فرض Php آشنا شدیم و لیست کامل Predefined Constants در زبان php به تشریح آورده شد.
در انتهای مقاله نیز با ثابت های جادویی در php یا همان Magic Constants و نحوه کار آن ها آشنا شدیم.
ممکن است شما موارد بیشتری را بدانید که ما فراموش کرده ایم تا در این مقاله قرار دهیم.
اگر شما از این موارد آگاه هستید، حتما در بخش نظرات عنوان کنید تا آن را به مقاله “ثابت ها در php” اضافه کنیم. در ضمن اگر این مقاله را مفید دیدید، حتما آن را به دوستان خود معرفی کرده یا در شبکه های اجتماعی به اشتراک بگذارید.
راهنما برای مطالعه بیشتر:
برای تولید مقاله ثابت ها در php ، از لینک های زیر استفاده شده است که برای مراجعه به آن ها می توانید از لیست زیر استفاده کنید:
راهنما برای خواندن سایر مقالات سایت به صورت دسته بندی شده:
شما می توانید از طریق لینک های کاربردی زیر به سایر مقالات سایت که کاملا بصورت طبقه بندی شده وجود دارد، مراجعه نموده و از آن ها استفاده کنید:
سلام مناسب بود ممنون
اگر تونستید آموزش پیاده سازی سیستم دانشگاهی با معماری mvc با زبان php بزارید تو سایت
اولین مشتریش خودمم
سلام به شما دوست عزیز،
بسیار ممنونم که وقت بسیار با ارزش خود رو گذاشتید تا برای ما پیام ارسال کنید.
خوشحالیم که این مطلب برای شما مناسب بوده.
در آینده نزدیک، برنامه برای پیاده سازی یک سیستم به صورت mvc داریم که توسط خبرنامه سایت، اطلاع رسانی خواهیم کرد.
سپاس فراوان
ممنون از مطالب مفیدتان خصوصا که بصورت نوشتاری هم هست، خدا خیرتان بده به خاطر آموزشهای رایگان….
سلام به شما دوست عزیز
بسیار ممنونم که وقت ارزشمند خودتان را گذاشتید تا برای ما پیام بفرستید.
از اینکه این مطالب، به کار شما آمده است، واقعا خوشحالیم. پیام های دلگرم کننده شده، باعث ادامه راه توسط ما خواهد شد.
سپاس فراوان
سلام
جالبه برام از وقتی اومدم سایتتون ۱ ساعت گذشته و متوجه نشدم خخخخ
هرچی میچرخم اینجا قسمت هایی که دوست دارم پیدا میکنم
سایت خوبی پیدا کردم ولی سر سری سایتتونو دیدم حالا سایتتونو تو گوشیم سیو کردم وقتم ازاد شد میام دوباره میبینم
ممنون
سلام به شما دوست عزیز
از لطف و نظر شما بسیار سپاسگزاریم. از اینکه وقت گذاشتید و برای ما نظرات مثبت خودتون رو ارسال کردید، کمال سپاس و تشکر رو داریم.
نظرات سازنده شما، باعث دلگرمی ما شده و باعث میشه که با تلاش بیشتر به راهمون ادامه بدیم.
از شما بسیار ممنون هستیم