نوشته شده توسط
hobab-theme
سلام دوستان
تا زمانی که بصورت مستقیم از داخل function.php از این کلاس db استفاده کنم مشکلی نیست. ولی وقتی توی فایل function.php میام و یه تابع ایجاد میکنم و میخوام توی اون تابع از کلاس db استفاده کنم اصلا نمیشناسه اون رو و متدهای اون رو.
سپاس
سلام
با توجه به اینکه اتصال به دیتابیس بهتر است تنها یک بار در کل برنامه انجام شود تا از سربار اضافه جلوگیری شود بهتر است کلاس شما نیز بصورت singleton طراحی شود. سپس به راحتی می توانید در هر جایی از برنامه یک نمونه از کلاس دیتابیس ایجاد کنید بدون اینکه ارتباط جدیدی با دیتابیس برقرار شود.
در مورد اینکه یک متغیر عمومی قابل دسترس در داخل توابع نمی باشد. این یک امر طبیعی هست و توابع مانند یک کپسول عمل می کنند و برای اینکه بتوانند به متغیرهای دیگر دسترسی داشته باشند یا باید از آرایه $GLOBALS استفاده کنید یا لغت کلیدی global و یا متغیر مورد نظر را به عنوان یک آرگومان ورودی به تابع خود ارسال کنید.
$a = 2;
function printa(){
$x = $GLOBALS['a'];
echo $x;
}
printa();
function printb(){
global $a;
echo $a;
}
printb();
function printc($a){
echo $a;
}
printc($a);
ویرایش:
متاسفم من تازه متوجه شدم که شما پاسخ خود را یافته اید