php – functii cu numar variabil de parametri

Pe langa faptul ca parametrii unei functii php pot avea valori predefinite, precum in exemplul urmator :

<?php
    function say( $what = "nothing" )
    {
        echo $what . "\n";
    }
   
    say( "dude" );
    say( );
?>

mai exista posibilitatea de a defini si functii cu numar variabil de parametri in felul urmator:

<?php
    function say( )
    {
        for ( $i = 0; $i < func_num_args(); $i++ )
            echo func_get_arg( $i ) . " ";
        echo "\n";
    }

    say( "test", "another test" );
?>

In cazul cand se alege aceasta modalitate de a pasa parametrii, accesul la parametri se face cu ajutorul functiilor:

Asta inseamna ca putem defini o functie ce poate lua un numar de parametri intr-un caz si alt numar de parametri in alt caz.

Un exemplu practic unde se poate folosi acest feature al php-ului este la definirea functiilor de SET / GET in clase pentru accesul la anumite date private din clasa respectiva. O functie de SET este o functie ce seteaza o valoare privata in clasa, iar o functie de GET este una care ia valoarea unui membru privat din clasa. Se observa ca functia de set trebuie sa ia cel putin un parametru – fiind noua valoare a membrului

    ///set new value
    public function setValue( $newvalue );

iar functia de GET nu ia nici un parametru, dar trebuie sa returneze valoarea ceruta :

    ///get value
    public function getValue( );

la prima vedere aceste functii pot trai si separat si independente, dar exista posibilitatea sa le comansam in una singura cu ajutorul functiilor cu numar variabil de parametri.
Exemplu:

<?php
    /// definesc clasa A
    class A {
        /// membru privat $_id
        private $_id = 0;
       
        /// functie get/set cu numar variabil de parametri
        public function id( ) {
            if ( func_num_args( ) == 0 ) {
                //daca nu este pasat nici un parametru
                //se returneaza valoarea $_id
                return $this->_id;
            } else {
                //altfel, setez $_id cu primu parametru
                //(restul parametrilor se ignora)
                $this->_id = func_get_arg( 0 );
                return TRUE;
            }
        }
    }
   
    //creez o instanta a clasei A
    $a = new A();
   
    //apelez functia id() ca SET
    $a->id( 5 );
   
    //apelez functia id() ca GET
    echo $a->id();
?>

Prin aceasta modalitate, vom defini in clasa doar o singura functie ceea ce va scadea numarul functiilor declarate in clasa si va face clasa mai usor utilizabila.

atat.

Interacţiunea PHP-MySQL

MySQL – utilizează la realizarea interogărilor standartul SQL (Server Query Language) cu anumite mici modificări. Pentru interactiunea PHP-MySQL sunt utilizate mai multe funcţii. Majoritatea funţiilor returnează un array sau un număr, care reprezintă datele referitor la numărul de coloane, tabele, inregistrări etc. Sau reprezintă un array cu inregistrările dintr-o tabelă sau mai multe tabele, sau numele coloanelor, tabelelor etc.
Pentru a putea realiza cererile MySQL este necesar să stabilim o legatură cu serverul MySQL. Pentru a stabili această legatură trebuie specificaţi 4 parametri strict necesari şi unul secundar :

1. Numele hostului unde este stocată baza de date MySQL.
2. Numele utilizatorului.
3. Parola
4. Numele Bazei de Date necesare.
5. Time zone (secundar)

Interacţiunea PHP-MySQL ar fi bine să o realizăm într-o clasă. Asta ne va permite implementarea interacţiunii PHP-MySQL oriunde unde vom avea nevoie de ea.
În baza acestor 5 parametri se stabileşte legatura cu serverul. Această legatură cu serverul ar fi bine să o realizăm în constructorul clasei. Asta ne va asigura că la utilizarea instanţelor de tip clasă, va fi realizată legatura cu serverul. Aceşti 5 parametri DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_TIME vor fi definiţi ca constante în fişierul de config.
Continue reading Interacţiunea PHP-MySQL