File indexing completed on 2025-02-02 03:54:48
0001 <? 0002 /* This is a pseudo PHP file to test Kate's PHP syntax highlighting. */ 0003 # TODO: this is incomplete, add more syntax examples! 0004 # this is also a comment. 0005 // Even this is a comment 0006 /** \brief doxygen comment 0007 */ /*normal comment*/ 0008 // comment ?> normal text <?php 0009 function test($varname) { 0010 return "bla"; # this is also a comment 0011 } 0012 ?> 0013 0014 <?php echo("hello test"); ?> 0015 0016 <html> 0017 <? print "<title>test</title>"; ?> 0018 0019 <!-- CSS --> 0020 <style> 0021 .inputText { 0022 width: <?php echo $width; ?>px; 0023 text-indent: 10px; 0024 } 0025 </style> 0026 0027 <!-- JavaScript --> 0028 <script> 0029 var some_js_var = <?php echo $somevar; ?> ; 0030 <?php echo 'alert("Hello there.");'; ?> 0031 </script> 0032 <!-- JavaScript React --> 0033 <script type="text/babel"> 0034 <Hello> <?php echo("Hello, hello!"); ?> </Hello> <?php /* aaa */ ?> <div></div> 0035 function a(i) { 0036 <?php echo "var j = 1;"; ?> 0037 return <p>{ i + j }</p>; 0038 } 0039 </script> 0040 <!-- TypeScript --> 0041 <script type="text/typescript"> 0042 <?php $timestamp = time(); ?> 0043 class DateTime { 0044 info: string; 0045 constructor() { this.info = <?php echo(date("F d, Y h:i:s", $timestamp)); ?>; } 0046 get() { return this.info; } 0047 } 0048 </script> 0049 <!-- MustacheJS --> 0050 <script type="x-tmpl-mustache"> 0051 {{! <?php print "comment"; ?> }} 0052 {{#movie}} 0053 <div> 0054 <h1>{{title}}</h1> 0055 <img src="{{poster}}" alt="{{title}}"/> 0056 <?php echo $movierating; ?> - {{ratings.critics_rating}} 0057 </div> 0058 {{/movie}} 0059 </script> 0060 0061 </html> 0062 0063 <?php 0064 $var = <<<DOOH 0065 This is the $string inside the variable (which seems to be rendered as a string) 0066 It works well, I think. 0067 DOOH 0068 0069 # bug 382527 0070 throw new ParserException("Test {$this->some_var[$index]}\nin {$this->file} is missing.\nThis is bad."); 0071 0072 $arr = array(); 0073 foreach($arr as $i => $v): 0074 echo($i); 0075 endforeach 0076 0077 echo " $var {$var} ${var} "; 0078 echo " $var[1] {$var[1]} ${var[1]} "; 0079 echo " $var[-1] {$var[-1]} ${var[-1]} "; 0080 echo " $var[i] {$var[i]} ${var[i]} "; 0081 echo " $var[-i] {$var[-i]} ${var[-i]} "; 0082 echo " $var[$i] {$var[$i]} ${var[$i]} "; 0083 echo " $var[-$i] {$var[-$i]} ${var[-$i]} "; 0084 echo " $var[$$i] {$var[$$i]} ${var[$$i]} "; 0085 echo " $var[$x->i] {$var[$x->i]} ${var[$x->i]} "; 0086 echo " $var[$x->$i] {$var[$x->$i]} ${var[$x->$i]} "; 0087 echo " $$var {$$var} $${var} "; 0088 echo " $$var[1] {$$var[1]} $${var[1]} "; 0089 echo " $$var[$i] {$$var[$i]} $${var[$i]} "; 0090 echo " $var[$i] {$var[$i]} ${var[$i]} "; 0091 echo " $var[1+1] {$var[1+1]} ${var[1+1]} "; 0092 echo " $var->mem {$var->mem} ${var->mem} "; 0093 echo " $var->3 {$var->3} ${var->3} "; 0094 echo " $var-> {$var->} ${var->} "; 0095 echo " $var->$mem {$var->$mem} ${var->$mem} "; 0096 echo " ${$x->{'mem'}} "; 0097 echo "\n \t \\ \xff \x"; 0098 0099 echo <<<HTML 0100 <p>bla $var \$var bla\'</p> 0101 HTML; 0102 echo <<<"HTML" 0103 <p>bla $var \$var bla\'</p> 0104 HTML; 0105 echo <<<'HTML' 0106 <p>bla $var \$var bla\'</p> 0107 HTML; 0108 echo <<<DOC 0109 <p>bla $var \$var bla\'</p> 0110 DOC; 0111 echo <<<DOC 0112 <p>bla $var \$var bla\'</p> 0113 DOC; 0114 echo <<<DOC 0115 <p>bla $var \$var bla\'</p> 0116 DOC; 0117 0118 echo 123456 1_2_34_5 1__2 1_; 0119 echo 0x12345af 0x1_2_3_45_a_f 0x1__2 0x_1 0x1_ 0x1g 0xg; 0120 echo 0b1011 0b1_01_1 0b1__0 0b_1 0b1_ 0b12 0b2; 0121 echo 01234 01_23_4 0_1 0__1 01_ 018 08; 0122 echo 0o1234 0O1_23_4 0o1_1_ 0o1__1 0o_1; 0123 echo 123. .45 123.45 1_23.4_5e1_2; 0124 echo 123.e1 .45e1 123.45e1; 0125 echo 123.e+1 .45e+1 123.45e+1; 0126 echo 123.e++1 ._45e+1 123._45e+1; // bad float 0127 0128 echo 123...45; 0129 echo add(...[1, 2])."\n"; 0130 0131 function gen_three_nulls() { 0132 foreach (range(1, 3) as $i) { 0133 yield; 0134 } 0135 } 0136 0137 function &gen_reference() { 0138 $value = 3; 0139 0140 while ($value > 0) { 0141 yield $value; 0142 } 0143 } 0144 0145 function gen() { 0146 yield 0; // key 0 0147 yield from inner(); // keys 0-2 0148 yield 4; // key 1 0149 } 0150 0151 switch (1) { 0152 case 1: echo 'plop'; 0153 case 1; echo 'plop'; 0154 default: echo 'plop'; 0155 default : echo 'plop'; 0156 } 0157 0158 class User 0159 { 0160 public int $id; 0161 public ?string $name; 0162 0163 public function __construct(int $id, ?string $name) : void 0164 { 0165 $this->id = $id; 0166 $this->name = $name; 0167 } 0168 } 0169 0170 class MyClass { 0171 const CONST_VALUE = 'A constant value'; 0172 } 0173 0174 class OtherClass extends MyClass 0175 { 0176 public static $my_static = 'static var'; 0177 0178 public static function doubleColon() { 0179 echo parent::CONST_VALUE . "\n"; 0180 echo self::$my_static . "\n"; 0181 } 0182 } 0183 0184 $classname = 'MyClass'; 0185 echo $classname::CONST_VALUE; 0186 0187 echo MyClass::CONST_VALUE; 0188 0189 $classname = 'OtherClass'; 0190 $classname::doubleColon(); 0191 0192 OtherClass::doubleColon(); 0193 new $classname::class; 0194 0195 $user = new User(1234, null); 0196 0197 $y = 1; 0198 $fn1 = fn($x) => $x + $y; 0199 $fn2 = function ($x) use ($y) { 0200 return $x + $y; 0201 }; 0202 0203 $a = [1,2,3,'x'=>4]; 0204 $b = array(1,2,3,'x'=>4); 0205 0206 namespace A\B\C; 0207 class Exception extends \Exception {} 0208 0209 $b = new \Exception('hi'); 0210 $x = new A\B\Foo('hi'); 0211 $n = \strlen($str) - 1; 0212 0213 $r = $x <=> $y and $z; 0214 0215 #[ExampleAttribute('Hello world', 42)] 0216 class Foo {} 0217 function foo(#[TestAttr] $bar){ 0218 } 0219 0220 enum Suit { 0221 case Clubs; 0222 case Diamonds; 0223 } 0224 ?> 0225 0226 <?php if (n): ?> 0227 <p>bla ba</p> 0228 <?php endif ?>