Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przesyłanie danych, Jak przesłać dane za pomocą funkcji
frankiejojo
post 25.04.2019, 17:06:06
Post #1





Grupa: Zarejestrowani
Postów: 111
Pomógł: 2
Dołączył: 20.07.2014

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


Witam,
W celu kilkakrotnego wykorzystania kodu zrobiłem słowniki. Odwołuję się do nich za pomocą funkcji i "do połowy działa"
Skrypt wygląda tak:
  1. <?php
  2. $ObjectName=0;
  3. require "funkcje.php";
  4. echo $ObjectNameValue;      
  5. ?>

funkcje.php
  1. <?php
  2. function objectNameFunkcja() { global $ObjectName; global $ObjectNameValue; include 'objectNameSlownik.php';}
  3. ?>

i słownik:
  1. <?php
  2.      if($ObjectName==0){$ObjectNameValue = "jabłko";}
  3.      elseif($ObjectName==1){$ObjectNameValue = "gruszka";}
  4.      elseif($ObjectName==2){$ObjectNameValue = "śliwka";}
  5.      elseif($ObjectName==4){$ObjectNameValue = "ananas";}
  6. ?>


Pytanie:
Jak odwołać się do tego:
echo $ObjectNameValue;

Ten post edytował frankiejojo 25.04.2019, 18:03:42
Go to the top of the page
+Quote Post
Kshyhoo
post 25.04.2019, 17:42:30
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Proszę zastosować poprawne bb-code do kodu PHP.


--------------------
Go to the top of the page
+Quote Post
viking
post 25.04.2019, 17:56:38
Post #3





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


To ze słownikiem nic wspólnego nie ma. Poczytaj o splenum i usuń te global.


--------------------
Go to the top of the page
+Quote Post
6PJ9
post 26.04.2019, 12:21:55
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 26.04.2019

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


A jak już chcesz tworzyć takie funkcje to lepiej tak zamiast milion ifów:

Plik objectNameSlownik.php:

  1. <?php
  2. //Te numery tutaj nie koniecznie bo tablice i tak są indeksowane od 0
  3. return [
  4. 0 => 'jabłko',
  5. 1 => 'gruszka',
  6. 2 => 'śliwka',
  7. 3 => 'ananas',
  8. ];




Plik funkcje.php:

  1. <?php
  2. function objectNameFunkcja(int $ObjectName): string
  3. {
  4. $objects = require('objectNameSlownik.php');
  5.  
  6. if(!isset($objects[$ObjectName])
  7. {
  8. throw new Exception('Invalid object name');
  9. }
  10.  
  11. return $objects[$ObjectName];
  12. }



I potem:

  1. <?php
  2. require('funkcje.php');
  3.  
  4. $ObjectName = 0;
  5. echo(objectNameFunkcja($ObjectName));


I nie pisz tagu zamykającego ?> bo jak ci się wkradną jakieś znaki po tym to się będziesz zastanawiał skąd się wzięły albo wywali ci błąd headers already sent.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 16:29