Anonim

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.

Rozdíl mezi jednoduchou a dvojitou nabídkou v php