353 of 410 menu

Μέθοδος __callStatic

Η μέθοδος __callStatic είναι μια μαγική μέθοδος στην PHP, η οποία καλείται αυτόματα κατά την προσπάθεια κλήσης μιας μη υπάρχουσας ή μη προσβάσιμης στατικής μεθόδου. Ως πρώτη παράμετρο δέχεται το όνομα της μεθόδου που καλείται, ως δεύτερη - έναν πίνακα με τα ορίσματα που μεταβιβάστηκαν.

Σύνταξη

public static function __callStatic(string $name, array $arguments);

Παράδειγμα

Ας δημιουργήσουμε μια κλάση με τη μέθοδο __callStatic και ας προσπαθήσουμε να καλέσουμε μια μη υπάρχουσα στατική μέθοδο:

<?php class MyClass { public static function __callStatic($name, $args) { echo "Κλήθηκε στατική μέθοδος '$name' με ορίσματα: "; print_r($args); } } MyClass::nonExistentMethod(1, 2, 3); ?>

Αποτέλεσμα εκτέλεσης κώδικα:

Called static method 'nonExistentMethod' with arguments: [1, 2, 3]

Παράδειγμα

Ας υλοποιήσουμε ένα απλό πρόσοψη (facade) για δημιουργία αντικειμένων διαφορετικών τύπων:

<?php class Factory { public static function __callStatic($name, $args) { if (strpos($name, 'create') === 0) { $className = substr($name, 6); return new $className(...$args); } throw new Exception("Μέθοδος $name δεν βρέθηκε"); } } class User {} $user = Factory::createUser(); var_dump($user instanceof User); ?>

Αποτέλεσμα εκτέλεσης κώδικα:

true

Δείτε επίσης

  • μέθοδος __call,
    που διαχαιλεύει κλήσεις μη υπαρχουσών μεθόδων αντικειμένου
  • μέθοδος __get,
    που διαχαιλεύει προσβάσεις σε μη υπάρχουσες ιδιότητες
Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη