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

Reply via email to