Newsgroup: it.comp.www.php
Titolo: Non so neanche come si chiama...

Scusate il titolo, ma volevo fare una domanda su una cosa che non so come si
chiama:
avete presente i valori numerici espressi per indicare i permessi (rwx) dei
file? quindi
4 per la lettura
2 per la scrittura
1 per l'esecuzione
che vengono poi sommati e danno il valore corrispondente (intanto faccio la
prima domanda: come si chiamano?).
Per leggere qualcosa del genere ho fatto questo (non per i permessi dei
file, ma per altri valori):
// $numero è il valore dato dalla somma dei singoli elementi
if (($numero - $quellopiugrande) >= 0)
{$numero -= $quellopiugrande; echo "quellopiugrande";}
if (($numero - $quellomedio) >= 0)
{$numero -= $quellomedio; echo "quellomedio";}
if (($numero - $quellopiccolo) >= 0)
{$numero -= $quellopiccolo; echo "quellopiccolo";}
...
tante volte quanti sono gli elementi.
C'è un modo veloce per fare questa verifica? Spero mi sia spiegato bene...
LAMASE

Non so se sia più veloce, ma forse più elegante:
switch ($somma){
 case ($somma>= $maggiore):
  $somma -= $maggiore;
  echo "il $maggiore c'è\n";
 case ($somma>= $medio):
  $somma -= $medio;
  echo "il $medio c'è\n";
 case ($somma>= $piccolo):
  echo "il $piccolo c'è\n";
}
Ma perchè il '\n' non mi manda a capo, ma aggiunge solo uno spazio?
--
Ciao, Piero.
http://www.qsl.net/ik2vtj
http://www.ardf.it
Togli  /  Remove
NONVOGLIOSPAM
dall'indirizzo  /  from address
"LAMASE" <a@b.c> ha scritto nel messaggio
news:9qp3dv$ksp$1...@fe2.cs.interbusiness.it...


 ha scritto nel messaggio
news:9qplk8$q185f$1...@ID-83989.news.dfncis.de...



ICQ# 11129001
http://www.robocore.com/
http://www.calogero.org/
http://www.totosite.net/


Il modo più veloce è fare l'and bit a bit (&) col valore.
se il permesso per l'owner è ad esempio 5 => 5=1+0+4  = 1*2^0 + 0*2^1 +
1*2^2
Quindi ad esempio $numero=5
Ecco il codice
$numero=5;
if ($numero & 1)
    print "c'è 1";
if ($numero & 2)
    print "c'è 2";
if ($numero & 4)
    print "c'è 4";
E' stato studiato per funzionare in questo modo perchè le operazioni di and,
or e not sono molto veloci (e comode da fare in hardware con dei semplici
transistor)
Naturalmente questo discorso del'and bit a bit funziona usandolo con numeri
potenze del 2 ;)
Non ti aspettare che visto che 9=5+4 il seguente codice ti tiri fuori 5 e 4
$numero=9;
if ($numero & 1)
    print "c'è 1";
if ($numero & 2)
    print "c'è 2";
if ($numero & 4)
    print "c'è 4";
if ($numero & 5)
    print "c'è 5";
Ciao,
Tommaso
                         Webmaster di:
 ~- Software Planet: 
www.softwareplanet.net
 -~
    ~- Advert Power: 
www.advertpower.com
 -~
       ~- Flash Planet: 
www.flashplanet.it
 -~
                                ~-~

 prima domanda: come si chiamano?).
Attributi di accesso,
rappresentati con un bitset e quindi accessibili con le operazioni binari
come &,|,^,>>,<<,~. Non scambiare con gli operatori logici!
leggi qui: 
http://www.php.net/manual/en/language.operators.bitwise.php

prima domanda: come si chiamano?).
Permission bits.
Si manipolano benone con l'algebra booleana a colpi di AND e OR.
Leonardo
-- 
Nior thainig ar major i dtus an lae chugainn,
is ni rabhamar fein ann i gcoir na gceart
ach mar sheolfai aoireacht bo gan aoire,
ar thaobh na greine de Sliabh na mBan.

GRAZIE A TUTTI!!!!
LAMASE