- 1
if('null'==$this->user_data['e_mail']) $this->user_data['e_mail']=null;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+149
if('null'==$this->user_data['e_mail']) $this->user_data['e_mail']=null;
+148
Class FactoryAchievesController {
public static function factory($type)
{
try {
if ($type) {
$classname = ucfirst(strtolower($type)).'AchievesController';
if (require_once 'class.achieves.'.$type . '.php') {
return new $classname;
} else {
throw new Exception('Class '.$classname.' not found');
}
} else {
throw new Exception('Achieves type not defined');
}
} catch (Exception $exc) {
// LOG
//echo $exc->getTraceAsString();
}
}
}
Свой классный автолоад с фаталами
+3
typedef std::vector/*deque recommended*/<index_history_item> index_history;
Как понимать этот комментарий?
+148
$type = isset($config['type']) ? $config['type'] : 'default';
switch($type) {
default:
$blockClass = 'adminhtml/widget_grid_massaction_item_additional_default';
break;
}
Magento core
+88
program Project6;
{$APPTYPE CONSOLE}
uses SysUtils;
type TIntArr = array of integer;
function GetSingleArr (i: integer): TIntArr;
begin
SetLength(Result, 1);
Result[0] := i;
end;
var
W: TIntArr;
i : integer;
begin
readln(i);
if i=0 then begin
W := GetSingleArr(5);
WriteLn(W[0]);
end;
ReadLn;
end.
Delphi-7
[Warning] Project6.dpr(25): Variable 'W' might not have been initialized
Да какого хуя? Динмассив вообще по определению - чисто автоматический тип, как он может не инициализироваться?
И почему для других типов такая хрень не вылазит?
+138
uint32_t multiply (uint16_t a, uint16_t b)
{
return ((a & ( (int16_t)( ( b & (1 << 0) ) << 15 ) ) / ( 1 << 15) ) << 0 ) +
((a & ( (int16_t)( ( b & (1 << 1) ) << 14 ) ) / ( 1 << 15) ) << 1 ) +
((a & ( (int16_t)( ( b & (1 << 2) ) << 13 ) ) / ( 1 << 15) ) << 2 ) +
((a & ( (int16_t)( ( b & (1 << 3) ) << 12 ) ) / ( 1 << 15) ) << 3 ) +
((a & ( (int16_t)( ( b & (1 << 4) ) << 11 ) ) / ( 1 << 15) ) << 4 ) +
((a & ( (int16_t)( ( b & (1 << 5) ) << 10 ) ) / ( 1 << 15) ) << 5 ) +
((a & ( (int16_t)( ( b & (1 << 6) ) << 9 ) ) / ( 1 << 15) ) << 6 ) +
((a & ( (int16_t)( ( b & (1 << 7) ) << 8 ) ) / ( 1 << 15) ) << 7 ) +
((a & ( (int16_t)( ( b & (1 << 8) ) << 7 ) ) / ( 1 << 15) ) << 8 ) +
((a & ( (int16_t)( ( b & (1 << 9) ) << 6 ) ) / ( 1 << 15) ) << 9 ) +
((a & ( (int16_t)( ( b & (1 <<10) ) << 5 ) ) / ( 1 << 15) ) << 10) +
((a & ( (int16_t)( ( b & (1 <<11) ) << 4 ) ) / ( 1 << 15) ) << 11) +
((a & ( (int16_t)( ( b & (1 <<12) ) << 3 ) ) / ( 1 << 15) ) << 12) +
((a & ( (int16_t)( ( b & (1 <<13) ) << 2 ) ) / ( 1 << 15) ) << 13) +
((a & ( (int16_t)( ( b & (1 <<14) ) << 1 ) ) / ( 1 << 15) ) << 14) +
((a & ( (int16_t)( ( b & (1 <<15) ) << 0 ) ) / ( 1 << 15) ) << 15);
}
Умножение двух чисел через битовые маски и сдвиги без условных переходов. Компилятор переведет деление инта на сдвинутую единчку в арифметический сдвиг
Использование ">>" применительно к signed типам - implementation defined http://stackoverflow.com/questions/4009885/arithmetic-bit-shift-on-a-signed-integer/4009922
+125
var colorInfoList = new List<ColorInfo>()
{
new ColorInfo("#000000", " black", " Черный"),
new ColorInfo("#000080"," navy"," Темно-синий"),
new ColorInfo("#00008B"," darkblue"," Темно-голубой"),
new ColorInfo("#0000CD"," mediumblue"," Умеренно-голубой"),
new ColorInfo("#0000FF"," blue ","Голубой"),
new ColorInfo("#006400"," darkgreen"," Темно-зеленый"),
new ColorInfo("#008000"," green"," Зеленый"),
new ColorInfo("#008080"," teal"," Чайный"),
new ColorInfo("#008B8B"," darkcyan"," Темный циан"),
new ColorInfo("#00BFFF"," deepskyblue"," Темный небесно-синий"),
new ColorInfo("#00CED1","darkturquoise ","Темно-бирюзовый"),
new ColorInfo("#00FA9A"," mediumspringgreen"," Умеренный синевато-серый"),
new ColorInfo("#00FF00"," lime"," Известковый"),
new ColorInfo("#00FFFF"," aqua"," Синий"),
new ColorInfo("#2E8B57"," seagreen"," Морской волны"),
new ColorInfo("#32CD32"," limegreen"," Зеленовато-известковый"),
new ColorInfo("#4B0082"," indigo"," Индиго"),
new ColorInfo("#696969"," dimgray"," Тускло-серый"),
new ColorInfo("#7CFC00"," lawngreen"," Зеленой травы"),
new ColorInfo("#7FFFD4"," aquamarine"," Аквамарин"),
new ColorInfo("#800000"," maroon"," Оранжево-розовый"),
new ColorInfo("#808080"," gray"," Серый"),
new ColorInfo("#8B0000"," darkred"," Темно-красный"),
new ColorInfo("#9ACD32"," yellowgreen"," Желто-зеленый"),
new ColorInfo("#A52A2A"," brown"," Коричневый")
};
public ColorInfo ColorCheck(List<ColorInfo> list, string colorHex)
{
for (int i = 0; i < list.Count-1; i++)
{
if (String.Compare(list[i].HexInfo, colorHex, StringComparison.Ordinal) <= 0 && String.Compare(list[i + 1].HexInfo, colorHex, StringComparison.Ordinal)>=0)
return list[i+1];
}
return new ColorInfo();
}
Определение названия цвета
+121
/// Разрезать строку на части длиной не более maxRecordLen
private static void splitText(ref List<string> splitTextArray, string text) {
splitTextArray = new List<string>();
for (; ; ) {
try {
string str = text.Substring(0, maxRecordLen);
splitTextArray.Add(str);
try {
text = text.Substring(maxRecordLen);
}
catch (Exception) {
break;
}
}
catch (Exception) {
splitTextArray.Add(text);
break;
}
}
}
no comment.
+132
ТОП ТРАЛ КАРОЧ ЕДИТ АТДЫХАТЬ НА МОРЕ БУДУ ТАМ АКУЛ И МИДУЗ ТРАЛИРАВАТЬ))00 ОСЕНЬЮ ВЕРНУСЬ КАРОЧ))00 НЕ СКУЧАЙТИ ЛАЛКИ
ТОП ТРАЛ КАРОЧ ЕДИТ АТДЫХАТЬ НА МОРЕ БУДУ ТАМ АКУЛ И МИДУЗ ТРАЛИРАВАТЬ))00 ОСЕНЬЮ ВЕРНУСЬ КАРОЧ))00 НЕ СКУЧАЙТИ ЛАЛКИ
+149
if (!class_exists($module, false))
{
// Get content from php file
$filepath = _PS_MODULE_DIR_.$module.'/'.$module.'.php';
$file = trim(file_get_contents(_PS_MODULE_DIR_.$module.'/'.$module.'.php'));
if (substr($file, 0, 5) == '<?php')
$file = substr($file, 5);
if (substr($file, -2) == '?>')
$file = substr($file, 0, -2);
// If (false) is a trick to not load the class with "eval".
// This way require_once will works correctly
if (eval('if (false){ '.$file.' }') !== false)
require_once( _PS_MODULE_DIR_.$module.'/'.$module.'.php' );
else
$errors[] = sprintf(Tools::displayError('%1$s (parse error in %2$s)'), $module, substr($filepath, strlen(_PS_ROOT_DIR_)));
}
Это оригинал кода из знаменитого Prestashop ...
Попросили написать модуль. Долго мучался, почему валидный код не работает. Потом нашел.
Смысл логики в строках 13-17 : мы не хотим принимать файлы модулей с eval функцией.
Поэтому мы сначала проверяем, есть ли eval в файле.
Как проверяем?
А давайте его просто выполним!
Если выполнится - тогда - require_once
В общем я О....ЕЛ! Других слов просто нет.
Мало того, так еще нужно следить, чтобы ваш файл модуля был валидным для eval функции.
Иначе - Parse error: syntax error ...