جسارتا من کدمثال بالا رو اصلاح کردم ،
1- چون متغییر $array خارج از تابع تعریف شده و تابع یک تیکه کدکاملا مستقل است باید داخل تابع متغییر $array را به صورت global تعریف کنید تا تابع بتواند به این متغییر دسترسی داشته باشد و از آن استفاده کند.
2- در فراخوانی تابع در دستور print یا echo نمی توانید تابع را داخل عبارت صدا بزنید و باید ابتدا عبارت را ببندید سپس با . (عامل join رشته در php) خروجی تابع را با عبارت مورد نظر پیوند بزنید.
مثلا:
کد PHP:
print "My name is '$name' and my family is 'get_name(family)' ";
این نوع فراخوانی تابع را اجرا نمی کند و عینا عبارت 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')." ";
ببخشید جسارت نباشه صرفا جهت تکمیل گفته های شما نوشتم.