За последние 24 часа нас посетили 17987 программистов и 1654 робота. Сейчас ищут 1499 программистов ...

Object-oriented PHP

Тема в разделе "Решения, алгоритмы", создана пользователем TheShock, 23 июл 2009.

  1. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. <?php
    2. class A {
    3.     private $b;
    4.  
    5.     public function __construct($b) {
    6.         $this->b = $b;
    7.     }
    8. }
    9.  
    10. $objects = array();
    11.  
    12. for ($i = 1; $i < 10; $i++) {
    13.     $objects[] = new A($i);
    14. }
    15.  
    16. $object1 = new A(3);
    17. $object2 = new A(11);
    18.  
    19. var_dump(in_array($object1, $objects));
    20. var_dump(in_array($object2, $objects));
    Код (Text):
    1. bool(true)
    2. bool(false)
    PHP:
    1. <?php
    2. class A {
    3.     private $b;
    4.  
    5.     public function __construct($b) {
    6.         $this->b = $b;
    7.     }
    8. }
    9.  
    10. $objects = array();
    11.  
    12. for ($i = 1; $i < 10; $i++) {
    13.     $objects[] = new A($i);
    14. }
    15.  
    16. $object1 = new A(3);
    17. $object2 = new A(11);
    18.  
    19. var_dump(in_array($object1, $objects, true));
    20. var_dump(in_array($object2, $objects, true));
    Код (Text):
    1. bool(false)
    2. bool(false)
     
  2. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Меня не устраивает, чтобы был похожий объект. Мне нужно, чтобы был именно тот же, то есть с true

    Если у тебя версия php меньше, чем 5.3 (например, 5.2 или 5.1), проверь вот что и укажи , пожалуйста, версию.

    PHP:
    1. <?php
    2. class A {
    3.     private $b;
    4.  
    5.     public function __construct($b) {
    6.         $this->b = $b;
    7.     }
    8. }
    9.  
    10. $objects = array();
    11. $object0 = new A(15);
    12.  
    13. for ($i = 1; $i < 10; $i++) {
    14.     $objects[] = new A($i);
    15. }
    16. $objects[] = $object0;
    17.  
    18. $object1 = new A(3);
    19. $object2 = new A(11);
    20.  
    21. var_dump(in_array($object0, $objects));
    22. var_dump(in_array($object1, $objects));
    23. var_dump(in_array($object2, $objects));
    24.  
    25. echo "\n";
    26.  
    27. var_dump(in_array($object0, $objects, true));
    28. var_dump(in_array($object1, $objects, true));
    29. var_dump(in_array($object2, $objects, true));
    30.  
    31. echo "\n";
    32.  
    33. var_dump(in_array(&$object0, $objects, true));
     
  3. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Код (Text):
    1. bool(true)
    2. bool(true)
    3. bool(false)
    4.  
    5. bool(true)
    6. bool(false)
    7. bool(false)
    8.  
    9. bool(true)
    php 5.2.5
     
  4. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Sergey89, ок спасибо. Если у кого-то зациклится dump(), то я скажу, что "Sergey89 виноват".
     
  5. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    В каком-то реальном проекте заюзал его?
     
  6. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    пока не было возможности. но планирую :) мне тут обещали написать расширение на Си для него...
     
  7. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Да, интересная вещь)))

    Кстати. Версия "stable"?
    Использовать можно?
     
  8. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    admyx, версия "very unstable", но использовать можно :)
    я щас рефакторю потихоньку её. интерфейсы почти не поменяются...
     
  9. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Хреново. Тогда пока не буду..
    Неохота каждый раз перезаливать файлы в проектах.)))
    Как будет stable, маякни тогда плиз, ок?
     
  10. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Выпущена версия 0.0.2.0, код на 85% покрыт тестами, более-менее стабилизировались интерфейсы, но возможны легкие изменения. Теперь код выложен не архивом, а православно ­­— в репозитарии. Версия все-еще альфа.

    Сообщение на Хабрахабре