<? /* This is a pseudo PHP file to test Kate's PHP syntax highlighting. */ # TODO: this is incomplete, add more syntax examples! # this is also a comment. // Even this is a comment /** \brief doxygen comment */ /*normal comment*/ // comment ?> normal text <?php function test($varname) { return "bla"; # this is also a comment } ?> <?php echo("hello test"); ?> <html> <? print "<title>test</title>"; ?> <!-- CSS --> <style> .inputText { width: <?php echo $width; ?>px; text-indent: 10px; } </style> <!-- JavaScript --> <script> var some_js_var = <?php echo $somevar; ?> ; <?php echo 'alert("Hello there.");'; ?> </script> <!-- JavaScript React --> <script type="text/babel"> <Hello> <?php echo("Hello, hello!"); ?> </Hello> <?php /* aaa */ ?> <div></div> function a(i) { <?php echo "var j = 1;"; ?> return <p>{ i + j }</p>; } </script> <!-- TypeScript --> <script type="text/typescript"> <?php $timestamp = time(); ?> class DateTime { info: string; constructor() { this.info = <?php echo(date("F d, Y h:i:s", $timestamp)); ?>; } get() { return this.info; } } </script> <!-- MustacheJS --> <script type="x-tmpl-mustache"> {{! <?php print "comment"; ?> }} {{#movie}} <div> <h1>{{title}}</h1> <img src="{{poster}}" alt="{{title}}"/> <?php echo $movierating; ?> - {{ratings.critics_rating}} </div> {{/movie}} </script> </html> <?php $var = <<<DOOH This is the $string inside the variable (which seems to be rendered as a string) It works well, I think. DOOH # bug 382527 throw new ParserException("Test {$this->some_var[$index]}\nin {$this->file} is missing.\nThis is bad."); $arr = array(); foreach($arr as $i => $v): echo($i); endforeach echo " $var {$var} ${var} "; echo " $var[1] {$var[1]} ${var[1]} "; echo " $var[-1] {$var[-1]} ${var[-1]} "; echo " $var[i] {$var[i]} ${var[i]} "; echo " $var[-i] {$var[-i]} ${var[-i]} "; echo " $var[$i] {$var[$i]} ${var[$i]} "; echo " $var[-$i] {$var[-$i]} ${var[-$i]} "; echo " $var[$$i] {$var[$$i]} ${var[$$i]} "; echo " $var[$x->i] {$var[$x->i]} ${var[$x->i]} "; echo " $var[$x->$i] {$var[$x->$i]} ${var[$x->$i]} "; echo " $$var {$$var} $${var} "; echo " $$var[1] {$$var[1]} $${var[1]} "; echo " $$var[$i] {$$var[$i]} $${var[$i]} "; echo " $var[$i] {$var[$i]} ${var[$i]} "; echo " $var[1+1] {$var[1+1]} ${var[1+1]} "; echo " $var->mem {$var->mem} ${var->mem} "; echo " $var->3 {$var->3} ${var->3} "; echo " $var-> {$var->} ${var->} "; echo " $var->$mem {$var->$mem} ${var->$mem} "; echo " ${$x->{'mem'}} "; echo "\n \t \\ \xff \x"; echo "\{$x}"; echo <<<HTML <p>bla $var \$var bla\'</p> HTML; echo <<<"HTML" <p>bla $var \$var bla\'</p> HTML; echo <<<'HTML' <p>bla $var \$var bla\'</p> HTML; echo <<<DOC <p>bla $var \$var bla\'</p> DOC; echo <<<DOC <p>bla $var \$var bla\'</p> DOC; echo <<<DOC <p>bla $var \$var bla\'</p> DOC; echo 123456 1_2_34_5 1__2 1_; echo 0x12345af 0x1_2_3_45_a_f 0x1__2 0x_1 0x1_ 0x1g 0xg; echo 0b1011 0b1_01_1 0b1__0 0b_1 0b1_ 0b12 0b2; echo 01234 01_23_4 0_1 0__1 01_ 018 08; echo 0o1234 0O1_23_4 0o1_1_ 0o1__1 0o_1; echo 123. .45 123.45 1_23.4_5e1_2; echo 123.e1 .45e1 123.45e1; echo 123.e+1 .45e+1 123.45e+1; echo 123.e++1 ._45e+1 123._45e+1; // bad float echo 123...45; echo add(...[1, 2])."\n"; function gen_three_nulls() { foreach (range(1, 3) as $i) { yield; } } function &gen_reference() { $value = 3; while ($value > 0) { yield $value; } } function gen() { yield 0; // key 0 yield from inner(); // keys 0-2 yield 4; // key 1 } switch (1) { case 1: echo 'plop'; case 1; echo 'plop'; default: echo 'plop'; default : echo 'plop'; } class User { public int $id; public ?string $name; public function __construct(int $id, ?string $name) : void { $this->id = $id; $this->name = $name; } } class MyClass { const CONST_VALUE = 'A constant value'; } class OtherClass extends MyClass { public static $my_static = 'static var'; public static function doubleColon() { echo parent::CONST_VALUE . "\n"; echo self::$my_static . "\n"; } } $classname = 'MyClass'; echo $classname::CONST_VALUE; echo MyClass::CONST_VALUE; $classname = 'OtherClass'; $classname::doubleColon(); OtherClass::doubleColon(); new $classname::class; $user = new User(1234, null); $y = 1; $fn1 = fn($x) => $x + $y; $fn2 = function ($x) use ($y) { return $x + $y; }; $a = [1,2,3,'x'=>4]; $b = array(1,2,3,'x'=>4); namespace A\B\C; class Exception extends \Exception {} $b = new \Exception('hi'); $x = new A\B\Foo('hi'); $n = \strlen($str) - 1; $r = $x <=> $y and $z; #[ExampleAttribute('Hello world', 42)] class Foo {} function foo(#[TestAttr] $bar){ } enum Suit { case Clubs; case Diamonds; } ?> <?php if (n): ?> <p>bla ba</p> <?php endif ?>