Hi,

2011/8/11 Kalle Sommer Nielsen <ka...@php.net>

> Hi Sebastian
>
> 2011/8/11 Sebastian Krebs <sebastian.krebs.ber...@googlemail.com>:
> > Hi,
> >
> > With PHP5.4 I get this warning
> >
> > | Warning: declare(encoding=...) ignored because Zend multibyte feature
> > | is turned off by settings in [..]
> >
> > because of
> >
> > | declare(encoding = 'UTF-8');
> >
> > An except from the manual [1]
> >
>
> In PHP 5.4, the compile time switch was removed and made into an ini
> directive, which lives under the name of zend.multibyte = [On|Off].
>

Ah, I see. multibyte is either compiled in, or not (PHP5.3), or its either
enabled, or not (PHP5.4). Now I see a difference between "not compiled in"
(declare(encoding) is ignored) and "not enabled" (declare(encoding) throws a
warning).


> For the question about why its not enabled by default? Performance,
> you don't want to enable multibyte support when most of your code
> lives in a single byte char format anyway, some calls are most costly
> because you can no longer jump just one byte and have to validate what
> kind of character sequence we're at now.
>

This means, that either the file is ASCII and I should omit the
`declare(encoding)`-statement [1], or its not ASCII, but then -- when
multibyte is disabled -- I should not assume, that everything works fine?
That is, what the warning should tell me?


[1] Sidenote: Maybe it could ignore declare(encoding='ASCII') ;)


>
> --
> regards,
>
> Kalle Sommer Nielsen
> ka...@php.net
>


At all I think now, that the warning is probably the better reaction than
just doing nothing. No further question, thanks for that :)


Regards,
Sebastian

Reply via email to