Backward Incompatible veranderingen

Het zou dus moeten kunnen werken, maar let toch op!

Nieuwe keywords
Deze keywords mag je dus niet meer gebruiken als constante of whatever ;)
Dit zijn ze:
- exception
- catch
- try
- private
- public
- protected
- interface
- protected
- throw
- implements
- abstract
- clone
- final
- php_user_filter

Functies
Ook met bepaalde functies zijn er veranderingen.
- strrpos() en strripos() gebruiken nu een hele string als een needle:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>


- array_merge() accepteert nu alleen array's. voed je array_merge() toch met iets anders, dan krijg je een E_WARNING error.
- get_class(), get_parent_class() en get_class_methods() geven nu de namen van de classes terug zoals ze gedeclareert zijn(hoofdlettergevoelig) en dat kan problemen geven in oudere scripts, want daar werd de naam altijd in kleine letters terug gegeven. Heb je hier problemen mee, gebruik dan strtolower().
- ip2long() geeft nu FALSE in plaats van -1 terug als er een ongeldig IP-adres wordt doorgegeven

Andere uitzondering in PHP 5
-Ongeldig gebruik van string offsets veroorzaakt nu een E_ERROR ipv een E_WARNING, voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? $str = 'abc'; unset($str[0]); ?>

- de T_ML_COMMENT constante is nu niet meer gebruikt door de tokenizer extensie. dit wordt nu herkent als T_DOC_COMMENT
- een object zonder eigenschappen wordt nu meer als leeg gezien:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
class test { }
$t = new test();
var_dump(empty($t)); // echo bool(false)
if ($t) {
   // wordt uitgevoerd
}
?>

- Soms moeten classes eerst worden gedeclareert voordat ze worden gebruikt. Dat is zo als sommige nieuwe dingen van PHP 5 worden gebruikt, gebeurt dat niet, blijft het gedrag van de classe hetzelfde:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php //geen errors:
$a = new a();
class a { }

//error:
$a = new b();
interface c{ }
class b implements c { }
?>

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Backward Incompatible veranderingen
  3. CLI en CGI
  4. Apache configuratie bestanden

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.