Сравнение операторов цикла в php. for, foreach, while

Возник вопрос так что и для чего быстрее?
Основное условие, внутри цикла мне нужны как минимум данные из массива (а в идеале и ключи). Ну а иначе зачем все это?)
Массивы сравнивать буду и простые и ассоциативные.
Еще немного замеров производительности php:

for index 1.109834 1.103003 1.110362 1.120629 1.118269
foreach index 1.008174 1.021726 1.01595 1.010898 1.019273
foreach associative 0.804827 0.817912 0.80566 0.808925 0.817243
while index 1.124363 1.116052 1.097193 1.09982 1.099255
while associative (each) 6.152321 6.020413 6.013906 6.052263 6.018419
while associative (array_shift) 0.02278 0.018774 0.019692 0.019087 0.018805

код под катом

› Читать полностью

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong

Читай с RSS. Не пропусти интересное)

Теги:

just2d — заявленные возможности

just2d

just2d

На текущий момент выведены такие минимальные возможности:

Заявленные возможности:

Engine.Task – управление сценами:

  1. Engine.Task.AddScene(key, obj) – добавляем объект на сцену
  2. Engine.Task.getScene(key) – возвращает объект сцены
  3. Engine.Task.PlayScene(key) – воспроизводит сцену
  4. Engine.Task.RemoveScene(key) – удалить сцену

new SceneControl(key, w, h, padding) – объект сцены

  1. SceneControl.key — ключ
  2. SceneControl.width – ширина сцены
  3. SceneControl.height – высота сцены
  4. SceneControl.padding – отступы в Vec2

Объекты — управление:

  1. SceneControl.ObjectAdd(key, obj) – добавляем игровой объект
  2. SceneControl.getObject(key) – получаем объект
  3. SceneControl.RemoveObject(key) – удаляем объект

new GameObject(key, position, w, h)

  1. GameObject.key – ключ (необязательно, сгенерирует псевдослучайное имя)
  2. GameObject.width – ширина сцены (1 – по умолчанию)
  3. GameObject.height – высота сцены (1 – по умолчанию)
  4. GameObject.position – отступы в Vec2
  5. GameObject.enable – включено (true – по умолчанию)
  6. GameObject.visible — видимость (true – по умолчанию)
  7. GameObject.collision – столкновения (true – по умолчанию)
  8. GameObject.gravitation – гравитация (Vec(0,1) – по умолчанию)
  9. GameObject.addVector(vec) – основной механизм воздействия на объект
  10. GameObject.rotate(c) – поворот спрайта (находится под вопросом)

GameObject.Event

  1. Event.Click()
  2. Event.DblClick()
  3. Event.Click()
  4. Event.Hover()
  5. Event.Collision(obj) obj – объект столкновения
  6. Event.Destroy() – уничтожение объекта
  7. Event.Init() – вызывается при создании
  8. Event.Render() – вызывается при отрисовке

SpriteControl(code, position, w, h)

  1. SpriteControl.code – код ресурса
  2. SpriteControl.base = { position, w, h} – позиция на спрайт листе
  3. SpriteControl.scene = { position, w, h } – позиция на сцене
  4. SpriteControl.width — ширина
  5. SpriteControl.height — высота
  6. SpriteControl.padding – отступы на спрайте
  7. SpriteControl.speed — скорость
  8. SpriteControl.frame(num, position) num – номер кадра, position – (необязательно) позиции отрисовки
  9. SpriteControl.anim(start, stop, speed, position)
  • Start – (необязательно) стартовый фрейм
  • Stop – (необязательно) конечный фрейм
  • Speed – (необязательно) скорость
  • Position — (необязательно) позиции отрисовки

Vec2

  1. Vec2.scalar(scalar)
  2. Vec2.vector(vec2)
  3. Vec2.summ(vec2)
  4. Vec2.speed()
  5. Vec2.distant(vec2)
Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong

Читай с RSS. Не пропусти интересное)

Теги: ,

Суббота, 22 Дек 2012 gamedev, JS, just2d Комментариев нет

just2d — прототип игры match3

