Newsgroup: it.comp.www.php
Titolo: confrontare variabile con <=

non riesco a far funzionare dei confronti
 
NUMERI
 
$var=($quantita <= 0) ? 0: 1;
 
non funziona il <=
 
 
il valore � un numero (visto con print) ma non so se una stringa o che
altro tipo di variabile e come risolvere
 
_____________
 
TESTO
$vtesto � del testo e se ho il si non lo riconosce nel confronto
$var2=($vtesto=='si') ? 0: 1;
 

 non funziona il<=
 
Forse perchè al parser php vedendo un siffatto costrutto viene il 
voltastomaco... come a me ;-)
 
E' così costoso il classico, non ambiguo e leggibilissimo:
if ($quantita <= 0)
{
   $var = 0;
}
else
{
   $var = 1;
}
 
???
 
 
-- 
TeeBX VoIP communication platform (coming soon)
http://code.google.com/p/teebx/
 
-----------------------------------------------
Lightweight++ Business Friendly++ Open++

 non funziona il <=
 
che vuol dire non funziona? 
cosa succede?
cosa ti aspetti invece ?
cosa c'è dentro $quantita?
cosa restituisce gettype di $quantita ?

 
 
1 - L'operatore ternario è leggibilissimo.
 
2 - Il "classico, non ambiguo e leggibilissimo " if else che hai 
suggerito tu non cambierebbe di un bit il contenuto di $var.
 
 
 
 
 
 

 cosa restituisce gettype di $quantita ?
 
string

 string
 
Ti faccio 5 domande, e rispondi ad una sola, direi che possiamo chiudere 
il thread.

 1 - L'operatore ternario è leggibilissimo.
 
Dipende dai contesti, personalmente lo trovo meno leggibile di altri
Sarà che mi sto smazzando CleanCode e m'è salita di nuovo la scimmia del 
codice pulito, ma per il poco posto che fa risparmiare sullo schermo 
secondo me si porta via troppa leggibilità
Poi son gusti eh ...
http://www.amazon.it/Robert-Martin-Clean-Collection-ebook/dp/B00666M59G/ref=pd_sim_sbs_kinc_2
 
 
cut ...
 
M
 
-- 
I fatti mi cosano


1) $quantita <= 0    nel confronto di un numero quantita non si accorge
quando <=0  o quando superiore
 
2) come sopra
3) che si accorga qundo il numero è <= 0 o superiore
4) un numero
 
 

 non funziona il <=
 
Secondo me ha qualche altro problema il tuo codice:
 
$ cat confronto.php
<?php
 $quantita = 3;
 print $quantita."\n";
 $var=($quantita <= 0) ? 0: 1;
 print $var."\n";
 
 print "---\n";
 
 $quantita = -3;
 print $quantita."\n";
 $var=($quantita <= 0) ? 0: 1;
 print $var."\n";
 
$ php5 confronto.php 
3
1
---
-3
0
 
 
Questa bella cosa qui sopra si chiama "Unit Testing" (di solito si 
applica a una funzione o a un metodo di classe).
Qui è molto grezzo, ma fa capire il senso.
Non è complicato, e fornisce una suite di test da lanciare periodicamente 
(anche ogni mezz'ora) per vedere se rompi qualcosa nel tuo codice man 
mano che programmi.
 
Bye.


il problema è che $quantità è di tipo stringa
 
ho provato poi con (int)$quantita  ma trasforma in 0
 
ringrazio per il suggerimento per fare il test
 
 
 
 
 

 
aggiungo che
la $quantita non è caricata con 
$quantita=-3; come nel tuo test dove poi int funziona
 
ma derva da cms e non so se dentro ci aggiunge altro che possa dare
fastidio
 
fatto è che se faccio print $quantita ho es 33
invece con
 
print (int)$quantita da zero
 
si puo' capire se c' altro dentro ?
 

 4) un numero
 
 
 
il tuo errore sta nel credere che 
 
la stringa contenente il carattere "3"
 
sia equivalente all'intero 3
 
Non lo è, nei link sotto è spiegato  il perchè.
 
http://php.net/manual/en/language.operators.comparison.php
 
http://www.php.net/manual/en/language.types.type-juggling.php
 
http://www.php.net/manual/en/language.types.php
 

 fatto è che se faccio print $quantita ho es 33 invece con
 
var_dump($quantita);
 
Bye.

 ho provato poi con (int)$quantita  ma trasforma in 0
 
prova con intval($quantita)
e verifica che $quantita contenga solo cifre numeriche, e non spazi o
porcherie.
 
-- 
Alessandra
 
Il giorno del Giudizio Universale, quando una voce ordinerà «Tutti in
piedi», riuscirò a trovare le mie pantofole?


con var_dump ho
string(38) "33"
 
 
e credo si spieghi tutto
a video leggo 33 ma in realtà sta passando questa roba
si puo' fare qualcosa?
 
 
andare a prendere il valore dentro alle ""
 
 
 
 
 
 
 
 
 
 
 
tra l'altro partendo dal tuo esempio e trasformando in stringa i numeri ho 
con i vari is_numeric((int)$q), gettype etc
per
$q="3";
(int)$q   da i valori   a sx quando ho il risultato a dx la funzione usata
1 . . string
1 . . ctype_digit
1 . . isset
1 . . numeric
string . . gettype
 
 
se $q="-3"
(int)$q  è
1 . . string
1 . . isset
1 . . numeric
string . . gettype 
 
 
 
invece per il mio valore
(int)$quantita
1 . . string
1 . . isset
string . . gettype 
 
non è numerico

 questa roba si puo' fare qualcosa?
 
Si è perso il vero contenuto, ma quel 38 mi dice abbastanza per capire 
che in mezzo ci sono una serie di valori non stampabili.
 
Ipotizzo che sia un UTF-16 o 32 con magari tanto di BOM all'inizio. Prova 
a convertirlo con:
 
http://php.net/manual/en/function.mb-convert-encoding.php
 
 
Prova i vari UTF come sorgente e iso-8859-1 come destinazione.
 
Bye.

 un costrutto if () ...
 
Rispettabile opinione ma è uno di quei casi dove ognuno puo rimanere 
dalla sua parte senza far danno a nessuno... fino a quando non lavorano 
insieme.
 
Daltra parte c'è chi ama leggere seduto sul wc, sono affari suoi ;-) 
perchè normalmente nella stanza da bagno si sta da soli.


 Sul serio ;)
 
sono d'accordo. Odio anche io la prolissità nel codice. Lo rende
illeggibile.
 
Meglio piuttosto un:
 
if ($condizione) $a=0; else $a=1;
 
che stare a mettere mille graffe e dividere 2 istruzioni su 8 righe.
 
-- 
Alessandra
 
Lo penso davvero: il Papa è una persona troppo intelligente per credere
in Dio. - Paolo Villaggio

 if ($condizione) $a=0; else $a=1;
 
Per stare in tema, io uno che scrive codice così lo manderei a casa. :P
 
A questo punto meglio il ternario.
 
Ogni riga di codice deve fare sempre e solo UNA cosa. Qui ne fai 4.
Inoltre le graffe sono sacre. Vanno sempre messe, anche in casi "banali" 
come questo.
 
Bye.

 "banali" come questo.
 
le graffe inutili fanno perdere tempo a chi scrive e confondono chi
legge. Uno che mi mette un'istruzione unica su una riga, e dedica
un'altra riga ad una graffa, lasciandola vuota, con ME non lavorerebbe
di certo.
Il mondo è bello perchè è vario :)
 
-- 
Alessandra
 
Avevo una ragazza e dovevamo sposarci, ma c’era un conflitto religioso.
Lei era atea e io agnostico. Non sapevamo senza quale religione educare
i figli. - Woody Allen

 di certo.
 
Per fortuna non lavoriamo insieme, allora.
Per la cronaca, io lo scriverei così:
 
if ($condizione) {
    $a = 1;
 
} else {
    $a = 2;
}
 
Sì, con la riga bianca in mezzo e le graffe a fine riga.
 
Bye.

 Per la cronaca, io lo scriverei così:
 
anche io scriverei come te, se le istruzioni dentro le graffe fossero
*PIU'* di una. Per un'unica istruzione, soprattutto se corta come
un'assegnazione, non spreco righe. Ma, appunto, è questione di stile
personale, soprattutto.
 
-- 
Alessandra
 
