Explicação da diferença
1. Const é uma estrutura de linguagem, define() é uma função e a compilação const é mais rápida que define().
2. define() declara uma constante. O nome da constante é do tipo string, pode ser emendado dinamicamente e pode ser nomeado com uma expressão. Const só pode usar nomes de constantes comuns.
As constantes definidas pela palavra-chave const diferenciam maiúsculas de minúsculas, e a função define() pode determinar se ela diferencia maiúsculas de minúsculas por meio do terceiro parâmetro.
Exemplo
<?php // Constantes // Definição e uso de constantes // Método de definição 1: define() function define("CON_INT", 100); eco CON_INT; // Defina o uso desta constante para não diferenciar maiúsculas de minúsculas define("GREETING", "hello world", true); // Para este tipo de uso, o sistema lembrará que não é recomendado echo GREETING; eco Saudação; eco "<br/>"; //Método de definição 2: definição da palavra-chave const const FOO = 'BAR'; for($i = 0; $i <32; ++$i){ define('YDMA_'.$i, 1 + $i); } eco YDMA_16; // const não pode definir constantes em instruções condicionais/* se(verdadeiro){ const FOO0 = 'BAR'; // inválido} se(verdadeiro){ define('FOO0', 'BAR'); // válido} */ // Obtém o valor da constante: constante() function echo "<br/>"; define("VAR0", "888"); constante de eco("VAR0"); eco "<br/>"; const CONSTANT0 = 'testar contante'; constante de eco("CONSTANT0"); // Obtém uma lista de todas as constantes definidas echo "<pre>"; print_r(get_defined_constants()); // Obtém todas as constantes que podem ser acessadas neste script e gera um array extra longo
O texto acima é a diferença entre os métodos de definição de constantes em PHP. Espero que seja útil para todos.