Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Spezzare condizione

  1. #1

    Spezzare condizione

    Ciao a tutti, spesso spezzo le "condizioni" come segue e non ho mai avuto problemi:

    <?php if (condizione) { ?>

    <div>Test</div>

    <?php } ?>



    C'è modo di racchiudere le due parti in due funzioni come seguono in modo da richiamarli successivamente?

    <?php

    function primo() {
    if (condizione) {
    }

    function secondo() {
    }
    }



    primo();

    <div>Test</div>

    secondo();

    ?>

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    No. Lo scopo di php è di generare pagine html. <?php .... ?> servono per individuare il codice php. Come vorresti che funzionasse avresti sia un errore all'esecuzione perche il div starebbe nel codice php sia la funzione verrebbe stampata a video perche facendo parte del codice html.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Grazie per la risposta, neanche con fseek si può risolvere? tipo così (ovviamente quest'esempio non va):

    file.txt
    <? if (condizione) { ?>
    <? } ?>

    $a = new SplFileObject('file.txt');
    $a->seek(0);
    echo $a->current();

    $b = new SplFileObject('file.txt');
    $b->seek(1);
    echo $b->current();

  4. #4
    Quote Originariamente inviata da magic_key Visualizza il messaggio
    Grazie per la risposta, neanche con fseek si può risolvere? tipo così (ovviamente quest'esempio non va):

    file.txt
    <? if (condizione) { ?>
    <? } ?>

    $a = new SplFileObject('file.txt');
    $a->seek(0);
    echo $a->current();

    $b = new SplFileObject('file.txt');
    $b->seek(1);
    echo $b->current();
    No, non funziona in nessun modo, pero' va detto che questa se non vince il premio come cosa piu' assurda che abbia visto su PHP di sicuro almeno sta sul podio

    Quale sarebbe comunque lo scopo di questa cosa?

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Come ho scritto nell'altro tuo post non capisco che cosa vuoi fare.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Quote Originariamente inviata da k.b Visualizza il messaggio
    No, non funziona in nessun modo, pero' va detto che questa se non vince il premio come cosa piu' assurda che abbia visto su PHP di sicuro almeno sta sul podio

    Quale sarebbe comunque lo scopo di questa cosa?
    In effetti le sto provando tutte pur di trovare una soluzione . Riguardo questo post, in pratica ho questo:

    <?php if (condizione) == true { ?>


    <div>Test</div>


    <?php } ?>

    ..ho delle pagine già pronte e ho aggiunto dei "selettori" in corrispondenza dei tag interessati in modo che, se la condizione risultasse vera, il codice viene generato, altrimenti no.. A volte la condizione è molto lunga e volevo "importarla" tramite una funzione, lasciando il codice html lì dov'è, ritrovandomi quindi a scrivere dei selettori "minimizzati":

    <?php a(); ?>


    <div>Test</div>


    <?php b(); ?>


    Se non fosse per quella dannata parentesi graffa... Non posso neanche usare javascript o aggiungere l'id ai tag perché spesso mi ritrovo a dover generare degli <script> invece dei <div>..

    Badaze grazie per la pazienza.... nell'altro post cercavo una soluzione alternativa a questi "selettori": ovvero, entrando in una determinata pagina php, se una determinata condizione risultasse vera, verranno eseguiti gli <script>, altrimenti no (in questo secondo caso mi basterebbe puntare solo sui tag <script>)..

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    La soluzione te l'ho scritta nell'altro thread. Usa ob_start. In altre parole, il codice html che generi viene messo in un buffer finché non decidi di stamparlo. Quindi prima di stamparlo usi le mie funzioni a secondo delle tue condizioni e dopo le modifiche lo stampi.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Ma scusami, calcolare la condizione prima e salvarla in una semplice variabile?

    Considerando che non bisognerebbe MAI mescolare codice PHP e HTML, e che un template dovrebbe contenere solo il minimo di PHP necessario (cioe' strutture di controllo e echo di variabili e poco altro), molto semplicemente fai cosi'

    File con il codice PHP:
    Codice PHP:
    // tutto il codice che vuoi
    if (...serie di condizioni complesse quanto vuoi...) {
        
    $condizione_finale true;
    }
    // altro codice

    include 'template.php'

    File separato template.php
    Codice PHP:
    <html>
    <head>
    .....

    <?php if ($condizione_finale): ?>
    quello che devi stampare se la condizione e' vera
    <?php endif; ?>

    Fai qualche prova con questo sistema, perche' la tua idea e' completamente sballata da ogni punto di vista.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.