Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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: 248
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: 1792
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";
}

;)

PM Quote
Avatar
giocala88 (Normal User)
Expert


Messaggi: 248
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: 248
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: 1792
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.

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
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


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote