Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PHP5.3, Новшества и изменения 
:(
    Опции темы
Serkys
Дата 15.3.2008, 11:46 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



Выставляю на суд общественности свою заметку про грядущий PHP5.3

Доброго времени суток.

На конференции PHPQuebec 2008 была показана презентация, рассказывающая о новых возможностях и отличиях PHP5.3. Сейчас я расскажу вам про некоторые изменения, подробнее вы сможете ознакомиться с ними просмотрев презентацию.

Основные изменения направлены на исправление багов, безпроблемную работу старого кода и развитие существующего функционала.
Также были добавлены пространства имён (namespace). Следующий пример из презентации иллюстрирует их использование.
Код в старом стиле:
Код

function MY_wrapper() {}
class MY_DB { }
define('MY_CONN_STR', '');

MY_wrapper();
new MY_DB();
MY_CONN_STR;


А вот с использованием namespace:
Код

namespace MY;
function wrapper() {}
class DB { }
const CONN_STR = '';

use MY AS MY;
wrapper();
new DB();
CONN_STR;


Другие изменения:
  •  md5() работает приблезительно на 15% быстрее
  •  Масса улучшений в движке
  •  Константы перемещены в read-only область памяти
  •  Усовершенствована обработка исключений (exceptions)
  •  Добавлена магическая константа __DIR__, хранящая в себе директорию, в которой расположен выполняющийся скрипт
  •  Добавлена возможность быстрого присваивания значения по умолчанию при помощи оператора ?: (подробнее об этом ниже)
  •  Добавлен магический метод __callStatic(), аналогичный __call, но вызываемый как статический (myclass::foo())
  •  Динамический вызов статических методов: $a = 'helper'; $b = 'foo'; $a::$b() //вызовет helper::foo()
  •  MySQLInd, ini-magic, openSSL, работа с датой, XSLT, уборка мусора, строки NOWDOC и многое другое
Теперь подроблее про оператор <b>?:</b>. Как вы знаете, существует сокращённый условный оператор "условие ? оператор1 : оператор2". В PHP6 собирались ввести краткий вариант: "условие ?: оператор1", который пригодился бы в случае, когда нам не нужен оператор2 (выполняющийся в случае ложности условия). Теперь же вы видим, что этот оператор появился в PHP5.3, но с несколько иным значением.
Пример использования:
Код

$a = true ?: false; // true
$a = false ?: true; // true
$a = "" ?: 1; // 1
$a = 0 ?: 2; // 2
$a = array() ?: array(1); // array(1);
$a = strlen("") ?: strlen("a"); // 1


Изменено поведение статических методов:
Код

class A {
    public static function whoami() {
        echo __CLASS__;
    }

    public static function identity() {
       self::whoami();
    }
}

class B extends A {
    public static function whoami() {
        echo __CLASS__;
    }
}

B::identity(); // A <-- PHP < 5.3

Код

class A {
    public static function whoami() {
        echo __CLASS__;
    }

    public static function identity() {
        static::whoami();
    }
}

class B extends A {
    public static function whoami() {
        echo __CLASS__;
    }
}

B::identity(); // B <-- >= PHP 5.3


crosspost in W-Name Blog

Это сообщение отредактировал(а) Serkys - 15.3.2008, 11:47
PM MAIL   Вверх
Vaulter
Дата 15.3.2008, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 6
Всего: 22



а что за строки NOWDOC
 smile 


--------------------
PM MAIL WWW ICQ   Вверх
Serkys
Дата 15.3.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



Цитата(Vaulter @  15.3.2008,  14:19 Найти цитируемый пост)
а что за строки NOWDOC

Код

$bar = <<<‘TWO’
this is $fubar
TWO;
/* string(16) "this is $fubar" */


PM MAIL   Вверх
vasac
Дата 15.3.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



Темы "масса улучшений" и "усовершенствована обработка" не раскрыты.
Чем NOWDOC отличается от HEREDOC?
PM WWW   Вверх
Serkys
Дата 15.3.2008, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



Цитата(vasac @  15.3.2008,  16:06 Найти цитируемый пост)
Темы "масса улучшений" и "усовершенствована обработка" не раскрыты.

Информации об этом пока мало. Про изменения в движке и обработке исключений мне ничего не удалось найти. Нашёл только сами эти фразы.

Добавлено через 3 минуты и 22 секунды
Цитата(vasac @  15.3.2008,  16:06 Найти цитируемый пост)
Чем NOWDOC отличается от HEREDOC?

NOWDOC не обрабатывает переменные/спецсимволы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0707 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.