Autor Zpráva
Luky
Profil
Zdravím,
potřeboval bych poradit jak se dá zapnout (podle mě) stará direktiva pro PHP, která by mě pomohla vyřešit tento problém:
$promena = $_GET[hodnota];

Nejde mi totiž o konstantu ale o klasické přiřazení hodnoty z GET:
$promena = $_GET['hodnota'];

Někde jsem o tom kdysi četl a už si nemůžu vzpomenout jak se to dá zapnout (vypnout), aby to fungovalo jako ta druhá ukázka.
Dostal se mi do rukou web, který je celý takhle napsán a přepisovat se mi to rozhodně nechce, i když by to bylo sebevíc vhodné :)

Díky za jakoukoliv radu

(omlouvám se za nevhodný název pro toto téma - nevím o co přesně se jedná)
Str4wberry
Profil
Je možné vypnout zobrazování poznámek. Například Use of undefined constant

Ale proč to nenahradit hromadně? Třeba \$_GET\[(.*)\] za $_GET['$1'].
Joker
Profil
Luky:
Viz Str4wberry, jinak podle mě ta samotná funkčnost se chová stejně minimálně od PHP 4 (starší neznám): Při použití nedefinované konstanty se generuje notice a nahradí se řetězcem stejné hodnoty.

A podle mě i jen vyhledání $_GET[ a dosazení apostrofů by zabralo pár minut maximálně.
Luky
Profil
Vypnout poznámky nepotřebuji. Chtěl bych aby PHP vyhodnocovalo $_GET[hodnota] stejně jako $_GET['hodnota'].

Str4wberry:
Ale proč to nenahradit hromadně
Tento způsob $_GET[hodnota] se v kódu vyskytuje v několika souborech (nevím přesný počet ani přesně v kterých). Přiznám se, že tenhle elegantní způsob mě vůbec nenapadl.
Ale raději bych nějakým příkazem povolil tady tu zastaralou techniku než se pouštěl do toho nahrazovaní. U toho nahrazování nevím jak moc by bylo náročné procházet všechny soubory a tohle všechno nahrazovat (nejedná se totiž jen o zmiňovaný GET, ale i POST, SESSION, $nastaveni[hodnota] apod - na některých místech to je dokonce napsané správně s uvozovkama)


Edit:
Joker:
Při použití nedefinované konstanty se generuje notice a nahradí se řetězcem stejné hodnoty.
Máte pravdu, to jsem nevěděl - chyba toho webu bude asi někde jinde. Omlouvám se za zbytečný dotaz.
Str4wberry
Profil
Ani to by snad neměl být problém. Mohlo by to být něco jako \$([_0-9a-z]*)\[([_\-0-9a-z]*)\] za \$$1['$2'].

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0