Обновить
97

Пользователь

12
Подписчики
Отправить сообщение
Все равно не понял. Можете на пальцах объяснить в какой ситуации могут возникнуть проблемы конкурентного доступа, при использовании одиночки?
Можно по подробнее про конкурентный доступ? Синглтон, вроде, глобален в рамках скрипта, но не сервера.
По идее, вот это:

if (array_key_exists('HTTP_LORI_DEBUG', $_SERVER) and $_SERVER['HTTP_LORI_DEBUG'] == 'DEBUG IT, DEBUG!')

Можно заменить на:

if (getenv('HTTP_LORI_DEBUG') == 'DEBUG IT, DEBUG!')


А за статью спасибо.
— Почему Вы стали программистом?
— Не смог осилить %другая_профессия%.

Да?
Всегда использовал одинарные кавычки, не потому что они быстрее, а потому, что shift не надо нажимать.
Этого я не знал. Но это не отменяет факта, что count в теле цикла замедляет процесс.
<?php

$array = range(0, 100000);

$t1 = microtime(true);
for ($i = 0; $i < count($array); $i++) {
	$a = $array[$i];
}
$t1 = microtime(true) - $t1;
var_dump($t1);

$t1 = microtime(true);
$c = count($array);
for ($i = 0; $i < $c; $i++) {
	$a = $array[$i];
}
$t1 = microtime(true) - $t1;
var_dump($t1);

float 0.24822592735291

float 0.046469926834106
Вас это интересовало?

<?php

$iterations = 100001;
$t1 = microtime(true);
for ($i = 0; $i < $iterations; $i++) {
	$a = 1;
}
$t1 = microtime(true) - $t1;
var_dump($t1);

float 0.038902044296265
Пустой цикл? Или как?
<?php

$iterations = 100001;

$arr = array('h', 'e', 'l', 'l', 'o');
$t1 = microtime(true);
for ($i = 0; $i < $iterations; $i++) {
	$arr = reverse1($arr);
}
$t1 = microtime(true) - $t1;
var_dump($arr);
var_dump($t1);

$arr = array('h', 'e', 'l', 'l', 'o');
$t2 = microtime(true);
for ($i = 0; $i < $iterations; $i++) {
	$arr = reverse2($arr);
}
$t2 = microtime(true) - $t2;

var_dump($arr);
var_dump($t2);

function reverse1($arr) {
	for ($i = 0; $i < floor(count($arr)/2); $i++)
	{
		$tmp = $arr[$i];
		$arr[$i] = $arr[count($arr)-$i-1];
		$arr[count($arr)-$i-1] = $tmp;
	}
	return $arr;
}

function reverse2($arr) {
	$c = count($arr);
	for ($i = 0; $i < floor($c/2); $i++)
	{
		$tmp = $arr[$i];
		$arr[$i] = $arr[$c-$i-1];
		$arr[$c-$i-1] = $tmp;
	}
	return $arr;
}


Вывод:
array
  0 => string 'o' (length=1)
  1 => string 'l' (length=1)
  2 => string 'l' (length=1)
  3 => string 'e' (length=1)
  4 => string 'h' (length=1)

float 2.8682391643524

array
  0 => string 'o' (length=1)
  1 => string 'l' (length=1)
  2 => string 'l' (length=1)
  3 => string 'e' (length=1)
  4 => string 'h' (length=1)

float 1.7087500095367

На фоне Вашей книги, у многих появилась возможность блестнуть умом :)

Во втором издании код отформатируйте, пожалуйста, а еще лучше — подсветите.
Я не говорил, что арифметика — гуд. Count в глаза бросился, да и все.
Три count в цикле — не есть гуд.
Существует ли универсальная защита от SQL-инъекций?
Про Prepared statements ни слова, зато есть strip_tags. О_о.
А почему у Вас на первой схеме в одной таблице officeCode — VARCHAR, а в другой — INT?

И подскажите, в чем схемы рисовали?
Такое «одурачивание», конечно, лишним не будет. Но оно должно быть последним (по приоритетам) приемом в обеспечении безопасности Вашего сервера. Иначе Ваш совет выглядит как: «носите свитер похожий на бронежилет и Вас, возможно, не застрелят».
Интересно, этот товарищ то, сам себя к какой категории причисляет?

Информация

В рейтинге
Не участвует
Откуда
Украина
Дата рождения
Зарегистрирован
Активность