<?php
function Debug2JsConsole ( $var, $name = false, $title=false ) {
    
    if ( $title ) {
        echo "\n<script>\n";
        echo "\tconsole.log( '===================== " . htmlspecialchars( $title ) . " =========================' );\n";
        echo "\n</script>\n";
    }

    
    if ( $name ) {
        $name = 'Debug2JsConsole :: ' . htmlspecialchars( $name );
    } else {
        $name = 'Debug2JsConsole :: (Name not given)';
    }
    
    if ( isset ( $var ) ) {
    
        echo "\n<script>\n";
        
        if ( $name ) {
            echo "\tconsole.log( '" . htmlspecialchars( $name ) . "' );\n";
        }
        
        if ( is_object( $var ) ) {
        
            $className = get_class( $var );
            
            if ( $className ) {
                echo "\tconsole.log( 'CLASS :: " . htmlspecialchars( $className ) . "' );\n";
                echo "\tconsole.log( 'CLASS DEFAULT VALUES:' );\n";
                echo "\tconsole.log( " . htmlspecialchars( json_encode( get_class_vars( $className ), JSON_UNESCAPED_UNICODE ), ENT_NOQUOTES ) . " );\n";            
            }
            
            if ( get_class_methods ( $var ) ) {
                echo "\tconsole.log( 'CLASS METHODS:' );\n";
                foreach ( get_class_methods( $var ) as $m )  {
                    echo "\tconsole.log( '-> " . htmlspecialchars( $m ) . "()' );\n";
                }
            }
            echo "\tconsole.log( 'OBJECT VALUES:' );\n";
        } else {
            echo "\tconsole.log( 'VALUE[S]:' );\n";
        }
        
        echo "\tconsole.log( " . htmlspecialchars( json_encode( $var, JSON_UNESCAPED_UNICODE ), ENT_NOQUOTES ) . " );\n";
        echo "</script>\n";
        
    } else {
        echo "\n<script>\n"
            . "\tconsole.log('" . htmlspecialchars( $name ) . ' is not set!' . "');\n" 
            . "</script>\n";    
    }
}