ID:               14221
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Duplicate
+Status:           Analyzed
 Bug Type:         Scripting Engine problem
-Operating System: Linux Mandrake 7.2
+Operating System: ANY
-PHP Version:      4.0.4pl1
+PHP Version:      4.2.0-dev
 New Comment:

In fact, this bug is not realated to multiple method definition bug.

Stauts => Analyzed.




Previous Comments:
------------------------------------------------------------------------

[2002-04-01 21:51:50] [EMAIL PROTECTED]

It seems this isnot related to http://bugs.php.net/bug.php?id=16265

Since this segfaults
<?php
        error_reporting (E_ALL);

        class test {
                var $currentField;
                function setCurrentField($field_name) {
                        $this->currentField = $field_name;
                }
                function getValue() {
                        return $this->getValue($this->currentField);
                }
        }

        $frm = new test;

        $frm->setCurrentField("blah");  
        print $frm->getValue();
        
?>


------------------------------------------------------------------------

[2002-04-01 21:39:36] [EMAIL PROTECTED]

http://bugs.php.net/bug.php?id=16265
should be reopenned. (I just did)


------------------------------------------------------------------------

[2002-04-01 19:16:29] [EMAIL PROTECTED]

This looks to have been resolved here:
http://bugs.php.net/bug.php?id=16265
If this is correct, can this report be closed?

------------------------------------------------------------------------

[2001-12-06 07:18:42] [EMAIL PROTECTED]

Make this report a duplicate of #13703

------------------------------------------------------------------------

[2001-11-26 04:01:48] [EMAIL PROTECTED]


> php doesn't call functions based on the parameters given

Ah hah! OK, that changes everything - I was thinking like C++ classes,
which, if my memory serves me correctly, know which member function to
use.

Modified code that deals with this OK:
========================================================
#!/usr/bin/php -q
<?php
        error_reporting (E_ALL);

        class test {
                var $currentField;
                function setCurrentField($field_name) {
                    $this->currentField = $field_name;
                }
                function getValue($field_name = false) {
                    if ($field_name === false) $field_name =
$this->currentField;
                    return "getValue with arg - $field_name\n";
                }
        }

        $frm = new test;
        $frm->setCurrentField("blah");  
        print $frm->getValue("real arg");
        print $frm->getValue();
                
?>
========================================================

> That's an ZE problem (ie. 
> method with same name should give parse error or at least some 
> warning).

Agreed.

Testing this with straight functions shows that the engine does do this
for straight functions:
========================================================
#!/usr/bin/php -q
<?php
        error_reporting (E_ALL);

        function blah() {
                print "no arg\n";
        }

        function blah($field) {
                print "with arg, $field\n";
        }

        blah();
        blah("test");
?>
========================================================

Output gives:
[root tmp]# ./test.php
<br>
<b>Fatal error</b>:  Cannot redeclare blah() in <b>./test.php</b> on
line <b>9</b><br>
[root tmp]# 

An equivalent "Cannot redeclare test class member function blah() in
test.php on line 9" would be extremely helpful and is probably called
for - I've always found the PHP syntax checking to extremely clear and
spot-on previously.

Many thanks for all your help,

Kind Regards,
Nick.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/14221

-- 
Edit this bug report at http://bugs.php.net/?id=14221&edit=1

Reply via email to