Che dire:
Né
Il mixaggio delle lingue non è una buona idea. Non inserisci JavaScript in HTML, o HTML in JavaScript o JavaScript in PHP o HTML in Python o Ruby in SQL.
Perché non lo facciamo?
Perché diverse lingue di solito corrispondono a diversi livelli.
PHP si occupa della logica aziendale. L'HTML si occupa della presentazione degli oggetti di business. Quindi, hai due livelli: quello genera gli oggetti; l'altro costruisce una rappresentazione pseudo-XML di quegli oggetti.
Allo stesso modo, JavaScript si occupa dell'interazione e CSS con la presentazione del contenuto. Quando vuoi cambiare interazione, non apri un file .html e sicuramente non apri un file .php: apri un file .js o .coffee.
Mescolando la logica all'interno dello stesso file, noterai rapidamente che mantenere il codice diventa sempre più difficile. Vuoi cambiare il metodo che applica i rimborsi ai prodotti e trascorri quindici minuti sfogliando un mix di HTML con istruzioni PHP qua e là e il codice PHP con HTML dappertutto.
Il fatto che tecnicamente PHP permetta di combinare HTML e PHP è irrilevante. La funzione è disponibile per ragioni storiche, ma non dovrebbe essere più utilizzata.
Che cosa dovresti fare?
Quello che stai probabilmente cercando è chiamato templates . A seconda del framework che utilizzi, potrebbe essere già disponibile, di solito sotto una forma di MVC, in cui il modello è nella visualizzazione, oppure potresti dover utilizzare un motore di template di terze parti, come Smarty .
In entrambi i casi, l'idea rimane la stessa. Il codice PHP è strettamente separato dal modello che contiene l'HTML e un po 'di logica molto semplicistica: loop semplici su entità, condizioni per la visualizzazione condizionale di informazioni, ecc. Quando il codice PHP è pronto, chiama il motore del template, passando a alcune informazioni. Il motore utilizza un modello specifico per generare l'output finale (spesso HTML, ma anche altri formati sono possibili) che viene poi inviato all'utente.
Usando i modelli, ci si assicura che si abbia una stretta separazione tra la logica aziendale e il modulo che si dà a questa logica attraverso i modelli. Un giorno, puoi lanciare tutti quei modelli e scrivere altri, senza modificare una singola riga di codice PHP. Oppure puoi creare una serie di modelli per una versione mobile del sito web.
Un ulteriore vantaggio è che non sei nemmeno bloccato con l'HTML. Se è necessario creare un'API basata su 1: 1 sulle pagine Web effettive del sito Web, anziché applicare il modello, serializzare su JSON l'oggetto che stava per essere inviato al motore del modello. Con praticamente zero sforzi, aggiungi funzionalità API a un'app, cosa che non potrebbe essere possibile senza una grave riscrittura se stavi missando PHP e HTML.