Pull to refresh
89
0
Хайрулин Василий@Sirian

Разработчик

Send message
Заметьте что на 1килобайт больше получилось при использовании & ;)

Еще раз говорю — либо приведите конкретный контрпример, либо изучайте теорию
Не имеет значения. Объекты в php5 передаются по ссылке. Пусть хоть 100мб весит объект — в php5 не создается копия объекта без явного вызова clone
кроме того, при включенном E_STRICT вы увидите ошибку
Strict Standards: Only variables should be assigned by reference
пример подойдет?
ini_set('error_reporting', E_ALL & ~E_STRICT);

class A {
    protected $arr;
    public function __construct() {
        $this->arr = str_repeat('abc', 1000);
    }
}

$instance = new A();

function get_instance() {
    global $instance;
    return $instance;
}

function foo() {
    $mem = memory_get_usage();
    $arr = array();
    for ($i = 0; $i < 1000; $i++) {
        $arr[$i] = get_instance();
    }
    echo memory_get_usage() - $mem, "\n";
}

function bar() {
    $mem = memory_get_usage();
    $arr = array();
    for ($i = 0; $i < 1000; $i++) {
        $arr[$i] =& get_instance();
    }
    echo memory_get_usage() - $mem, "\n";
}

foo();
bar();


результат:
144488
145088
1. Что вы подразумеваете под процедурным окружением?
2. Приведите простой php код, который покажет разницу в использовании памяти между =& и = при работе с объектами

п.с. я не придираюсь — просто хочу понять, кто из нас заблуждается
Приведите пример, где создается копия объекта, без явного вызова clone
а то что объекты и так передаются по ссылкам в php5 вас не смущает?
для стандартных типов еще можно было бы так экономить (и то, только если этот $CI где то изменяется в дальнейшем, т.к. в php используется copy-on-write
Не работаю с CodeIgniter, но по приведенному коду:

1. не проще ли в set_related сделать приведение дата к массиву в самом начале и избавиться от дублирования кода?
чтобы получилось что-то вроде (форматирование кода свое использую, т.к. запись компактнее получается и на мой взгляд так читабельнее, чем когда каждая фигурная скобка на новой строке)
function set_related($data, $key = 'uid')
{
    if (!$data) {
        return;
    }
    
    $data = (array)$data;

    if (isset($data[$key])) {
        $this->list[$data[$key]] = false;
        return;
    }
    
    foreach ($data as $row) {
        if (is_object($row)) {
            if (isset($row->$key)) {
                $this->list[$row->$key] = false;
            }
        } elseif (is_array($row)) {
            if (isset($row[$key])) {
                $this->list[$row[$key]] = false;
            }
        } elseif (is_numeric($row)) {
            $this->list[$row] = false;
        }
    }
}


2. $CI =& get_instance(); вы работаете с php4?
пойду-ка спать лягу после такого кода:

if(date.length == 3 && parseInt(date[0]) == date[0] && date[0] <= 31 && parseInt(date[1]) == date[1] && date[1] <= 12 && parseInt(date[2]) == date[2] && date[2] >= year){return val;}
passport имеет собственный middleware passport.session, который работает поверх обычной сессии. Отлично работает с express 3
можно хранить сессию авторизации в memcache, например
Для авторизации использую passportjs.org/
а ведь тонны newbie программистов наткнутся на эту статью и именно так и будут писать. печально
Каков процент таких людей щас в %? Если отключили js — значит сами себя лишили функционала.
А что если люди сидят с ie 3.0?
Какая версия socket.io у вас? мы используем в одном проекте socket.io

статистика такова (с одного из 4 процессов):
uptime: 10d 13h 16m 36s
total_connections: 2839628
current_connections: 1848
mem_rss: 297054208
mem_heapTotal: 273860152
mem_heapUsed: 210912408

использование памяти при этом не растет в течение 10 дней
Фреймворков этих наплодилась тьма. Выбрать нужный поможет взгляд на решение одной и той же задачи на каждом из фреймворков. Например, тут: addyosmani.github.com/todomvc/ реализация TODO приложения
Пока что никак, но если не ошибаюсь — там достаточно иметь копию бд и репозиториев
буквально на днях ставил gitlab — доволен. Довольно быстро и просто

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity