使用highlight_string打印php代码

I am trying to show my code with highlight_string. All of my variables are being stripped out of the printed code. What am I doing wrong? An example of what is happening ...

<?php highlight_string("
    <?
        $a=3;
        $b=4;
        if ($a < $b){
        echo 'a is less than b';
        }
    ?>"); 
?>

The output looks like this

    <?
        =3;
        =4;
        if ( < ){
        echo 'a is less than b';
        }
    ?>

Replace the double quotes (") with single quotes (') PHP tries to fill up variables printed within double quotes.

<?php highlight_string('
    <?
        $a=3;
        $b=4;
        if ($a < $b){
        echo \'a is less than b\';
        }
    ?>'); 
?>

Tried using single quotes?

Using double quotes prints the values of variable rather than their defined names.

When you use double quotes ", you allow PHP to replace all instances of a variable with its value. For example, if I do this:

$a=5;
echo "$a";

My output will be:

5

If instead I did...

$a=5
echo '$a';

My output will be

$a

Single quotes not double

<?php highlight_string('
    <?
        $a=3;
        $b=4;
        if ($a < $b){
        echo \'a is less than b\';
        }
    ?>'); 
?>

In a php double-quoted string the dollar sign indicates that the variable after the dollar sign should be placed into the string, ie

 $a = 1;
 echo("A is $a");
 #prints A is 1

Even if $a is not defined, php will assume that you mean to create $a here:

 echo("A is $a");
 #prints A is 

To get around this, use single quoted strings which take the string literally:

 echo('A is $a');
 #prints A is $a