Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Metoda dostaje tablicę a woła o tablicę
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Wrzucam tablice $_POST['product_check'] do mojej metody przyjmującej tablice:
  1. //klasa Request
  2. public function sanitizePostArray(array $request): array
  3. {
  4. $this->post = filter_input_array(INPUT_POST, $request, FILTER_SANITIZE_STRING);
  5. return $this->post;
  6. }
  7.  
  8. //wywołanie metody:
  9.  
  10. if(isset($_POST['product_check'])){
  11. //print_r($_POST['product_check']);
  12.  
  13. $postCheck = new Request();
  14. $postCheck->sanitizePostArray('product_check'));
  15. }
  1. <input type="checkbox" class="delete-checkbox" name="product_check[]" value="1" />
  2. <input type="checkbox" class="delete-checkbox" name="product_check[]" value="2" />
No to skoro tablica oczekuje tablicy, a ja mu wrzucam tablicę $_POST['product_check'] to czego mi wali poniższym błędem?
Kod
Fatal error: Uncaught TypeError: nameOne\Request::sanitizePostArray(): Argument #1 ($request) must be of type array, string given, called in /home/xxx/public_html/index.php on line 20 and defined in /home/xxx/public_html/pagefiles/Request.php:24 Stack trace: #0 /home/xxx/public_html/index.php(20): nameOne\Request->sanitizePostArray('product_check') #1 {main} thrown in /home/xxx/public_html/pagefiles/Request.php on line 24




PS.
public function sanitizePostArray(array $request): array <---- Tutaj pierwsze array znaczy że wrzucamy tablicę do metody, a drugi array że metoda zwraca tablicę. Tak?
viking
Wrzucasz string product_check a nie żadną tablicę.
sadistic_son
No ale przecież filter_input_array() potrzebuje nzawy zmiennej, którą mu podaję jako string 'product_check'. No to zakładam, że ta funkcja bierze sobie ten string i wyszukuje zmienną POST o takim indexie. No a $_POST['product_check'] to jest tablica.
Ale rozumiem co mówisz - mojej funkcji podaję string rzeczywiście. Więc jeśli pozbędę się typu array sprzed parametru metody, to już nie moja metoda sanitizePostArray() się czepia tylko filter_input_array. Dlaczego?

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.