X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Объекты в параметрах функций
romantik2011
romantik2011
Topic Starter сообщение 28.7.2011, 20:33; Ответить: romantik2011
Сообщение #1


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

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

}

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

?>
[/php]
Код вроде работает, выводит такое:
Это чужой!
Петя

Но здесь получается грубо говоря проверка переменной, а не проверка объекта на принадлежность какому-то классу. Как сделать проверку на объект, который исходит от параметра функции и сделать проверку внутри функции?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 28.7.2011, 20:54; Ответить: alexdrob
Сообщение #2


(romantik2011 @ 28.7.2011, 23:33) *
Но здесь получается грубо говоря проверка переменной, а не проверка объекта

ну так вы передали переменную, по этому и получилась проверка переменной :)
передайте объект, и будет проверка объекта.
(romantik2011 @ 28.7.2011, 23:33) *
Как сделать проверку на объект, который исходит от параметра функции и сделать проверку внутри функции?

Блин, пытался понять что вы хотите, но, видимо дара сказывается :) чуть мозг не взорвался)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 28.7.2011, 21:14; Ответить: Letmetouchyou
Сообщение #3


(romantik2011 @ 28.7.2011, 23:33) *
ак сделать проверку на объект

is_object()
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
romantik2011
romantik2011
Topic Starter сообщение 28.7.2011, 21:14; Ответить: romantik2011
Сообщение #4


[PHP]передайте объект, и будет проверка объекта.[/PHP]
Как передать объект а не переменную?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 28.7.2011, 21:16; Ответить: Letmetouchyou
Сообщение #5


romantik2011, в чем разница объекта и переменной?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
romantik2011
romantik2011
Topic Starter сообщение 28.7.2011, 21:17; Ответить: romantik2011
Сообщение #6


Тем что объект - это экземпляр класса, а переменная нет.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 28.7.2011, 21:18; Ответить: Letmetouchyou
Сообщение #7


(romantik2011 @ 29.7.2011, 00:17) *
Тем что объект - это экземпляр класса

а где хранитсья этот экземпляр?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 28.7.2011, 21:20; Ответить: Letmetouchyou
Сообщение #8


http://php.su/learnphp/datatypes/

http://ru.wikipedia.org/wiki/Типизация_данных

как бы учите ООП, да еше и в ПХП, и не знаете элементарных основ.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 28.7.2011, 21:22; Ответить: alexdrob
Сообщение #9


[PHP]<?php
class A { function check($obj) {echo ($obj instanceof B) ? '<p>да</p>' : '<p>нет</p>'; } }
class B extends A {}
class C extends B {}

$a = new A;
$b = new B;
$c = new C;

$a->check($a); // нет, потому что A не знает о B
$a->check($b); // да, потому что B и есть B
$a->check($c); // да, потому что C наследует класс B[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
romantik2011
romantik2011
Topic Starter сообщение 28.7.2011, 21:24; Ответить: romantik2011
Сообщение #10


Экземпляр хранится в динамической памяти, а обычная переменная в статической
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) ASK Spamer по ask.fm многопоточный + регер с парсером по онлайну и еще кучей полезных функций
15 Gad 8555 25.3.2017, 18:40
автор: Gad
Открытая тема (нет новых ответов) Продажа дополнительных функций на сайте.
0 DmitriyV 2520 14.10.2012, 18:52
автор: -DmitriyV-


 



RSS Текстовая версия Сейчас: 19.4.2024, 20:12
Дизайн