PDA

View Full Version : چجوری اینجوری میشه $v->ss()->tt(); ؟



navid3d_69
جمعه 08 شهریور 1392, 11:31 صبح
سلام چجوری میشه از یک کلاس اینجوری استفاده کد ؟



$v->ss()->tt();


و اینکه کلا میشه تا چندتا متود رو پوشته هم اینجوری اجرا کرد؟

Veteran
جمعه 08 شهریور 1392, 12:04 عصر
class test{
public function tt($name){
echo $name;
}
public function ss(){
return new test();
}
}
$v=new test();
$v->ss()->tt('navid');

تابع ss باز خودش یک نمونه از کلاس رو بر میگردونه.
پس ما میتونیم باهاش به متد های اون کلاس دسترسی داشته باشیم.

در مورد چندتاش هم فکر نکنم محدودیت داشته باشه.

MRmoon
جمعه 08 شهریور 1392, 12:04 عصر
متد ss() يك object رو return كرده.

MostafaEs3
جمعه 08 شهریور 1392, 13:03 عصر
//////////

AliRezaPro
جمعه 08 شهریور 1392, 13:33 عصر
با self:: هم میتونید یه همچین چیزی رو پیاده سازی کنید

navid3d_69
جمعه 08 شهریور 1392, 13:37 عصر
من چیزی که توی ذهنم بود اینکه یک validator بنویسم مثلا اینجوری



$val->val($value)->required()->max('20')->min->('15');

MRmoon
جمعه 08 شهریور 1392, 14:33 عصر
شما مثلا تو م متد max متغيير $this رو برگردون ميتوني دوبره از همون كلاس استفاده كني.

Veteran
جمعه 08 شهریور 1392, 15:00 عصر
من چیزی که توی ذهنم بود اینکه یک validator بنویسم مثلا اینجوری



$val->val($value)->required()->max('20')->min->('15');

این ؟


<?php
class validator {
private $value;
private $max;
private $min;
public function val($value) {
$this->value = $value;
return $this;
}
public function maxValue($max) {
$this->max = $max;
return $this;
}
public function minValue($min) {
$this->min = $min;
if($this->value >= $this->min && $this->value <= $this->max) {
return true;
}
else {
return false;
}
}

}
$val = new validator();
if($val->val('10')->maxValue('20')->minValue('0')) {
echo "yes";
}
else {
echo "no";
}

?>

AliRezaPro
جمعه 08 شهریور 1392, 15:30 عصر
این پروژه رو دانلود کنید , از پوشه ی libs فایل bn_dan را ببینید
دقیقا همینجوری کل دیتابیس پیاده سازی شده است

http://baharnarenj.codeplex.com/