نمی دونم چرا با این بخش پی اچ پی ارتباط بر قرار نمیکنم
کسی میتونه به زبان خودمونی تابع رو تعریف کنه و یک مثال درست درمون و کاربردی هم براش بزنه
ممنون میشم شیر فهمم کنید
نمی دونم چرا با این بخش پی اچ پی ارتباط بر قرار نمیکنم
کسی میتونه به زبان خودمونی تابع رو تعریف کنه و یک مثال درست درمون و کاربردی هم براش بزنه
ممنون میشم شیر فهمم کنید
تابع یک تکه کد پی اچ پی هست که یک اسم دارد و هروقت شما این اسم را اصلاحا صدا بزنید یا فراخوانی کنید ان تکه کد اجرا میشود.
مثال:
یک تابع ساده
ساختار تابع در پی اچ پی ساده است اول کلمه function و بعد نام تابع سپس بدنه تابع که با { شروع میشه و با } بسته میشهکد PHP:
function chap(){
echo 'my name is ali';
}
chap();
chap();
برای اجرا تابع هم کافیه اسمش را بنویسید مثلا تابع مثال بالا اسمش chap() هست و دوبار من فراخونیش کردن با نوشتن اسمش
هربار که صداش میزنم دستور echo اجرا میشه.
حالا که متوجه ساختار تابع شدید یکمی تکمیلتر یاد بگیرید ، تابع میتونه یکسری ورودی بگیره مثلا همین تابعی که اسمش chap() بود میتونه ورودی هم بگیره به این شکل
داخل پرانتز شما میتونید ورودی تابع را مشخص کنید مثلا الان تابع مثال ما اسم chap هست و ورودیش متغییر $str که دوبار فراخوانی کردیمش و هربار که فراخوانی میشه عبارتی که به عنوان ورودی داده شده را چاپ میکنهکد PHP:
function chap($str){
echo $str;
}
chap('hello ali');
chap('hi ali');
و در ادامه تابع میتونه خروجی داشته باشه با دستور return که فعلا تا همینجا کافیه![]()
واقعا ممنونم دقیقا با مثال دوم مشکل دارم
شما یه تابع تعریف کردی و یک متغیر
موقع تعریف تابع هم گفتی مقدار تابع همون مقدار متغیر باشه
حالا هر وقت تابع رو صدا کنی هر مقداری که توی اون متغیر باشه نمایش داده میشه؟
درسته؟
اگر لازمه که این بخش بیشتر ادامه داشتهباشه ممنون میشم که ادامه بدید
متغییری که به عنوان ورودی تابع تعریف میکنید فقط داخل بدنه تابع وجود داره و قابل استفاده است و مقدارش هم با فراخوانی تابع مشخص میشه و مقدار نداره تا زمانیکه تابع را صدا بزنید.
به این مثال دقت کنید
خروجی این مثال به این شکل خواهد بودکد PHP:
$str='hey boy';
function chap($str){
echo $str;
}
chap('test1');
chap('test2');
echo $str;
دقت کنید یک متغییر به اسم $str درست کردیم و مقدار بهش دادیم بعد تابع را تعریف کردیم و دو بار با مقدار های مختلف صداش زدیم ، اسم متغییر ورودی تابع $str است ولی این اسم با اینکه هم اسم $str تعریف شده قبل تابع است ولی هیچ ربطی به هم ندارند ، هر مقداری که زمان صدا زدن تابع بدهید مثل test1 یا test2 همان مقدار در متغییر $str ورودی تابع میشینه و در بدنه تابع هم استفاده میشهکد:test1 test2 hey boy
حالا به echo اخر دقت کنید وقتی بعد از صدا زدن تابع مقدار $str را چاپ میکنیم همان مقدار hey boy که اول بهش داده بودیم چاپ میشه یعنی ؟ ورودی تابع یک متغییر مستقل هست که هیچ ربطی به متغییر های دیگه نداره حتی اگر متغییری هم نامش هم وجود داشته باشه و زمان صدا زدن تابع مقدار میگیره ، در بدنه تابع قابل استفاده است و بعد از اجرای تابع از بین میره ...
---------- Post added at 01:12 AM ---------- Previous post was at 01:09 AM ----------
این سایت هم یک ابزار خوب هست که میتوانید مثال های بالا را انلاین اجرا کنید و نتیجه اش را ببینید
Test run php code online, right here - WriteCodeOnline.com/PHP
من تکمیل میکنم.
توابع یا همون متدها کاربرهای دیگه ای هم دارن.
برای مثال همینطور که شما میتونید مقداری رو براش ارسال کنید میتونید مقداری رو هم ازش بگیرید
برای مثال
حالا اگه تابع رو با مقداری که میخواید صدا بزنید فرضا براش name رو بفرستید به شما farshad برمیگردونه.کد PHP:
<?php
$array[name]="farshad";
$array[family]="mehrvarzan";
function get_name($row){
return $array[$row];
}
?>
کد PHP:
<?php
$name=get_name('name');
print "My name is '$name' and my family is 'get_name(family)' ";
?>
ویرایش توسط Mehrvarzan : February 15th, 2012 در ساعت 09:08
جسارتا من کدمثال بالا رو اصلاح کردم ،
1- چون متغییر $array خارج از تابع تعریف شده و تابع یک تیکه کدکاملا مستقل است باید داخل تابع متغییر $array را به صورت global تعریف کنید تا تابع بتواند به این متغییر دسترسی داشته باشد و از آن استفاده کند.
2- در فراخوانی تابع در دستور print یا echo نمی توانید تابع را داخل عبارت صدا بزنید و باید ابتدا عبارت را ببندید سپس با . (عامل join رشته در php) خروجی تابع را با عبارت مورد نظر پیوند بزنید.
مثلا:
این نوع فراخوانی تابع را اجرا نمی کند و عینا عبارت get_name(family) را چاپ می کند مثل یک کلمه انگلیسیکد PHP:
print "My name is '$name' and my family is 'get_name(family)' ";
ولی به این صورت تابع اجرا می شود و مقدار بازگشتی تابع چاپ می شود.کد PHP:
print "My name is '$name' and my family is ".get_name('family')." ";
کد اصلاح شده مثال بالا:
کد PHP:
$array[name]="farshad";
$array[family]="mehrvarzan";
function get_name($row){
global $array;
return $array[$row];
}
$name=get_name('name');
print "My name is '$name' and my family is ".get_name('family')." ";
ببخشید جسارت نباشه صرفا جهت تکمیل گفته های شما نوشتم.
در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)