PDA

View Full Version : این خط کد یعنی چی؟



hatef_zt
پنج شنبه 24 اردیبهشت 1388, 21:13 عصر
سلام
کسی میتونه این خط رو تحلیلشو بگه؟؟
خواهشا کامل بگین:

if ( is_object($id) && isset($id->filter) && 'sample' == $id->filter )ممنون

__ziXet__
پنج شنبه 24 اردیبهشت 1388, 21:48 عصر
سلام
کسی میتونه این خط رو تحلیلشو بگه؟؟
خواهشا کامل بگین:

if ( is_object($id) && isset($id->filter) && 'sample' == $id->filter )ممنون
این یه دستوره که یه شرط 3 قسمتی رو بررسی میکنه.
اولی میگه که متغیر id یک آبجکت هست یا نه؟
دومی میگه که property متغیر id که اسمش filter هست ست شده یا نه؟
بعدی هم میگه که id->filter$ برابر رشته 'sample' هست یا نه؟ (ابته بهتر بود جاشون عوش بشه)

همین

hatef_zt
جمعه 25 اردیبهشت 1388, 00:24 صبح
دومی میگه که property متغیر id که اسمش filter هست ست شده یا نه؟


یعنی چی؟
میشه یه مثال بزنید و در اون یه property برای یه متغیر تعریف کنید؟؟
در ضمن اگه میشه یه توضیح خوب هم در مورد تابع overload() بدید ممنون

__ziXet__
جمعه 25 اردیبهشت 1388, 00:43 صبح
یعنی چی؟
میشه یه مثال بزنید و در اون یه property برای یه متغیر تعریف کنید؟؟
در ضمن اگه میشه یه توضیح خوب هم در مورد تابع overload() بدید ممنون

<?

class MyClass{
var name = "john"; //property
var family = "smith"; //property

function doit(){ //method

echo "MyClass's method";

}

}

$cls = new MyClass();
echo $cls->name; //print : john
echo $cls->family; //print : smith

cls->doit(); //call method



?>
توضیح در مرود overload :
http://ir.php.net/manual/en/function.overload.php

امیـرحسین
جمعه 25 اردیبهشت 1388, 01:05 صبح
چند تا لینک مفید:

Overloading (http://ir.php.net/__callstatic)
overload (http://ir.php.net/manual/en/function.overload.php)
overload examples (http://ir.php.net/manual/en/overload.examples.basic.php)

hatef_zt
جمعه 25 اردیبهشت 1388, 01:58 صبح
حالا با این تفاسیر
$id->filter
یعنی چی؟
منظور ارایه هستش؟
اخه در مثال شما property name بود john
اما این property اسم نداشت!!!
در واقع سئوامو از ابتدا باید اینطوری می پرسیدم:
چطوری میشه برای یه PROPERTY اسم تعریف کرد؟؟(با توجه به توضیحات اولیه شما)
ممنون

hatef_zt
جمعه 25 اردیبهشت 1388, 02:09 صبح
میشه لطف کنید خودتون به فارسی یه توضیح بدین؟؟

این مطالب رو قبلا بارها خوندم اما نفهمیدم!!!

__ziXet__
جمعه 25 اردیبهشت 1388, 10:32 صبح
ببین یه احتمال دیگه هم هست!
این id->filter$ تو کجاهست؟ اگه تو یه حلقه مربوط fetch کردن اطلاعات از دیتابیس باشه قضیه اش فرق فوکوله!
اگه برای fetch کردن باشه باید شرط حلقه while یچیزی تو مایه های :

while( $id = mysql_fetch_object($result)){



}در این صورت id به عنوان یه آبجکت معرفی میشه که propertyهاش فیلدهای تیبلی هست که select روش انجام شده!
اون مثال بالای من در صورتی که بود که به صورت دستی یه کلاس تعریف میکردیم.
تو اون مثال بالا اول یه کپی از کلاس در متغیر cls ذخیره شده حالا اون cls یه آبجکت هست که دوتا prpertyداره به نام name و family و یه متد داره به نام doit !
در مورد overload هم دقیقا و به طور ساده تو اون لینک توضیج داده ولی من دوباره میگم.
فرض کن تو همون کلاس بالا که اسمش MyClass بود بخوای در هنگام ایجاد یک شی یه پارامتری به کلاس بفرستی یا اینکه همون لحظه یه methodی رو از اون کلاس call کنی ! در این صورت میتونی از overload استفاده کنی.
برای این کار باید یه متد هم نام Class name که تو مثال ما میشه MyClass تو کلاس بذاری که بعد از ساخت اولین شی از کلاس این متد خود به خود اجرا میشه.
مثال:

class MyClass{
var name = "john"; //property
var family = "smith"; //property

function MyClass($name=$this->name){ //overload method

echo $name;

}

function doit(){ //method

echo "MyClass's method";

}
}خب حالا نجوه استفادش:


$cls = new MyClass(); //print : john
//or
$cls = new MyClass("Amir"); //print : Amir

__ziXet__
جمعه 25 اردیبهشت 1388, 10:35 صبح
راستی پیشنهاد میکنم که یه مفاله راجع به برنامه نویسی شی گرا بخون.

موفق باشید

hatef_zt
جمعه 25 اردیبهشت 1388, 11:48 صبح
راستی پیشنهاد میکنم که یه مفاله راجع به برنامه نویسی شی گرا بخون.

موفق باشید


ممنون
قبلا خوندم
مشکل اصلیم سره همون یه تیکه کده
مربوط میشه به یه قسمت از wordpress
نمی فهمم منظورش از این filter چیه و کجاست؟!!
:(
اگه اصل کد رو بزارم حال داری بخونیش؟

برای حل یه مشکلش به این کد بر خوردم گیر کردم :(
فایل رو گذاشتم
خط 80

hatef_zt
جمعه 25 اردیبهشت 1388, 18:05 عصر
راستی پیشنهاد میکنم که یه مفاله راجع به برنامه نویسی شی گرا بخون.

موفق باشید

راستی با این تفاسیر تفاوت overload با Constructor چیه؟؟!!

امیـرحسین
جمعه 25 اردیبهشت 1388, 19:51 عصر
Constructor متدی هست که وقتی آبجکت رو نمونه گیری می کنید خودبخود اجرا میشه. با خط زیر متد Constructor اجرا میشه:

$object = new TheClass;

متدهای overload در زمانهای خاصی اجرا میشه و مثلا call__ وقتی اجرا میشه که بخوایم متدی رو استفاده کنیم که تعریف نشده و .... توابع overload مخصوص PHP5 هستند!!!