استفاده از متغییر در دیفالت فانکشن

این تاپیک 6 پاسخ و 3 مشارکت کننده دارد . آخرین آپدیت توسط :  naser naser ،‏ 2 سال و 10 ماه پیش .

این تاپیک تاکنون 487 بازدید داشته است .

نویسنده پست
دوشنبه ، 3 فوریه 2014     8:39 ق.ظ #


naser naser

Subscriber
1 پست1 تاپیک

با سلام یه سوال داشتم اول این کدو ببینید

چطوری میشه  مقدار پیش فرض فانکش را متغیر x قرار داد یا مقدار متغییر x در داخل فانکش استفاده کرد.

الان تو این مثال من که زدم تو خط 2 خطا میده به خاطر متغییر x و تو خط 4 هم مقدار 20 چاپ نمیشه بلکه متغیر x را یه متغیر جدید در نظر میگیره حتی گلوبال هم کردم نشد.

 

چطوری از متغیر خارج از فانکشن درون فانکش استفاده کنم اگر میشه مثال بزنید میخوام مقدار دیفالت فانکشنم متغیر باشه.

0  تشکر
دوشنبه ، 3 فوریه 2014     10:38 ق.ظ #


مهشاد کلانتری

Author
VIP
432 پست67 تاپیک

سلام

طبق مستندات خود php:

[nt]The default value must be a constant expression, not (for example) a variable, a class member or a function call.[/nt]

مقدار پیشفرض پارامتر باید یه عبارت ثابت باشه و نمیتونه متغیر باشه.

شما دوتا راه دارین حالا.

یا به این صورت تعریف کنید،

یا یه ثابت تعریف کنید و اون ثابت رو به عنوان مقدار پیشفرض پارامتر بنویسید:

ضمنا تو حالت بالایی وقتی global $x بنویسین کار میکنه و ارروری نمیده

شاید حواستون نبوده تابع رو صدا بزنید برای همین نتیجه رو نمی دیدین؟

2  تشکر
دوشنبه ، 3 فوریه 2014     11:17 ق.ظ #


کیوان علی محمدی

Authorplus
VIP
1792 پست4 تاپیک

رعایت نکردن Scope و یا میدان در دسترس بودن متغییر این مشکلات رو ایجاد میکنه.

0  تشکر
دوشنبه ، 3 فوریه 2014     11:23 ق.ظ #


مهشاد کلانتری

Author
VIP
432 پست67 تاپیک

[quote=22056]رعایت نکردن Scope و یا میدان در دسترس بودن متغییر این مشکلات رو ایجاد میکنه.[/quote]

آقای علی محمدی سلام. یکم بیشتر توضیح میدین؟ متوجه نشدم :)

0  تشکر
دوشنبه ، 3 فوریه 2014     11:34 ق.ظ #


کیوان علی محمدی

Authorplus
VIP
1792 پست4 تاپیک

Scope یا میدان متغییر میتونه محلی یا سراسری باشه،شما وقتی متغییری رو در داخل یه تابع تعریف میکنید دیگه نمیشه خارج از تابع بهش دسترسی داشت و یا انکه اگه متغییری در خارج از بدنه توابع تعریف بشه (سراسری) برای دسترسی به همون متغییر در بدنه تابع باید از  global براش استفاده کنیم.

2  تشکر
دوشنبه ، 3 فوریه 2014     1:55 ب.ظ #


مهشاد کلانتری

Author
VIP
432 پست67 تاپیک

[quote=22058]Scope یا میدان متغییر میتونه محلی یا سراسری باشه،شما وقتی متغییری رو در داخل یه تابع تعریف میکنید دیگه نمیشه خارج از تابع بهش دسترسی داشت و یا انکه اگه متغییری در خارج از بدنه توابع تعریف بشه (سراسری) برای دسترسی به همون متغییر در بدنه تابع باید از global براش استفاده کنیم.[/quote]

آهان پس به این میگن scope

مرسی اسمشو نمیدونستم

0  تشکر
دوشنبه ، 3 فوریه 2014     6:52 ب.ظ #


naser naser

Subscriber
1 پست1 تاپیک

واقعا ممنون نه تابع را صدا میکردم منتها من گلوبالی x را در خارج از فانکش تعریف میکردم و در فانکش استفاده میکردم که به جواب نمیرسیدم.

0  تشکر
پست 1 تا 7 (از مجموع 7 پست)

برای پاسخ دادن به این تاپیک باید وارد سایت شوید .