Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - problema con invocazione di funzione...
Forum - PHP - problema con invocazione di funzione...

Avatar
giocala88 (Normal User)
Expert


Messaggi: 243
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 18:14
Martedì, 05/01/2010
Salve ragazzi ho un problema con l'invocazione di funzione in PHP:
Mi spiego meglio ... ho un file (file1.php)che contiene una funzione, supponiamo ad esempio:

[file1.php]
//dichiarazione di funzione
function funzione_prova() {
    <istruzione>
}

Facendo un controllo sulla dichiarazione di funzione del file1.php, mi dice che è tutto ok...

Passiamo ora al secondo file (file2.php) che contiene :
[file2.php]

require 'file1.php';

//invocazione di funzione
funzione_prova();
if(!(funzione_prova))
  echo "Errore";
else
  echo "OK";

Come mai mi da Errore, anche se dichiaro i valori delle variabili nelle parentesi???
... se dichiaro la funzione nello stesso script dove la invoco mi esce ugualmente il messaggio "Errore". Dove sbaglio????8-|
Ringrazio tutti anticipatamente.

Ultima modifica effettuata da giocala88 il 05/01/2010 alle 18:15
PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 21:52
Martedì, 05/01/2010
hai scritto una cosa che in php non ha senso, probabilmente l'avrebbe in C (puntatore a funzione)...

invece di fare:
miafunzione();
if (!(miafunzione))
{
  echo "Errore";
}


prova a fare così:

if (! miafunzione() )
{
  echo "Errore";
}

;)


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM Quote
Avatar
giocala88 (Normal User)
Expert


Messaggi: 243
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 10:51
Mercoledì, 06/01/2010
Ciao, scusa ma avevo sbagliato a digitare...comunque il problema non è quello.
Vorrei creare una libreria che contiene delle funzioni, una di queste è

[file1.php]
function update() {

  $sql_update = "UPDATE tabella SET
                 valore1 = 1 WHERE
                 valore2 = '$valore2'";
  if(!mysql_query($sql_update)) {

    echo "Errore";
  }
}

Questa funzione insieme ad altre deve essere invocata nello script file2.php

[file2.php]

require 'file1.php';

//invocazione di funzione
update();

if(! update() ) {
  echo "Errore";
} else
    echo "OK";

Non mi effettua la modifica al database. Non solo ... come se non bastasse tutte le funzioni invocate non vanno?!?!?!:om:...Come mai tutto questo???8-|

PM Quote
Avatar
giocala88 (Normal User)
Expert


Messaggi: 243
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 15:59
Mercoledì, 06/01/2010
Ho risolto il problema postato in precedenza...non avevo dichiarato dei poarametri:rofl:
Ora però vorrei sottolineare una cosa strana di una seconda funzione:

function conta() {

$cont = mysql_query("SELECT COUNT(id) FROM query where valore=$valore");

if(!$cont)
  echo "Errore";

}

//associo l'emento a mysql_fetch_array
$result = mysql_fetch_array($cont);

//associo $result ad una seconda variabile
$num = $result['COUNT(id)'];
}

//invoco la funzione
$val = conta();

echo "$val";

Nessun tipo di errore, tutto regolare, solo che non mi visualizza il valore COUNT(id)...
Dovrò passare il parametro nella funzione???..Grazie per il vostro aiuto... 8-)

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 19:59
Mercoledì, 06/01/2010
COUNT(id) ha senso solo in mysql, il php non sa che farsene di questa stringa.
Fatti ritornare il valore ( $cont ) e usa quello per accedere all'array.


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 10:57
Venerdì, 08/01/2010
bhe mi pare ovvio che non funzioni.

dov'è il return per ricavare il valore?

e poi una cosa,
vedo praticamente un modo sbagliato di usare le funzioni
includendo file1.php file2.php

il modo migliore di usare funzioni e quella di avere una classe apposta.
usando le OOP.
evitando manipolazioni non volute di qualche variabile già dichiarata nel file.

avendo una classe divisa si evitano molti problemi

Ultima modifica effettuata da Thejuster il 08/01/2010 alle 11:02


PM Quote