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 */?>