با عرض سلام و ادب خدمت همه دوستان
با کسب اجازه از مدیریت محترم و اساتید گرانقدر بنده قصد دارم در قسمت شی گرایی رو آموزش بدم
امیدوارم که مورد پسند همه دوستان واقع بشه
بلی
خیر
با عرض سلام و ادب خدمت همه دوستان
با کسب اجازه از مدیریت محترم و اساتید گرانقدر بنده قصد دارم در قسمت شی گرایی رو آموزش بدم
امیدوارم که مورد پسند همه دوستان واقع بشه
یکی از مشکلات برنامه نویسی فراموشی syntaxو سلسله مراتب توابع زبان برنامه نویسی می باشد.
شعار برنامه نویسی شی گرا "دنیا را آنچنان که هست برنامه نویسی کنیم" می باشد.
و phpبه مانند سایر زبان های برنامه نویسی سعی در مدل کردن برنامه ها،مطابق دنیای پیرامون می باشد که مدل کردن دنیای پیرامون در ساختار کامپیوتر را شی گرایی می گویند.
مفهوم شی:
مهمترین مولفه در برنامه نویسی شی گرا می باشد شی در برگیرنده ویژگی ها و رفتار های یک موجودیت می باشد.به عنوان مثال در یک buttonمی تواند یک شی باشد ای نشی هم ویژگی هایی دارد و هم رفتار.
اعضای یک شی:
شی از ترکیب ویژگی ها و رفتار ها (توابع) ایجاد شده است .تابع عضو یک شی را متد می گویند.که متغیر ها و متد ها را می توان در سه حوزه (seope)تعریف کرد.و حوزه دسترسی مشخص می کندکه اشیا دیگر می توانند به آن متغیر ها دسترسی داشته باشند یا نه؟ که در ادامه به بررسی این سه حوزه می پردازیم.
نحوه تعریف کلاس:
Class my_class
//my_class:نام کلاس
{
//محل تعریف متغیر ها و متدها
}
مثال عملی:
می خواهیم دراین بخش یک کلاسی تعریف کنیم که شامل یک سری متد ها و متغیر ها می باشد.
کاربر یک رشته ای را وارد می کند اگر داخل رشته علامت* بود به && تبدیل کند:
کد php:
/**
*in the name of allah
*author:reza_alie
*/
class myclass
{
function replace_str($str_input)
{
return str_replace('*', '&&', $str_input);//سه پارامتر می گیرد که اولی مقداری که می خواهیم به دنبال آن بگردیم و پارامتر دوم مقدار جایگزینی است و پارامتر سوم رشته ورودی می باشد str_replaceهمانطور که می دانید تابع
}
}
$myclass=new myclass();// برای درست کردن یک شی از یک کلاس از کلمه کلیدی new استفاده میکنیم
echo $myclass->replace_str("this *is *test");//برای دسترسی به متد های یک کلاس از علامت->استفاده می کنیم
/**
*
*output : this &&is &&test
*/
مثال دوم برای درک بهتر:
class myclass
{
var $text="this is test";
/**
برای تعریف متغیری به نام
$text
از کلمه کلیدی
var
استفاده می کنیم .
*/
function do_print()
{
echo $this->text;
/**
برای فراخوانی متد ها یا متغیر های شی بایستی از کلمه کلید
$this->
استفاده کنیم
*/
}
}
$myclass=new myclass();
//$myclass->text="im reza alie";
//برای ریختن مقدار جدید در متغیر می توانیم از کد فوق استفده کنیم
$myclass->do_print();
ارث بری :رابط (Interface) :
class Student extends Human
{
// methods and properties
}
interface HumanActions
{
public function eat();
public function sleep();
public function run();
}
class Human implements HumanActions
{
public function eat()
{
}
// etc ...
}
سلام چرا این دستور کار نمیکنه؟میشه راهنمایی کنی؟
class myclass{
function replace_str($str_input) {
return str_replace("-","_",$str_input);
}
}
if (isset ($_POST["btnsabt"]) && isset ($_POST["mytext"]) ) {
$replacer = new myclass();
$reste=$_POST["mttext"];
echo $replacer->replace_str($reste);
}
?>
<form method="post">
<input type="text" name="mytext">
<input type="submit" name="btnsabt">
</form>
برای این که از کلاس نمونه سازی نکردید
$myclass=new myclass();
$myclass->replace_str("");
تشکر =رضایت
$replacer = new myclass();
$reste=$_POST["mttext"];
echo $replacer->replace_str($reste);
سلام
پس این چیه؟
کد شما واسه من کار میکنه
فکر میکنم اگر اشتباه نکرده باشم ایراد از کد php تون نیست ایراداز کد html هستش دقیق تر نگاه کنید شاید نسخه xammp یا wammp شما نیاز داره که ادرس دقیق به فرم داده بشه
البته من یه اشتباهی تایپی داشتی اون رو رفع کردم
آخرین ویرایش به وسیله mehdi mah : دوشنبه 17 فروردین 1394 در 22:38 عصر
سلام
من این دو خط زیر رو متوجه نمیشم !!
کد $this-> برای چی استفاده میشود؟$myclass=new myclass();// برای درست کردن یک شی از یک کلاس از کلمه کلیدی new استفاده میکنیم
echo $myclass->replace_str("this *is *test")
خب این کلاس که شبیه همون تابع هست ! پس چرا از همون تابع استفاده نکنیم ؟
از this برای دسترسی به متغیر های درون کلاس استفاده میشه
سلام
دوست عزیز سلامسلام
من این دو خط زیر رو متوجه نمیشم !!
$myclass=new myclass();// برای درست کردن یک شی از یک کلاس از کلمه کلیدی new استفاده میکنیم
echo $myclass->replace_str("this *is *test")
کلمه newبرای نمونه سازی از کلاس هست
و همانطور که دوست گرامیmehdi mah فرمودنداز this برای دسترسی به متغیر های و متدهای درون کلاس استفاده میشه
سلام دوست گرامی وقتی میگیم این کد کار نمیکنه ممکنه منظورهای متفاوتی داشته باشیم اینکه صفحه سفید نشون میده این که یه ارور وارنینگ میده یا اینکه ارور نوتیک میده یا اینکه نتیجه بر نمیگردونه و هزاران حالت مختلف کد بالا برای من درس کار کرد ولی با این تفاوت که من بجای کپی پست کردن کدها بر اساس یه عادت خودم تایپ میکنم
سوال دوستمون اشتباه بود باید میگفتند خروجی مناسب برنمیگردونه من بعد از دقت متوجه شدم اشتباه تایپی داشتند در قسمت
$reste=$_POST["mttext"];
و بجای my txt نوشتن mt txt
و مسیله بعدی لحن صحبت شما به نظر بنده مناسب نبود امیدوارم من اشتباه کرده باشم
این لینک رو بخونید: http://www.barnamenevis.ir/articles/28/%D8%A...AF%D9%87%D9%85
بهتر بود استارتر عزیز قبل از شروع آموزش شئ گرایی، اول میگفتن چرا باید شئ گرایی رو یاد گرفت و امتیازهاش نسبت به برنامه نویسی رویه گرا چیه. تا وقتی نفهمیم ابزارها برای چه کاری خوب هستن، انگیزه ای برای یادگیریشون نداریم. بیان یکسری توضیحات کلی و خلاصه درمورد مسائل اونهم از منبعی مثل ویکیپدیا که بعنوان یک منبع علمی موثق مورد قبول نیست (بدلیل امکان ویرایش توسط هر کسی) و شیوه نگارش قابل فهم و درکی برای تازه کارها هم نداره، مناسب نیست.
مفاهیم شئ گرایی از روش استفاده اونا مهم تره بهتره چند جلسه ی اول رو به تشریح مفاهیم شئ گرایی بپردازید تا ذهن خواننده درک بهتری از مطالبتون داشته باشه ...
خوب و عالی
لطفا نظرت رو درمورد این آموزش هم بده
https://jobteam.ir/ProductUser/138-php-oop