Nathan Rixham schreef:
Ben Stones wrote:
Hi,
The following bit of code doesn't output anything:
?php
class output {
var $text;
function outputText() {
$this-text = Hello World;
echo $this-text;
}
}
$class = new output();
$class-outputText;
?
As well as the following code:
?php
class output {
var $text=5;
function outputText() {
echo $this-text;
}
}
$class = new output();
$class-outputText;
?
Am I doing anything wrong? By the way, the preceding code is just so I
understand OOP which finally I've grasped, but am I doing anything
wrong as
both codes don't output anything?
it's the lack of a methodCall()
$class-outputText; don't work
$class-outputText;
references an undefined property of the class instance,
turning on error_reporting to full (i.e. including E_NOTICE)
would have given a hint to the OP (assuming he has display_error ON
or he is reading his error log) as to what was going on.
as an example, try running this:
?
class Foo {
public $a = A\n;
private $b = B\n;
static $d = D\n;
function b() { echo $this-b; }
static function d() { echo self::$d; }
static function e() { echo E\n; }
}
ini_set('display_errors', true);
ini_set('error_reporting', E_ALL ^ E_STRICT);
$f = new Foo;
echo $f-a;
echo $f-b();
echo $f-c;
echo $f-d();
echo $f-d;
echo Foo::d();
echo Foo::$d;
echo $f-e();
echo Foo::e();
// the following are fatal errors:
echo $f-b;
echo Foo::b();
?
$class-outputText(); will work
while you're there why not learn the php5 way?
quite right :)
?php
class output {
private $text;
public function outputText( $text='default text' )
{
$this-text = $text;
return $this-text;
}
}
$class = new output;
$class-outputText();
?
just a suggestion save you double learning! good choice on the OO though
nathan
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php