Предупреждение: отсутствует 1 аргумент - PullRequest
6 голосов
/ 23 декабря 2010

Любая идея, почему я получаю эту ошибку:

Warning: Missing argument 1 for person::__construct(), called in /home/fishbein/public_html/dev/OOP/index.php on line 5 and defined in /home/fishbein/public_html/dev/OOP/class_lib.php on line 6

Warning: Missing argument 1 for person::__construct(), called in /home/fishbein/public_html/dev/OOP/index.php on line 6 and defined in /home/fishbein/public_html/dev/OOP/class_lib.php on line 6

С этим кодом:

<?
    class person {

            var $name;

            function __construct($persons_name) {       
            $this->name = $persons_name;        
            }

            function set_name($new_name) {
                $this->name = $new_name;
            }

            function get_name() {
                return $this->name;
            }

    }
?>

Я также использую это в моем индексном файле:

$tyler = new person("Tyler");

Ответы [ 5 ]

11 голосов
/ 23 декабря 2010

При создании вы сделали: $obj = new person(); вместо $obj = new person("joe");

4 голосов
/ 23 декабря 2010
$persons_name = ""

Установите это как аргумент. Но это не решение. Вы можете удалить конструкцию, создать новый экземпляр и затем установить имя. Если ваш как-то не работает.

2 голосов
/ 23 декабря 2010

Вы вызываете конструктор без передачи аргумента. Возможно, вы делаете что-то вроде $p = new person(); вместо $p = new person("theirName");

0 голосов
/ 13 ноября 2015

Попробуйте этот код

 function __construct($persons_name= NULL) {       
            $this->name = $persons_name;        
            }

инициализированный NULL внутри метода конструкции.

0 голосов
/ 22 ноября 2014

Кажется: Если имя класса совпадает с именем функции, выдается это предупреждение. Если вы называете функцию не так, как имя класса, значит, все в порядке. Аргументы нужно указывать только при вызове функции, а не в экземпляре класса

...