- 1
- 2
float floor ( float $value )
Возврашает ближайшее целое число, округляя value в меньшую сторону.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 99
+157
float floor ( float $value )
Возврашает ближайшее целое число, округляя value в меньшую сторону.
> float
> Возврашает ближайшее целое число
> Возвращаемое значение функции floor() по прежнему типа float потому что диапазон значений float обычно больше, чем у integer.
когда мне айдешка подсветила, что я в качестве ключа массива подставляю что-то не то, я начал прихуевать
http://php.net/manual/ru/function.floor.php
+66
Компиляторами являются:
1. С++
2. Паскаль
3. Ассемблер
4. Unix
Какой-то жопоразрывающий тест по с++ из ивановской области
http://hashcode.ru/questions/398214/
+158
// classes.php
return [
'yii\base\Action' => YII2_PATH . '/base/Action.php',
'yii\base\ActionEvent' => YII2_PATH . '/base/ActionEvent.php',
'yii\base\ActionFilter' => YII2_PATH . '/base/ActionFilter.php',
// еще порядка трех сотен классов
];
https://github.com/yiisoft/yii2/blob/d2b864da84a68d56a96709479af78d203f050451/framework/classes.php
осень 2014, использующий composer модный фреймворк, "requires PHP 5.4 and embraces the best practices and protocols found in modern Web application development", и, конечно, ебаный стыд.
+157
<?php
// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require(__DIR__ . '/../vendor/autoload.php'); // загружаем автозагрузчик
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); // DISREGARD THIS, загружаем вручную
$config = require(__DIR__ . '/../config/web.php');
(new yii\web\Application($config))->run();
Входной скрипт Yii 2. Эта штука требует небольшого пояснения.
Дело в том, что использовать константу YII_ENV для разработчиков оказалось некошерно, поэтому используются булевы константы YII_ENV_DEV, YII_ENV_PROD, YII_ENV_TEST, которые вычисляются в файле класса BaseYii (на всякий уточню - да, в файле с объявлением класса первым делом высчитываются глобальные константы).
Так как понятие декларативной конфигурации тоже не очень близко этому фреймворку, эти константы используются прямо в конфигурационном php-файле. То есть, файл Yii.php обязан быть подгружен до того, как будут подгружены конфиги. А даже если сделать конфиг без использования этих констант или объявить их заранее, то последними строками Yii.php (после объявления класса) идет подключение автозагрузчика (да-да, в файле, который тоже служит для объявления класса), без которого почему-то никак (в composer-based проекте, ага). Ну, то есть без ручного подключения файла в этом фреймворке всё-таки вообще никак.
Я не понимаю, как можно было умудриться идти практически по всем современным стандартам и опять проебать всё.
+164
function maybe_unserialize( $original ) {
if ( is_serialized( $original ) ) // don't attempt to unserialize data that wasn't serialized going in
return @unserialize( $original );
return $original;
}
Wordpress <3
is_serialized тоже блещет
https://core.trac.wordpress.org/browser/tags/4.1/src/wp-includes/functions.php#L265
+162
class StupidClass
{
public function __toString()
{
return 'this';
}
public function hax()
{
return $this === $$$$$$this;
}
}
var_dump((new StupidClass)->hax()); // true
Уииии
+159
$name=$modelName.'['.str_replace(']','][',trim(strtr($attribute,array(']['=>']','['=>']')),']')).']';
Один там фреймворк
+156
foreach($this->_logs as $log)
{
if($log[1]!==CLogger::LEVEL_PROFILE)
continue;
list($message,$level,$category,$timestamp)=$log;
if(!strncasecmp($message,'begin:',6))
{
$log[0]=substr($message,6);
$stack[]=$log;
}
elseif(!strncasecmp($message,'end:',4))
{
$token=substr($message,4);
if(($last=array_pop($stack))!==null && $last[0]===$token)
{
$delta=$log[3]-$last[3];
$this->_timings[]=array($message,$category,$delta);
}
else
throw new CException(Yii::t('yii','CProfileLogRoute found a mismatching code block "{token}". Make sure the calls to Yii::beginProfile() and Yii::endProfile() be properly nested.',
array('{token}'=>$token)));
}
}
Yii 1, реализация профайлинга через лог (ну потому что есть же лог, зачем еще сущности плодить, классы же долго грузятся, а у нас самый лайтвейт фреймворк). Чтобы уж точно наверняка, код дублируется в CProfileLogRoute.
https://github.com/yiisoft/yii/blob/11c3010a82ce2c25332baacce568ff89e451896a/framework/logging/CLogger.php#L294
https://github.com/yiisoft/yii/blob/11c3010a82ce2c25332baacce568ff89e451896a/framework/logging/CProfileLogRoute.php#L137
+159
public function asSize($value, $decimals = null, $options = [], $textOptions = [])
{
if ($value === null) {
return $this->nullDisplay;
}
list($params, $position) = $this->formatSizeNumber($value, $decimals, $options, $textOptions);
if ($this->sizeFormatBase == 1024) {
switch ($position) {
case 0: return Yii::t('yii', '{nFormatted} {n, plural, =1{byte} other{bytes}}', $params, $this->locale);
case 1: return Yii::t('yii', '{nFormatted} {n, plural, =1{kibibyte} other{kibibytes}}', $params, $this->locale);
case 2: return Yii::t('yii', '{nFormatted} {n, plural, =1{mebibyte} other{mebibytes}}', $params, $this->locale);
case 3: return Yii::t('yii', '{nFormatted} {n, plural, =1{gibibyte} other{gibibytes}}', $params, $this->locale);
case 4: return Yii::t('yii', '{nFormatted} {n, plural, =1{tebibyte} other{tebibytes}}', $params, $this->locale);
default: return Yii::t('yii', '{nFormatted} {n, plural, =1{pebibyte} other{pebibytes}}', $params, $this->locale);
}
} else {
switch ($position) {
case 0: return Yii::t('yii', '{nFormatted} {n, plural, =1{byte} other{bytes}}', $params, $this->locale);
case 1: return Yii::t('yii', '{nFormatted} {n, plural, =1{kilobyte} other{kilobytes}}', $params, $this->locale);
case 2: return Yii::t('yii', '{nFormatted} {n, plural, =1{megabyte} other{megabytes}}', $params, $this->locale);
case 3: return Yii::t('yii', '{nFormatted} {n, plural, =1{gigabyte} other{gigabytes}}', $params, $this->locale);
case 4: return Yii::t('yii', '{nFormatted} {n, plural, =1{terabyte} other{terabytes}}', $params, $this->locale);
default: return Yii::t('yii', '{nFormatted} {n, plural, =1{petabyte} other{petabytes}}', $params, $this->locale);
}
}
}
Yii продолжает свой крестовый поход против логики. Вам нужно немного другое форматирование, получить именно килобайты вместо кибибайтов? Выставьте какую-то ссаную внутреннюю переменную в значение, отличное от 1024. Да, двойка подойдет, не ссы, ставь.
+156
// Real itemid is "contained" in public itemid in a bit tricky way. The formula is:
public_itemid = itemid * 256 + anum
// Quite easy, isn't it? Except where to get that anum. anum is some number assigned when you create a new post in LJ.
// But in fact, you don't need it. Because it is always less than 256, we can avoid searching for it, and just use simple Math to find itemid.
$anum = $public_itemid - floor($public_itemid / 256) * 256;
$itemid = ($public_itemid - $anum) / 256;
Прекрасный подход, то место, где вордпресс и ЖЖ сошлись воедино.
http://drumrock.skipitnow.org/livejournal-tools/itemid/