php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.10.2008, 09:57  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard [Erledigt] parent method call mit variabler parameter liste

Servus,

ich hab ein Problem mit einer von PDO abgeleiteten Klasse.
Wenn ich eine feste Parameterliste kann ich ja per parent::Methode einfach direkt ansprechen aber was ist wenn ich nicht weis wieviele Parameter ich habe muss ich dann extra den Weg über eine If oder Case machen und dementprechenden direkt callen oder kann ich auch die internen Funktionen nehmen die PHP für variable Parameterlisten angedacht hat?

PHP-Code:
<?php
class PDO2 extends PDO
{    
    
/**
     *
     * @link http://www.php.net/manual/en/pdo.query.php
     */
    
public function query()
    {
        
$func_args func_get_args();
        
$func_args[0] = $this->replacePlaceholder($func_args[0]);
        
        return 
call_user_func_array("parent::query"$func_args);
    }
        
    
/**
     *
     * @param $sql
     * @return string
     */
    
protected function replacePlaceholder($sql)
    {
        if (
strlen(trim($this->_table_prefix))>0)
        {
            return 
preg_replace("/{#(.*?)}/"$this->_table_prefix "_$1"$sql);
        } else
        {
            return 
preg_replace("/{#(.*?)}/""$1"$sql);
        }
    }
}
?>
ps: in 5.3.0 Alpha scheint das bereits möglich zu sein aber in 5.2.6 noch nicht gibt es da vielleicht ne Alternative?
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

Geändert von HStev (23.10.2008 um 10:03 Uhr).
HStev ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.10.2008, 10:20  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

ok lösung gefunden statt jede Funktion einzeln zu schreiben

PHP-Code:
public function __call($func$args)
    {
        
$wichfunctions = array("query""prepare""execute");
        
        if (
method_exists($this->_dbh$func))
        {
            if (
in_array($func$wichfunctions)) $args[0] = $this->replacePlaceholder($args[0]);
            return 
call_user_method_array($func$this->_dbh$args);
        }
    } 
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

Geändert von HStev (23.10.2008 um 10:25 Uhr).
HStev ist offline   Mit Zitat antworten
Alt 23.10.2008, 11:34  
Erfahrener Benutzer
 
Benutzerbild von JEGO
 
Registriert seit: 01.12.2003
Beiträge: 2.555
PHP-Kenntnisse:
Anfänger
JEGO wird schon bald berühmt werden
Standard

na da sind wir doch froh, das wir dir so schnell helfen konnten
__________________
Gruß JEGO

Ein PHP Script tut, was Du schreibst, nicht was Du willst.
JEGO ist offline   Mit Zitat antworten
Alt 23.10.2008, 13:23  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Dann den Thread bitte noch als [Erledigt] markieren. Danke!
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Liste in Textarea einfügen HTML, Usability und Barrierefreiheit 0 03.01.2005 19:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php methode parameter, php methoden parameter, php method parameter, php methodenparameter, php parameter methode, php parameter method, php parameterliste einer methode lesen, php methode als parameter, methoden parameter php, php function parameter list, php parameterliste, method param php, php klassen mathoden mit parametern, php calling method, php method caller, php method parameters, php methode als parameter übergeben, php function replaceplaceholder, php function call variable parameter, php argumente in abgeleitete klasse

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum