Autor Zpráva
rad
Profil *
Mam tyto funkce

chtel bych napriklad zavolat funkci escape
zkousel jsem to takto ale nefunguje to jaky je spravny zapis volani funkce z class ?


if (isset($_POST['textsend']))
{
$text=$_POST['text'];
$bodytext=$_POST['bodytext'];


$bodytext=escape($bodytext);


$insert_query = $db->query("INSERT INTO text  VALUES('','$text','$bodytext')");
}




class database {

    var $SQL;
    var $lastquery;
    var $count=0; 
    function database($database='portfolio', $server='localhost', $username='root', $password='')
    {
        $this->SQL = mysql_connect($server, $username, $password) or die('Error: '.mysql_error());
        mysql_select_db($database, $this->SQL);}

    function query($query, $return='true')
    {

        $this->lastquery = $query;

        $this->count++;

        $result = mysql_query($query, $this->SQL) or die('Error with Query('.$query.'): '.mysql_error());

        if ($return)

        return $result;

    }

    function num_rows(&$result){

        return @mysql_num_rows($result);

    }

    function fetch_array(&$result){

        return @mysql_fetch_array($result);

    }

    function fetch_assoc(&$result){

        return @mysql_fetch_assoc($result);

    }


    function escape(&$string){

        return mysql_real_escape_string($string);

    }

    function result($query, $column, $id=0){

        return mysql_result($query, $id, $column);

    }

}

?>
__construct
Profil
Tak za prvé nejedná sa o funkciu ale o metódu (aj keď sa to označuje slovom function) a volá sa zápisom:
$menoObjektu->menoFunkcie($argument);
Lamicz
Profil
$db = new database;
$db->...


Abys se tridou mohl pracovat, musis napred vytvorit jeji instanci (objekt)
Tori
Profil
Druhá možnost je definovat metodu jako statickou - pak je možné jí volat nezávisle na tom, jestli existuje instance třídy nebo ne.
class database {
  // ...
  static function escape($string)  {
   //..
  }
}

// volá se:
jménoTřídy::jménoStatickéMetody($parametry);
- v tomto konkrétním případě by to bylo možné, protože ta vaše metoda nepotřebuje k životu instanci své třídy, klidně by mohla být i obyčejnou funkcí vně třídy.

Jinak je zbytečné té metodě předávat parametr odkazem, když přitom ona s ním nepracuje, ale vrací hodnotu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: