Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision |
doc:todo:undocumented [2008/08/31 16:06] – serialize: Whitespace isn't trimmed (http://phpfi.com/349009) ross | doc:todo:undocumented [2010/04/30 16:55] – colder |
---|
</code> | </code> |
| |
| * Session: Added ability to provide upload progress feedback through session data. See [[rfc:session_upload_progress]] |
| |
| |
===== PHP 5.3 ===== | ===== PHP 5.3 ===== |
* SPL classes: ArrayObject, CachingIterator, RecursiveCachingIterator, DirectoryIterator, FilterIterator, LimitIterator, ParentIterator, RecursiveDirectoryIterator, RecursiveIteratorIterator, SimpleXMLIterator | * SPL classes: ArrayObject, CachingIterator, RecursiveCachingIterator, DirectoryIterator, FilterIterator, LimitIterator, ParentIterator, RecursiveDirectoryIterator, RecursiveIteratorIterator, SimpleXMLIterator |
| |
* ''goto'' | |
<code php> | |
<?php | |
| |
goto a; | |
print 'Foo'; | |
| |
a: | |
print 'Bar'; | |
| |
?> | |
</code> | |
| |
* ''?:'' operator | |
<code php> | |
<?php | |
| |
var_dump(0 ?: 'Hello!'); // string(6) "Hello!" | |
| |
?> | |
</code> | |
| |
* ''namespace::'' (alternative for ''%%__NAMESPACE__%%'') | |
<code php> | |
<?php | |
| |
namespace foo::bar; | |
| |
const bar = 2; | |
| |
function foo() { | |
return 'foo!'; | |
} | |
| |
var_dump(namespace::bar, namespace::foo()); | |
/* | |
int(2) | |
string(4) "foo!" | |
*/ | |
?> | |
</code> | |
| |
* Override existing classes | |
<code php> | |
<?php | |
| |
namespace test; | |
| |
class foo { } | |
| |
use test::foo as stdClass; | |
| |
var_dump(new stdClass); | |
/* | |
object(test::foo)#1 (0) { | |
} | |
*/ | |
?> | |
</code> | |
| |
* ''new static;'' | * ''new static;'' |
| |
* [HOST=] and [PATH=] configuration sections in php.ini | * [HOST=] and [PATH=] configuration sections in php.ini |
| |
* ''E_DEPRECATED'' | |
| |
* zend_parse_parameters types: C, f, Z, h | * zend_parse_parameters types: C, f, Z, h |
| |
* ''Closures'' | * ''Closures'' |
| |
===== PHP 5.x ==== | ===== PHP 5.x ==== |
| * SplObjectStorage::getHash |
* Type hints: ''self'', ''parent'' and interfaces. | * Type hints: ''self'', ''parent'' and interfaces. |
<code php> | <code php> |
echo $a[$propname]; | echo $a[$propname]; |
| |
| ?> |
| </code> |
| |
| * Its possible to use type casting after another type cast |
| |
| <code php> |
| <?php |
| class ToString |
| { |
| public function __toString() |
| { |
| return "1337"; |
| } |
| } |
| |
| var_dump((int) (string) new ToString); |
| ?> |
| </code> |
| |
| * Casting an object to an array and back to an object changes the class to stdClass |
| |
| <code php> |
| <?php |
| class Test |
| { |
| private $test; |
| } |
| |
| var_dump((object) (array) new Test); |
?> | ?> |
</code> | </code> |
===== Add Reference ===== | ===== Add Reference ===== |
| |
* ''odbc_exec()'' - Missing information about ''$flags'' (//last parameter//). | |
* ''mb_ereg_search_init'' - Missing list of options. (//php-src/ext/mbstring/oniguruma/doc/API//) | * ''mb_ereg_search_init'' - Missing list of options. (//php-src/ext/mbstring/oniguruma/doc/API//) |
| |
| |
* //function.dio-stat//: "This extension is only available on Windows Platforms as of PHP 5.0.0" ([[http://www.php.net/manual/en/function.dio-stat.php#78581|note]]) | * //function.dio-stat//: "This extension is only available on Windows Platforms as of PHP 5.0.0" ([[http://www.php.net/manual/en/function.dio-stat.php#78581|note]]) |
| |
* //function.ctype-space//: "ctype_space('') i.e. the empty string, returns true" ([[http://www.php.net/manual/en/function.ctype-space.php#78563|note]]) | |
| |
* //ref.pdo//: //Example#5//: "We must change the last two lines to catch the error ..." ([[http://www.php.net/manual/en/ref.pdo.php#78532|note]]) | * //ref.pdo//: //Example#5//: "We must change the last two lines to catch the error ..." ([[http://www.php.net/manual/en/ref.pdo.php#78532|note]]) |
| |
* //function.version-compare//: "It should be noted that version_compare() considers 1 < 1.0 < 1.0.0 etc." ([[http://www.php.net/manual/en/function.version-compare.php#7884|note]]) | * //function.version-compare//: "It should be noted that version_compare() considers 1 < 1.0 < 1.0.0 etc." ([[http://www.php.net/manual/en/function.version-compare.php#7884|note]]) |
| |
* <del>//function.serialize//: "serialize() will trim() any strings!" ([[http://www.php.net/manual/en/function.serialize.php#78125|note]])</del> - tried this for myself and whitespace isn't trimmed after unserialization. (ross) | |
| |
* //function.mcal-delete-event//: Current usage is: mcal_delete_event($stream [, $eventid] ); (user note) | * //function.mcal-delete-event//: Current usage is: mcal_delete_event($stream [, $eventid] ); (user note) |
* //function.shell-exec//: "If the return is empty, then command could not be executed or executed command returned an error." ([[http://www.php.net/manual/en/function.shell-exec.php#80446|note]]) | * //function.shell-exec//: "If the return is empty, then command could not be executed or executed command returned an error." ([[http://www.php.net/manual/en/function.shell-exec.php#80446|note]]) |
| |
* //tokens//: "Undocumented constants/syntax/reference" ([[http://www..php.net/manual/en/tokens.php#84884|note]]) | * //tokens//: "Undocumented constants/syntax/reference" ([[http://www.php.net/manual/en/tokens.php#84884|note]]) |
| |
| * //function.dns-get-record//: "Note that if you check a non-existing domain you will get ..." ([[http://www.php.net/manual/en/function.dns-get-record.php#86033|note]]) |
| |
| * //arrayobject.offsetset//: "If $index is null, $newval is naturally pushed onto the end of the array as ArrayObject::append" ([[http://www.php.net/manual/en/arrayobject.offsetset.php#86027|note]]) |
| |
| * //mysqli.prepare//: "All data must be fetched before a new statement prepare" ([[http://www.php.net/manual/en/mysqli.prepare.php#86025|note]]) |
| |
| * //function.imagesetthickness//: "Apparently imagesetthickness doesn't work if antialiasing is set to true." ([[http://www.php.net/manual/en/function.imagesetthickness.php#86007|note]]) |
| |
| * //function.session//: "if you try to name a php session "example.com" it gets converted to "example_com" and everything breaks." ([[http://www.php.net/manual/en/function.session-name.php#86000|note]]) |
| |
| ===== Internals ===== |
| |
| * Opcodes: http://markmail.org/thread/gk6hul5mvoyuhgfw |
| * Arginfo for reflection: http://tmp.cweiske.de/HackingPHP5.xml |