Php/docs/migration52.error-messages
New Error Messages
Below are the new error messages that have not been discussed elsewhere in this document.
Example #1 In PHP Core
<?phpecho " ";session_regenerate_id();/* Warning: session_regenerate_id(): Cannot regenerate session id - headers already sent in filename on line n */str_word_count("string", 4);/* Warning: str_word_count(): Invalid format value 4 in filename on line n */strripos("foo", "f", 4);/* Notice: strripos(): Offset is greater than the length of haystack string in filename on line n */strrpos("foo", "f", 4);/* Notice: strrpos(): Offset is greater than the length of haystack string in filename on line n *//* As of PHP 5.2.1, when allow_url_include is OFF (default) */include "php://input";/* Warning: include(): URL file-access is disabled in the server configuration in filename on line n */?>
Example #2 Object Oriented Code in PHP Core
<?phpinterface foo {}class bar implements foo, foo {}/* Fatal error: Class bar cannot implement previously implemented interface foo in filename on line n */class foo { public $bar; function __get($var) { return $this->bar; }}$foo = new foo;$bar =& $foo->prop;/* Notice: Indirect modification of overloaded property foo::$prop has no effect in filename on line n */class foo implements iterator { public function current() { } public function next() { } public function key() { } public function valid() { } public function rewind() { }}$foo = new foo();foreach($foo as &$ref) {}/* Fatal error: An iterator cannot be used with foreach by reference in filename on line n */class foo { private function __construct() { }}class bar extends foo { public function __construct() { parent::__construct(); /* Fatal error: Cannot call private foo::__construct() in filename on line n */ }}new bar;stream_filter_register("", "class");/* Warning: stream_filter_register(): Filter name cannot be empty in filename on line n */stream_filter_register("filter", "");/* Warning: stream_filter_register(): Class name cannot be empty in filename on line n */?>
Example #3 In the bzip2 Extension
<?phpbzopen("", "w");/* Warning: bzopen(): filename cannot be empty in filename on line n */bzopen("foo", "a");/* Warning: bzopen(): 'a' is not a valid mode for bzopen(). Only 'w' and 'r' are supported in filename on line n */$fp = fopen("foo", "w");bzopen($fp, "r");/* Warning: bzopen(): cannot read from a stream opened in write only mode in filename on line n */?>
Example #4 In the datetime Extension
<?phpstrtotime("today", "now");/* Warning: strtotime() expects parameter 2 to be long, string given in filename on line n *//* As of PHP 5.2.1 */new DateTime(new stdclass);/* Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct() expects parameter 1 to be string, object given' in filename:n */?>
Example #5 In the dBase Extension
<?phpdbase_open("foo", -1);/* Warning: Invalid access mode -1 in filename on line n *//* As of PHP 5.2.1 */dbase_open("foo", null);/* Warning: The filename cannot be empty in filename on line n */?>
Example #6 In the mcrypt Extension
<?php$key = "this is a secret key";$td = mcrypt_module_open('tripledes', , 'ecb', );$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);mcrypt_generic_init($td, $key, $iv);$encrypted_data = mcrypt_generic($td, "");/* Warning: mcrypt_generic(): An empty string was passed in filename on line n */?>
Example #7 In the oci8 Extension
<?phpoci_connect("user", "pass", "db", "bogus_charset");/* Warning: Invalid character set name: bogus_charset in filename on line n */$oci = oci_connect("user", "pass", "db");oci_password_change($oci, "", "old", "new");/* Warning: username cannot be empty in filename on line n */oci_password_change($oci, "user", "", "new");/* Warning: old password cannot be empty in filename on line n */oci_password_change($oci, "user", "old", "");/* Warning: new password cannot be empty in filename on line n */?>
Example #8 In the SPL Extension
<?php$obj = new SplFileObject(__FILE__);$obj->fgetcsv("foo");/* Warning: SplFileObject::fgetcsv(): delimiter must be a character in filename on line n */$obj->fgetcsv(",", "foo");/* Warning: SplFileObject::fgetcsv(): enclosure must be a character in filename on line n */?>
Example #9 In the Semaphore (sysvmsg) extension
<?php/* Warning: maximum size of the message has to be greater then zero in filename on line n */?>
Example #10 A 5.2.1+ Zip Example
<?php$obj = new ZipArchive();$obj->open('archive.zip');$obj->setCommentName(, 'comment');/* Notice: ZipArchive::setCommentName(): Empty string as entry name in filename on line n *//* As of PHP 5.2.1 */$obj->getCommentName();/* Notice: ZipArchive::getCommentName(): Empty string as entry name in filename on line n */?>