הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 11-05-11, 18:43   # 1
morsrh
חבר מתקדם
 
morsrh's Avatar
 
מיני פרופיל
תאריך הצטרפות: Feb 2010
מיקום: אשקלון.
גיל: 31
הודעות: 444
שלח הודעה באמצעות MSN אל morsrh

morsrh לא מחובר  

Arrow אובייקטים קבועים

אהלן , אני מנסה ליצור משתנה שיכיל אובייקט שיהיה אפשר לגשת אליו מכל מקום , כלומר , יצירת אובייקט ולהכניס אותו אל תוך משתנה ואז להפוך את המשתנה הזה לגלובאלי

המטרה של זה זה שיהיה אפשר לגשת אליו מתוך מחלקות , פונקציות , ועוד בלי לשלוח אותו

עשיתי את הקוד הזה :

PHP קוד:
class mysqli{
    private 
$mysqli;
    
    function 
setConnection(){
        @require 
'config.php';
        
$this->mysqli = new mysqli("localhost"userpassword"jewish");
        if (
mysqli_connect_errno())
             return 
false;
        return 
true;
    }
    
    function 
getConnection(){
        return 
$this->mysqli;
    }
}

$MP_mysqli = new mysqli();
if(
$MP_mysqli -> setConnection())
    
define("mysqli"$MP_mysqli ->getConnection()); 
יש רק בעיה אחת , דיפיין לא יכול להכיל אובייקטים
עכשיו השאלה שלי היא איך אפשר לעשות שיהיה אובייקט גלובאלי ושיהיה אפשר לגשת אליו מכל מקום ללא השליחה שלו לפונקציה \ מחלקה

תודה
  Reply With Quote
ישן 11-05-11, 21:11   # 2
בניה
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: נחושה
הודעות: 3,434

בניה לא מחובר  

אתה יכול לעשות משהו כזה:
PHP קוד:
<?php
class app {
    
    static public 
$db;
    
    
    public static function 
init() {
        
//you can add here more functionality  
        
self::$db = new DB();
        
self::$db->connect();
    }
    
    public static function  
getDb() {
        return 
self::$db;
    }
    
}

//page startup:
app::init();

//i want to use db inside a function:
function use_db() {
    
    
$db app::getDb();
    
    
$db->query();
}
?>
  Reply With Quote
ישן 11-05-11, 22:01   # 3
Shay Ben Moshe
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2007
הודעות: 1,397

Shay Ben Moshe לא מחובר  

מה שאתה מחפש, ומה שבניה הציע נקרא singleton (קישור 1, קישור 2), זה design pattern שאמור לאפשר ליצור מופע אחד ויחיד (בד"כ) של מחלקה, שניתן לגשת אליו מכל מקום.
המימוש הנפוץ בPHP נראה כך:
PHP קוד:
<?php

class ClassName {
    private static 
$instance;
    
    private function 
__construct() { }
    private function 
__clone() { }
    
    public function 
get_instance() {
        if(
self::$instance === null) {
            
self::$instance = new self();
        }
        return 
self::$instance;
    }
    
}
הסיבה שהconstructor והclone הם private היא כדי שלא ניתן יהיה לשכפל את האובייקט או ליצור מופעים חדשים שלו, שלא דרך המחלקה עצמה. כן ניתן להכניס לconstructor מימוש וכמובן שהוא יפעל כרגיל.

בהצלחה.
__________________
שי בן משה - בונה אתרים
חותך אתרים, ומתכנת צד לקוח וצד שרת.
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 03:21.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