Op 25 aug. 2012 21:03 schreef "Adam Richardson" <simpleshot@xxxxxxxxx> het volgende: > > On Sat, Aug 25, 2012 at 2:27 PM, Lester Caine <lester@xxxxxxxxxxx> wrote: > > What I was not expecting was a string of 'Notices:' complaining about the > > redefines. So how does one get around this message? One can't 'if defined' > > as the string needs to be replaced with the more appropriate one. I would > > say, why is this even a problem, or alternatively I just give up on E_STRICT > > and make sure it's disabled again on PHP5.4? > > > > Having spent several months getting the code clean on E_STRICT, switching it > > off again will really pig me off, but I can't see any real alternative given > > the number of languages and strings that will need reworking simply to get > > things clean :( > > Well, I'd do the following to avoid issues in the future. > > 1) Create a function like that below, which provides global access to > variables and allows you to update existing values: > > function val($name, $value = null) > { > static $values = array(); > > if ($value === null) { > return isset($values[$name]) ? $values[$name] : null; > } else { > return $values[$name]; > } > } > > 2) Create a php script that searches out define("SOME_NAME_PATTERN", > "value") and replaces that with val("some_name_pattern", "value"). > > 3) Create a php script that searches out SOME_NAME_PATTERN and > replaces with val("SOME_NAME_PATTERN"); > > Not too bad in terms of work, as PHP's parsing capabilities are really nice. > > Hope this gives you ideas :) > > Adam > That's probably quite some work given the many defines.. Fact is, constants are, as the name says, constant. Would it be possible to just not include the general file? Second, though not 100% sure if it works for E_STRICT is using @ before all defines to silence the warning. You could do a simple replace for that.. - Matijn