Hi internals,

I am writing to ask for suggestions in bug Issue #21538 in php-src [1]. 
Currently when zend.multibyte=0, declare(encoding=...) will emit a warning for 
whatever the encoding is:


"PHP Warning:  declare(encoding=...) ignored because Zend multibyte 
feature is turned off by settings in XXX"


And the problem is when the encoding is ASCII or UTF-8, which is, not a 
multibyte encoding method, the warning will still be emitted. So, if 
zend.multibyte=0 and you use files with declare(encoding=ASCII) it will emit 
the error message to make people want to remove them.


Now, since declare(encoding=UTF-8) behaves identically whether zend.multibyte 
is on or off, the warning is quite misleading. Also I think people might mostly 
use them as documenting codes to tell tools how to decode them because when 
zend.multibyte=0, PHP already parses source files as UTF-8 by default. 


However, it is also reasonable to say people might want to use these warnings 
to check if their code bases have useless codes.


So I would suggest to change the warning message in those cases to 


“PHP Warning:  declare(encoding='UTF-8(or ASCII)') is useless, remove it.”


to make things clearer.


This would be a very minor change and do not worth a separate RFC. However, I 
think it is still important to send a email to gather opinions :) Also thank 
@alexdowad for giving me ideas. TiA :)


--Weilin Du


[1]: https://github.com/php/php-src/issues/21538

Reply via email to