match3
Под катом прототип кода для игры match3
Жду предложений, улучшений, комментариев)
смотрим на гетхабе, тут ужасная подсветка кода
https://github.com/DrNemo/just2d/blob/master/proto_match3_alfa.1/start.js

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong

Читай с RSS. Не пропусти интересное)

Теги: ,

Суббота, 22 Дек 2012 gamedev, JS, just2d Комментариев нет

just2d — version 0.0.1 прототип кода игры

just2d

just2d


Пробный план кода игры
github
› Читать полностью

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong

Читай с RSS. Не пропусти интересное)

Суббота, 22 Дек 2012 gamedev, JS, just2d Комментариев нет

just2d — идея

just2d

just2d

Привет блог, последнее время я довольно сильно увлекся геймдевом, а именно создание игр, возникла у меня идея написать свой движок, но с несколькими ключевыми особенностями.
Это ключевые особенности проекта, выделяющие его среди конкурентов. На нем будет удобно создавать игры!
Как это будет происходить, сначала будет написан код «идеально удобной» игры, а потом под него будут подогнаны элементы движка.
Проект не коммерческий и свободно распространяется, при использование обязательна ссылка на проект. Выпускается будет под логотипом Antz-game.
Код опубликован на github https://github.com/DrNemo/just2d , комментарии приветствую.

код прототипа будет опубликован чуть позже.

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong

Читай с RSS. Не пропусти интересное)

Теги: ,

Пятница, 21 Дек 2012 JS, just2d Комментариев нет

switch case VS if else

Итак, возник у меня вопрос что же все таки быстрее, switch или конструкция if else?
5 минут кодинга и вот некоторые цифры для сравнения:

switch 3.147996 3.113689 3.116502 3.115892 3.119391
if else 2.820326 2.837965 2.835696 2.819744 2.822116

Думаю из них все понятно, ну и под конец код сравнения.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$t1 = microtime(true);
for($i=0;$i<999999;$i++){
    $r = rand(1,5);
    //*
    if($r=1)$z=1000*1000;
    else if($r=2)$z=1000*1000;
    else if($r=3)$z=1000*1000;
    else if($r=4)$z=1000*1000;
    else if($r=5)$z=1000*1000;
    /**/
    /*
    switch ($r) {
        case 1:$t3 += $z=1000*1000;break;
        case 2:$t3 += $z=1000*1000;break;
        case 3:$t3 += $z=1000*1000;break;
        case 4:$t3 += $z=1000*1000;break;      
        case 5:$t3 += $z=1000*1000;break;
    }
    /**/

}
echo round(microtime(true)-$t1, 6);

при тесте switch, if else коментился ну и наоборот)

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong

Читай с RSS. Не пропусти интересное)

Понедельник, 16 Июл 2012 PHP, Веб-мастеру Комментариев нет

Отправка почты через SMTP сервер

Отправка почты через SMTP сервер

Отправка почты через SMTP сервер

И так, я снова с вами)

Недавно была запись о получение почты с сервера. Сегодня разберем механизм отправки.

› Читать полностью

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong

Читай с RSS. Не пропусти интересное)

Теги: ,

Среда, 11 мая 2011 PHP Комментариев нет

Отношения заказчик-исполнитель в виде бытовых сценок

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong

Читай с RSS. Не пропусти интересное)

Работа с почтой средствами PHP

Работа с почтой средствами PHP


Часть первая.
Мы не будем разбирать как работать с функцией mail)
Сегодня разберем синтаксис pop протокола и как получить информацию о письмах на почтовом сервере.
› Читать полностью

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong

Читай с RSS. Не пропусти интересное)

Теги: ,

Вторник, 02 Мар 2010 PHP 5 комментариев

Анти-спам по новому

Анти-спам по новому

На текущий момент нет ни одного 100% способа защиты от спама на форумах.

Единственный способ, это комбинация, т.е. капча + проверка мыла + … и.д. › Читать полностью

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong

Читай с RSS. Не пропусти интересное)

Теги:

Читать в Яндекс.Ленте
регистрация доменов
Зарегистрируй себе домен!
.RU - 99 рублей в год
www.
Блогун - реклама в блогах. Хостинг для блогов

Поиск