diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c index 341029a543c08..db2881bce700f 100644 --- a/ext/spl/php_spl.c +++ b/ext/spl/php_spl.c @@ -92,8 +92,8 @@ PHP_FUNCTION(class_parents) } if (Z_TYPE_P(obj) != IS_OBJECT && Z_TYPE_P(obj) != IS_STRING) { - php_error_docref(NULL, E_WARNING, "object or string expected"); - RETURN_FALSE; + zend_type_error("object or string expected"); + return; } if (Z_TYPE_P(obj) == IS_STRING) { @@ -125,8 +125,8 @@ PHP_FUNCTION(class_implements) return; } if (Z_TYPE_P(obj) != IS_OBJECT && Z_TYPE_P(obj) != IS_STRING) { - php_error_docref(NULL, E_WARNING, "object or string expected"); - RETURN_FALSE; + zend_type_error("object or string expected"); + return; } if (Z_TYPE_P(obj) == IS_STRING) { @@ -154,8 +154,8 @@ PHP_FUNCTION(class_uses) return; } if (Z_TYPE_P(obj) != IS_OBJECT && Z_TYPE_P(obj) != IS_STRING) { - php_error_docref(NULL, E_WARNING, "object or string expected"); - RETURN_FALSE; + zend_type_error("object or string expected"); + return; } if (Z_TYPE_P(obj) == IS_STRING) { diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c index 77e08a3a9cee8..bef8acc40d094 100644 --- a/ext/spl/spl_directory.c +++ b/ext/spl/spl_directory.c @@ -2575,8 +2575,8 @@ SPL_METHOD(SplFileObject, fgetcsv) { case 3: if (esc_len > 1) { - php_error_docref(NULL, E_WARNING, "escape must be empty or a single character"); - RETURN_FALSE; + zend_value_error("escape must be empty or a single character"); + return; } if (esc_len == 0) { escape = PHP_CSV_NO_ESCAPE; @@ -2586,15 +2586,15 @@ SPL_METHOD(SplFileObject, fgetcsv) /* no break */ case 2: if (e_len != 1) { - php_error_docref(NULL, E_WARNING, "enclosure must be a character"); - RETURN_FALSE; + zend_value_error("enclosure must be a character"); + return; } enclosure = enclo[0]; /* no break */ case 1: if (d_len != 1) { - php_error_docref(NULL, E_WARNING, "delimiter must be a character"); - RETURN_FALSE; + zend_value_error("delimiter must be a character"); + return; } delimiter = delim[0]; /* no break */ @@ -2630,21 +2630,21 @@ SPL_METHOD(SplFileObject, fputcsv) escape = (unsigned char) esc[0]; break; default: - php_error_docref(NULL, E_WARNING, "escape must be empty or a single character"); - RETURN_FALSE; + zend_value_error("escape must be empty or a single character"); + return; } /* no break */ case 3: if (e_len != 1) { - php_error_docref(NULL, E_WARNING, "enclosure must be a character"); - RETURN_FALSE; + zend_value_error("enclosure must be a character"); + return; } enclosure = enclo[0]; /* no break */ case 2: if (d_len != 1) { - php_error_docref(NULL, E_WARNING, "delimiter must be a character"); - RETURN_FALSE; + zend_value_error("delimiter must be a character"); + return; } delimiter = delim[0]; /* no break */ @@ -2680,21 +2680,21 @@ SPL_METHOD(SplFileObject, setCsvControl) escape = (unsigned char) esc[0]; break; default: - php_error_docref(NULL, E_WARNING, "escape must be empty or a single character"); - RETURN_FALSE; + zend_value_error("escape must be empty or a single character"); + return; } /* no break */ case 2: if (e_len != 1) { - php_error_docref(NULL, E_WARNING, "enclosure must be a character"); - RETURN_FALSE; + zend_value_error("enclosure must be a character"); + return; } enclosure = enclo[0]; /* no break */ case 1: if (d_len != 1) { - php_error_docref(NULL, E_WARNING, "delimiter must be a character"); - RETURN_FALSE; + zend_value_error("delimiter must be a character"); + return; } delimiter = delim[0]; /* no break */ @@ -2910,8 +2910,8 @@ SPL_METHOD(SplFileObject, fread) } if (length <= 0) { - php_error_docref(NULL, E_WARNING, "Length parameter must be greater than 0"); - RETURN_FALSE; + zend_value_error("Length parameter must be greater than 0"); + return; } str = php_stream_read_to_str(intern->u.file.stream, length); diff --git a/ext/spl/tests/SplFileObject_fgetcsv_delimiter_error.phpt b/ext/spl/tests/SplFileObject_fgetcsv_delimiter_error.phpt index 169ded7dc3ccd..8ceada58882d8 100644 --- a/ext/spl/tests/SplFileObject_fgetcsv_delimiter_error.phpt +++ b/ext/spl/tests/SplFileObject_fgetcsv_delimiter_error.phpt @@ -12,12 +12,16 @@ fputcsv($fp, array( fclose($fp); $fo = new SplFileObject('SplFileObject__fgetcsv3.csv'); -var_dump($fo->fgetcsv('invalid')); +try { + var_dump($fo->fgetcsv('invalid')); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} + ?> --CLEAN-- ---EXPECTF-- -Warning: SplFileObject::fgetcsv(): delimiter must be a character in %s on line %d -bool(false) +--EXPECT-- +delimiter must be a character diff --git a/ext/spl/tests/SplFileObject_fgetcsv_enclosure_error.phpt b/ext/spl/tests/SplFileObject_fgetcsv_enclosure_error.phpt index f8c14f0e35e41..a4ca6c62cba59 100644 --- a/ext/spl/tests/SplFileObject_fgetcsv_enclosure_error.phpt +++ b/ext/spl/tests/SplFileObject_fgetcsv_enclosure_error.phpt @@ -12,12 +12,15 @@ fputcsv($fp, array( fclose($fp); $fo = new SplFileObject('SplFileObject__fgetcsv5.csv'); -var_dump($fo->fgetcsv(',', 'invalid')); +try { + var_dump($fo->fgetcsv(',', 'invalid')); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} ?> --CLEAN-- ---EXPECTF-- -Warning: SplFileObject::fgetcsv(): enclosure must be a character in %s on line %d -bool(false) +--EXPECT-- +enclosure must be a character diff --git a/ext/spl/tests/SplFileObject_fgetcsv_escape_error.phpt b/ext/spl/tests/SplFileObject_fgetcsv_escape_error.phpt index 4873341e5a2b9..bcba07d37176e 100644 --- a/ext/spl/tests/SplFileObject_fgetcsv_escape_error.phpt +++ b/ext/spl/tests/SplFileObject_fgetcsv_escape_error.phpt @@ -7,12 +7,16 @@ fwrite($fp, '"aaa","b""bb","ccc"'); fclose($fp); $fo = new SplFileObject('SplFileObject__fgetcsv8.csv'); -var_dump($fo->fgetcsv(',', '"', 'invalid')); +try { + var_dump($fo->fgetcsv(',', '"', 'invalid')); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} + ?> --CLEAN-- ---EXPECTF-- -Warning: SplFileObject::fgetcsv(): escape must be empty or a single character in %s on line %d -bool(false) +--EXPECT-- +escape must be empty or a single character diff --git a/ext/spl/tests/SplFileObject_fputcsv_variation13.phpt b/ext/spl/tests/SplFileObject_fputcsv_variation13.phpt index a4c24510216b8..a92050bf0d21c 100644 --- a/ext/spl/tests/SplFileObject_fputcsv_variation13.phpt +++ b/ext/spl/tests/SplFileObject_fputcsv_variation13.phpt @@ -9,21 +9,19 @@ Test fputcsv() : usage variations - with default enclosure & delimiter of two ch echo "*** Testing fputcsv() : with default enclosure & delimiter of two chars ***\n"; $fo = new SplFileObject(__DIR__ . '/SplFileObject_fputcsv_variation13.csv', 'w'); - -var_dump($fo->fputcsv(array('water', 'fruit'), ',,', '"')); +try { + var_dump($fo->fputcsv(array('water', 'fruit'), ',,', '"')); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} unset($fo); - -echo "Done\n"; ?> --CLEAN-- ---EXPECTF-- +--EXPECT-- *** Testing fputcsv() : with default enclosure & delimiter of two chars *** - -Warning: SplFileObject::fputcsv(): delimiter must be a character in %s on line %d -bool(false) -Done +delimiter must be a character diff --git a/ext/spl/tests/SplFileObject_fputcsv_variation14.phpt b/ext/spl/tests/SplFileObject_fputcsv_variation14.phpt index a659da92af46e..60b1739b0079f 100644 --- a/ext/spl/tests/SplFileObject_fputcsv_variation14.phpt +++ b/ext/spl/tests/SplFileObject_fputcsv_variation14.phpt @@ -9,21 +9,20 @@ Test fputcsv() : usage variations - with enclosure & delimiter of two chars echo "*** Testing fputcsv() : with enclosure & delimiter of two chars and file opened in read mode ***\n"; $fo = new SplFileObject(__DIR__ . '/SplFileObject_fputcsv_variation14.csv', 'w'); - -var_dump($fo->fputcsv(array('water', 'fruit'), ',,', '""')); +try { + var_dump($fo->fputcsv(array('water', 'fruit'), ',,', '""')); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} unset($fo); -echo "Done\n"; ?> --CLEAN-- ---EXPECTF-- +--EXPECT-- *** Testing fputcsv() : with enclosure & delimiter of two chars and file opened in read mode *** - -Warning: SplFileObject::fputcsv(): enclosure must be a character in %s on line %d -bool(false) -Done +enclosure must be a character diff --git a/ext/spl/tests/SplFileObject_setCsvControl_error001.phpt b/ext/spl/tests/SplFileObject_setCsvControl_error001.phpt index 296c4a1aa0c44..b414a83d36bfd 100644 --- a/ext/spl/tests/SplFileObject_setCsvControl_error001.phpt +++ b/ext/spl/tests/SplFileObject_setCsvControl_error001.phpt @@ -13,11 +13,16 @@ CDATA ); $s = new SplFileObject('csv_control_data_error001.csv'); $s->setFlags(SplFileObject::READ_CSV); -$s->setCsvControl('||'); + +try { + $s->setCsvControl('||'); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} ?> --CLEAN-- ---EXPECTF-- -Warning: SplFileObject::setCsvControl(): delimiter must be a character in %s on line %d +--EXPECT-- +delimiter must be a character diff --git a/ext/spl/tests/SplFileObject_setCsvControl_error002.phpt b/ext/spl/tests/SplFileObject_setCsvControl_error002.phpt index 885d600225256..150dd121138c5 100644 --- a/ext/spl/tests/SplFileObject_setCsvControl_error002.phpt +++ b/ext/spl/tests/SplFileObject_setCsvControl_error002.phpt @@ -13,11 +13,16 @@ CDATA ); $s = new SplFileObject('csv_control_data_error002.csv'); $s->setFlags(SplFileObject::READ_CSV); -$s->setCsvControl('|', 'two'); + +try { + $s->setCsvControl('|', 'two'); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} ?> --CLEAN-- ---EXPECTF-- -Warning: SplFileObject::setCsvControl(): enclosure must be a character in %s on line %d +--EXPECT-- +enclosure must be a character diff --git a/ext/spl/tests/SplFileObject_setCsvControl_error003.phpt b/ext/spl/tests/SplFileObject_setCsvControl_error003.phpt index 9e885cbbe3dce..b9cf2ef518378 100644 --- a/ext/spl/tests/SplFileObject_setCsvControl_error003.phpt +++ b/ext/spl/tests/SplFileObject_setCsvControl_error003.phpt @@ -15,11 +15,16 @@ CDATA ); $s = new SplFileObject('csv_control_data_error003.csv'); $s->setFlags(SplFileObject::READ_CSV); -$s->setCsvControl('|', '\'', 'three'); + +try { + $s->setCsvControl('|', '\'', 'three'); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} ?> --CLEAN-- ---EXPECTF-- -Warning: SplFileObject::setCsvControl(): escape must be empty or a single character in %s on line %d +--EXPECT-- +escape must be empty or a single character diff --git a/ext/spl/tests/bug65545.phpt b/ext/spl/tests/bug65545.phpt index bd5a7f06dbfd8..bf878f2cafcf6 100644 --- a/ext/spl/tests/bug65545.phpt +++ b/ext/spl/tests/bug65545.phpt @@ -6,17 +6,19 @@ $obj = new SplFileObject(__FILE__, 'r'); $data = $obj->fread(5); var_dump($data); -$data = $obj->fread(0); -var_dump($data); +try { + $data = $obj->fread(0); + var_dump($data); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} // read more data than is available $data = $obj->fread(filesize(__FILE__) + 32); var_dump(strlen($data) === filesize(__FILE__) - 5); ?> ---EXPECTF-- +--EXPECT-- string(5) "$value) { echo "\n--$key--\n"; - var_dump( class_implements($value, $autoload) ); + try { + var_dump( class_implements($value, $autoload) ); + } catch (\TypeError $e) { + echo $e->getMessage() . \PHP_EOL; + } }; fclose($res); @@ -115,80 +119,61 @@ fclose($res); *** Testing class_implements() : variation *** --int 0-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --int 1-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --int 12345-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --int -12345-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --float 10.5-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --float -10.5-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --float 12.3456789000e10-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --float -12.3456789000e10-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --float .5-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --empty array-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --int indexed array-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --associative array-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --nested arrays-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --uppercase NULL-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --lowercase null-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --lowercase true-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --lowercase false-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --uppercase TRUE-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --uppercase FALSE-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --empty string DQ-- Error: 2 - class_implements(): Class does not exist and could not be loaded, %s(%d) @@ -207,13 +192,10 @@ array(0) { } --undefined var-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --unset var-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --resource-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected diff --git a/ext/spl/tests/class_uses_variation1.phpt b/ext/spl/tests/class_uses_variation1.phpt index fa12d3f913d7d..cb2f30e953548 100644 --- a/ext/spl/tests/class_uses_variation1.phpt +++ b/ext/spl/tests/class_uses_variation1.phpt @@ -105,7 +105,11 @@ $inputs = array( foreach($inputs as $key =>$value) { echo "\n--$key--\n"; - var_dump( class_uses($value, $autoload) ); + try { + var_dump( class_uses($value, $autoload) ); + } catch (\TypeError $e) { + echo $e->getMessage() . \PHP_EOL; + } }; fclose($res); @@ -115,80 +119,61 @@ fclose($res); *** Testing class_uses() : variation *** --int 0-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --int 1-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --int 12345-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --int -12345-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --float 10.5-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --float -10.5-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --float 12.3456789000e10-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --float -12.3456789000e10-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --float .5-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --empty array-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --int indexed array-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --associative array-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --nested arrays-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --uppercase NULL-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --lowercase null-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --lowercase true-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --lowercase false-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --uppercase TRUE-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --uppercase FALSE-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --empty string DQ-- Error: 2 - class_uses(): Class does not exist and could not be loaded, %s(%d) @@ -207,13 +192,10 @@ array(0) { } --undefined var-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --unset var-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --resource-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected