Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Appendices : Migrating from PHP 5.1.x to PHP 5.2.x : New Error Messages

New Error Messages

Below are the new error messages that have not been discussed elsewhere in this document.

Example B.1. In PHP Core

<?php
echo " ";
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 B.2. Object Oriented Code in PHP Core

<?php
interface 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 B.3. In the bzip2 Extension

<?php
bzopen
("", "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 B.4. In the datetime Extension

<?php
strtotime
("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 B.5. In the dBase Extension

<?php
dbase_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 B.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 B.7. In the oci8 Extension

<?php
oci_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 B.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 B.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 B.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 */
?>


Change Language


Follow Navioo On Twitter
What has changed in PHP 5.2.x
Backward Incompatible Changes
New Error Messages
Changes in PHP datetime support
New Parameters
New Functions
New Methods
Removed Extensions
New Extensions
New Classes
New Global Constants
New Class Constants
New INI Configuration Directives
Error Reporting
Other Enhancements
eXTReMe Tracker