Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924

    array_map() funziona applicando un metodo di classe statica?

    in PHP 5 volevo utilizzare l'istruzione array_map ad un array applicando a ciascun elemento una funzione custom.

    Nella fattispecie intendevo utilizzare il metodo di una classe statica - all'interno della classe stessa - in questo modo

    array_map("self::mymethod", $array)

    ma il parser segnala un errore sul primo argomento. Se invece utilizzo una qualsiasi funzione globale di php (ad es. addslashes) allora array_map fa il suo dovere.


    Ho letto che nel caso di classi si potrebbe scrivere qualcosa del tipo

    array_map(array($objistance, "mymethod"), $array)

    me nel mio caso non ho nessuna istanza di classe... come potrei fare?
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  2. #2

    .............

    Ciao.
    Codice PHP:
    array_map(array($objistance"mymethod"), $array
    semmai

    Codice PHP:
    array_map(array($this"mymethod"), $array
    Hai provato con

    Codice PHP:
    array_map(array(self"mymethod"), $array

    Non mi convince ma sappimi dire.







    EDIT

    Questo dovrebbe andare

    // call my_class::my_method();
    call_user_func(array('my_class', 'my_method'));

    RI-EDIT

    Ma lo vuoi richiamare all'interno della
    classe o fuori .
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    grazie per la risposta

    purtroppo però niente da fare, l'errore è sempre "invalid callback"

    penso comunque che non userò quell'istruzione perchè se non ho capito male non è nemmeno ricorsiva... allora tanto vale farsi una funzione che scorre l'array e vi applica la funzione

    Edit:
    io chiamo array_map dentro un metodo di una classe statica e la funzione da applicare è un altro metodo della stessa classe
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  4. #4
    hai provato con

    Codice PHP:
    //se metodo statico
    array_map(array('MyClass''myCallbackMethod'),$array); 

    //se metodo non statico
    array_map(array($this'myCallbackMethod'),$array); 
    ????
    www.gext.it

  5. #5

    .........

    Non conosco il tuo script
    quindi questo è puramente
    a scopo didattico per la sintassi
    (ricorsività a parte)

    Codice PHP:
    <?php 
    class Counter {
           static public 
    $counter=3;
        static public function 
    incrementCounter($n) {
             return(
    self::$counter $n);
        }
        static public function 
    testStatic()
        {
            
    $array= array('1','2','3');
            
    $newArray=array_map(array(self"incrementCounter"),$array);
            
    print_r($newArray);
        }
    }
    Counter::testStatic();
    ?>



    PS.

    @Caldera
    a scopo didattico per la sintassi
    Per il forum
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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.