__construct return values
Posted: Mon Jun 18, 2007 10:25 pm
Was just playing around. It appears that you cannot return an object with a __construct()? This would eliminate the need to create static vars and private constructs in singletons.
Outputs..
Code: Select all
<pre>
<?php
echo "MEM_USAGE: " . number_format(memory_get_usage()) . "<br />";
class test
{
public function __construct()
{
global $test;
if (is_object($test)) { return $test; }
}
}
$test = new test();
echo "loaded 1: " . var_dump($test) . "<br />";
echo "MEM_USAGE: " . number_format(memory_get_usage()) . "<br />";
$test = new test();
echo "loaded 2: " . var_dump($test) . "<br />";
echo "MEM_USAGE: " . number_format(memory_get_usage()) . "<br />";
$test = new test();
echo "loaded 3: " . var_dump($test) . "<br />";
echo "MEM_USAGE: " . number_format(memory_get_usage()) . "<br />";
$test = new test();
echo "loaded 4: " . var_dump($test) . "<br />";
echo "MEM_USAGE: " . number_format(memory_get_usage()) . "<br />";
$test = new test();
echo "loaded 5: " . var_dump($test) . "<br />";
echo "MEM_USAGE: " . number_format(memory_get_usage()) . "<br />";
$test = new test();
echo "loaded 6: " . var_dump($test) . "<br />";
echo "MEM_USAGE: " . number_format(memory_get_usage()) . "<br />";
echo "PEAK_MEM_USAGE: " . number_format(memory_get_peak_usage()) . "<br />";MEM_USAGE: 56,580
object(test)#1 (0) {
}
loaded 1:
MEM_USAGE: 56,892
object(test)#2 (0) {
}
loaded 2:
MEM_USAGE: 56,980
object(test)#1 (0) {
}
loaded 3:
MEM_USAGE: 56,980
object(test)#2 (0) {
}
loaded 4:
MEM_USAGE: 56,980
object(test)#1 (0) {
}
loaded 5:
MEM_USAGE: 56,980
object(test)#2 (0) {
}
loaded 6:
MEM_USAGE: 56,980
PEAK_MEM_USAGE: 80,628