W przeważającej części jest to nieistotne. W przeciwieństwie do wielu języków, w PHP (zwykle) nie ma znaczenia, czy zainicjujesz zmienną. PHP automatycznie rzuci niezainicjowaną (lub nawet niezgłoszoną) zmienną, odpowiednią do natychmiastowego użycia. Na przykład, następujące są poprawne:
$a;
$a + 7; // Evaluates to 7
$a . "This is a test."; // Evaluates to "This is a test."
if (! $a) {} // Evaluates as true
Jedynym zastrzeżeniem jest to, że wybierz funkcje sprawdzania typu zmiennej (jak robi ścisłej równości sprawdzenia ===). Na przykład: Następuje błąd:
$a;
if (is_string($a)) {
print 'success';
}
else {
print 'fail';
}
Ta wygoda wiąże się jednak z dużymi kosztami. W przeciwieństwie do języków ściśle wpisanych (lub przynajmniej "ściśle określonych"), w samym języku podstawowym nie ma nic, co mogłoby pomóc w wykryciu typowych błędów programisty. Na przykład, co następuje chętnie wykonać, ale prawdopodobnie nie jak oczekiwano:
$isLoggedIn = getLoginStatus($user);
if ($isLogedIn) {
// Will never run
showOrder($user);
}
else {
showLoginForm();
}
Jeśli zdecydujesz się zainicjować wszystkie zmienne, zrób to tak jak ty. Następnie włącz powiadomienia PHP (E_NOTICE), aby uzyskać ostrzeżenia o niezainicjowanych zmiennych w czasie wykonywania. Jeśli nie, tracisz czas, a naciśnięcia klawiszy inicjalizują twoją własną zmienną.
Struny nie są obiektami pierwszej klasy w PHP, więc nie jest tak naprawdę każde inne sposób na zainicjowanie ich w kodzie ... – rdlowrey