Commit: 20ab30339d9731dd6e85ea5029280148f519cdc7 Author: Ben Ramsey <ram...@php.net> Sun, 15 Apr 2012 21:40:45 -0500 Parents: 66a02eb25e1533c2ace47f8d934b193ebe317cde Branches: PHP-5.5 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=20ab30339d9731dd6e85ea5029280148f519cdc7 Log: array_column: Adding test for IS_OBJECT and converting object to string Changed paths: M ext/standard/array.c M ext/standard/tests/array/array_column_basic.phpt Diff: diff --git a/ext/standard/array.c b/ext/standard/array.c index 40ee947..00850ba 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -2589,6 +2589,11 @@ PHP_FUNCTION(array_column) key = Z_STRVAL_P(zoffset); key_len = Z_STRLEN_P(zoffset); break; + case IS_OBJECT: + convert_to_string_ex(&zoffset); + key = Z_STRVAL_P(zoffset); + key_len = Z_STRLEN_P(zoffset); + break; default: php_error_docref(NULL TSRMLS_CC, E_WARNING, "The key should be either a string or an integer"); RETURN_FALSE; diff --git a/ext/standard/tests/array/array_column_basic.phpt b/ext/standard/tests/array/array_column_basic.phpt index efa98ce..fa8fe2f 100644 --- a/ext/standard/tests/array/array_column_basic.phpt +++ b/ext/standard/tests/array/array_column_basic.phpt @@ -97,6 +97,17 @@ $mismatchedColumns = array( ); var_dump(array_column($mismatchedColumns, 'c')); +echo "\n*** Testing use of object converted to string ***\n"; +class Foo +{ + public function __toString() + { + return 'last_name'; + } +} +$f = new Foo(); +var_dump(array_column($records, $f)); + echo "Done\n"; ?> --EXPECTF-- @@ -166,4 +177,14 @@ array(1) { [0]=> string(3) "qux" } + +*** Testing use of object converted to string *** +array(3) { + [0]=> + string(3) "Doe" + [1]=> + string(5) "Smith" + [2]=> + string(5) "Jones" +} Done -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php