function cmppts($a, $b)
{
if ($a["points"] == $b["points"])
{
return 0;
}
return (($a["points"] > $b["points"]) ? -1 : 1);
}
// mam pole $results[$id]["daco"] .... to daco je okrem ineho aj "points"
usort($results, "cmppts");
// toto mi vyhodi Warning: usort() [function.usort]: Invalid comparison function.
naco je tam break;?
pretoze ako nahle sa ti vykona break, tak ciklus (while) konci a nenaplnia sa ti ostatne polozky pola, medzi ktore patri aj s klucom "points". cize ak mas zapnute v konfiguraku varovania na kazdu <>vinu, tak ta upozornuje pri porovnavacej fcii, ze v poli neexituje taky kluc.
ten break je tam preto, ze som ho zabudol zmazat .. toto nie je cely povodny kod ... redukoval som ho a ten break bol vo switchi ... takze sry opravil som to v prispevku
ono tie polia su vyplnene spravne aj mi ich usort dobre zoradi ... len proste tu hlasku vypluje (mam zapnute hlasenie vsetkych veci)
skusal som rozne moznosti aby som docielil rovnake varovanie, a podarilo sa mi to v pripade ak porovnavacia fcia neexistuje (samozrejme) alebo ( a to moze byt tvoj pripad) sa nachadza v objekte.
podla zdrojaku je jasne, ze usort alebo uasort volas z objektu, ale aby to fungovalo, musis mat porovnavaciu funkciu mimo objektu.
ak uz ani toto nepomoze, skus mi poslat zpakovane zdrojaky, pozrel by som sa na to. mozno je podstata problemu niekde inde.
IgiPoP napísal:skusal som rozne moznosti aby som docielil rovnake varovanie, a podarilo sa mi to v pripade ak porovnavacia fcia neexistuje (samozrejme) alebo ( a to moze byt tvoj pripad) sa nachadza v objekte.
podla zdrojaku je jasne, ze usort alebo uasort volas z objektu, ale aby to fungovalo, musis mat porovnavaciu funkciu mimo objektu.
ak uz ani toto nepomoze, skus mi poslat zpakovane zdrojaky, pozrel by som sa na to. mozno je podstata problemu niekde inde.
ty vole ... to preco musi mat tu fciu mimo objektu???
ja som to mal v tom objekte ...
na to si prisiel systemom pokus-omyl alebo si to niekde vycital??
gwixt napísal:ty vole ... to preco musi mat tu fciu mimo objektu???
ja som to mal v tom objekte ...
na to si prisiel systemom pokus-omyl alebo si to niekde vycital??
dik
viedla ma dedukcia a tak som to vyskusal nasimulovat do tvojho pripadu.
funkcie v objekte volas cez $this->funkcia();, ale ako to zapises to usortu alebo do uasortu? tieto fcie dostavaju nazov porovnavacej funkcie ako string a skusal som to zadat aj v pripade objektu, ale "\$this->cmppts" nefunguje ani ine kombinacie.
takze bud existuje specialny zapis na volanie porovnavacej fcie z objektu alebo porovnavacia fcia musi byt mimo objektu.
uf, bola to haluska, ale som rad, ze uz ti to facha.
class trieda
{
private $nieco;
public function __construct($string)
{
$this->nieco = $string;
}
public function getNieco()
{
if( isSet( $this->nieco )
return $this->nieco;
}
}
$obj = new trieda("Ahoj gwixt!");
echo $obj->getNieco(); // vypise: Ahoj gwixt!
echo $obj->nieco; // vypise ti chybu
// to len tak na demostraciu kras OOP v PHP5
pozri ja viem ako funguje OOP (private, public, protected, dedicnost, polymorfizmus a co ja viem co este)
ja len ze nepoznam presne fungovanie v PHP ... vychadzal som z C++ kde this nemusis pouzit vo vnutri triedy na pristup k atributom triedy ... teda ak ma pamat neklame