I think they're equivalent.
<?php
header("Content-Type: text/plain");
class test
{
var $test = "test";
function test($test="test")
{
$this->test = $test;
}
}
$t1 = new test("Hello, world!");
echo $t1->test."\n";
$t2 = new test();
echo $t2->test."\n";
$t3 = new test;
echo $t3->test."\n";
?>
Outputs:
Hello, world!
test
test
Note that if you make the parameter for the constructor required (delete the ="test" from the delcaration), then both $t2 and $t3 generate a "missing argument" error; so there seems to be no difference.