Newsgroup: it.comp.www.php
Titolo: Confronto su una stringa..

Giorno a tutti,sto facendo un sito con Joomla e mi trovo davanti ad un
problema:
Devo vedere se una funzione restituisce una stringa vuota ( la
funziona mi restituisce il percorso all'interno del sito).
Per questo motivo ho messo come codice:
					<?php if (mosPathway() != "") {
        	                              mosPathway();
                                         }
                                             else {?>
        	                                   Articoli
                                         <?php } ?>
In cui sostanzialmente voglio dire che: se la funzione restituisce un
valore non vuoto allora stampa la funzione stessa, in caso contrario
stampa (con stampa intendo a schermo) la parola "Articoli".
Il problema è che, mentre quando va a navigare tra gli articoli scrive
semplicemente  "Articoli" quando naviga in altre sezioni scrive "
percorso xyz Articoli" ovvero concatena le due stringhe.
Avete qualche idea per risolverlo?
Dove sbaglio??

Ciao, io fare cosě (spero non sia una tavanata):
<?php if (mosPathway() != "") {
               mosPathway();
           }
          else {
              echo"Articoli";
          } ?>
David
Giorno a tutti,sto facendo un sito con Joomla e mi trovo davanti ad un
problema:
Devo vedere se una funzione restituisce una stringa vuota ( la
funziona mi restituisce il percorso all'interno del sito).
Per questo motivo ho messo come codice:
<?php if (mosPathway() != "") {
                                      mosPathway();
                                         }
                                             else {?>
                                           Articoli
                                         <?php } ?>
In cui sostanzialmente voglio dire che: se la funzione restituisce un
valore non vuoto allora stampa la funzione stessa, in caso contrario
stampa (con stampa intendo a schermo) la parola "Articoli".
Il problema č che, mentre quando va a navigare tra gli articoli scrive


 funziona mi restituisce il percorso all'interno del sito).
A quanto pare, mosPathway() *stampa* e non *restituisce* il path.
Quindi o trovi un argomento che dica alla funzione di return-are il path
e non di print-arlo, o trovi un'altra funzione che ti restituisce il
path, oppure devi bufferizzare l'output (meglio le prime due!).
Ciao,
Maverick
-- 
ĢChe non siete pių liberi di non avere una casa con letto per dormire.
 Lavorate voi - schiavi dei soldi - che non sentite la puzza della
 schiavitų!ģ (a Mario di Monte Mario, Roma) # 
http://libre.netsons.org/

 <?php if (mosPathway() != "") { ...
Il tuo codice produce lo stesso risultato di quello iniziale. :P
Ciao,
Maverick
-- 
«Che non siete piů liberi di non avere una casa con letto per dormire.
 Lavorate voi - schiavi dei soldi - che non sentite la puzza della
 schiavitů!» (a Mario di Monte Mario, Roma) # 
http://libre.netsons.org/

 
direi di no visto che il problema iniziale era che in ogni caso veniva 
stampata la parola articoli (dato che è fuori dai tag php)



Prova questo codice e vedi cosa stampa:
<?php if (false) : ?>
	<p>Il fatto che del codice sia fuori dai tag PHP non vuol dire che
verrà necessariamente mandato in output.</p>
<?php endif; ?>
Jorghe aveva detto che *quando va a navigare tra gli articoli scrive
semplicemente  "Articoli" quando naviga in altre sezioni scrive "
percorso xyz Articoli" ovvero concatena le due stringhe*. Io invece
suppongo che in entrambi i casi "concateni" le due stringhe, solo che
nel primo caso si tratta di una stringa vuota '', e quindi non si vede.
Poi magari mi sbaglio su questa supposizione, ma non vedo differenze di
output tra quei due pezzi di codice.
Ciao.
Maverick
-- 
«Che non siete più liberi di non avere una casa con letto per dormire.
 Lavorate voi - schiavi dei soldi - che non sentite la puzza della
 schiavitù!» (a Mario di Monte Mario, Roma) # 
http://libre.netsons.org/

 Maverick
ciao!

Provo le varie opzioni e vi dico,grazie cmq per l'interessamento..

Niente,ho provato ma il risultato è sempre lo stesso (evitando quel
pseudo script..)
Maverick parlava di un modo per bufferizzare l'output,particolare che
non so sviluppare,quindi se avete altre idee ( so che stresso
parecchio..) sono ottimamente accette...
Grazie ancora..


Aggiornamento veloce...
Ho provato a sostituire nel codice facendolo diventare:
                                        <?php if (mosPathway() != "")
{ ?>
                                                    PROVA
                                         <?php }
                                             else {?>
                                                   Articoli
                                         <?php } ?>
Ho scoperto che lì dentro nn c'entra nemmeno,quindi immagino sia
sbagliata proprio la condizione dell'if...
Someone could help me please??? ovvero... AIUTTTOOOO :)

Jorghe55 ha scritto:

francamente continuo a non capire perché non puoi stampare con echo 
decidendo invece di uscire dai tag php.
Scusa ma il tuo problema è o no che lo script stampa la stringa articoli 
  anche quando la funzione soddisfa il != "" ??
Se cosi è la prima risposta che ti è stata fornita è giusta. Forse la 
usi male.. ;-)

Non funziona ne rimuovendo il tag ne lasciandolo inserendo l'echo...
Il problema è che non riesce a trovare come soddisfatta la condizione !
= quindi entra nell'else cmq...
E quando cmq nn è vuota stampa il pathway ed entra cmq nell'else...
Boh,nn so che pensare..

Jorghe55 ha scritto:

Come già ieri ti ha suggerito Maverick FC, sei sicuro che la funzione
mosPathway() restituisca una stringa invece di stamparla? Perché le
due cose sono ben diverse. Prima di usare quella funzione prova a
scrivere questo:
<?php
var_dump(mosPathway());
?>
Così puoi vedere se e cosa viene restituito dalla funzione e regolarti
di conseguenza.
-- 
Federico


Restituisce NULL... :(
Ma è quella la funzione che usa... :( :( :( :(
Qualche altra idea??

 Qualche altra idea??
Potresti modificare la funzione mosPathway() in modo da farle
restituire la stringa che ti serve (e poi modificare il codice in
tutti i punti dove è usata). Altrimenti, guarda quelli proposti da
Maverick FC.
-- 
Federico

 Ma è quella la funzione che usa... :( :( :( :(
Usa chi ?
Se la funzione ha documentazione puoi leggere lì e vederne l'uso, 
altrimenti se hai qualche esempio in cui viene usata devi dedurne il 
funzionamento.

 improbabile, comunque..
Leggo solo ora,
non è uno script improbabile, è un esempio molto calzante invece.
Anche io immaginavo che il testo fuori tag php venisse stampato sempre 
ma verifico con sopresa e piacere che Maverick ha ragione.

 
dicevo improbabile perché non riesco a pensare a una situazione concreta 
nella quale usare true o false in quel modo.
Siccome c'è sempre da imparare mi hai incuriosito. Mi faresti un esempio 
nel quale potrebbe essere utile usare questa funzione?

 nella quale usare true o false in quel modo.
Ah, intendi usare true o false come condizione, _immagino_ che Maverick 
l'abbia usato solo come esempio per avere un blocco che dovesse 
sicuramente non essere eseguito, questo implicava che nel post originale 
la scritta comparisse sempre perché la condizione era sempre falsa.

 la scritta comparisse sempre perché la condizione era sempre falsa.
Immagini bene :)
