Visualizzazione dei risultati da 1 a 3 su 3

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    Trasformazione ciclo in funzione ricorsiva

    Codice PHP:
        static public function GET($key$deep 0) {
            if (empty(
    self::$_get[$key])) {
                
    self::$_get[$key] = null;
                if (isset(
    $_GET[$key])) {
                    if (
    is_string($_GET[$key]) && $deep == 0) {
                        
    self::$_get[$key] = $_GET[$key];
                    }
                    elseif (
    is_array($_GET[$key])) {
                        
    self::$_get[$key] = $_GET[$key];
                        foreach (
    $_GET[$key] as $i => $value) {                        
                            if (
    $deep == && is_array($value)) {
                                
    self::$_get[$key] = null;
                            }
                            elseif (!
    is_string($value)) {
                                foreach (
    $value as $i2 => $value2) {
                                    if (
    $deep == && is_array($value2)) {
                                        
    self::$_get[$key] = null;
                                    }
                                    elseif (!
    is_string($value2)) {
                                        foreach (
    $value2 as $i3 => $value3) {
                                            if (
    $deep == && is_array($value3)) {
                                                
    self::$_get[$key] = null;
                                            }
                                            elseif (
    is_string($value3)) {
                                                
    // ... infinite loop
                                            
    }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            
            return 
    self::$_get[$key]; 
    Come faccio a trasformare tutto il ciclo foreach in una funzione ricorsiva, anche perchè non vorrei mettere limiti a $deep e ovviamente trovo inutile creare cicli dentro cicli quando può essere fatto con una funzione ricorsiva.

    Il funzionamento è questo:
    index.php?test[][]=1
    print_r(self::GET('a', 1));

    DEBUG:
    null

    -----------------------------------

    index.php?test[]=1
    print_r(self::GET('a', 1));

    DEBUG:
    Array
    (
    [0] => 1
    )

    -----------------------------------

    index.php?test[][]=1
    print_r(self::GET('a', 2));

    DEBUG:
    Array
    (
    [0] => Array
    (
    [0] => 2
    )
    )

    -----------------------------------

    index.php?test[][][]=1
    print_r(self::GET('a', 2));

    DEBUG:
    null
    Ultima modifica di zacca94; 26-05-2016 a 10:54

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.