Jednotlivé uvozovky a dvojité uvozovky jsou v PHP zpracovány trochu jinak. Čtěte dále a uvidíte rozdíly v jejich hodnocení.
Jednotlivé nabídky
Jednotlivé uvozovky mají tendenci analyzovat věci v mnohem doslovnějším smyslu. Například vezměte následující:
$ test = "BOOOM"; echo '$ test'
Název proměnné, když je vložen do jednoduchých nabídek, není analyzován na svou skutečnou hodnotu. Tady je to, co je vlastně vytištěno ze spuštění tohoto programu jako jednoduchého php programu:
$ test
Existují pouze 2 scénáře, které mě napadnou, kde se informace skutečně analyzují v rámci jednoho citovaného řetězce. Nejprve, aby se zobrazil jeden citovaný znak, musí mu předcházet zpětné lomítko. V opačném případě bude interpretován jako konec řetězce. Za druhé, pro zobrazení zpětného lomítka musí předcházet další zpětné lomítko. Příklad:
echo 'single quote: \' '; echo 'zpětné lomítko: \\';
Dvojité uvozovky
Dvojité uvozovky mají tendenci analyzovat věci za vás. Při spuštění mezi uvozovkami:
$ test = "BOOOM"; echo "$ test"
Vypíše skutečnou hodnotu proměnné:
BOOOM
Nyní občas narazíte na scénář, kde název proměnné, který se pokoušíte vydat, není kvůli některým okolním znakům správně analyzován.
$ test = "BOOOM"; echo „$ testováno“;
Co si myslíte, že se zde dostane výstup? Odpověď není nic. PHP hledá proměnnou s názvem $ testováno, a protože neexistuje, není na výstupu nic. Správný způsob, jak vydat hodnotu následovanou „ed“, by byl:
$ test = "BOOOM"; echo "{$ test} ed";
Tím, že ji zalomí do složených závorek, umožní PHP vědět, kde proměnná začíná a zastavuje, což jí umožňuje správné vyhodnocení proměnné.
Rozdíl rychlosti
Provedl jsem několik jednoduchých testů, abych vyhodnotil některé rozdílné scénáře, rozdíl v rychlosti mezi dvěma je zanedbatelný. Jednotlivé uvozovky byly každý o něco rychlejší kvůli skutečnosti, že nemusí hledat proměnnou a poté analyzovat hodnotu, ale nikdy jsem se nesetkal se scénářem, ve kterém by bylo dost důležité, aby na tom záleželo. Využijte to, co vyhovuje vašim současným potřebám.
