[PHP] Referenzen übergeben

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Mr.Smoke, 25. Juni 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 25. Juni 2010
    Referenzen übergeben

    Hey,
    Ich habe ein kleines Problem, habe folgenden code:
    PHP:
    call_user_func_array (array( $stmt 'bind_param' ),  $pParam );
    in $pParam steht folgendes drin:
    PHP:
    array( "s" ,& $testString )
    Das Funktioniert soweit auch.
    Nun will ich aber auch so das ganze übergeben:
    PHP:
    array( "s" , "HalloWelt" )
    Das funktioniert NICHT, das er als 2 Parameter im Array eine Referenz erwartet.
    Habe jetzt gerade ehrlich gesagt keine Ahnung wie ich da ne Referenz übergeben kann.
    Ist ja ein String direkt

    Steht gerade aufm Schlauch -.-

    Helft mir doch bitte kurz
     
  2. 25. Juni 2010
    AW: Referenzen übergeben

    PHP:
    $str  "hallo welt" ;
    array(
    "s" $str );
     
  3. 25. Juni 2010
    AW: Referenzen übergeben

    Das funktioniert doch das ist nicht das Problem
    Ich will den String direkt übergeben (aber halt iwie als Referenz) . Gibts da keine Möglichkeit für?
    Also ohne Variable?
     
  4. 25. Juni 2010
    AW: Referenzen übergeben

    Das geht denke ich mal nicht, weil du ja keine Referenz auf ein Stringliteral erzeugen kannst, sondern nur auf ein Objekt, bzw eine Variable (die dann auf ein Stringliteral im Speicher zeigt oder dies beinhaltet).

    Darf ich fragen, wieso du keine Variable vorher anlegen kannst?

    greez

    //edit:
    was du machen könntest wäre folgendes (wenn es so geht, wie ich mir das gedacht habe):

    PHP:
    function & getRef ( $str ) {
        return 
    $str ;
    }

    $tmp  = array( "hallo" getRef ( "wtf" ));
    Du erstellst eine Funktion, die eine Referenz zurückgibt.
     
  5. 25. Juni 2010
    AW: Referenzen übergeben

    Wäre im Prinzip kein Stress die vorher anzulegen. Wollte das nur anders machen das es schönere Schnittstellen hat

    Naja aber das das ja net so einfach geht werd ich wohl davor vars anlegen.
     
  6. 25. Juni 2010
    AW: Referenzen übergeben

    Du kannst Dir theoretisch auch eine eigene erweiterte call_user_func_array-Funktion schreiben, welche zB im speziellen Fall, dass Du einen String übergibst, die Originalfunktion mit der Referenz der neu erstellten String-Variable aufruft.
     
  7. 25. Juni 2010
    AW: Referenzen übergeben

    aber call_user_func_array erwartet keine referenz, sondern mysqli_stmt->bind_param

    PHP:
    function  call_mysqli_bind_param ( mysqli_stmt  & $stmt , array  $stuff ) {
        
    $params  = array();
        
    array_walk ( $stuff , function(& $val $key ) use( $params ) {  $params [ $key ] = & $val ; });
        
    call_user_func_array (array( $stmt 'bind_param' ),  $params );
    }
    PHP:
    call_mysqli_bind_param ( $stmt , array( 's' "hallo welt" ));
    call_mysqli_bind_param ( $stmt , array( 's' , & $hallo_welt ));
    sollte funktionieren und gegebene referenzen sollten beibehalten bleiben.
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.