Keresés

Aktív témák

  • rt06

    veterán

    válasz j0k3r! #1860 üzenetére

    #!/usr/bin/php -q
    <?php

    #nem az include-on mulik, hanem mint PazsitZ irta, a lathatosagon
    #amit a fuggvenyen kivul hozol letre, az nem latszik a fuggvenyben, s amit a fuggvenyben hozol letre, az nem latszik a fuggvenyen kivul

    #erre hasznalhatsz a fuggevnynek atadott parametereket (ha vissza is akarod kapni, mi valtozott a fuggvenyben, akkor cim szerinti atadassal), illetve a fuggvenyek visszateresi erteket

    function pluszegy() {
    printf( "%d, %d\n", $x, $y ); // 0, 0 - illetve 2 notice, mert itt nem letezik az $x es $y
    $x++; // notice, mert itt nem letezik az $x
    $y++; // notice, mert itt nem letezik az $y
    printf( "%d, %d\n", $x, $y ); // 1, 2
    }

    function pluszegy_ertek( $x, $y ) {
    printf( "%d, %d\n", $x, $y ); // 1, 2
    $x++; // 1 -> 2
    $y++; // 2 -> 3
    printf( "%d, %d\n", $x, $y ); // 2, 3
    }

    function pluszegy_cim( &$x, &$y ) {
    printf( "%d, %d\n", $x, $y ); // 1, 2
    $x++; // 1 -> 2
    $y++; // 2 -> 3
    printf( "%d, %d\n", $x, $y ); // 2, 3
    }

    function pluszegy_vissza() {
    return 5;
    }

    function pluszegy_vissza_ertek( $x, $y ) {
    printf( "%d, %d\n", $x, $y ); // 1, 2
    $x++; // 1 -> 2
    $y++; // 2 -> 3
    printf( "%d, %d\n", $x, $y ); // 2, 3
    return $x + $y; // 2+3 -> 5
    }

    function pluszegy_vissza_cim( &$x, &$y ) {
    printf( "%d, %d\n", $x, $y ); // 1, 2
    $x++; // 1 -> 2
    $y++; // 2 -> 3
    printf( "%d, %d\n", $x, $y ); // 2, 3
    return $x + $y; // 2+3 -> 5
    }

    $x = 1;
    $y = 2;
    printf( "fuggvenyhivas parameter nelkul\n%d, %d\n", $x, $y ); // 1, 2
    pluszegy();
    printf( "%d, %d\n\n", $x, $y ); // 1, 2

    $x = 1;
    $y = 2;
    printf( "fuggvenyhivas ertek szerinti atadassal\n%d, %d\n", $x, $y ); // 1, 2
    pluszegy_ertek( $x, $y );
    printf( "%d, %d\n\n", $x, $y ); // 1, 2

    $x = 1;
    $y = 2;
    printf( "fuggvenyhivas cim szerinti atadassal\n%d, %d\n", $x, $y ); // 1, 2
    pluszegy_cim( $x, $y );
    printf( "%d, %d\n\n", $x, $y ); // 2, 3

    $x = 1;
    $y = 2;
    printf( "fuggvenyhivas parameter nelkul\n%d, %d\n", $x, $y ); // 1, 2
    $z = pluszegy_vissza();
    printf( "%d, %d, %d\n\n", $x, $y, $z ); // 1, 2, 5

    $x = 1;
    $y = 2;
    printf( "fuggvenyhivas ertek szerinti atadassal\n%d, %d\n", $x, $y ); // 1, 2
    $z = pluszegy_vissza_ertek( $x, $y );
    printf( "%d, %d, %d\n\n", $x, $y, $z ); // 1, 2, 5

    $x = 1;
    $y = 2;
    printf( "fuggvenyhivas cim szerinti atadassal\n%d, %d\n", $x, $y ); // 1, 2
    $z = pluszegy_vissza_cim( $x, $y );
    printf( "%d, %d, %d\n\n", $x, $y, $z ); // 2, 3, 5

    ?>

  • PazsitZ

    addikt

    válasz j0k3r! #1860 üzenetére

    A láthatósági szabályokat nézd át.
    Függvényen belül a külső változók alapból nem láthatóak.
    Van lehetőség paraméterként átadni, vagy global kulcsszóval behúzni a függvénybe ha globálisan deklarált változók. Esetleg egyéb módon tárolni és beolvasni.

Aktív témák