1$Id$ 2 3PHP 5.4 UPGRADE NOTES 4 5=========== 60. Contents 7=========== 8 91. Changes to INI directives 102. Changes to reserved words and classes 113. Changes to engine behavior 124. Changes to existing functions 13 a. unserialize() change 145. Changes to existing classes 156. Changes to existing methods 167. Deprecated Functionality 178. Removed Functionality 18 a. Removed features 19 b. Removed functions 20 c. Removed syntax 21 d. Removed hash algorithms 229. Extension Changes: 23 a. Extensions no longer maintained 24 b. Extensions with changed behavior 2510. Changes in SAPI support 2611. Windows support 2712. New in PHP 5.4: 28 a. New features 29 b. Syntax additions 30 c. New functions 31 d. New global constants 32 e. New classes 33 f. New methods 34 g. New hash algorithms 35 36============================= 371. Changes to INI directives 38============================= 39 40- PHP 5.4 now checks at compile time if /dev/urandom or /dev/arandom 41 are present. If either is available, session.entropy_file now 42 defaults to that file and session.entropy_length defaults to 32. 43 This provides non-blocking entropy to session id generation. If you 44 do not want extra entropy for your session ids, add: 45 46 session.entropy_file= 47 session.entropy_length=0 48 49 to your php.ini to preserve pre-PHP 5.4 behavior. 50 51- Deprecated php.ini directives will now throw an E_CORE_WARNING's 52 instead of the previous E_WARNING's. 53 54- The following php.ini directives are no longer available in PHP 5.4 55 and will now throw an E_CORE_ERROR upon startup: 56 - allow_call_time_pass_reference 57 - define_syslog_variables 58 - highlight.bg 59 - magic_quotes_gpc 60 - magic_quotes_runtime 61 - magic_quotes_sybase 62 - register_globals 63 - register_long_arrays 64 - safe_mode 65 - safe_mode_gid 66 - safe_mode_include_dir 67 - safe_mode_exec_dir 68 - safe_mode_allowed_env_vars 69 - safe_mode_protected_env_vars 70 - session.bug_compat_42 71 - session.bug_compat_warn 72 - y2k_compliance 73 - zend.ze1_compatibility_mode 74 75- the following new php.ini directives were added: 76 - max_input_vars - specifies how many GET/POST/COOKIE input 77 variables may be accepted. The default value is 1000. 78 79- E_ALL now includes E_STRICT. 80 81- The recommended production value for error_reporting changed to E_ALL & 82 ~E_DEPRECATED & ~E_STRICT. 83 84- Added new session support directives: 85 session.upload_progress.enabled 86 session.upload_progress.cleanup 87 session.upload_progress.prefix 88 session.upload_progress.name 89 session.upload_progress.freq 90 session.upload_progress.min_freq 91 92- Added a zend.multibyte directive as a replacement of the PHP compile time 93 configuration option --enable-zend-multibyte. Now the Zend Engine always 94 contains code for multibyte support, which can be enabled or disabled at 95 runtime. Note: It doesn't make a lot of sense to enable this option if 96 ext/mbstring is not enabled, because most functionality is implemented by 97 mbstrings callbacks. 98 99- Added zend.script_encoding. This value will be used unless a 100 "declare(encoding=...)" directive appears at the top of the script. 101 102- Added zend.signal_check to check for replaced signal handlers on shutdown 103 104- Added enable_post_data_reading, which is enabled by default. When it's 105 disabled, the POST data is not read (or processed); the behavior is similar 106 to that of other request methods with body, like PUT. This allows reading 107 the raw POST data in multipart requests and reading/processing the POST data 108 in a stream fashion (through php://input) without having it copied in memory 109 multiple times. 110 111- Added windows_show_crt_warning. This directive shows the CRT warnings when 112 enabled. These warnings were displayed by default until now. It is disabled 113 by default. 114 115- Added cli.pager to set a pager for CLI interactive shell output. 116 117- Added cli.prompt to configure the CLI interactive shell prompt. 118 119- Added cli_server.color to enable the CLI web server to use ANSI color coding 120 in terminal output. 121 122======================================== 1232. Changes to reserved words and classes 124======================================== 125 126- "callable", "insteadof" and "trait" are now reserved words. 127 128============================= 1293. Changes to engine behavior 130============================= 131 132- The __construct arguments of an extended abstract constructor must 133 now match: 134 135 abstract class Base 136 { 137 abstract public function __construct(); 138 } 139 class Foo extends Base 140 { 141 public function __construct($bar) {} 142 } 143 144 This now emits a Fatal error due the incompatible declaration. 145 146- In previous versions, superglobal names could be used for parameter 147 names, thereby shadowing the corresponding superglobal. In PHP 5.4 148 this now causes a fatal error such as "Cannot re-assign auto-global 149 variable GLOBALS". 150 151- Turning null, false or an empty string into an object by adding a 152 property will now emit a warning instead of an E_STRICT error. 153 154 $test = null; 155 $test->baz = 1; 156 157 To create a generic object you can use StdClass: 158 159 $test = new StdClass; 160 $test->baz = 1; 161 162- Converting an array to a string now will cause an E_NOTICE warning. 163 164- Non-numeric string offsets, e.g. $a['foo'] where $a is a string, now 165 return false on isset() and true on empty(), and produce warning if 166 trying to use them. Offsets of types double, bool and null produce 167 notice. Numeric strings ($a['2']) still work as before. 168 169 Note that offsets like '12.3' and '5 and a half' are considered 170 non-numeric and produce warning, but are converted to 12 and 5 171 respectively for backwards compatibility reasons. 172 173- Long numeric strings that do not fit in integer or double (such as 174 "92233720368547758070") are compared using string comparison if 175 they could otherwise result in precision loss - since 5.4.4. 176 177- Closures now support scopes and $this and can be rebound to 178 objects using Closure::bind() and Closure::bindTo(). 179 180- <?= is now always available regardless of the short_open_tag 181 setting. 182 183- Parse error messages are changed to contain more information about 184 the error. 185 186- __clone and __destruct since 5.4.4 follow the same scoping rules as 187 the rest of the methods (see bug #61782 for details). 188 189================================ 1904. Changes to existing functions 191================================ 192 193- array_combine now returns array() instead of FALSE when two empty arrays are 194 provided as parameters. 195 196- dns_get_record() has an extra parameter which allows requesting DNS records 197 by numeric type and makes the result include only the raw data of the 198 response. 199 200- call_user_func_array() no longer allows call-time pass by reference. 201 202- the default character set for htmlspecialchars() and htmlentities() is 203 now UTF-8. In previous versions it was ISO-8859-1. Note that changing 204 your output charset via the php.ini default_charset directive does not 205 affect htmlspecialchars/htmlentities unless you are passing "" (an 206 empty string) as the encoding parameter to your htmlspecialchars/htmlentities 207 calls. 208 209- htmlentities() and htmlspecialchars() are stricter in the code units they 210 accept for the asian encodings. For Big5-HKSCS, the octets 0x80 and 0xFF are 211 rejected. For GB2312/EUC-CN, the octets 0x8E, 0x8F, 0xA0 and 0xFF are 212 rejected. For SJIS, the octets 0x80, 0xA0, 0xFD, 0xFE and 0xFF are rejected, 213 except maybe after a valid starting byte. For EUC-JP, the octets 0xA0 and 214 0xFF are rejected. 215 216- htmlentities() now emits an E_STRICT warning when used with asian characters, 217 as in that case htmlentities has (and already had before this version) the 218 same functionality as htmlspecialchars. 219 220- htmlentities() no longer numerically encodes high characters for single-byte 221 encodings (except when there's actually a corresponding named entity). This 222 behavior was not documented and was inconsistent with that for "UTF-8". 223 224- html_entity_decode() and htmlspecialchars_decode() behave more consistently, 225 now decoding entities in malformed strings such as "&&" or "&#&". 226 227- htmlentities(), htmlspecialchars(), html_entity_decode(), and 228 htmlspecialchars_decode: Added the flags ENT_HTML401, ENT_XML1, ENT_XHTML, 229 and ENT_HTML5. The behavior of these functions including, but not limited to, 230 the characters that are encoded and the entities that are decoded depend on 231 the document type that is specified by those flags. 232 233- htmlentities() and htmlspecialchars() with !$double_encode do more strict 234 checks on the validity of the entities. Numerical entities are checked for a 235 valid range (0 to 0x10FFFF); if the flag ENT_DISALLOWED is given, the 236 validity of such numerical entity in the target document type is also 237 checked. Named entities are checked for necessary existence in the target 238 document type instead of only checking whether they were constituted by 239 alphanumeric characters. 240 241- The flag ENT_DISALLOWED was added. In addition to the behavior described in 242 the item before, it also makes htmlentities() and htmlspecialchars() 243 substitute characters that appear literally in the argument string and which 244 are not allowed in the target document type with U+FFFD (UTF-8) or �. 245 246- The flag ENT_SUBSTITUTE was added. This flag makes invalid multibyte 247 sequences be replaced by U+FFFD (UTF-8) or &#FFFD; by htmlspecialchars() and 248 htmlentities(). It is an alternative to the default behavior, which just 249 returns an empty string and to ENT_IGNORE, which is a security risk. The 250 behavior follows the recommendations of Unicode Technical Report #36. 251 252- htmlspecialchars_decode() and html_entity_decode() now decode ' if the 253 document type is ENT_XML1, ENT_XHTML, or ENT_HTML5. 254 255- Charset detection with $charset == '' no longer turns to mbstring's 256 internal encoding defined through mb_internal_encoding(). Only the encoding 257 defined through the php.ini setting mbstring.internal_encoding is considered. 258 259- number_format() no longer truncates multibyte decimal points and thousand 260 separators to the first byte. 261 262- The third parameter ($matches) to preg_match_all() is now optional. If 263 omitted, the function will simply return the number of times the pattern was 264 matched in the subject and will have no other side effects. 265 266- The second argument of scandir() now accepts SCANDIR_SORT_NONE (2) as a 267 possible value. This value results in scandir() performing no sorting: on 268 local filesystems, this allows files to be returned in native filesystem 269 order. 270 271- stream_select() now preserves the keys of the passed array, be they numeric or 272 strings. This breaks code that iterated the resulting stream array using a 273 numeric index, but makes easier to identify which of the passed streams are 274 present in the result. 275 276- stream_set_write_buffer() no longer disables the read buffer of a plain 277 stream when 0 is given as the second argument. 278 279- stream_set_write_buffer() no longer changes the chunk size in socket streams. 280 281- fclose() closes streams with resource refcount > 1; it doesn't merely 282 decrement the resource refcount. 283 284- socket_set_options() and socket_get_options() now support multicast options. 285 286- The raw data parameter in openssl_encrypt() and openssl_decrypt() is now an 287 options integer rather than a boolean. A value of true produces the same 288 behavior. 289 290- Write operations within XSLT (for example with the extension sax:output) are 291 disabled by default. You can define what is forbidden with the method 292 XsltProcess::setSecurityPrefs($options). 293 294- Added AES support to OpenSSL. 295 296- openssl_csr_new() expects the textual data to be in UTF-8. 297 298- Added no-padding option to openssl_encrypt() and openssl_decrypt(). 299 300- Added a "no_ticket" SSL context option to disable the SessionTicket TLS 301 extension. 302 303- Added new json_encode() options: JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, 304 JSON_NUMERIC_CHECK, JSON_BIGINT_AS_STRING, JSON_UNESCAPED_UNICODE. 305 306- Added Tokyo Cabinet and Berkley DB 5 support to DBA extension. 307 308- Added support for CURLOPT_MAX_SEND_SPEED_LARGE and CURLOPT_MAX_RECV_SPEED_LARGE 309 to cURL. 310 311- Added optional argument to debug_backtrace() and debug_print_backtrace() 312 to limit the amount of stack frames returned. 313 314- Fixed crypt_blowfish handling of 8-bit characters. crypt() in Blowfish mode 315 now supports hashes marked $2a$, $2x$ and $2y$. 316 317- mbstring now supports following encodings: Shift_JIS/UTF-8 Emoji, 318 JIS X0213:2004 (Shift_JIS-2004, EUC-JP-2004, ISO-2022-JP-2004), 319 MacJapanese (Shift_JIS), gb18030. 320 321- Added encode and decode in hex format to mb_encode_numericentity() and 322 mb_decode_numericentity(). 323 324- Added support for SORT_NATURAL and SORT_FLAG_CASE in array sort functions: 325 sort(), rsort(), ksort(), krsort(), asort(), arsort() and array_multisort(). 326 327- is_a() and is_subclass_of() now have third boolean parameter, which specifies 328 if the first argument can be a string class name. Default if false for is_a 329 and true for is_subclass_of() for BC reasons. 330 331- ob_start() will now treat a chunk size of 1 as meaning 1 byte, rather than 332 the previous special case behavior of treating it as 4096 bytes. 333 334- idn_to_ascii() and idn_to_utf8() now take two extra parameters, one indicating 335 the variant (IDNA 2003 or UTS #46) and another, passed by reference, to return 336 details about the operation in case UTS #46 is chosen. 337 338- gzencode() used with FORCE_DEFLATE now generates RFC1950 compliant data. 339 340- ob_start() no longer starts multiple output buffers when passed 341 array("callback1", "callback2", "callback3", ...). 342 343- Since 5.4.4, "php://fd" stream syntax is available only in CLI build. 344 345- Since 5.4.5, resourcebundle_create() accepts null for the first two arguments. 346 347- Since 5.4.6, SimpleXMLElement::getDocNamespaces() has and extra parameter which 348 allows for toggling if the list of namespaces starts from the document root 349 or from the node you call the method on 350 351- Since 5.4.7, ctor is always called when new user stream wrapper object is created. 352 Before, it was called only when stream_open was called. 353 3544a. unserialize() change 355------------------------ 356 357- Starting PHP 5.4.29, the bug fix for bug #67072 introduces a change to 358 unserialize() function, detailed below: 359 360 If the string looking like 'O:..:"ClassName":...' is unserialized, and 361 the class named is an internal class that declares custom unserializer 362 function, or extends such class, unserialize would fail. 363 364 Using O: for user classes not extending internal classes (including 365 those implementing Serializable) is still supported in 5.4, though 366 it is deprecated and may not be supported in 5.6 for classes that do not 367 originally serialize to O:. Same for using O: for internal classes 368 implementing Serializable (like ArrayObject) and classes that extend 369 them. 370 371 The reason for that is that O: format is meant to be used with classes 372 that do not define custom handlers, and was never intended for the use 373 with classes that do. When used with the class that relies on custom 374 unserializer, it can leave the object of such internal class in an 375 inconsistent state which has been observed to result in crashes and may 376 also lead to memory corruption and ultimately even arbitrary code 377 execution. This was never the intended use of unserializer, and mere 378 possibility of doing this constitutes a bug, since the data passed to 379 unserialize() is not a valid serialization of any object. Since there 380 are many applications applying unserialize() to untrusted data, this 381 presents a potential security vulnerability. Thus, keeping such bug in 382 the code base was considered too dangerous. 383 384 We are aware that some applications use O: format as a way to 385 instantiate classes. This was never the intended usage of serializer, 386 and ReflectionClass methods such as newInstance or 387 newInstanceWithoutConstructor can be used for that. We're working on 388 providing more comprehensive solution for such use cases in PHP 5.6 and 389 welcome the ideas in this area. 390 391 We note also that using unserialize() on any data that is not the result 392 of serialize() call continues to be an unsupported scenario and should 393 not be relied on to produce any specific result. 394 395============================== 3965. Changes to existing classes 397============================== 398 399- Classes that implement stream wrappers can define a method called 400 stream_truncate that will respond to truncation, e.g. through ftruncate. 401 Strictly speaking, this is an addition to the user-space stream wrapper 402 template, not a change to an actual class. 403 404- Classes that implement stream wrappers can define a method called 405 stream_metadata that will be called on touch(), chmod(), chgrp(), chown(). 406 407- Arrays cast from SimpleXMLElement now always contain all nodes instead of 408 just the first matching node. 409 410- All SimpleXMLElement children are now always printed when using var_dump(), 411 var_export(), and print_r(). 412 413- Added iterator support in MySQLi. mysqli_result implements Traversable. 414 415- Since 5.4.30, SOAPClient has __getCookies() method. 416 417============================== 4186. Changes to existing methods 419============================== 420 421- DateTime::parseFromFormat() now has a "+" modifier to allow trailing text in 422 the string to parse without throwing an error. 423 424- Added the ability to pass options to DOMDocument::loadHTML(). 425 426- FilesystemIterator, GlobIterator and (Recursive)DirectoryIterator now use 427 the default stream context. 428 429- Since 5.4.5, the constructor of ResourceBundle accepts NULL for the first two 430 arguments. 431 432=========================== 4337. Deprecated Functionality 434=========================== 435 436- The following functions are deprecated in PHP 5.4: 437 - mcrypt_generic_end(): use mcrypt_generic_deinit() instead 438 - mysql_list_dbs() 439 440======================== 4418. Removed Functionality 442======================== 443 444a. Removed features 445 446 The following features have been removed from PHP 5.4: 447 448 - Magic quotes 449 - Register globals 450 - Safe mode 451 - Session extension bug compatibility mode 452 - Y2K compliance mode 453 454b. Removed functions 455 456 The following functions are no longer available in PHP 5.4: 457 458 - define_syslog_variables() 459 - import_request_variables() 460 - session_is_registered() 461 - session_register() 462 - session_unregister() 463 - set_magic_quotes_runtime() 464 - mysqli_bind_param() (alias of mysqli_stmt_bind_param()) 465 - mysqli_bind_result() (alias of mysqli_stmt_bind_result()) 466 - mysqli_client_encoding() (alias of mysqli_character_set_name()) 467 - mysqli_fetch() (alias of mysqli_stmt_fetch()) 468 - mysqli_param_count() (alias of mysqli_stmt_param_count()) 469 - mysqli_get_metadata() (alias of mysqli_stmt_result_metadata()) 470 - mysqli_send_long_data() (alias of mysqli_stmt_send_long_data()) 471 - mysqli::client_encoding() (alias of mysqli::character_set_name) 472 - mysqli_stmt::stmt() (never worked/always throws, undocumented) 473 474c. Removed syntax 475 476 - break $var; 477 - continue $var; 478 479d. Removed hash algorithms 480 481 - Salsa10 and Salsa20, which are actually stream ciphers 482 483==================== 4849. Extension Changes 485==================== 486 487a. Extensions no longer maintained 488 489 - ext/sqlite is no longer part of the base distribution and has been moved 490 to PECL. Use sqlite3 or PDO_SQLITE instead. 491 492b. Extensions with changed behavior 493 494 - The MySQL extensions (ext/mysql, mysqli and PDO_MYSQL) use mysqlnd 495 as the default library now. It is still possible to use libmysql by 496 specifying a path to the configure options. 497 498 - PDO_MYSQL: Support for linking with MySQL client libraries older 499 than 4.1 is removed. 500 501 - The session extension now can hook into the file upload feature 502 in order to provide upload progress information through session 503 variables. 504 505 - SNMP extension 506 - Functions in SNMP extension now returns FALSE on every error 507 condition including SNMP-related (no such instance, end of MIB, 508 etc). Thus, in patricular, breaks previous behavior of get/walk 509 functions returning an empty string on SNMP-related errors. 510 - Multi OID get/getnext/set queries are now supported. 511 - New constants added for use in snmp_set_oid_output_format() 512 function. 513 - Function snmp_set_valueretrieval() changed it's behavior: 514 SNMP_VALUE_OBJECT can be combined with one of 515 SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY resulting OID value 516 changes. When no SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY 517 is supplied with SNMP_VALUE_OBJECT, SNMP_VALUE_LIBRARY is used. 518 Prior to 5.4.0 when no SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY 519 was supplied with SNMP_VALUE_OBJECT, SNMP_VALUE_PLAIN was used. 520 - Added feature-rich OO API (SNMP class) 521 - Dropped UCD-SNMP compatibility code. Consider upgrading to 522 net-snmp v5.3+. Net-SNMP v5.4+ is required for Windows version. 523 - In sake of adding support for IPv6 DNS name resolution of 524 remote SNMP agent (peer) is done by extension now, not by Net-SNMP 525 library anymore. 526 527 - Date extension 528 - Setting the timezone with the TZ environment variable is no longer 529 supported, instead date.timezone and/or date_default_timezone_set() 530 have to be used. 531 - The extension will no longer guess the default timezone if none 532 is set with date.timezone and/or date_default_timezone_set(). 533 Instead it will always fall back to "UTC". 534 535 - Hash extension 536 - the output of the tiger hash family has been corrected, see 537 https://bugs.php.net/61307 538 539=========================== 54010. Changes in SAPI support 541=========================== 542 543- A REQUEST_TIME_FLOAT value returns a floating point number indicating the 544 time with microsecond precision. All SAPIs providing this value should be 545 returning float and not time_t. 546 547- apache_child_terminate(), getallheaders(), apache_request_headers() 548 and apache_response_headers() are now supported on FastCGI. 549 550- The interactive shell allows a shortcut #inisetting=value to change php.ini 551 settings at run-time. 552 553- The interactive shell now works with the shared readline extension. 554 555- The interactive shell no longer terminates on fatal errors. 556 557- A new PHP CLI command line option --rz <name> shows information about the 558 named Zend extension. 559 560=================== 56111. Windows support 562=================== 563 564- is_link now works properly for symbolic links on Windows Vista 565 or later. Earlier systems do not support symbolic links. 566 567- As of PHP 5.4.5 and above the COM extension isn't compiled statically in PHP 568 anymore but shared. It'll still be delivered with the standard PHP release but 569 must be activated manually with the "extension = php_com_dotnet.dll" directive 570 in php.ini. 571 572- Apache 2.4 handler is supported as of PHP 5.4.9 573 574================== 57512. New in PHP 5.4 576================== 577 578a. New Features 579 580 - A built-in CLI web server for testing purposes is now available: 581 $ php -S 127.0.0.1:8888 582 583 - File Upload Progress support is implemented in the Session extension. 584 585b. Syntax additions 586 587 - Traits: 588 trait HelloWorld { 589 public function sayHello() { 590 echo 'Hello World!'; 591 } 592 } 593 594 class CanIGetHello { 595 use HelloWorld; 596 } 597 598 $hello = new CanIGetHello(); 599 $hello->sayHello(); 600 601 - Function call result array access, e.g.: 602 foo()[0] 603 $foo->bar()[0] 604 605 - Callable typehint indicating argument must be callable: 606 function foo(callable $do) { 607 } 608 foo("strcmp"); 609 foo(function() {}); 610 $o = new ArrayObject(); 611 foo(array($o, "count")); 612 613 - Short array syntax: 614 $a = [1, 2, 3, 4]; 615 $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4]; 616 $a = ['one' => 1, 2, 'three' => 3, 4]; 617 618 - Binary number format: 619 0b00100 0b010101 620 621 - Chained string array offsets now work. 622 $a = "abc"; 623 echo $a[0][0]; 624 625 - Anonymous functions now support using $this and class scope. 626 Anonymous function can be declared as "static" to ignore the scope. 627 628 - Class::{expr}() syntax is now supported: 629 class A { 630 static function foo() { 631 echo "Hello world!\n"; 632 } 633 } 634 $x = "f"; 635 $y = "o"; 636 A::{$x.$y.$y}(); 637 638 - Class member access on instantiation: 639 (new foo)->method() 640 (new foo)->property 641 (new foo)[0] 642 643 644c. New functions 645 646 - Core: 647 - get_declared_traits() 648 - getimagesizefromstring() 649 - hex2bin() 650 - header_register_callback() 651 - http_response_code() 652 - stream_set_chunk_size() 653 - socket_import_stream() 654 - trait_exists() 655 656 - Intl: 657 - transliterator_create() 658 - transliterator_create_from_rules() 659 - transliterator_create_inverse() 660 - transliterator_get_error_code() 661 - transliterator_get_error_message() 662 - transliterator_list_ids() 663 - transliterator_transliterate() 664 665 - LDAP: 666 - ldap_control_paged_result() 667 - ldap_control_paged_result_response() 668 - ldap_modify_batch (5.4.26) 669 670 - libxml: 671 - libxml_set_external_entity_loader() 672 673 - mysqli: 674 - mysqli_error_list() 675 - mysqli_stmt_error_list() 676 677 - pgsql 678 - pg_escape_identifier() (5.4.4) 679 - pg_escape_literal() (5.4.4) 680 681 - Session: 682 - session_register_shutdown() 683 - session_status() 684 685 - SPL 686 - class_uses() 687 688 - SplFixedArray 689 - SplFixedArray::__wakeup() (5.4.18) 690 691d. New global constants 692 693 - CURLOPT_MAX_RECV_SPEED_LARGE 694 - CURLOPT_MAX_SEND_SPEED_LARGE 695 - ENT_DISALLOWED 696 - ENT_HTML401 697 - ENT_HTML5 698 - ENT_SUBSTITUTE 699 - ENT_XHTML 700 - ENT_XML1 701 - IPPROTO_IP 702 - IPPROTO_IPV6 703 - IPV6_MULTICAST_HOPS 704 - IPV6_MULTICAST_IF 705 - IPV6_MULTICAST_LOOP 706 - IP_MULTICAST_IF 707 - IP_MULTICAST_LOOP 708 - IP_MULTICAST_TTL 709 - JSON_BIGINT_AS_STRING 710 - JSON_OBJECT_AS_ARRAY 711 - JSON_PRETTY_PRINT 712 - JSON_UNESCAPED_SLASHES 713 - JSON_UNESCAPED_UNICODE 714 - LIBXML_HTML_NODEFDTD 715 - LIBXML_HTML_NOIMPLIED 716 - LIBXML_PEDANTIC 717 - MCAST_JOIN_GROUP 718 - MCAST_LEAVE_GROUP 719 - MCAST_BLOCK_SOURCE 720 - MCAST_UNBLOCK_SOURCE 721 - MCAST_JOIN_SOURCE_GROUP 722 - MCAST_LEAVE_SOURCE_GROUP 723 - OPENSSL_CIPHER_AES_128_CBC 724 - OPENSSL_CIPHER_AES_192_CBC 725 - OPENSSL_CIPHER_AES_256_CBC 726 - OPENSSL_RAW_DATA 727 - OPENSSL_ZERO_PADDING 728 - PHP_OUTPUT_HANDLER_CLEAN 729 - PHP_OUTPUT_HANDLER_CLEANABLE 730 - PHP_OUTPUT_HANDLER_DISABLED 731 - PHP_OUTPUT_HANDLER_FINAL 732 - PHP_OUTPUT_HANDLER_FLUSH 733 - PHP_OUTPUT_HANDLER_FLUSHABLE 734 - PHP_OUTPUT_HANDLER_REMOVABLE 735 - PHP_OUTPUT_HANDLER_STARTED 736 - PHP_OUTPUT_HANDLER_STDFLAGS 737 - PHP_OUTPUT_HANDLER_WRITE 738 - PHP_QUERY_RFC1738 739 - PHP_QUERY_RFC3986 740 - PHP_SESSION_ACTIVE 741 - PHP_SESSION_DISABLED 742 - PHP_SESSION_NONE 743 - SCANDIR_SORT_ASCENDING 744 - SCANDIR_SORT_DESCENDING 745 - SCANDIR_SORT_NONE 746 - SORT_FLAG_CASE 747 - SORT_NATURAL 748 - STREAM_META_ACCESS 749 - STREAM_META_GROUP 750 - STREAM_META_GROUP_NAME 751 - STREAM_META_OWNER 752 - STREAM_META_OWNER_NAME 753 - STREAM_META_TOUCH 754 - T_CALLABLE 755 - T_INSTEADOF 756 - T_TRAIT 757 - T_TRAIT_C 758 - ZLIB_ENCODING_DEFLATE 759 - ZLIB_ENCODING_GZIP 760 - ZLIB_ENCODING_RAW 761 - U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR 762 - IDNA_CHECK_BIDI 763 - IDNA_CHECK_CONTEXTJ 764 - IDNA_NONTRANSITIONAL_TO_ASCII 765 - IDNA_NONTRANSITIONAL_TO_UNICODE 766 - INTL_IDNA_VARIANT_2003 767 - INTL_IDNA_VARIANT_UTS46 768 - IDNA_ERROR_EMPTY_LABEL 769 - IDNA_ERROR_LABEL_TOO_LONG 770 - IDNA_ERROR_DOMAIN_NAME_TOO_LONG 771 - IDNA_ERROR_LEADING_HYPHEN 772 - IDNA_ERROR_TRAILING_HYPHEN 773 - IDNA_ERROR_HYPHEN_3_4 774 - IDNA_ERROR_LEADING_COMBINING_MARK 775 - IDNA_ERROR_DISALLOWED 776 - IDNA_ERROR_PUNYCODE 777 - IDNA_ERROR_LABEL_HAS_DOT 778 - IDNA_ERROR_INVALID_ACE_LABEL 779 - IDNA_ERROR_BIDI 780 - IDNA_ERROR_CONTEXTJ 781 782e. New classes 783 784 - Reflection: 785 - ReflectionZendExtension 786 787 - Intl: 788 - Transliterator 789 - Spoofchecker 790 791 - JSON: 792 - JsonSerializable 793 794 - Session: 795 - SessionHandler 796 797 - SNMP: 798 - SNMP 799 800 - SPL: 801 - CallbackFilterIterator 802 - RecursiveCallbackFilterIterator 803 804f. New methods 805 806 - Closure: 807 - Closure::bind() 808 - Closure::bindTo() 809 810 - Reflection: 811 - ReflectionClass::getTraitAliases() 812 - ReflectionClass::getTraitNames() 813 - ReflectionClass::getTraits() 814 - ReflectionClass::isCloneable() 815 - ReflectionClass::isTrait() 816 - ReflectionClass::newInstanceWithoutConstructor() 817 - ReflectionExtension::isPersistent() 818 - ReflectionExtension::isTemporary() 819 - ReflectionFunction::getClosure() 820 - ReflectionFunction::getClosureScopeClass() 821 - ReflectionFunction::getClosureThis() 822 - ReflectionFunctionAbstract::getClosureScopeClass() 823 - ReflectionFunctionAbstract::getClosureThis() 824 - ReflectionMethod::getClosure() 825 - ReflectionMethod::getClosureScopeClass() 826 - ReflectionMethod::getClosureThis() 827 - ReflectionObject::getTraitAliases() 828 - ReflectionObject::getTraitNames() 829 - ReflectionObject::getTraits() 830 - ReflectionObject::isCloneable() 831 - ReflectionObject::isTrait() 832 - ReflectionObject::newInstanceWithoutConstructor() 833 - ReflectionParameter::canBePassedByValue() 834 - ReflectionParameter::isCallable() 835 836 - PDO_DBLIB: 837 - PDO::newRowset() 838 839 - SPL: 840 - DirectoryIterator::getExtension() 841 - RegexIterator::getRegex() 842 - SplDoublyLinkedList::serialize() 843 - SplDoublyLinkedList::unserialize() 844 - SplFileInfo::getExtension() 845 - SplFileObject::fputcsv() 846 - SplObjectStorage::getHash() 847 - SplQueue::serialize 848 - SplQueue::unserialize 849 - SplStack::serialize 850 - SplStack::unserialize 851 - SplTempFileObject::fputcsv 852 853 - XSLT: 854 - XsltProcessor::setSecurityPrefs() 855 - XsltProcessor::getSecurityPrefs() 856 857 - Zlib: 858 - zlib_decode() 859 - zlib_encode() 860 861g. New Hash algorithms 862 863 - fnv132 864 - fnv164 865 - joaat 866