تابع include در PHP ابزاری فوق العاده قدرتمند است که به عنوان هسته اصلی ساخت وب‌سایت‌ها و وب‌اپلیکیشن‌های ماژولار شناخته می‌شود. این تابع به توسعه دهندگان اجازه می‌دهد تا فایل‌های خارجی را در اسکریپت‌های PHP فراخوانی کنند. در نتیجه این امر فرایند توسعه را تسریع می‌کند و خوانایی کد را نیز به میزان زیادی بهبود می‌بخشد. در مطلب پیشِ رو از مجله فرادرس تمام موارد مربوط به تابع include در PHP به همراه قابلیت‌ها، کاربردها و نحوه استفاده از آن به طور کامل مورد بررسی قرار گرفته است.

فهرست مطالب این نوشته
997696

با مطالعه این مطلب ضمن آشنایی با این تابع نحوه استفاده از آن در پروژه‌های مختلف را نیز خواهید آموخت. در نتیجه، با درک پیچیدگی‌های تابع include خواهید توانست برنامه‌هایی کارآمد با مقیاس‌پذیری بالا بسازید.

کاربرد تابع include در PHP چیست؟

توسعه دهندگان با استفاده از تابع include می‌توانند تمام متن، کدها و تگ‌های HTML موجود در یک فایل PHP را درون یک فایل PHP دیگر کپی کنند. در واقع، دستور include زمانی کاربرد دارد که توسعه دهنده قصد استفاده از فایل PHP ،HTML یا متن یکسانی را در دو یا چند صفحه متفاوت دارد. دستور include به توسعه دهندگان کمک می‌کند تا توابع و عناصر مختلفی را ایجاد کرده و از آن‌ها در چندین صفحه مجزا استفاده کنند. در نتیجه این امر قابلیت استفاده مجدد کد افزایش یافته و موجب صرفه‌جویی در زمان و هزینه می‌شود.

علاوه بر این، استفاده از تابع include در PHP ویرایش و انجام تغییرات در کد را نیز آسان‌تر می‌کند، زیرا در صورت نیاز به انجام تغییرات در کد به جای ویرایش تمامی فایل‌ها تنها کافی است تا فایل منبع را ویرایش کنیم.

برنامه نویس در حال نگاه کردن به مانیتوری بزرگ و کدنویسی است - include در PHP

سینتکس تابع include در PHP

دستور include به توسعه دهندگان امکان می‌دهد تا تمام محتویات موجود در یک فایل PHP را در فایلی دیگر بارگزاری کنند. سینتکس پیاده‌سازی تابع include به صورت زیر است:

به منظور فراخوانی یک فایل PHP در فایلی دیگر کافی است تا مسیر مربوط به فایل را بعد از کلمه کلیدی include

 قرار دهید. قطعه کد زیر نحوه فراخوانی فایل functions.php

 را درون فایل index.php

 با استفاده از دستور include نشان می‌دهد.

1<?php 
2
3// index.php file
4include 'functions.php';

در صورتی که PHP نتواند فایل functions.php

 مشخص شده را در دایرکتوری اصلی پروژه پیدا کند، هشداری به صورت زیر در خروجی چاپ خواهد کرد.

Warning: include(functions.php): failed to open stream: No such file or directory in ... on line 4
Warning: include(): Failed opening 'functions.php' for inclusion (include_path='xamppphpPEAR') in ... on line 4

در صورت وجود فایل functions.php

 در مسیر اصلی پروژه با فراخوانی این فایل کدهای موجود در آن اجرا خواهند شد. به عنوان مثال، کدهای زیر درون فایل functions.php

 قرار داده شده است.

1<?php
2
3// functions.php
4
5function get_copyright()
6{
7	return 'Copyright © ' . date('Y') . ' by phptutorial.net. All Rights Reserved!';
8}
9
10echo get_copyright();

با فراخوانی فایل functions.php

 درون فایل index.php

 خروجی حاصل بعد از اجرای کد index.php

 به صورت زیر خواهد بود.

Copyright © 2021 by phptutorial.net. All Rights Reserved!

خروجی حاصل از اجرای قطعه کد بالا این مسئله را نشان می‌دهد که با به‌کارگیری دستور include کدهای موجود در فایل functions.php

 اجرا خواهند شد.

آموزش های برنامه نویسی و طراحی سایت فرادرس

در این بخش به معرفی چند مورد از فیلم های آموزشی طراحی و برنامه نویسی سایت به زبان‌های مختلف برنامه نویسی منتشر شده در پلتفرم فرادرس پرداخته‌ایم. فیلم‌های آموزشی موجود در این مجموعه طیف وسیعی از زبان‌ها و فریمورک‌های برنامه نویسی مورد استفاده در طراحی سایت نظیر وردپرس، PHP، جاوا اسکریپت، Asp و سایر موارد را پوشش می‌دهند. با استفاده از فیلم‌های آموزشی موجود در این مجموعه می‌توانید مهارت‌های خود در حوزه برنامه نویسی وب را ارتقا دهید.

مجموعه آموزش های طراحی و برنامه نویسی سایت فرادرس
برای دسترسی به مجموعه فیلم‌های آموزش طراحی و برنامه نویسی سایت فرادرس، روی تصویر کلیک کنید.

مثالی ساده از فراخوانی فایل با استفاده از include در PHP

دستور include برای فراخوانی یک فایل PHP درون فایلی دیگر مورد استفاده قرار می‌گیرد. با فراخوانی یک فایل تمام محتویات موجود درون آن در فایل اصلی نمایش داده می‌شود. برای درک بهتر مفهوم include مثال زیر ارائه شده است. ابتدا فایل Page1.php

 قرار داده شده است که محتویات آن به صورت زیر است.

1<?php
2
3//Page1.php
4echo "<p>welcome to my webpage</p>";
5
6?>

در ادامه فایل اصلی تحت عنوان Main.php

 قرار داده شده است که کدهای موجود در آن به صورت زیر است.

1<html>
2
3<body>
4
5<h1>Welcome to my home page!</h1>
6
7<p>Some text.</p>
8
9<p>Some more text.</p>
10
11<?php include 'Page1.php';?>
12
13</body>
14
15</html>

در قطعه کد بالا فایل Page1.php

 با دستور include در فایل اصلی فراخوانی شده است که در نتیجه تمام محتویات موجود در آن در فایل اصلی قرار خواهد گرفت. خروجی حاصل بعد از اجرای کد Main.php

 به صورت زیر خواهد بود.

خروجی حاصل از اجرای کد مربوط به تابع include

کاربرد دستور include در طراحی سایت

یکی از کاربردهای عملی دستور include در PHP استفاده از آن در پیاده‌سازی مولفه‌های رابط کاربری سایت است و در مطالب قبلی مجله فرادرس نیز راجع به همین موضوع به طور کامل صحبت کرده‌ایم. در طراحی یک وب‌سایت به طور معمول هر صفحه از چندین مولفه رابط کاربری تشکیل می‌شود که برخی از این مولفه‌ها نظیر هدر، فوتر و سایر موارد در تمامی صفحات یکسان هستند. بدون در نظر گرفتن وجود تابع include در PHP برای طراحی هر صفحه وب‌سایت نیاز است تا تمام عناصر موجود در آن به طور کامل پیاده‌سازی شوند و کدهای مربوط به هر بخش نوشته شود. به منظور جلوگیری از پیاده‌سازی مجدد مولفه‌های مشترک نظیر هدر و فوتر در صفحات مختلف سایت می‌توان هر کدام از این مولفه‌های رابط کاربری را به صورت جداگانه در فایلی مجزا پیاده‌سازی کرد و با استفاده از دستور include آن‌ها را در فایل مورد نظر فراخوانی کرد. در نتیجه این امر علاوه بر کاهش میزان کدهای پروژه، خوانایی برنامه نیز بهبود می‌یابد.

مثالی از کاربرد عملی دستور include

در این بخش به منظور درک بهتر کاربرد دستور include در طراحی سایت نحوه استفاده از این دستور برای تفکیک مولفه‌های رابط کاربری سایت در قالب مثال عملی توضیح داده شده است. برای این منظور در گام نخست پوشه جداگانه‌ای با نام inc

 در دایرکتوری اصلی پروژه ایجاد می‌کنیم. در گام بعدی با توجه به دو مولفه مورد نیاز یعنی هدر و فوتر سایت دو فایل با نام‌های footer.php

 و header.php

 در این پوشه ایجاد می‌کنیم. ساختار کلی پروژه به صورت زیر خواهد بود.

1.
2├── index.php
3├── functions.php
4├── inc
5│   ├── footer.php
6│   └── header.php
7└── public
8    ├── css
9    │   └── style.css
10    └── js
11        └── app.js

در ادامه به منظور ساخت هدر کدهای زیر را درون فایل header.php

 قرار می‌دهیم.

1<!DOCTYPE html>
2<html lang="en">
3	<head>
4		<meta charset="UTF-8" />
5		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6		<link rel="stylesheet" href="public/css/style.css">
7		<title>PHP include Example</title>
8	</head>
9	<body>

همچنین، برای ساخت فوتر نیز کدهای زیر را درون فایل footer.php

 قرار می‌دهیم.

1<script src="js/app.js"></script>
2</body>
3</html>

در نهایت به منظور فراخوانی هدر و فوتر طراحی شده در صفحه اصلی باید از تابع include در PHP به صورت زیر استفاده کنیم.

1<?php include 'inc/header.php'; ?>
2
3<h1>PHP include</h1>
4<p>This shows how the PHP include construct works.</p>
5
6<?php include 'inc/footer.php'; ?>

با اجرای فایل index.php

 کد اصلی پروژه به صورت زیر خواهد بود.

1<!DOCTYPE html>
2<html lang="en">
3	<head>
4		<meta charset="UTF-8" />
5		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6		<link rel="stylesheet" href="public/css/style.css" />
7		<title>PHP include Example</title>
8	</head>
9	<body>
10		<h1>PHP include</h1>
11		<p>This shows how the PHP include construct works.</p>
12
13		<script src="public/js/app.js"></script>
14	</body>
15</html>

مزایای تابع include در PHP چیست؟

تابع include با فراهم کردن امکان فراخوانی فایل‌های PHP توسعه دهندگان را از انجام دادن کارهای تکراری و دوباره کاری نجات می‌دهد. از جمله مهم‌ترین مزایای این تابع به موارد زیر می‌توان اشاره کرد.

  • قابلیت استفاده مجدد کد: با استفاده از include می‌توان از کدها و توابع پیاده‌سازی شده در سایر اسکریپت‌های PHP مجدداً استفاده کرد.
  • بهبود خوانایی کد: با کاهش حجم کدهای مورد استفاده در برنامه خوانایی کد نیز بهبود پیدا می‌کند.
  • ویرایش آسان: در صورت نیاز به انجام تغییرات در برنامه به جای ویرایش هر فایل به صورت جداگانه تنها کافی است تا فایل اصلی پروژه ویرایش شود.
  • تفکیک مولفه‌های رابط کاربری: با استفاده از تابع include می‌توان مولفه‌های رابط کاربری مشترک در برنامه را به صورت جداگانه پیاده‌سازی کرد.

تابع include در PHP و محدوده دسترسی به متغیرها

با استفاده از تابع include می‌توان یک فایل PHP را درون فایلی دیگر فراخوانی کرد. پرسشی که در اینجا به وجود می‌آید این است که وضعیت متغیرهای موجود در فایل فراخوانی شده در این حالت چگونه خواهد بود. تمام متغیرهای موجود در فایل فراخوانی شده در فایل جدید نیز امکان دسترسی دارند. در واقع، همزمان با include شدن یک فایل PHP درون فایلی دیگر تمام متغیرهای تعریف شده در آن فایل در فایل جدید نیز قابلیت دسترسی دارند. اگر به دنبال یادگیری مفاهیم بیشتری در برنامه نویسی PHP هستید می‌توانید فیلم آموزش برنامه نویسی PHP فرادرس که لینک آن در ادامه آورده شده است را مشاهده کنید.

وضعیت متغیرها بعد از فراخوانی فایل در PHP را در دو حالت مختلف مورد بررسی قرار خواهیم داد.

فراخوانی فایل خارج از بدنه تابع

در قطعه کد زیر متغیرهای $title

 و $content

 درون فایل functions.php

 تعریف شده‌اند.

1<?php
2
3// functions.php
4
5$title = 'PHP include';
6$content = 'This shows how the PHP include construct works.';

با فراخوانی فایل functions.php

 درون فایل index.php

 متغیرهای $title

 و $content

 به عنوان متغیر سراسری در این فایل در نظر گرفته می‌شوند. قطعه کد زیر فراخوانی فایل functions.php

 خارج از بدنه تابع را در فایل index.php

 نشان می‌دهد.

1<?php include 'inc/header.php'; ?>
2
3
4<?php include_once 'functions.php'; ?>
5
6<h1><?php echo $title; ?></h1>
7<p><?php echo $content; ?></p>
8
9
10<?php include 'inc/footer.php'; ?>

بعد از فراخوانی فایل functions.php

 امکان دسترسی به متغیرهای $title

 و $content

 وجود خواهد داشت.

فراخوانی فایل درون بدنه تابع

در صورت فراخوانی یک فایل درون بدنه یک تابع تمام متغیرهای موجود در فایل اصلی به عنوان متغیرهای محلی تابع شناخته خواهند شد. قطعه کد زیر مثالی در این خصوص را نشان می‌دهد.

1<?php include 'inc/header.php'; ?>
2<?php include_once 'functions.php'; ?>
3
4<?php
5	function render_article()
6	{
7		include 'functions.php';
8
9		return "<article>
10                    <h1>$title</h1>
11                $content
12                </article>";
13	}
14
15	echo render_article();
16?>
17
18
19<?php include 'inc/footer.php'; ?>

در مثال بالا فایل functions.php

 درون بدنه تابع render_article()

 فراخوانی شده است. بنابراین، متغیرهای $title

 و $content

 به عنوان متغیرهای محلی این تابع شناخته می‌شوند.

تابع require در PHP چیست؟

تابع require در PHP عملکردی مشابه با تابع include دارد و به منظور فراخوانی فایل‌های PHP مورد استفاده قرار می‌گیرد. تنها تفاوت تابع require با تابع include در این است که در صورت پیدا نشدن فایل مورد نظر تابع require از اجرای ادامه دستورات جلوگیری می‌کند، در حالی که تابع include اجرای دستورات را متوقف نمی‌کند.

برنامه نویس در نزدیک پنجره در حال توسعه برنامه به زبان PHP

دستور require در PHP تمام محتویات موجود در فایل داده شده را در فایل اصلی کپی می‌کند. در واقع، دستور require و include در PHP فارغ از نحوه برخورد با شرایط خطا کاملاً یکسان هستند.

سینتکس تابع require در PHP

سینتکس پیاده‌سازی تابع require بسیار ساده است. قطعه کد زیر سینتکس دستور require در PHP را نشان می‌دهد.

1require 'file_name'; 
2
3Or  
4
5require ('file_name'); 

برای فراخوانی یک فایل با استفاده از دستور require کافی است تا بعد از کلمه کلیدی require مسیر فایل مورد نظر آورده شود. در ادامه نحوه پیاده‌سازی منو در Html با استفاده از دستور require توضیح داده شده است. قطعه کد زیر فایل Menu1.html

 را نشان می‌دهد.

1<html>
2
3<body>
4
5<ahref="http://www.google.com">Google</a> |
6
7<ahref="http://www.yahoo.com">Yahoo</a> |
8
9<ahref="http://www.maps.com">Maps</a> | 
10
11<ahref="http://www.tutorial.com">Tutorial</a>
12
13</body>
14
15</html>

در ادامه در فایل Main.html

 با استفاده از دستور require این فایل فراخوانی شده است. قطعه کد زیر فایل Main.html

 را نشان می‌دهد.

