Pažvelkite į šį kodą:
$GET = array();
$key = 'one=1';
$rule = explode('=', $key);
/* array_push($GET, $rule[0] => $rule[1]); */
Ieškau kažko panašaus į tai, kad:
print_r($GET);
/* output: $GET[one => 1, two => 2, ...] */
Ar yra kokia nors funkcija, leidžianti tai padaryti? (nes array_push
taip neveiks)
Kaip tik ieškojau to paties ir supratau, kad ir vėl mano mąstymas skiriasi, nes esu senosios mokyklos atstovas. Esu grįžęs prie BASIC ir PERL, todėl kartais pamirštu, kaip viskas paprasta PHP.
Tiesiog padariau šią funkciją, kad paimčiau visus nustatymus iš duomenų bazės, kur jų yra 3 stulpeliai. setkey, item (key) & value (value) ir patalpinčiau juos į masyvą, pavadintą settings, naudodamas tą patį raktą / vertę, nenaudodamas push, kaip pirmiau.
Gana lengva & amp; paprastas tikrai
// Gauti visus nustatymus $settings=getGlobalSettings();
// Taikyti naudotojo pasirinktą temą $theme_choice = $settings['theme'];
... ir t. t. ir t. t. ....
funkcija getGlobalSettings(){
$dbc = mysqli_connect(wds_db_host, wds_db_user, wds_db_pass) or die("MySQL Error: " . mysqli_error()); mysqli_select_db($dbc, wds_db_name) or die("MySQL Error: " . mysqli_error()); $MySQL = "SELECT * FROM systemSettings"; $result = mysqli_query($dbc, $MySQL); while($row = mysqli_fetch_array($result)) { $settings[$row['item']] = $row['value']; // NO NEED FOR PUSH } mysqli_close($dbc);
return $settings; }
Taigi, kaip paaiškinta kituose pranešimuose... php nereikia "PUSH" masyvo, kai naudojate
Key => Value
IR... Taip pat nereikia pirmiausia apibrėžti masyvo.
$array=masyvas();
Nereikia apibrėžti ar stumti. Tiesiog priskirkite $array[$key] = $value; Tai automatiškai yra stūmimas ir deklaracija tuo pačiu metu.
Turiu pridurti, kad saugumo sumetimais, (P)oor (H)elpless (P)rotection, I means Programming for Dummies, I mean PHP.... hehehehe Siūlau šią sąvoką naudoti tik tam, ką aš ir norėjau. Bet koks kitas būdas gali kelti pavojų saugumui. Štai, padariau savo išlygą!