клуб PHP
клуб заведен 16-03-2003
постоянные читатели [14]
501, Arm0, cadaver, Dark, Delia Grey, diteX, Genux, LinkMan, Query, Santail, Svetlika, Urkagan, wanglo, zar
хранители [1]
zar
участники [15]
501, Alick, Arm0, Azimmers, cadaver, d-r Hogart, d0Xt0r, Delia Grey, diteX, maybe_we, Query, Santail, wanglo, zar, Звёздный Капитан
закладки:
цитатник:
клуб:
интересы [3]
13-05-2004 13:10 d-r Hogart » Вопрос, конечно, идиотский...
...но: что такое вот это?
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;

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

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

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

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

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

Спасибо, ребята
Закрыть