1<html>
2
3<body>
4
5<h1>welcome</h1>
6
7<?php require("menu1.html"); ?>
8
9</body>
10
11</html>

خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.

خروجی حاصل از اجرای دستور require در php

require و include در PHP چه تفاوتی با یکدیگر دارند؟

دستورات require و include شباهت بسیاری به یکدیگر دارند و هر دو به منظور فراخوانی فایل در PHP مورد استفاده قرار می‌گیرند. تنها تفاوت این دو دستور در نحوه مدیریت خطا توسط آن‌ها است.

  • دستور require در صورت عدم وجود فایل مورد نظر یا بروز خطا با ایجاد یک «خطای مرگبار» (Fatal Error) اجرای ادامه دستورات را متوقف می‌کند.
  • دستور include در صورت عدم وجود فایل مورد نظر یا بروز خطا تنها یک هشدار در خروجی چاپ کرده و اجرای دستورات را متوقف نمی‌کند.

در مجموع اگر قصد فراخوانی فایل‌های PHP را دارید، توصیه می‌شود برای فایل‌های ضروری اسکریپت از دستور require استفاده کنید، زیرا با سازوکار مدیریت خطا عملکرد صحیح برنامه را تضمین می‌کند. همچنین، برای فراخوانی فایل‌ها و کتابخانه‌های اختیاری نیز توصیه می‌شود از دستور include در PHP استفاده کنید.

یادگیری PHP با آموزش های رایگان فرادرس

خوشبختانه امروزه طیف وسیعی از منابع و دوره‌های آموزشی در دسترس علاقه‌مندان به برنامه نویسی PHP قرار دارد. فرادرس نیز به عنوان یکی از بزرگترین پلتفرم‌های آموزشی کشور دوره‌های آموزشی متعددی را در اختیار علاقه‌مندان قرار می‌دهد. اگر به برنامه نویسی PHP علاقه دارید، می‌توانید از مجموعه آموزش‌های رایگان PHP فرادرس استفاده کنید. دوره‌های رایگان فرادرس به شما کمک می‌کنند تا بدون صرف هزینه با اصول و مبانی زبان برنامه نویسی PHP آشنا شوید و دید بهتری نسبت به این زبان برنامه نویسی محبوب پیدا کنید.

مجموعه فیلم‌های آموزش رایگان PHP فرادرس
برای دسترسی به مجموعه فیلم‌های آموزش رایگان PHP فرادرس، روی تصویر کلیک کنید.

اگر قصد یادگیری PHP به صورت رایگان را دارید می‌توانید فیلم‌های آموزشی رایگان PHP فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است.

برخی از فیلم‌های آموزشی پیشنهادی موجود در این مجموعه به شرح زیر هستند.

جمع‌بندی

تابع include در PHP ابزار بسیار ارزشمند و پرکاربردی است که به توسعه دهندگان امکان می‌دهد تا ماژولار بودن و قابلیت استفاده مجدد کد خود را افزایش دهند. توسعه دهندگان با فراخوانی فایل‌ها به کمک تابع include می‌توانند کدهای خود را به بخش‌های کوچک‌تر و قابل مدیریت‌تر تبدیل کنند. در نتیجه، پایداری و کارایی کلی برنامه بهبود می‌یابد. بر همین اساس در این مطلب از مجله فرادرس سعی شد تا تابع include در PHP به طور کامل همراه با چندین مثال عملی مورد بررسی قرار گیرد. آموزش‌های پروژه محور گزینه بسیار خوبی برای تعمیق یادگیری هستند. برای این منظور می‌توانید فیلم‌های آموزشی موجود در مجموعه آموزش برنامه نویسی PHP فرادرس که لینک آن در ادامه آورده شده است را مشاهده کنید.

در این مطلب ابتدا به بررسی سینتکس استفاده از تابع include پرداخته شد. در ادامه نیز کاربردها، مزایا و نکات مهم در استفاده از این تابع مورد بررسی قرار گرفت. در انتها نیز به بررسی تفاوت‌های تابع require و include پرداخته شد.

source

توسط expressjs.ir