سلام دوستان
اگر یک کلاس مثلا کلاس error داشته باشید بخوایم مقدار پروپرتیهای این کلاس در یک فایل مثلا set error مقدار دهی کنیم و بعدش از این پروپرتی ها در یک فایل دیگر مثلا فایل show error استفاده کنیم چطور باید این کار انجام بدهیم؟
سلام. فایلی که میخواید توی اون از کلاس error استفاده کنید چه نوع فایلی هست؟ اگه اون هم از نوع کلاس هست که میتونید از فایل error ارث بری (extends) کنید و اگر در یک فایلی غیر از کلاس ها میخواید استفاده کنید میتونید از کلاس error یک آبجکت بسازید و به پراپرتی های عمومی و متدهای عمومی اون دسترسی داشته باشید. نحوه استفاده هم با یه جستجوی کوچیک قابل دسترس هست در وبسایت های آموزشی
فایل مورد نظر یک فایل غیر کلاسی هستش. من پروپتی براش set می کنم و تا اینجای کار مشکلی ندارم. مشکل این که اگر بخوام از اون پروپرتی داخل یک فایل دیگر که اون هم غیر کلاسی هستش استفاده کنم دوباره باید یک شی جدید داخل بسازم تا بتونم به اون پروپرتی دسترسی داشته باشم وقتی این کار کردم می گه پرپرتی خالیه
@amin.webdesign
برای مثال اگر کلاس Myerror به این صورت باشه:
class Myerror
{
public $errors=[]
}
فایل foo به این شکل باشه:
$error=new Myerror()
$error->errors[]='barrrrr'
فایل show فایلی هست که من می خوام ارروی که در فایل بالا قرار دادم نمایش بدم ولی نمی شه به این صورت :
$e=new Myerror
var_dump($e->errros)
خب شما اولا در نوع مقدار دهی و هم نوع صدا زدن اررور دچار خطا شدید.
ابتدا بایستی مقدار دهی رو بسپرید به یک متد
دوم بایستی از همون شی که از کلاس myError ساختید در طول پروژه استفاده کنید نه اینکه در یک جای دیگه از طریق یک شی که ساختید مقدار دهی رو انجام بدید و در جای دیگه شی دیگه بسازید و به مقادیر دسترسی داشته باشید.
به کدی که نوشتم دقت کنید.
class MyError {
public errors = [];
public function setError($value) {
$this->errors[] = $value;
return $this;
}
}
حالا در فایلی مثلا به نام show که میخواید خطا رو مقدار دهی و دسترسی داشته باشید باید به شکل زیر عمل کنید که ابتدا باید کلاس myError رو include کنید که نوع include کردن بستگی به نوع پروژه شما داره که وارد این بحث نمیشم.
$error = new myError;
$error->setError('example error for current input');
var_dump($error->errors);
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