Embora muitos códigos existentes em PHP 5 funcionarem sem mudanças, você deve ter atenção nas seguintes mudanças de compatibilidade:
null
quando argumentos
incompatíveis são passados, a partir do PHP 5.2.1.
true
em caso de sucesso, a partir do PHP 5.2.1.
true
em caso de sucesso, a partir do PHP 5.2.1.
false
inesperado.
A partir do PHP 5.2.0, esta operação emitirá E_WARNING
, como em todos
os casos ao realizar divisões por zero.
<?php
print 10 % 0;
/* Warning: Division by zero in filename on line n */
?>
<?php
class foo {}
$foo = new foo;
print $foo;
/* Catchable fatal error: Object of class foo could
not be converted to string in filename on line n */
?>
<?php
class foo {
public function __toString() {
throw new Exception;
}
}
try {
print new foo;
/* Fatal error: Method foo::__toString() must
not throw an exception in filename on line n */
} catch(Exception $e) {}
?>
<?php
abstract class foo {
abstract static function bar();
/* Strict Standards: Static function foo::bar()
should not be abstract in filename on line n */
}
?>
data:
stream).
A introdução do esquema de URL de dados podem levar uma
mudança de comportamento no Windows. Se você estiver usando o sistema de arquivos NTFS
e usar meta streams em sua aplicação, e se ocorrer de você
usar um arquivo com o nome 'data:' ele será acessado
sem o seu caminho - e não funcionará mais. Para corrigir isso use o protocolo 'file:'
quando for acessá-lo.
Veja também » RFC 2397
<?php
/* when allow_url_include is OFF (default) */
include "data:;base64,PD9waHAgcGhwaW5mbygpOz8+";
/* Warning: include(): URL file-access is disabled
in the server configuration in filename on line n */
?>
glob()
Na versão 5.2.4 uma correção de segurança causava uma regressão para os padrões
na forma "/foo/*/bar/*". Desde a versão 5.2.5 ao invés de exibir um warninga função
glob()
retornará false
quando
as restrições openbase_dir
forem violadas.