|
Внимание! Теперь для входа на форум необходимо вводить единый пароль регистрации сервисов sibnet.ru!
Здравствуйте, гость ( Вход | Регистрация )
Сейчас обсуждают
 
| |
|
|
Разминка для мозгов., =) |
|
|
TheHett |
19.5.2011, 0:26
|
Молчун
Группа: Пользователи
Сообщений: 49
Регистрация: 27.7.2010
Пользователь №: 285 064
Репутация: 2
|
Начну. Цитата $var = 0;
switch ($var) { case 'тест': echo 'нифигасе'; break; }
|
|
|
|
TheHett |
19.5.2011, 19:10
|
Молчун
Группа: Пользователи
Сообщений: 49
Регистрация: 27.7.2010
Пользователь №: 285 064
Репутация: 2
|
Какая бага(фича)? Вроде везде он лево-ассоциативен. Какая функция будет работать быстрее? Код
function a1($param) { return count($param); }
function a1(&$param) { return count($param); }
|
|
|
|
Linky |
19.5.2011, 19:17
|
МЕГА флудер
Группа: Sibnet-club
Сообщений: 3 466
Регистрация: 31.3.2008
Из: Барнаул
Пользователь №: 27 560
Репутация: 243
|
Цитата(TheHett @ 19.5.2011, 19:10) Какая бага(фича)? Вроде везде он лево-ассоциативен.
Код echo 1 ? 1 : 1 ? 2 : 1;
PHP: 2 C, C++, Java, Perl, etc.: 1
|
|
|
|
HiSER |
19.5.2011, 19:36
|
Бородатый
Группа: Пользователи
Сообщений: 517
Регистрация: 24.9.2007
Из: Барнаул
Пользователь №: 6 410
Репутация: 37
|
Цитата(Linky @ 19.5.2011, 19:17) Код echo 1 ? 1 : 1 ? 2 : 1;
PHP: 2 C, C++, Java, Perl, etc.: 1 PHP раскладывает видимо так: Код echo (1?1:1)?2:1;
А C, C++, Java, Perl, etc.: Код echo 1?1:(1?2:1);
|
|
|
|
TheHett |
19.5.2011, 19:52
|
Молчун
Группа: Пользователи
Сообщений: 49
Регистрация: 27.7.2010
Пользователь №: 285 064
Репутация: 2
|
HiSER, я же говорю, что он лево-ассоциативен. Но это в доках все написано Цитата >Какая функция будет работать быстрее? Первая наверное, ну или одинаково, думаю там есть что-то типа копирования при записи, а раз множество не меняется, то и смысла создавать копии нету. А вот когда передают объекты по изменяемой ссылке, это обычно предполагает изменение содержимого, мб заранее копия создается. Это только мои предположения.
Наверняка в документации где-то написаны эти нюансы) Когда объекты передают по ссылке, никаких копий не создается.
|
|
|
|
Linky |
19.5.2011, 20:06
|
МЕГА флудер
Группа: Sibnet-club
Сообщений: 3 466
Регистрация: 31.3.2008
Из: Барнаул
Пользователь №: 27 560
Репутация: 243
|
Цитата(TheHett @ 19.5.2011, 19:52) HiSER, я же говорю, что он лево-ассоциативен. Но это в доках все написано Ну как видишь, из распространенных ЯП с тернарными операторами условия, только PHP ведет себя по-другому, не ясно для чего это было сделано. Цитата(TheHett @ 19.5.2011, 19:52) Когда объекты передают по ссылке, никаких копий не создается.
Я имел в виду подобные случаи: Код $array1 = array(...); $array2 = $array1; //смысла копировать значения нет
al($array1); // если по ссылке, ф-я предположительно изменит аргумент, значит сначала придется для array2 делать копию
|
|
|
|
Linky |
19.5.2011, 20:21
|
МЕГА флудер
Группа: Sibnet-club
Сообщений: 3 466
Регистрация: 31.3.2008
Из: Барнаул
Пользователь №: 27 560
Репутация: 243
|
Код $a = array(1,2,3,4,5); for($i = 0; $i < 10000000; ++$i) a1($a);
Если замерять время выполнения скрипта, для обычной передачи 3.7сек, по ссылке 7.6 сек. Цитата(HiSER @ 19.5.2011, 20:21) Первый вариант быстрее работает.
Тоже опытным путем определил?)
|
|
|
|
|
|
1 чел. просматривают этот форум (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|