Non sono le parti della Bibbia che non capisco quelle che mi
preoccupano, sono le parti che capisco - Mark Twain

 personale, soprattutto.
 
Il quid è nell'"esercizio per casa".
Se ti alleni a mettere sempre e comunque le parentesi, quando aggiungi 
un'azione non succede niente di grave. Se non le metti, ti trovi con
 
if ($condizione) $a=1; $b=2; else $a=2;
 
che dà errore, oppure
 
if ($condizione)
    $a=1;
    $b=2;
else
    $a=2;
 
che è ancora peggio perché, oltre a dare errore, non lo vedi.
 
Bye.

 aggiungi un'azione non succede niente di grave.
 
se permetti, con 30 anni di programmazione alle spalle (e non di PHP ma
di linguaggi ben più rigorosi), ste dimenticanze da studente brufoloso
non sono da me :)
 
-- 
Alessandra
 
Un mito, … è una religione a cui nessuno crede più - James Feibleman

 non sono da me :)
 
Puoi anche essere un genio, ma quando dai in mano il codice a un altro lo 
stronchi.
 
Ti faccio notare che invece, in python, è codice perfettamente 
funzionante:
 
if condizione
    a = 1
    b = 2
else
    a = 2
 
Non dà errore.
 
Bye.

 altro lo stronchi.
 
si, ma il mio codice non va nè andrà mai in mano a nessuno.
 
-- 
Alessandra
 
«Dio, dammi un assegno della tua presenza!». - Marcello Marchesi


 
Never say never...
 
Un mio orrendo file C lo dovetti adattare per un cliente... Per la serie 
"Chi altri nel mondo dovrà mai fare 'sta simulazione?"...
 
 


Eh, onestamente c'è da sperarlo, per te, per chi dovesse maneggiarlo e 
per il cliente.
 
L'ossessione (o la passione) per scrivere codice pulito che ho io e 
penso anche Alessandro non nasce solo da un gusto estetico, ma dal fatto 
che viviamo in un ecosistema e vogliamo renderlo migliore, anche a 
vantaggio nostro
 
Dovendo trovare degli standard di scrittura è certamente possibile 
scegliere soluzioni idiosincratiche, ma non sono "naturali" (passami il 
termine), ossia non sono quelle che ad un programmatore medio 
occidentale risultano ovvie
 
Tradotto, l'arabesco se arabesco ci deve essere dovrebbe essere più 
nell'architettura che nei singoli mattoni
 
Ovvio che se sei una monade che fa colare codice da un suo ragionamento 
solipsistico, per fare commit nel repo delle stelle fisse, puoi 
bellamente impippartene
Se viceversa vivi in un mondo dove interagisci, il codice va 
riparato/modificato/esteso, la cosa cambia
 
Ovviamente si parla comunque di approcci e la cosa stupenda è che siamo 
liberi di averne di diversi e di sceglierli per come ci aggrada


 siamo liberi di averne di diversi e di sceglierli per come ci aggrada
 
ovviamente. Soprattutto lo stile di scrittura è come casa propria:
ognuno se la arreda come più gli aggrada, d'altronde è lui/lei che deve
viverci, mica il resto del mondo.
 
-- 
Alessandra
 
Il prete è come un bagarino all'ingresso del paradiso - Henry Luis
Mencken


È appunto questo il punto:
Io vivo in un mondo dove frequento camere d'albergo, a volta 
appartamenti in residence, raramente case, ancor più raramente case mie
Alcuni li arredo io, alcuni li trovo arredati
 
A furia di trovare la saponetta incartata al "solito" posto finisce che 
pure io ce la metto quando sono io a farlo, e finisce che mi incazzo se 
scopro che la saponetta sta scartata sotto l'armadio
 
In chiusura sottolineo il fatto che questi standard sono ancora più 
importanti in linguaggi interpretati come PHP perché non hai il 
compilatore che ti segna di rosso ogni minima cappella che stai scrivendo
My 0.02€


 Io vivo in un mondo dove frequento camere d'albergo
 
che bella vita, trascorsa tra un albergo e un altro.. :)
 
-- 
Alessandra
 
Io non so se Dio esiste. Ma se esiste, spero che abbia una buona scusa.
Woody Allen


