Autor | Zpráva | ||
---|---|---|---|
panasonixxon Profil * |
#1 · Zasláno: 6. 9. 2016, 01:25:37
Dobrý den,
měl bych prosbu, na reguláry jsem dřevo a věřím že pro některé z Vás je to brnkačka. potřeboval bych převést while($i = Database::method($q)) na foreach ($q as $i)
důvodem je změna vstupu z mysql_result za asociativní pole. Mnohokrát předem děkuji |
||
panasonixxon Profil * |
#2 · Zasláno: 6. 9. 2016, 18:09:54
Teď mě napadlo, že bych mohl dostat odpovědět ať to nahradím. Zapomněl jsem totiž říc, že proměnné $i a $q se tak nejmenuji vždy prostě $cokoliv a $necojineho , proto vás prosím o řešení toho regularu
|
||
Martin2 Profil * |
#3 · Zasláno: 6. 9. 2016, 18:24:15
Pouštět tupě textový regulár pro replace nad scriptem je docela nebezpečná zběsilost – k tomuto účelu slouží refactoring, který bude rozumět tomu, co mění a hlavně budeš moci kontrolovat (nebo vrátit zpět) to, co mění.
Pořiď si nějaké normální IDE, náhrada while za foreach by nemusela být zase tak neobvyklý use case. |
||
panasonixxon Profil * |
Martin2:
Nechtěl jsem se pouštět do ručního přepisu asi 120 while po celém systému, a regular mi přišel jako dobrý nápad, protože je potřeba ty proměnné prohodit ve foreachi jsou obráceně než ve while A IDE mám dobré NetBeans a PHPStorm |
||
panasonixxon Profil * |
#5 · Zasláno: 6. 9. 2016, 22:27:26
tak jsem nakonec dal dohromady toto
najít: while [(](\$[\w]+)(?:.*)(\$[\w]+)[)]{2}
nahradit: foreach ($2 as $1)
|
||
Časová prodleva: 9 let
|
0