Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Dziwne działanie funkcji
Wolny_Login
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.09.2012

Ostrzeżenie: (0%)
-----


Cześć.
Tytuł tematu nie do końca jest prawdziwy, zaraz wyjaśnię dlaczego, jednak nie potrafiłem inaczej nazwać swojego problemu. Jakiś czas temu zacząłem oglądać pewien kurs związany z PHP. Zostały tam przedstawione pewne funkcje, których przy swojej znajomości PHP, nie jestem w stanie zrozumieć, jak mają prawo działać. Niestety tematem kursu było co innego, więc nie zostało w nim dokładnie to wyjaśnione. Mam nadzieję, że ktoś z Was będzie w stanie rozjaśnić temat.

Mamy kod (w pewnej klasie):
  1. function setAlertTypes($types){
  2. $this->setAlertTypes = $types; //Pytanie 1
  3. }
  4.  
  5. function setAlert($value, $type = null){
  6. if($type == ''){
  7. $type = $this->alertTypes[0];
  8. }
  9. $_SESSION[$type][] = $value; //Pytanie 2
  10. }
  11.  
  12. function getAlerts(){
  13. $data = '';
  14. foreach($this->setAlertTypes as $alert){
  15. if(isset($_SESSION[$alert])){
  16. foreach($_SESSION[$alert] as $value){
  17. $data .= '<li class="alert alert-' . $alert . '">' . $value . '</li>';
  18. }
  19. unset($_SESSION[$alert]);
  20. }
  21. }
  22. return $data;
  23. }


Pytanie 1: W bloku klasy nie została utworzona zmienna 'setAlertTypes', jednak autor w jakiś sposób się do niej odwołuje. Jak to jest możliwe? Jeśli w jakiś sposób zostanie automatycznie stworzona taka zmienna, to jaki typ będzie miała?
Pytanie 2: Czy taka konstrukcja "$_SESSION[$type][] = $value;" powoduje, że przy użyciu w np. taki sposób:
  1. $_SESSION['x'][] = 'wartosc 1';
  2. $_SESSION['x'][] = 'wartosc 2';
  3. $_SESSION['x'][] = 'wartosc 3';

zostaną nadane kolejne indeksy, do których będzie można się odwołać w taki sposób:
  1. $_SESSION['x'][0]
  2. $_SESSION['x'][1]
  3. $_SESSION['x'][2]

Dobrze rozumiem?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 00:42