Eh, al netto della metafora delle case/alberghi che può essere 
fuorviante, devo dirti che a furia di maneggiare codice altrui qualcosa 
l'ho anche imparato, se non altro il gusto per soluzioni pulite. Questo 
poi mi ha portato a studiare di più dirigendomi verso una certa meta
 
All'inizio della mia carriera scrivevo cose che solo io maneggiavo e a 
rileggerle mi viene da dar di stomaco :)
 
Ritornando al paragone con l'architettura, con l'età ho capito che se 
tutti gli architetti mettono un bagno più o meno in un certo punto un 
motivo c'è
Metterlo da tutt'altra parte può avere senso, ma nella maggior parte dei 
casi non ne ha ed è solo uno spostamento frutto di poco ragionamento 
sulla disposizione, voglia di distinguersi, ignoranza (dei pattern 
architetturali, non delle tecniche costruttive)
 
Poi ovviamente se per te funziona pace e contenti tutti, ma da questo 
non si può ricavare né che il tuo sia un principio generale applicabile 
in maniera ragionevolmente semplice a tutti, né però che un simile 
principio generale non ci sia
 
 
P.S.
non per farmi cazzi non miei, ma sei Russo?
Collaborando da svariati anni con l'Università di Trento, dove ci sono 
ricercatori di svariate etnie, ho maneggiato codice scritti da Russi, 
Koreani, Cinesi, Indiani ... e mi pare di aver iniziato a notare dei 
pattern specifici di una cultura (o cultural-specifici così tiro fuori 
un po' del mio bagaglio di sociologia), il che ha un senso dato che 
scrivere codice è pur sempre scrivere


 non per farmi cazzi non miei, ma sei Russo?
 
italianissim"A".
 
-- 
Alessandra
 
Sono contrario ai privilegî del clero: chiedo l’abolizione del
celibato. - Markus M. Ronner


Ah, ok, dal dominio della tua mail pensavo fossi un Russo
Sei praticamente un unicum allora, una donna Italiana che scrive codice 
da più di 30 anni ...
Vogliamo foto e prova del carbonio14 sennò non ci crediamo :D
Ciao
M


 Sprecare tempo a decodificare il sorgente ammetterai che non ha senso
 
dipende.. se scrivi codice per l'uso altrui, è chiaro che ci vogliono
regole ben precise. Se lo scrivi per te, allora è arte pura, e come
tale libera. D'altronde, programmare è attività creativa, e dunque arte
(a meno che non parliamo di programmatori-muli), e imbrigliare l'arte è
sempre molto complicato ;) (il fascismo ci riuscì, dettando delle
regole ben precise..)
 
-- 
Alessandra
 
PROPAGANDA
Durante la guerra: "Hai saputo la bella notizia?"
"No".
"Mussolini ha il cancro!".
"Ma no ma no, figurati. E' una voce che fa mettere in giro lui stesso
per risollevare il morale della nazione".


Ecco, e qui ti voglio
Occhio che parto con un pistolotto di quelli da TL : DR
 
Una cosa che noi occidentali borghesi tendiamo a fare è quella di dare 
molta importanza all'univocità, sia per quanto riguarda le persone che 
per quanto riguarda l'arte, quindi uno dei valori che propugnamo almeno 
a parole è l'individualità (o la non-omologazione), un altro è l'originalità
 
Con originalità (quello che credo tu intenda con l'espressione arte 
pura) intendiamo di solito la creazione di un artefatto culturale, come 
se tirato fuori da un nulla. Questo è di per sé impossibile (Mozart a 
parte) ed è un approccio figlio di Cartesio e di quel razionalismo forse 
mal interpretato che permea la cultura borghese contemporanea
 
Io credo che sia illuminante pensare al fatto che i greci usavano il 
termine arte per quello che noi oggi definiremmo tecnica, ossia la parte 
artigianale della creazione, che richiede studio, pratica, pratica, 
studio ...
Per il momento cosiddetto creativo usavano poiesis, termine dal quale 
non per nulla deriva il nostro termine poesia
 
