šiaip šiek tiek nuo temos nukrypsiu : stringo tikrinimui ar jis netuščias rekomenduoju naudoti empty() f-ją , o ne strlen() < 1 ar pan, nes empty greičiau veikia... ir klausimas : o nebūtų paprasčiau padaryt f-ją, kuriai paduodi du parametrus - masyvus (pirmas - _GET, antras - parametrai, kuriuos nori pakeisti tame _GET'e). tada ta f-ja juos tiesiog sumerge'ina, ir antro masyvo reikšmės perrašo pirmojo masyvo reikšmes. nu tarkim :
turim _GET'e masyvą 'moliushis' => 'asiliukas', 'puslapis' => 2 . norim padaryt kad suformuotų url su "puslapis" => 3: tai nukopinam get'o masyvą į laikiną masyvą, ir sukuriam kitą masyvą su norimom reikšmėm, t.y. 'puslapis' => 3. tada sumerge'inam tuos du masyvus, ir tada iš to masyvo suformuojam url. tada galima būtų padaryt metodą, kuris formuoja url ir laisvai keičia betkurio kintamojo reikšmę.
ir funkciją arr_url būtų galima padaryti optimaliau:
function arr_url($params,$str='') {
$strs = array();
foreach ($params as $key => $value) {
$strs[] = $key . '=' . rawurlencode($value);
}
$str .= implode( "&", $strs );
return ($str);
}
šitas variantas imho greitesnis (reiktų patikrint), nes netikrina kiekvieną kartą ar stringas yra tuščias. tai pasijaučia kai vienam puslapio išvedime daug linkų formavimų, ir kai didelis lankomumas saito :] jei kurioj nors vietoj pagrybavau - pataisykit ir akmenų nemėtykit ;] gero vakaro :]
p.s. gal geriau f-jos aprašyme prie kintamųjų tipų rašyti ne "unknown", o "mixed" :] šiek tiek aiškiau, o ir situacija tada atrodo valdoma :]] (nepagalvokit kad kabinėjuosi, čia šiaip pasiūlymas)
p.p.s. jei mano mintis pasirodė neaiški, tai sakykit, parašysiu kažką panašaus į f-ją...