why this error?

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
This is my first "class" algorithm: when i execute it, i get this

<<Fatal error: Call to undefined function: sum() in d:\class.php on
line 20>>

what's wrong?  The class has the function, so why it says undefined?

print("first time class");
class somma
        var $uno=10;
        var $due=15;
        var $tre=15;
                        function sum($uno, $due, $tre)
                                $totale = $uno + $due + $tre;
        function sum_2()
                $totale = $this->sum($this->uno, $this->due, $this->tre);
                return $totale;

Re: why this error?

Quoted text here. Click to load it

Hi vinnie,

you have declared sum function inside the somma class, and you're
trying to use it outside the class scope. This will not work.

First you should create an instance of somma and then call the sum
function using "->" operator.
$mySomma = new somma();


Re: why this error?

Quoted text here. Click to load it

When using objects, you have to "create" them using the "new" keyword.
So consider a class a demarcation of what makes up an object, with
references to that demarcation being stored in the $variable that was
used to create the object.


<h4>Somma object test class</h4>
<p>Print a sum from the Somma class</p>

class Somma {
    var $totale = 0;
    var $tre = 15;
    // Php4 constructor, "makes" object and
    // returns a reference to the object in
    // memory, to be stored in the $variable
    // that is = new Somma($uno, $due);
    function Somma($uno, $due) {
        $this->totale = $uno + $due + $this->tre;
// $variable stores reference to object in
// memory
$variable = new Somma(34,40);
echo $variable->totale . "\n\n";
// Let's look at the object


Note the use of $this-> and $variable in the different scopes ($this->
is used inside the class, $variable is used to refer to the object's
methods and properties, which are called $variable->Somma(85,98);

Re: why this error?

vinnie wrote:
Quoted text here. Click to load it
Quoted text here. Click to load it

I've marked the failing line. This line tries to call a global sum()  
function with two arguments.  This is a valid error; no such function  
exists in the system, and you haven't defined one in the global scope.

I'm not entirely sure what you're trying to do here, so I hesitate to  
give you more advice and possibly lead you astray.

Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.

Site Timeline