--TEST--
Assigning to a non-existent static property
--FILE--
<?php 
class C
{
}
C::$p = 1;
?>
--EXPECTF--

Fatal error: Access to undeclared static property: C::$p in %s on line 3, position %d
Example #2
0
<?php

trait T1
{
    static function hello()
    {
        echo "Hello ";
    }
}
trait T2
{
    use T1;
    static function world()
    {
        echo "World!\n";
    }
}
class C
{
    use T2;
    static function p()
    {
        self::hello();
        self::world();
    }
}
C::p();
unset(${'i'});
echo "\n" . '$i[0]=f(): ';
echo $a[$i[0] = f()][++$i[0]];
unset($i);
echo "\n" . '$i[0][0]=f(): ';
echo $a[$i[0][0] = f()][++$i[0][0]];
unset($i);
echo "\n" . '$i->p=f(): ';
echo $a[$i->p = f()][++$i->p];
unset($i);
echo "\n" . '$i->p->q=f(): ';
echo $a[$i->p->q = f()][++$i->p->q];
unset($i);
echo "\n" . '$i->p[0]=f(): ';
echo $a[$i->p[0] = f()][++$i->p[0]];
unset($i);
echo "\n" . '$i->p[0]->p=f(): ';
echo $a[$i->p[0]->p = f()][++$i->p[0]->p];
unset($i);
class C
{
    static $p;
}
echo "\n" . 'C::$p=f(): ';
echo $a[C::$p = f()][++C::$p];
echo "\n" . 'C::$p[0]=f(): ';
C::$p = array();
echo $a[C::$p[0] = f()][++C::$p[0]];
echo "\n" . 'C::$p->q=f(): ';
C::$p = new stdclass();
echo $a[C::$p->q = f()][++C::$p->q];