Reza Jm
3 سال پیش توسط Reza Jm مطرح شد
5 پاسخ

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

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


ثبت پرسش جدید
امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 3 سال پیش مطرح شد
0

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


Reza Jm
تخصص : برنامه نویس php
@rezajamalzadeh900 3 سال پیش مطرح شد
0

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


امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 3 سال پیش مطرح شد
0

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


Reza Jm
تخصص : برنامه نویس php
@rezajamalzadeh900 3 سال پیش آپدیت شد
0

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

class Myerror
{
public $errors=[]
}

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

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

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

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

@amin.webdesign
@ali.bayat


امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 3 سال پیش مطرح شد
0

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

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

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