نیاز به کمک جهت فراخوانی یک فانکشن بسیار ساده

این تاپیک 9 پاسخ و 3 مشارکت کننده دارد . آخرین آپدیت توسط :  Hosein ،‏ 9 ماه و 2 هفته پیش .

۴۲۱ visibility
نویسنده پست
چهارشنبه ، ۱۵ شهریور ۱۳۹۶     ۱۱:۴۴ ق.ظ #


reza____ebliser

Subscriber
605 پست94 تاپیک

سلام روز بخیر؛ بنده یک فانکشن نمونه دارم که بسیار ساده هست که بعد خودم تکمیل می کنم، اما در فراخوانی این فانکشن به مشکل برخوردم و هر کاری می کنم امکان فراخوانی این فانکشن را ندارم؛ لطفاً کد زیر را بررسی کنید و مشکل را به بنده اطلاع دهید. با تشکر از شما

همانطور که مشاهده می کنید یک فانکشن بسیار ساده هست؛ حالا توی متن که میخوام اون رو فراخوانی کنم اجرا نمیشه و مقدار را بر نمی گرداند.

نکته: به شکل زیر می تونم ازش استفاده کنم و بلدم به این شکل چطور فراخوانی کنم، اما در جایی که می خوام از این کد استفاده کنم به شکل زیر امکان پذیر نیست کد نویسیش

و حتماً باید تابع از درون متن فراخوانی بشه به این شکل

1  تشکر
پنج شنبه ، ۱۶ شهریور ۱۳۹۶     ۵:۴۰ ق.ظ #


hamed_z2001

Subscriber
159 پست52 تاپیک

اول از همه دوست عزیز ... کدهاتون خیلی شلوغ و بهم ریختست ، برای خودتون بهتره که کد رو تمیز ، با رعایت ایندکس و ... وارد کنید

در موقع تعریف تابع ، نوع آرگومان ورودی تعیین نشده ، باید مشخص کنید که $num از نوع int است

شما موقع فراخونی تابع ، عدد 200 رو به صورت رشته قرار دادید ، و بعد داخل فانکشن ، اومدید در 5000 ضرب کردید
رشته * عدد صحیح == ؟؟؟
باید عدد رو به صورت int وارد کنید

مشکل بعدی ، فکر میکنم ، الحاق رشته و فانکشنتون درست نیست ، شاید اینجا کدها قشنگ نشون نمیده ، ولی به نظرم الحاقتون مشکل داره !!

1  تشکر
پنج شنبه ، ۱۶ شهریور ۱۳۹۶     ۶:۲۶ ق.ظ #


reza____ebliser

Subscriber
605 پست94 تاپیک

سلام

دوست عزیز با تشکر از توضیح شما اما آخه در کل یک خط کد هست؛ شلوغ و به هم ریختگیش کجا هست ؟

طبق توضیحات شما به شکل زیر هم که کد را قرار بدم باز هم اجرا نمیشه ومشکل بنده بر طرف نشد

ببینید مشکل اصلاً از فانکشن نیست به هیچ وجه، چون اگر مشکلی داشت خطای اون نمایش داده میشد

مشکل اینجاست که اصلاً نمیشه تابع را فراخوانی کرد

امکانش هست شما لطف و بزرگواری بفرمایید و کد زیر را تست کنید و مشکل اون را برطرف کرده و ارسال کنید؟

در کل دو خط کد بیشتر نیست؛ خواهش می کنم بزرگواری کنید و اوکی کنید این رو

این که به این شکل نوشتم نمونه هست، و مشکل من سر فراخوانی تابع هست که در وسط متن به هیچ وجه تابع اجرا نمیشه

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

خواهش می کنم کد را بررسی بفرمایید و کد صحیح را به بنده بدید لطفاً

 

1  تشکر
پنج شنبه ، ۱۶ شهریور ۱۳۹۶     ۱۲:۳۷ ب.ظ #


Hosein

Subscriber
8 پست0 تاپیک

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

نام تابع به صورت رشته ای در یک متغیر قرار بدید و داخل متن اون رو با ورودی هاش صدا بزنید.

1  تشکر
پنج شنبه ، ۱۶ شهریور ۱۳۹۶     ۱۲:۳۹ ب.ظ #


Hosein

Subscriber
8 پست0 تاپیک

1  تشکر
پنج شنبه ، ۱۶ شهریور ۱۳۹۶     ۳:۳۷ ب.ظ #


reza____ebliser

Subscriber
605 پست94 تاپیک

آقا متشکرم از شما

"شما تویه پی اچ پی مجاز نیستید تابع رو در داخل رشته فراخوانی کنید"

با این توصیفات کاری که میخوام رو نمی تونم انجام بدم

اما خیلی جاها دیدم انجام میشه

مثلاً توی وردپرس یا مابقی سیستم ها به این شکل یک فانکشن را از وسط متنون درخواست می کنید
[gallery(25)]
اینجوری فانکشن مورد نظر اجرا میشه و مثلاً مقدار گالری شماره 25 برمیگرده

1  تشکر
پنج شنبه ، ۱۶ شهریور ۱۳۹۶     ۳:۴۳ ب.ظ #


Hosein

Subscriber
8 پست0 تاپیک

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

1  تشکر
پنج شنبه ، ۱۶ شهریور ۱۳۹۶     ۳:۴۷ ب.ظ #


reza____ebliser

Subscriber
605 پست94 تاپیک

خب به طور مثال وردپرس هم همین کار رو می کنه دیگه

فانکشن در وسط متن فراخوانی شده و اجرا میشه

 

چطور میتونم برای کد عادی که وردپرس نباشه شورتکد تعریف کنم ؟

ساده ترین راه این کار چی هست؟

1  تشکر
پنج شنبه ، ۱۶ شهریور ۱۳۹۶     ۳:۵۴ ب.ظ #


reza____ebliser

Subscriber
605 پست94 تاپیک

آقا اون نمونه کدی که شما لطف کردید و ارسال کردید که کار کنه فقط توی حالت echo کار می کنه نه استرینگی که بعد اکو شده باشه

الان مقدار content را از دیتابیس میگیرم که محتواش رو گذاشتم:

 

1  تشکر
پنج شنبه ، ۱۶ شهریور ۱۳۹۶     ۴:۰۰ ب.ظ #


Hosein

Subscriber
8 پست0 تاپیک

خوب این کار نیاز داره شما به عبارات منظم آشنا باشید و یکمم پیچیدست و من هم متسقیما نمیتونم بگم این کار رو انجام بدید جواب میده چون قبلا انجامش ندادم ولی با آزمون و خطا میتونید به جواب برسید این مورد رو هم تو stackoverflow بررسی کنید ببینید جواب میده
https://stackoverflow.com/questions/20237924/shortcode-plugins-for-own-custom-cms-like-wordpress-shortcode-plugins

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

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