©
本文档使用 PHP中文网手册 发布
Below are the new error messages that have not been discussed elsewhere in this document.
Example #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 #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 #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 #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 #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 #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
<?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 #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 */
?>