Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    5

    Script PHP CLI: Call to undefined function

    Buongiorno a tutti,

    per la prima volta sto provando uno script php da linea di comando. Lo script per adesso è davvero molto semplice, cerca delle occorrenze in un file esterno csv. Quando lo lancio da console col comando
    codice:
    php -f Bootstrap.php myFile.csv
    mi restituisce l'errore Call to undefined function checkPayment(). Suggerimenti?

    Codice PHP:
    class Bootstrap 

    public function 
    checkPayment($narrative){ 
         if(
    strlen($narrative)==11 && strpos($narrative,'PAY')!==FALSE){ 
              echo 
    $narrative; } 


    public static function 
    main($argv) { 
         
    $nameFile $argv[1]; 
         
    $handle fopen($nameFile"r"); 
         if (
    $handle !== FALSE) { 
              
    $row 0
              while ((
    $data fgetcsv($handle0",")) !== FALSE) { 
                  
    $num count($data); 
                  for (
    $c=0$c $num$c++) { 
                       
    $bufferedFile[$row][$c] = $data[$c]; 
                  } 
                 
    $row++; 
            } 
         } 
        
    fclose ($handle); 

        for(
    $i=1;$i<$row;$i++){ 
            for(
    $j=1;$j<$num;$j++){ 
                 
    checkPayment($bufferedFile[$i][$j]); 
            } 
        } 



    Bootstrap::main($argv); 

  2. #2
    checkPayment non e' una funzione nello scope globale, ma un metodo di una classe, e quindi deve essere chiamato da un oggetto creato da quella classe. Nel tuo caso pero' non crei l'oggetto ma chiami una funzione statica, quindi dovresti dichiarare ed utilizzare come statica anche la funzione checkPayment.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    5
    ok grazie dichiarando la funzione static funziona.
    ma secondo te è una soluzione "elegante" dichiarare tutte le funzioni come static?

  4. #4
    Originariamente inviato da Resiak
    ma secondo te è una soluzione "elegante" dichiarare tutte le funzioni come static?
    No, vuol dire che probabilmente non ti serve una classe.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    5
    Grazie per la dritta, ho riscritto il codice istanziando un oggetto della classe e usando quindi le funzioni senza static.
    Appena mattina faccio parecchia fatica a carburare

    Buona giornata

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.