Hoje vi que a Caterpillar fez uma distinção entre strings vazias e NULL para todos ( http://bbs.phpchina.com/thread-99574-1-2.html ). Sinto que não tenho um conhecimento sólido do básico. conhecimento (como o meu) foi muito útil. Já era tarde da noite, verifiquei muitas "informações oficiais" e escrevi um artigo e postei aqui para ajudar todos a aprender o básico. não rigoroso, e o conteúdo era apenas Resumo pessoal, se houver deficiências, adicione mais especialistas. Sem mais delongas, o texto principal é o seguinte:
1. A diferença entre echo e print
As funções de echo e print em PHP são
.basicamente o mesmo (saída), mas ainda existem diferenças sutis entre os dois. Não há valor de retorno após a saída de eco, mas print tem um valor de retorno e retorna falso quando sua execução falha. Portanto, pode ser usado como uma função normal. Por exemplo, após executar o código a seguir, o valor da variável $r será 1.
Código:
$r = imprimir "Olá Mundo";
Isso significa que print pode ser usado em algumas expressões complexas, mas echo não. No entanto, como a instrução echo não exige o retorno de nenhum valor, a instrução echo no código é executada um pouco mais rápido que a instrução print.
2. A diferença entre include e require
As funções de include() e require() são basicamente as mesmas (include), mas existem algumas diferenças no uso include() é uma função de inclusão condicional, enquanto require() é uma função de inclusão condicional. função de inclusão incondicional. Por exemplo, no código a seguir, se a variável $a for verdadeira, o arquivo a.php será incluído:
Código:
if($a){
incluir("a.php");
}
No entanto, require() é diferente de include(). Independentemente do valor de $a, o código a seguir incluirá o arquivo a.php no arquivo:
Código:
if($a){
exigir("a.php");
}
Em termos de tratamento de erros, use a instrução include. Se ocorrer um erro de inclusão, o programa ignorará a instrução include. Embora a mensagem de erro seja exibida, o programa continuará a ser executado! Mas require causará um erro fatal.
Claro, também podemos entender Qifen literalmente: exigir significa um pedido ou solicitação muito forte.
3. As instruções require_once() e include_once()
estão fora do tópico, porque são semelhantes. As instruções require_once() e include_once() simples correspondem às instruções require() e include() respectivamente. As instruções require_once() e include_once() são usadas principalmente quando vários arquivos precisam ser incluídos, o que pode efetivamente evitar o erro de definição repetida de funções ou variáveis causada pela inclusão do mesmo trecho de código.
4. A diferença entre string vazia ('') e NULL
Em PHP, tanto string vazia quanto NULL são armazenados com um valor de 0, mas seus tipos são diferentes. NULL); Você descobrirá que o que eles imprimem é string e NULL respectivamente. Claro, 0 também é fácil de confundir. inteiro). , pode-se ver que string (''), NULL e 0 são "valores iguais", mas não tipos iguais.
5.! A diferença entre isset e vazio
pode ser entendida pelo significado literal: vazio é para determinar se uma variável está "vazia", enquanto isset é para determinar se uma variável foi definida. Mas há uma coisa que você deve prestar atenção aqui: quando o valor de uma variável é 0, vazio considera a variável igual a vazia, ou seja, equivale a nenhuma configuração. Por exemplo, quando detectamos a variável $id, quando $id=0, usamos vazio e isset para detectar se a variável $id foi configurada. Ambos retornarão valores diferentes: vazio pensa que não está configurado e isset pode obter. o valor de $id , veja o exemplo abaixo:
Código? :
$id=0;
vazio($id)?print "Estou vazio":print "Eu sou $id.";
!isset($id)?print "Estou vazio":print "Sou $id.";//Resultado: sou 0
6. A diferença entre == (igual) e === (igual).
Revise a diferença entre a quarta string vazia ("") e NULL acima e vejamos um exemplo:
Código:
'' == NULO;
'' === NULL;
Depois de executá-lo, você descobrirá que o primeiro é verdadeiro e o segundo é falso! Pode-se observar que == apenas compara se os valores são iguais, enquanto === não apenas compara os valores, mas também compara os tipos, o que é mais rigoroso.