הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP] שאלה לגבי class.. (https://hosts.co.il/forums/showthread.php?t=61282)

O-B 26-03-08 02:27

[PHP] שאלה לגבי class..
 
יש לי 2 classים בשני קבצים שונים..
אחר שמטפל בכל מה שקשור למסד הוצאה הכנסה עדכון וכו'.
ושני יוצר בלוקים..

עכשיו אני צריך להשתמש בתוך השני (בלוקים) בפונקציות שנמצאות בראשון (מסד)..


איך אני עושה את זה?

נ.ב
אני שיש דבר כזה שנקרא "הורשה".. האם זאת השיטה?
HTML קוד:

  class בלוק extends מסד

WebProject 26-03-08 06:46

כן, זאת "השיטה", אבל זה נוגד לגמרי את כל העקרונות של הורשה ופולימורפיזם חח..

ShLooK 26-03-08 14:41

גם אני בהתחלה השתמשתי בהורשה, אבל ראיתי שאפשר גם ככה:
PHP קוד:

$sql = new MySql();
class 
blocks () {
global 
$sql;
/// code goes here


אני מקווה שזאתי הכוונה שלך...

DavidBD 26-03-08 15:17

ציטוט:

נכתב במקור על ידי ShLooK (פרסם 618783)
גם אני בהתחלה השתמשתי בהורשה, אבל ראיתי שאפשר גם ככה:
PHP קוד:

$sql = new MySql();
class 
blocks () {
global 
$sql;
/// code goes here


אני מקווה שזאתי הכוונה שלך...

ניסיתי פעם אם אני לא טועה להשתמש בשיטה הזו, לא עבד.
בעבר מישהו הציג כאן פתרון לPHP 5, אם יש לך PHP 5 נסה את זה:
PHP קוד:

class {
      function 
sql() {
             return 
"bla";
      }
}

class 
{
       var 
$sqlClass;
       function 
__construct() {
              
$this->sqlClass = new A();
       }
       function print() {
              return 
$this->sqlClass->sql();
       }


תעדכן אותי אם עובד

O-B 27-03-08 05:27

ציטוט:

נכתב במקור על ידי ShLooK (פרסם 618783)
גם אני בהתחלה השתמשתי בהורשה, אבל ראיתי שאפשר גם ככה:
PHP קוד:

$sql = new MySql();
class 
blocks () {
global 
$sql;
/// code goes here


אני מקווה שזאתי הכוונה שלך...

קוד:

Parse error: syntax error, unexpected T_GLOBAL, expecting T_FUNCTION in ****/blocks.php on line 4
לא עובד..


ציטוט:

נכתב במקור על ידי DavidBD (פרסם 618796)
ניסיתי פעם אם אני לא טועה להשתמש בשיטה הזו, לא עבד.
בעבר מישהו הציג כאן פתרון לPHP 5, אם יש לך PHP 5 נסה את זה:
PHP קוד:

class {
      function 
sql() {
             return 
"bla";
      }
}

class 
{
       var 
$sqlClass;
       function 
__construct() {
              
$this->sqlClass = new A();
       }
       function print() {
              return 
$this->sqlClass->sql();
       }


תעדכן אותי אם עובד



תודה .. :)..

ShLooK 27-03-08 15:35

תנסה ככה:
PHP קוד:

$sql = new MySql();
class 
blocks () {
functiion build () {
global 
$sql;
/// code goes here
}


אני רואה שהסתדרת...


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

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