d-r Hogart
13:10 13-05-2004 Вопрос, конечно, идиотский...
...но: что такое вот это?
Warning: Missing argument 1 for commonitem() in z:\home\localhost\www\koteroff2.php on line 7.



<?php

class CommonItem
{
var $ItemID;

function CommonItem($ID)
{
$this->ItemID = $ID;
}

function LookAtMe()
{
echo "Hey, it is me, item number $this->ItemID!";
}

}

$sample = new CommonItem;

?>
Комментарии:
Query
14:41 13-05-2004
Переименуй функцию "CommonItem" в "_CommonItem", к примеру. И будет тебе щастье
d-r Hogart
16:53 13-05-2004
Query гм... спасибо
Delia Grey
19:18 13-05-2004
Query
а почему, объясните ламеру?
d-r Hogart
21:53 13-05-2004
Delia Grey как я понял -- это имя совпадает с именем какой-то предопределенной функцией.
Хотя я искал по справочнику -- не нашел. Наверно, какая-то совсем новая...
zar
21:56 13-05-2004
Query и чего ты этим примере добьёшься? уберёшь constructor класса ради того чтобы не показывалась ошибка?
скорее напрашивается чтото подобное:
$sample = new CommonItem(YOUR_ID);

Delia Grey у него в описании класса конструктор описан с одним параметром(как видно передача ID).
а при создании экземпляра класса он этот параметр пропускает. поэтому вываливается warning. Query предлагает просто удалить конструктор переименовав данную функцию во что-то другое . т.е. при создании экземпляра класса никакой конструктор вызываться не будет и настанет типа счастье. при этом, как мне кажется, потеряется логика примера.

отредактировано: 13-05-2004 22:07 - zar

Query
05:23 14-05-2004
zar, у человека вылетает варнинг и ему это не нравится. Я показал, как от варнинга избавиться. Кстати, если внимательнее прочитаешь варнинг, то увидишь, что он ссылается вовсе не на вызов класса, а именно на строку с функцией (седьмая строка).

В общем, грабли (точнее, появление варнинга) именно в функции. Создается класс и тут же (по причине совпадения имен) вызывается функция, у которой, конечно же, отсутствует аргумент (при таком вызове). Так что вариантов два: либо переименовываешь функцию и всё работает как по маслу, либо вызываешь класс по-твоему и всё опять же работает отлично. Предпочтительнее второй вариант, не спорю.
d-r Hogart
09:50 14-05-2004
Query ворнинг вываливался и тогда, когда когда $sample = new CommonItem(YOUR_ID);, так что zar прав.

Спасибо, ребята