راکت

ذخیر یک مقدار در یک کلاس در php

5 پاسخ

سلام دوستان
اگر یک کلاس مثلا کلاس error داشته باشید بخوایم مقدار پروپرتی‌های این کلاس در یک فایل مثلا set error مقدار دهی کنیم و بعدش از این پروپرتی ها در یک فایل دیگر مثلا فایل show error استفاده کنیم چطور باید این کار انجام بدهیم؟

Reza Jm
Reza Jm
@rezajamalzadeh900
ثبت پرسش جدید

پاسخ‌ها

5
امین محمدزاده
امین محمدزاده
@amin.webdesign

تخصص: برنامه نویسی وب - Laravel

سلام. فایلی که میخواید توی اون از کلاس error استفاده کنید چه نوع فایلی هست؟ اگه اون هم از نوع کلاس هست که میتونید از فایل error ارث بری (extends) کنید و اگر در یک فایلی غیر از کلاس ها میخواید استفاده کنید میتونید از کلاس error یک آبجکت بسازید و به پراپرتی های عمومی و متدهای عمومی اون دسترسی داشته باشید. نحوه استفاده هم با یه جستجوی کوچیک قابل دسترس هست در وبسایت های آموزشی

Reza Jm
Reza Jm
@rezajamalzadeh900

تخصص: برنامه نویس php

فایل مورد نظر یک فایل غیر کلاسی هستش. من پروپتی براش set می کنم و تا اینجای کار مشکلی ندارم. مشکل این که اگر بخوام از اون پروپرتی داخل یک فایل دیگر که اون هم غیر کلاسی هستش استفاده کنم دوباره باید یک شی جدید داخل بسازم تا بتونم به اون پروپرتی دسترسی داشته باشم وقتی این کار کردم می گه پرپرتی خالیه
@amin.webdesign

شاید پاسخ شما همین‌جا باشد

امین محمدزاده
امین محمدزاده
@amin.webdesign

تخصص: برنامه نویسی وب - Laravel

کدی که نوشتید رو ساده سازی کنید و اینجا بذارید بررسی و راهنمایی میکنیم.

Reza Jm
Reza Jm
@rezajamalzadeh900

تخصص: برنامه نویس php

برای مثال اگر کلاس Myerror به این صورت باشه:

class Myerror
{
public $errors=[]
}

فایل foo به این شکل باشه:

$error=new Myerror()
$error->errors[]='barrrrr'

فایل show فایلی هست که من می خوام ارروی که در فایل بالا قرار دادم نمایش بدم ولی نمی شه به این صورت :

$e=new Myerror
var_dump($e->errros)

@amin.webdesign
@ali.bayat

امین محمدزاده
امین محمدزاده
@amin.webdesign

تخصص: برنامه نویسی وب - Laravel

خب شما اولا در نوع مقدار دهی و هم نوع صدا زدن اررور دچار خطا شدید.
ابتدا بایستی مقدار دهی رو بسپرید به یک متد
دوم بایستی از همون شی که از کلاس 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);

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام