• اطلاعیه ها

    • Saeed Fard

      برگزاری چهارمین همایش Coder Conf و کد تخفیف برای کاربران وردپرس پارسی   20/04/97

      کدرکانف هر سال در آخرین پنجشنبه مرداد با بورد‌های مختلفی برگزار می‌گردد،امسال نیز کدرکانف در همین تاریخ با حضور برنامه نویسان مطرح کشور در بورد تخصصی جاوااسکریپت برگزار خواهد شد، یک گردهمایی متفاوت با طعم Javascript. Coderconf هر سال نسبت به سال‌های گذشته با حضور برنامه‌نویسان پر رنگتر می‌شود. ما سعی کردیم هر ساله به این کنفرانس مفهوم عمیق تری ببخشیم تا از آنچه در سال‌های گذشته عرضه شده به روزتر و مفیدتر واقع شویم. امسال فرصتی خواهد بود تا با نگرشی جدید و بهبود مطالب ارائه شده، عمیقتر به این موضوع نگاه کنیم تا بجای تکرار مباحث پیشین گامی هر چند کوچک در مسیر ارتقای دانش فنی برنامه‌نویسان ایرانی برداریم. ما در Coderconf ۴ با تمرکز بر روی Javascript نیت کرده‌ایم این فرصت را در اختیار برنامه نویسان قرار دهیم تا با ظرافت و استانداردهای روز دنیا کار خود را پیش ببرند. به نظر ما امسال زمان آن فرا رسیده‌است تا این زبان را به صورت تخصصی و از ابعاد مختلف به چالش بکشیم.   دبیر علمی همایش میلاد حیدری، کدرکانف ۴ را اینگونه توصیف کرده است :اشتراک گذاری دانش بهترین راه رسیدن به جاودانگی اطلاعات است. هر ساله همایش‌های زیادی برگزار میشه که افراد شرکت‌کننده می‌توانند با افراد مجرب شبکه سازی کنند. امسال در کدرکانف سعی کردیم علاوه بر بخش شبکه سازی بین افراد بیشتر روی انتقال دانش و کیفیت ارائه ها تمرکز داشته باشیم . به قصد یک گردهمایی بلند مدت بین برنامه‌نویسان جاوااسکریپت که با هم تبادل دانش و اطلاعات کنند گردهم آییم.
      بنده به عنوان عضو کوچکی از جامعه برنامه‌نویسان جاوااسکریپت ایران امیدوارم در کدرکانف امسال علاوه بر شبکه سازی، از اطلاعاتی که دوستان در این همایش در اختیارتان قرار می‌دهند استفاده کنید. در سایت همایش میتوانید سخنرانان و موضوع پنل همایش کدرکانف رو مشاهده کنید . علاقه‌مندان به حضور در این همایش می‌توانند با کد تخفیف wpparsi اقدام به ثبت نام در این گردهمایی کنند. سایت همایش :‌http://coderconf.org
      بلیط فروشی همایش :‌https://evand.com/events/coderconf4  
pary_daryayi

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

10 پست در این موضوع قرار دارد

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

پس فایده ی اونها چیه ؟


function a() {
function b() {
echo 'I am b';
}
echo 'I am a';
}
a();
a();

تو منوال نوشته :

As you might NOT expect, the second call to a() fails with a "Cannot redeclare b()" error. This behaviour is correct, insofar as PHP doesn't "allow functions to be redefined."

بعد اینطور هم نوشته :


function a() {
if ( ! function_exists('b') ) {
function b() {
echo 'I am b';
}
}
echo 'I am a';
}

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

ممنونم.

0

به اشتراک گذاری این پست


لینک به پست

برای اینکه php هنگام ساخت صفحه توابعش رو می خونه و بر اساس شرایط اونها صفحه را می سازه یعنی یا صفحه را بر اساس روال


if ( ! function_exists('b')

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

3

به اشتراک گذاری این پست


لینک به پست

میدونید , خوب متوجه نشدم !

کد دوم میگه اگر فانکشن b وجود نداره اونو ایجاد کن , ولی باز هم تابع a رو نمیشه بار دوم فراخوانی کرد ..

0

به اشتراک گذاری این پست


لینک به پست

کد کار میکنه


function a() {
if ( !function_exists('b')) {
function b() {
echo "This is function b.<br />";
}
}
echo "This is function a.<br />";
}
a();
a();
a();

اینم خروجیش


http://69.195.223.90/0e355-2/

1

به اشتراک گذاری این پست


لینک به پست

یه جاش رو اشتباه نوشتم


function a() {
if ( !function_exists('b')) {
function b() {
echo "This is function b. ---";
}
}
b();
echo "This is function a.<br />";
}
a();
a();
a();

خروجی


http://69.195.223.90/26b68-2/

1

به اشتراک گذاری این پست


لینک به پست

درسته.

سوال من اینه که چرا تو کد اول , دفعه ی اول نمیگه b رو نمیشناسه , ولی دفعه ی دوم میگه .

وقتی ما تابع a رو صدا میکنیم , همزمان باهاش تابع b هم ساخته میشه , نمیشه ؟

حالا چه بار اول باشه چه بار دوم , سوم و ...


function a() {
function b() {
echo 'I am b';
}
echo 'I am a';
}
a();
b();
a();

ما هیچ وقت در حالت معمولی , اول تابع رو چک نمیکنیم که ببینیم وجود داره یا نه , که اگر وجود نداشت اونو ایجاد کنیم .

ما همین که ایجاد میکنیم و فراخوانی , ساخته میشه دیگه.

0

به اشتراک گذاری این پست


لینک به پست

من فکر کنم هنوز هم متوجه منظور شما نشدم

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

اما در حالتی که b را مثلا شرطی کنید پاسخ شنما می شود اگر فرمول b اجرا شد پاسخ فرمول a هم فرمول b باشد و الا پاسخ a چیز دیگریست

2

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

سوال من اینه که چرا دفعه ی اول که a رو صدا میزنم خطا نمیگیره , ولی دفعه ی دوم به بعد خطا میگیره . ( کد اول )

ویرایش شده در توسط pary_daryayi
0

به اشتراک گذاری این پست


لینک به پست

دلیل استفاده تابع بصورت NESTED چیه ؟ بعضی از دلایل واقعا جالب نیستند

مثلا این دلیل :


namespace String;

if (\MULTIBYTE_MODE) {
function Length($string) {
return strlen($string);
}
} else {
function Length($string) {
return mb_strlen($string);
}
}

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

بگزارید روشن تر کنم قضیه رو , مثل این میمونه که تو شرایط مختلف به یکی دستور بدید که این کار رو انجام بده یا اون کار رو , در صورتی که میشه خود تصمیم گیری رو هم به شی واگذار کرد تا خودش در زمان های مشخص تصمیم گیری کنه . تو زبان های دیگه من چنین چیزی ندیدم تغریبا , تو سی شارپ هم بصورت مستقیم نمیشه , اما شاید بشه با delegate و لامبادا و آدرس تابع nested رو طراحی کرد

ببینید :


static void Main()
{
Console.WriteLine("Hello from main.");

Func<int, int> NestedMethod =
(x) =>
{
Console.WriteLine("In nested method. Value of x is {0}.", x);
return x;
};

int result = NestedMethod(3);
}

3

به اشتراک گذاری این پست


لینک به پست

این رو تست کن


<?php
function a() {
if ( ! function_exists('b') ) {
function b() {
echo 'I am b';
}
}
else {
echo 'I am a';
}
}
a();
a();
?>

2

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری