Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2011, 20:31   #1
romantik2011
Пользователь
 
Регистрация: 20.07.2011
Сообщений: 70
По умолчанию Объекты в параметрах функций

Вот решил написать функцию в классе, а в функции, внутри класса, хочу проверить, принадлежит ли той или иной объект какому-то классу.
PHP код:
<?php 
class A{
public function  
f(){
    echo 
'Лето-2011!';    
    }
}

class 
extends A{
    function 
chekObject($obj){
        if(
$obj instanceof User){
        echo 
"Это наш!<br>";
        } else{    echo 
"Это чужой!<br>";}
        echo 
$obj;
    }

}

$obj = new B();
$obj->chekObject("Петя");

?>
Код вроде работает, выводит такое:
Цитата:
Это чужой!
Петя
Но здесь получается грубо говоря проверка переменной, а не проверка объекта на принадлежность какому-то классу. Как сделать проверку на объект, который исходит от параметра функции и сделать проверку внутри функции?
romantik2011 вне форума Ответить с цитированием
Старый 28.07.2011, 20:49   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
if($obj instanceof User){
Что-то я не наблюдаю у вас в коде класса User - вижу только классы А и В...

Операторы классов PHP
get_class()
Andkorol вне форума Ответить с цитированием
Старый 28.07.2011, 20:53   #3
romantik2011
Пользователь
 
Регистрация: 20.07.2011
Сообщений: 70
По умолчанию

Вот так тоже что-то не пашет.
PHP код:
<?php 
class A{
public function  
f(){
    echo 
'Лето-2011!';    
    }
}

class 
extends A{
    function 
chekObject(B $obj){
        if(
$obj instanceof B){
        echo 
"Это наш!<br>";
        } else{    echo 
"Это чужой!<br>";}
        echo 
$obj;
    }

}

$obj = new B();
$obj->chekObject("Петя");

?>
Цитата:
Catchable fatal error: Argument 1 passed
to B::chekObject()
must be an instance of B,
string given, called in C:\www\htdocs\test.ru\
www\index.php on line 19 and defined in
C:\www\htdocs\test.ru\www\index.php on line 9
romantik2011 вне форума Ответить с цитированием
Старый 28.07.2011, 21:07   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Это как понимать:
Цитата:
function chekObject(B $obj){
В приведенных мною ссылках есть достаточно простые и понятные примеры использования.

Цитата:
Вот так тоже что-то не пашет.
Пишите код осмысленно, а не "методом тыка".

PS: приведенный текст ошибки достаточно внятно поясняет её суть - просто потрудитесь его перевести.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi: аппроксимация функций методом базиса из финитных функций Denna Помощь студентам 1 12.03.2012 19:23
О параметрах запуска и CreateProcess Человек_Борща Общие вопросы Delphi 2 01.06.2011 10:01
ошибк в функции в параметрах.... Chica Bond Общие вопросы C/C++ 5 02.05.2010 22:23
В содержании отображается только стиль Заголовок1, хотя в параметрах указаны все девять заголовков alevtina07 Microsoft Office Word 5 20.01.2010 14:03
jQuery ajax символ '+' в передаваемых параметрах A_r_r_a_y JavaScript, Ajax 2 14.01.2010 01:49