1. You cannot call a function statically with the same class name being a backward compatible constructor. The following won't work.
<?php
class ctest
{
static function ctest()
{
echo "test";
}
}
ctest::ctest();
Error Expected:
Fatal error: Constructor ctest::ctest() cannot be static in /var/www/html/test.php
2. You cannot assign an expression, a function or an object to a property. The following won't work.
<?php
class ctest
{
public static $mytest = memory_get_usage();
static function test()
{
echo "test";
}
}
ctest::test();
class ctest
{
public $mytest = new StdClass();
static function test()
{
echo "test";
}
}
ctest::test();
class ctest
{
static $mytest = (true) ? "not false" : "not true";
static function test()
{
echo "test";
}
}
ctest::test();
Error Expected:Parse error: syntax error, unexpected '(', expecting ',' or ';'
Note: This possibly exists even to earlier versions of PHP. Also, the similar limitation of static properties which cannot be initialized using a non-literal or non-constant applies here as well.
No comments:
Post a Comment