3.3. Об'єкти, ресурси та псевдотипи

Тип object (об'єкти)

Об'єкт є одним з базових понять об'єктно-орієнтованого програмування. Внутрішня структура об'єкта схожа на хеш, за винятком того, що для доступу до окремих елементів і функцій використовується оператор ->, а не квадратні дужки.

Для ініціалізації об'єкту використовується вираз new, що створює в змінної екземпляр об'єкта.

1
2
3
4
5
6
7
8
9
10
11
12
<?php
class foo
{
     function do_foo()
     {
         echo "Doing foo."; 
     }
}
 
$bar = new foo;
$bar->do_foo();
?>

Тип resource (ресурси)

Ресурс - це спеціальна змінна, що містить посилання на зовнішній ресурс. Ресурси створюються і використовуються спеціальними функціями.

Псевдотип mixed (змішаний)

mixed говорить про те, що параметр може приймати безліч (але не обов'язково всі) типів.

gettype (), наприклад, приймає всі типи PHP, тоді як str_replace () приймає рядки і масиви.

Псевдотип number (числовий)

number говорить про те, що параметр може бути або integer, або float.

Псевдотип callback (зворотного виклику)

Деякі функції, такі як call_user_func () або usort () приймають як параметр певні користувачем callback-функції. Callback-функції можуть бути не тільки простими функціями, але також методами об'єктів, включаючи статичні методи класів.

PHP-функція передається просто як рядок її імені. Ви можете передати будь-яку вбудовану або визначену користувачем функцію за винятком array (), echo (), empty (), eval (), exit (), isset (), list (), print () і unset ().

Наведемо приклади callback функцій:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php 
 
// приклад callback
function my_callback_function() {
     echo 'hello world!';
}
call_user_func('my_callback_function'); 
 
// приклад callback-методу
class MyClass {
     function myCallbackMethod() {
         echo 'Hello World!';
     }
}
 
// виклик методу класу без створення об'єкта
call_user_func(array('MyClass', 'myCallbackMethod')); 
 
// виклик метода
$obj = new MyClass();
call_user_func(array(&$obj, 'myCallbackMethod'));
?>