Make WordPress Core

Ticket #30471: 30471.2.diff

File 30471.2.diff, 1.9 KB (added by pento, 10 years ago)
  • src/wp-includes/functions.php

     
    26622662        $json = call_user_func_array( 'json_encode', $args );
    26632663
    26642664        // If json_encode() was successful, no need to do more sanity checking.
    2665         if ( false !== $json ) {
     2665        // ... unless we're in an old version of PHP, and json_encode() returned
     2666        // a string containing 'null'. Then we need to do more sanity checking.
     2667        if ( false !== $json && ( version_compare( PHP_VERSION, '5.5', '>=' ) || false === strpos( $json, 'null' ) ) )  {
    26662668                return $json;
    26672669        }
    26682670
  • tests/phpunit/tests/functions.php

     
    554554
    555555                $this->assertEquals( 'aあb', $utf8 );
    556556
    557                 // json_encode() returns different things in different PHP versions.
    558                 // See: https://core.trac.wordpress.org/ticket/30471
    559                 if ( version_compare( PHP_VERSION, '5.5', '>=' ) ) {
    560                         $expected = '"a\u3042b"';
    561                 } else {
    562                         $expected = 'null';
    563                 }
     557                $this->assertEquals( '"a\u3042b"', wp_json_encode( $eucjp ) );
    564558
    565                 $this->assertEquals( $expected, wp_json_encode( $eucjp ) );
    566 
    567559                mb_detect_order( $old_charsets );
    568560        }
    569561
     
    582574
    583575                $this->assertEquals( 'aあb', $utf8 );
    584576
    585                 // json_encode() returns different things in different PHP versions.
    586                 // See: https://core.trac.wordpress.org/ticket/30471
    587                 if ( version_compare( PHP_VERSION, '5.5', '>=' ) ) {
    588                         $expected = '["c","a\u3042b"]';
    589                 } else {
    590                         $expected = '["c",null]';
    591                 }
     577                $this->assertEquals( '["c","a\u3042b"]', wp_json_encode( array( 'c', $eucjp ) ) );
    592578
    593                 $this->assertEquals( $expected, wp_json_encode( array( 'c', $eucjp ) ) );
    594 
    595579                mb_detect_order( $old_charsets );
    596580        }
    597581