Отправляет email-рассылки с помощью сервиса Sendsay

PHP 5: Новые возможности.

  Все выпуски  

Подсказка типа


Вниманию читателей!

Отдельные выпуски рассылки в той или иной мере взаимосвязаны; особенно, это относится к материалам практических занятий.

С предыдущими выпусками Вы можете ознакомиться:

  1. в архиве рассылки (оригиналы выпусков);
  2. на сайте рассылки (исправленные и дополненные версии).

# # #

Вы также можете подписаться на рассылку "PHP 5 для начинающих".

PHP 6 уже в разработке!

Еще в ноябре 2005 года на встрече в Париже разработчики обсудили новые возможности следующей, шестой, версии PHP. Интересует ли Вас, какой будет эта версия? Примите участие в опросе, который проводится на сайте рассылки.

http://pterodactyl.l2p.net/e107/

[опрос на английском языке: PHP 6: Are you interesting in? (PHP 6: Вы зантересованы?) - YES (ДА) - NO (НЕТ)]

PHP 5: Новые возможности.

В ряде случаев (особенно, при разработке и отладке) бывает полезно проверять тип аргументов, полученных функцией или методом, чтобы избежать нежелательных попыток обрабатывать данные тех типов, для обработки которых данная функция или метод не предназначены. Далее будем обсуждать те случаи, когда получаемый аргумент является объектом или массивом.

В PHP 4 для этого было необходимо использовать довольно неуклюжую конструкцию с использованием функции is_a() или is_array().

function foo($obj)
{
    if (!is_a($obj, 'Foo')) {
        die('Invalid object.');
    }
    // ...
}
        

PHP 5 позволяет при желании подсказывать ожидаемый класс объекта.

function foo(Foo $obj)
{
    // ...
}
        

Теперь попытка передать функции объект любого другого класса приведет к возникновению фатальной ошибки.

<?php

class Foo {
}

function test(stdClass $obj)
{
    return true;
}

$foo = new Foo;

test($foo);

?>
        
Fatal error:  Argument 1 must be an instance of stdClass

Аналогичным образом можно подсказывать класс объекта и для аргументов методов.

Начиная с PHP 5.1, можно подсказывать не только класс объектов, но и принадлежность аргументов к массивам.

function foo(array $a)

К сожалению, подсказка о принадлежности аргументов к другим типам данных в настоящее время не поддерживается.

Created with DocBook Created with Libxslt


В избранное