Dirai "che c'azzecca?"; in realtà c'azzecca perché se guardi la storia 
della produzione artistica alla luce di questa riflessione vedrai che 
tutte le opere degne di nota sono figlie di un grande lavoro di bottega, 
di una capacità artigianale dentro cui viene a volte instillato un alito 
che a noi sembra divino.
Senza la capacità "tecnica" non viene un opera d'arte, viene una 
intuizione carina, niente di più.
Detto questo è innegabile che per imparare bene un mestiere, quindi la 
parte artigianale o tecnica della creazione serva rifarsi ai mastri 
artigiani. Il solipsismo non porta lontano, sicuramente non porta a dare 
forma al momento poieutico che quindi va perso
Per fare una creazione è molto più utile imparare a copiare i migliori 
artisti e artigiani del campo, piuttosto che inventarsi un proprio 
metodo da zero
Tutti i momenti di rottura in campo artistico partono comunque dallo 
stato dell'arte al loro tempo, non dal nulla
 
A fronte di tutto questo ho maturato la convinzione che l'approccio 
(chiuditi nell'antro e batti sulla tastiera) non ha assolutamente validità.
L'approccio giusto è: studia gli altri, copia imita, emula e cerca di 
fare meglio. Solo copiando e cercando di portare avanti puoi fare 
qualcosa di originale
Il resto sono fole da éra borghese
 
Ahhh, e adesso caffè solubile e si torna a lavorare :D


 termine arte per quello che noi oggi definiremmo tecnica, 
 
Non usavano invece proprio "tekné" mentre "ars" è il termine latino 
corrispondente?


Capace che ho fatto confusione: l'università l'ho finita ormai da 
qualche bell'annetto
Ripesco le fonti e mi confronto con mia moglie: io ho fatto lo 
scientifico, lei il classico :)
 
Il mio punto era sottolineare la profonda falsità storica di 
quell'approccio cartesiano che vorrebbe che le opere d'arte possano 
venire fuori anche senza la parte artigianale/tecnica
Ho il nervetto un po' scoperto su questo punto: sapessi strade che mi si 
sono chiuse perché secondo altri "non ero portato"
Con l'età ho imparato che "essere portati" vuol dire che nel copiare gli 
altri riesci a fare qualcosa di meglio, ma comunque tocca copiare, 
imparare, applicarsi
Secondo il borghese medio l'idealtipo dell'artista è Mozart che a 5 anni 
compone (senza considerare che cmq viveva immerso nella musica) , ossia 
una predisposizione "innata". Questo lo contesto, in quanto l'arte 
(anche nel senso di capacità poieutica) è un qualcosa che si impara. Poi 
c'è sicuramente un quid che fa sì che fra uno e l'altro ci sia 
differenza in quanto a "livello" di produzione artistica (e qui sarebbe 
da partire col TL : DR sulla rifiuto del concetto di progresso in campo 
artistico, ma tocca pure lavorare :) )
 
È per questo che il tuo approccio lo capisco, ma non lo condivido. Anche 
se scrivi codice per te sola scriveresti meglio seguendo i dettami dei 
migliori artigiani nel campo. Questo almeno è quanto è successo a me
Capisco che quando uno s'è abituato e ha trovato un proprio equilibrio è 
dura


 se scrivi codice per te sola
 
Ti ringrazio ma hai confuso i messaggi a cui rispondere.
 
 
 
[1] 
http://www.pianofundamentals.com/index/information
 

 [1] 
http://www.pianofundamentals.com/index/information
 


 quando combatto contro SOAP (che mi vengono i cinque minuti)
 
Eppure è così Simple…


Non mi far parlare và, che divento scurrile
Prova a martellarlo dentro ad Android, poi vedi come ridi....


 ad Android, poi vedi come ridi....
 
Non ti conviene fare un proxy REST+JSON in mezzo? O direttamente 
implementare REST+JSON sul server, se puoi.
 
Bye.


Eh, dillo al comune và
Hanno tutto su axis. Ho provato a proporre REST. Non ti dico le facce ....
Non ci posso mettere proxy in mezzo perché gli serve l'autenticazione 
con utente pwd e ip
Ovviamente Forwarded-For non se lo cagano di striscio
Guarda, sono progetti interessanti e che danno lustro, ma interagire con 
una grossa PA vuol dire mettere in conto svariati mal di pancia
 
Per inciso tutte le altre cose Android che faccio di solito si 
appoggiano a GSON con una bella deserializzazione on the fly comoda comoda
 
Qui sto usando una libreria ragionevolmente decente, ma ha dei problemi 
e mi tocca conviverci
