errore dopo passaggio Php 7.2

merlino68

Nuovo Utente
31 Mag 2020
5
0
1
in un campo calcolato , avevo questo semplice calcolo ed ha sempre funzionato.
Ora la versione 7.2 controlla i campi e restituisce l'errore : A non-numeric value encountered
sapreste dirmi come evitare questo warning oppure se possibile condizionare il calcolo al valore di un altro campo?


$mycalc= round('{tm_test___peso_sollevato}'/(1.0278-(0.0278*'{tm_test___ripetizioni}')),2);
return $mycalc;

Grazie a chiunque voglia aiutarmi
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.233
321
83
@merlino68
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
PHP (2).png
quando posti del codice php, oppure la funzione codice dalla barra degli strument
box inserisci.png

Inoltre IMPORTANTE: Prima di creare una nuova discussione o di rispondere alle discussioni esistenti ricordati di leggere attentamente il Regolamento del Forum e l'eventuale regolamento specifico della sezione!

Grazie

Correggi i tuoi post
mi raccomando altrimenti sarò costretto a cancellare le discussioni
 

marino51

Utente Attivo
28 Feb 2013
2.903
160
63
Lombardia
se possibile condizionare il calcolo al valore di un altro campo?
dal codice che hai postato sembra siano state usate due costanti che avrebbero dato errore anche con le versioni precedenti di php,
il renderle "stringhe", probabilmente, ha permesso di sfruttare un baco di php

potresti provare una cosa del genere (trucco del trucco), da applicare ad entrambe le costanti.
PHP:
(float)( '{tm_test___peso_sollevato}' )
ma non so se funziona

oppure in modo più corretto, dovresti sostituire le variabili alle costanti, in questo caso avresti,
PHP:
$mycalc = round(${$tm_test___peso_sollevato}/(1.0278-(0.0278*${$tm_test___ripetizioni})),2);
la variabile interna restituisce il nome e ${....} ne gestisce il valore

ma volendo, perché non usare una funzione, a cui si possono passare i parametri con i nomi più disparati, ottenendo lo stesso risultato ?
PHP:
function calcola_XYZ($tm_test___peso_sollevato, $tm_test___ripetizioni)
    { return $mycalc= round($tm_test___peso_sollevato/(1.0278-(0.0278*$tm_test___ripetizioni)),2); }
spero di aver capito, perchè il codice che hai postato è davvero poco ....
 
Ultima modifica:
  • Like
Reactions: merlino68

merlino68

Nuovo Utente
31 Mag 2020
5
0
1
Buongiorno, potresti modificare in questo modo, in quanto avendo i QUOTE non rappresentano un numero!
PHP:
$mycalc= round($tm_test___peso_sollevato/(1.0278-(0.0278*$tm_test___ripetizioni)),2);
@merlino68
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
PHP (2).png
quando posti del codice php, oppure la funzione codice dalla barra degli strument
box inserisci.png

Inoltre IMPORTANTE: Prima di creare una nuova discussione o di rispondere alle discussioni esistenti ricordati di leggere attentamente il Regolamento del Forum e l'eventuale regolamento specifico della sezione!

Grazie

Correggi i tuoi post
mi raccomando altrimenti sarò costretto a cancellare le discussioni
Mi scuso per la mancanza , non avevo visto la specifica sul codice .
Purtroppo non trovo il modo di editare il post per aggiungere quanto richiesto , mi potresti indicare come fare?
Grazie 1000
 

merlino68

Nuovo Utente
31 Mag 2020
5
0
1
dal codice che hai postato sembra siano state usate due costanti che avrebbero dato errore anche con le versioni precedenti di php,
il renderle "stringhe", probabilmente, ha permesso di sfruttare un baco di php

potresti provare una cosa del genere (trucco del trucco), da applicare ad entrambe le costanti.
PHP:
(float)( '{tm_test___peso_sollevato}' )
ma non so se funziona

oppure in modo più corretto, dovresti sostituire le variabili alle costanti, in questo caso avresti,
PHP:
$mycalc = round(${$tm_test___peso_sollevato}/(1.0278-(0.0278*${$tm_test___ripetizioni})),2);
la variabile interna restituisce il nome e ${....} ne gestisce il valore

ma volendo, perché non usare una funzione, a cui si possono passare i parametri con i nomi più disparati, ottenendo lo stesso risultato ?
PHP:
function calcola_XYZ($tm_test___peso_sollevato, $tm_test___ripetizioni)
    { return $mycalc= round($tm_test___peso_sollevato/(1.0278-(0.0278*$tm_test___ripetizioni)),2); }
spero di aver capito, perchè il codice che hai postato è davvero poco ....
Funziona in entrambe i modi compreso aggiungendo (int)
Grazie per la risposta