جستجو برای:
  • دوره ها
    • حساب کاربری
    • سبد خرید
  • مقالات
 
نارنجک
0

ورود و ثبت نام

دسته بندی‌ دوره‌ها
  • صفحه اصلی
  • دوره ها
    • دوره مقدماتی HTMLCSS
    • دوره پروژه محور php
    • دوره مقدماتی برنامه نویسی
  • مقالات
    • آموزش پی اچ پی
    • آموزش لاراول
    • آموزش جاوا اسکریپت
    • آموزش HTML
    • آموزش CSS
    • آموزش وردپرس

وبلاگ

نارنجک مقالات کل دسته بندی ها آموزش پی اچ پی توابع در php

توابع در php

۱۳۹۹/۰۸/۱۶
ارسال شده توسط ساسان احمدی
آموزش پی اچ پی ، آموزش‌های رایگان ، کل دسته بندی ها ، مقالات
363 بازدید
توابع در php

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

فهرست محتوا پنهان
1 توابع داخلی در PHP
2 توابع تعریف شده توسط کاربر در PHP
3 تعریف تابع در PHP
4 آرگومان‌های تابع در ‌PHP
5 مقدار پیش‌فرض آرگومان در PHP
6 مقدار بازگشتی توابع در PHP
7 نوع داده بازگشتی توابع در PHP
8 ارسال آرگومان با ارجاع(by Reference)

 

قدرت واقعی PHP از توابع اون ناشی می‌‌شه. php بیش از ۱۰۰۰ تابع داخلی(built-in) تو خودش داره، که کمک می‌کنه بتونیم سریع‌تر و بهتر برنامه‌هامونو بنویسیم. علاوه بر این می‌تونیم توابع دلخواه خودمونو بنویسیم و گسترش بدیم.

توابع داخلی در PHP

PHP بیش از ۱۰۰۰ تابع داخلی‌ داره، که می‌تونیم اون‌ها رو مستقیماً، از درون یه اسکریپت از هر جای برنامه، برای انجام یه کار خاص فراخوانی کنیم. توابع مربوط به Array، Date، FTP، Error و… از این سری توابع هستن.

توابع تعریف شده توسط کاربر در PHP

در زبان PHP علاوه بر توابع داخلی، امکان ایجاد توابع دلخواه و شخصی هم وجود داره.
  • تابع مجموعه‌ای از دستورات هستن که در یک بلوک قرار می‌گیرن و تو قسمت‌های مختلف برنامه استفاده می‌شن.
  • توابع موقع بارگزاری(load) صفحه، بصورت خودکار اجرا نمی‌شن.
  • یه تابع زمانی اجرا می‌شه، که از تو کد فراخوانی بشه.

تعریف تابع در PHP

ما می‌تونیم تابع رو با کلمه‌کلیدی function تعریف کنیم. نحوه‌ی نوشتن(syntax) توابع در php بصورت زیر هستش:

function functionName() {
  کدهای تابع در این قسمت نوشته می‌شه;
}

نکته: نام تابع باید با یه حرف انگلیسی یا علامت underscore(آندرلاین_) شروع بشه. نام توابع به حروف بزرگ و کوچک حساس نیستن.

باید سعی کنیم به تابع نامی بدیم که کار اون رو منعکس کنه.

در مثال زیر، تابعی به نام ()sayHello رو تعریف می‌کنیم. بدنه‌ی این تابع با علامت براکت باز( } ) شروع می‌شه و با علامت براکت بسته( { ) تموم می‌شه. و در بلوک تابع جمله‌ی “Hello narenjak” رو در خروجی چاپ می‌کنیم. در ادامه با فراخوانی تابع ()sayHello دستورات اون اجرا می‌شن و جمله‌ی “Hello narenjak” در خروجی چاپ می‌شه.

<?php
function sayHello() {
  echo "Hello narenjak";
}

sayHello(); // فراخوانی تابع
?>

آرگومان‌های تابع در ‌PHP

بعضی وقتا نیاز داریم یه سری اطلاعات رو به تابع ارسال کنیم تا خروجی تابع براساس داده‌ای که بهش ارسال کردیم برگردونده بشه. این اطلاعات رو می‌تونیم با استفاده از آرگومان‌ها به تابع ارسال کنیم. آرگومان‌ها دقیقا مثل متغیرها هستن. به مثال‌های زیر دقت کنید:
<?php
function sayHello($name) {
  echo "Hello $name.<br>";
}

sayHello("ali");
sayHello("sasan");
sayHello("world!");

// Hello ali.
// Hello sasan
// Hello world!
?>

در مثال بالا، تابع ()sayHello یک آرگومان به نام name$ داره که هر بار که تابع فراخوانی می‌شه، اسم موردنظر رو به تابع پاس می‌ده. تابع در هر بار فراخوانی اسمی که توسط آرگومان بهش پاس دادیم رو در جمله “.Hello $name” به جای متغیر name$ قرار می‌ده و نتیجه رو تو خروجی چاپ می‌کنه.

بسته به نیاز امکان داره تعداد آرگومان‌های یه تابع بیش از یکی باشه.

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

از نسخه PHP7 به بعد، نوع داده اضافه شد. این ویژگی به ما کمک می‌کنه که موقع تعریف تابع نوع داده هر کدوم از آرگومان‌ها رو مشخص کنیم. با افزودن strict به اسکریپت‌مون هر کدوم از آرگومان‌ها رو مجبور می‌کنیم بصورت دقیق همون نوع داده رو داشته باشن. و در صورت عدم تطابق نوع داده خطای “Fatal Error” نمایش داده می‌شه. به دو مثال زیر دقت کنین تا تفاوت دو حالت رو بررسی کنیم.

<?php
function addNumbers(int $a, int $b) {
  return $a + $b;
}
echo addNumbers(5, "5 days");
// ۱۰
?>

در مثال بالا، چون strict فعال نیست، آرگومان دوم یعنی “۵days” رو به عدد ۵ از نوع int تبدیل می‌کنه و در خروجی عدد ۱۰ چاپ می‌شه.

برای مشخص کردن strict باید عبارت declare(strict_types=1) رو اضافه می‌کنیم. این خط کد حتما باید در اولین خط اسکریپت phpمون نوشته بشه.

<?php declare(strict_types=1); // strict requirement

function addNumbers(int $a, int $b) {
  return $a + $b;
}
echo addNumbers(5, "5 days");
?>

همون مثال قبلی رو این بار با فعال کردن strict نوشتیم. چون باید نوع داده بصورت دقیق نوشته بشه و آرگومان دوم بجای عدد از نوع int متغیری از نوع string فرستاده شده پس خطای “Fatal Error” در خروجی نمایش داده می‌شه.

مقدار پیش‌فرض آرگومان در PHP

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

<?php declare(strict_types=1); 
function setHeight(int $minheight = 50) {
  echo "قد شما برابر : $minheight است.<br>";
}

setHeight(350);
setHeight(); مقدار پیش‌فرض یعنی ۵۰ در خروجی نمایش داده می‌شه.
?>

در مثال بالا، مقدار پیش‌فرض آرگومان تابع برابر ۵۰ هست. در فراخوانی اول(خط ۶) تابع مقدار آرگومان برابر عدد وارد شده یعنی ۳۵۰ هستش. اما در فراخوانی دوم(خط ۷) چون مقدار آرگومان وارد نشده، مقدار آرگومان برابر مقدار پیش‌فرض یعنی ۵۰ می‌شه.

مقدار بازگشتی توابع در PHP

هر وقت نیاز داشتیم مقداری رو در تابع محاسبه کنیم و اون رو به جایی که تابع فراخوانی شد ارسال کنیم، از return استفاده می‌کنیم.

<?php declare(strict_types=1);
function sum(int $x, int $y) {
  $z = $x + $y;
  return $z;
}

echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
?>

در مثال بالا، در خط ۷ تابع ()sum با دو آرگومان ۵ و ۱۰ فراخوانی می‌شه. تابع اجرا می‌شه دو آرگومان ورودی با هم جمع می‌شن و نتیجه توسط return به جاییکه تابع فراخوانی شد(خط ۷) برگردونده می‌شه.

نوع داده بازگشتی توابع در PHP

از نسخه ۷ به بعد در زبان PHP مانند تعریف نوع آرگومان‌ها، نوع مقدار بازگشتی تابع رو هم می‌شه مشخص کرد. با فعال کردن strict در ابتدای اسکریپت php. و در صورت برابر نبودن نوع مقدار خروجی با نوعی که برای تابع در نظر گرفتیم با خطای “Fatal Error” مواجهه می‌شیم. برای تعریف نوع خروجی تابع، علامت ( : ) و نوع خروجی تابع رو سمت راست تعریف تابع و قبل از شروع بدنه‌ی تابع( } ) قرار می‌دیم.

<?php declare(strict_types=1); 
function addNumbers(float $a, float $b) : float {
  return $a + $b;
}
echo addNumbers(1.2, 5.2);
?>

در مثال بالا، در خط ۲ خروجی تابع رو از نوع float تعریف کردیم.

نوع خروجی تابع می‌تونه با نوع آرگومان‌های تابع تفاوت داشته باشه. اما باید مطمئن شیم نوع خروجی تابع صحیح باشه.

<?php declare(strict_types=1);
function addNumbers(float $a, float $b) : int {
  return (int)($a + $b);
}
echo addNumbers(1.2, 5.2);

// ۶
?>

در مثال بالا، نوع خروجی تابع از نوع int هستش. در صورتی که آرگومان‌های تابع از نوع float هستن. جمع دو عدد ورودی(۱.۲ و ۵.۲) برابر ۶.۴ می‌شه ولی چون خروجی تابع از نوع int هست. مقدار خروجی به نوع int تبدیل می‌شه و مقدار عدد ۶ رو برمی‌گردونه.

ارسال آرگومان با ارجاع(by Reference)

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

<?php
function add_five(&$value) {
  $value += 5;
}

$num = 2;
add_five($num);
echo $num;
// ۷
?>

در مثال بالا، در ابتدا مقدار متغیر num$ برابر عدد ۲ هستش. بعد از اون در خط ۷ متغییر رو به تابع می‌فرستیم. در تابع عدد ورودی با عدد ۵ جمع می‌شه. چون آرگومان با ارجاع به تابع فرستاده شده بود با تغییر عدد در تابع مقدار اصلی اون متغیر هم تغییر می‌کنه و در خروجی عدد ۷ رو نمایش می‌ده.

 

خب این آموزش PHP هم تموم شد. امیدوارم براتون مفید بوده باشه.

5 / 5 ( 3 امتیاز )
اشتراک گذاری:
برچسب ها: آرگومان چیست؟آموزش تخصصی برنامه نویسیانواع تابع در زبان phpپارامتر ورودی تابع در phpتابع داخلی در phpتابع در phpنارنجک

مطالب زیر را حتما مطالعه کنید

data types در جاوا اسکریپت

data types در جاوا اسکریپت انواع داده

بعد از آشنایی با متغیرها نوبتِ یادگیری انواع داده یا data types در جاوا اسکریپت...
ساختار برنامه در لاراول

ساختار برنامه ‌در لاراول

در این مقاله از سری مقالات آموزش Laravel سایت نارنجک، ساختار برنامه ‌در لاراول رو با...
کاربرد Attribute در HTML

کاربرد Attribute در HTML

بعد از آشنایی با ساختار تگ های HTML نوبت یادگیری Attribute ها است در این...
سلکتورها در CSS

سلکتورها در CSS

در مقاله قبل فهمیدیم CSS چیه و با CSS آشنا شدیم در این مقاله می...
عملگرها در جاوا اسکریپت

عملگرها در جاوا اسکریپت

بعد از آشنایی با متغیر ها در زبان جاوا اسکریپت اولین چیزی که هرکسی باید...
حلقه‌ها در زبان php

حلقه‌ها در زبان php

در این مقاله از سری مقالات آموزش PHP سایت نارنجک، با هم حلقه‌ها در زبان php...
قدیمی تر data types در جاوا اسکریپت انواع داده

دیدگاهتان را بنویسید لغو پاسخ

جدیدترین مقالات
  • توابع در php ۱۳۹۹/۰۸/۱۶
  • data types در جاوا اسکریپت انواع داده ۱۳۹۹/۰۸/۱۶
  • ساختار برنامه ‌در لاراول ۱۳۹۹/۰۸/۱۱
  • کاربرد Attribute در HTML ۱۳۹۹/۰۸/۱۰
  • سلکتورها در CSS ۱۳۹۹/۰۸/۰۷
درباره نارنجک

ما در نارنجک به دنبال آموزش حرفه ای و پروژه محور شما هستیم. آموزش های بی‌نظیری که شما را از هر آموزش دیگری بی نیاز می‌کند.

  • info@narenjak.com
دسترسی سریع
  • مقالات
  • دوره ها
  • حساب کاربری
  • تماس با ما
  • درباره ما
تمامی حقوق برای سایت نارنجک محفوظ می باشد.

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت