|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2002-08-01 10:53 UTC] michiwalter at gmx dot de
Summary:
Parser error when trying to create a new class instance in a static definition.
Error reproducable on:
- Windows 2000/IIS/PHP 4.2.1 (CGI)
- Windows 2000/Apache 1.3.24/PHP 4.2.0
- Linux deathrow 2.4.9-34/Apache 1.3.26/PHP 4.2.2
Test script:
<?php
class Test
{
};
function test()
{
static $var=new Test();
}
?>
Error message:
Parse error: parse error, unexpected T_NEW in __FILE__ on line __LINE__
Known workarounds:
...
function test()
{
static $var=NULL;
if(NULL===$var)
$var=new Test();
return $var;
}
...
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2026 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 07 16:00:02 2026 UTC |
Well I am under the impression that in the definition static $var=<value>; <value> should be assigned to $var only the first call...so what I want to do is to use that for implementing a singleton, like that: class Class { //... function &getSingleton() { static $instance=new Class(); return $instance; } // ... } (similar to Class& getSingleton() { static Class instance; return instance; } in C++, and yeah, I know that that ain't thread safe;) Anything wrong with that?