$cities = array('London', 'NY', 'LE', 'Rome');
function wrapRow( $row) { return '<div>' . join(", ", $row) . '</div>'; }
$rows = array_chunk( $cities, 3);
$html = join( array_map("wrapRow", $rows));
var_dump($html); // "<div>London, NY, LE</div><div>Rome</div>"
С прошлой недели статус Online стал работать точнее: теперь он отключается уже через пять минут после выхода пользователя из аккаунта вместо прежних пятнадцати. Из-за этих изменений перестал работать так называемый режим “невидимки” — баг, который позволял сидеть ВКонтакте, оставаясь как бы не в сети.
Некоторые пользователи оказались этим очень недовольны. Однако нужно понимать, что этот режим сам по себе противоречит духу ВКонтакте. Социальные сети предназначены в первую очередь для общения, а для этого нужно знать, когда ваш собеседник в сети, а когда — нет. Конечно, бывают ситуации, когда действительно нужно скрыть своё пребывание на сайте. Но чаще всего люди пользовались этой возможностью, просто потому что могли — без какой-либо объективной причины.
$client = new \GuzzleHttp\Client;
$resource = fopen( $tmpfile, 'r');
$response = $client->request(
'POST',
$upload_url,
[
'multipart' => [
[
'name' => 'file',
'contents' => $resource
]
]
]
);
$uploadResult = json_decode( $response->getBody());
var lastGood = this.currentClient.jsondata, candidate, counter = 0, found = false;
while ( ++counter < 100) {
try {
candidate = JSON.parse(boo);
} catch(e) {
this.currentClient.jsondata = lastGood;
found = true;
}
if( found) break;
lastGood = candidate;
}
candidate
. Ограничить максимальное число итераций счётчиком. Ловить исключение. <?php
$search = filter_input( INPUT_GET, "search", FILTER_SANITIZE_STRING);
if( !empty($search)) {
echo $search;
echo "Yes";
} else {
echo "No";
}
Л: Пс Бд
П: Лс Бд
Б: Лс Пе
Л-П
связаны через Бд
, а П-Б
через Лс
, остаётся пара Л-Б
– кто-то из них оба раза правда, другой оба раза ложь.!Лс
.П: !Лс Бд
Лс
было ложным, надо так же сделать ложными утверждения Б. Значит, Б оба раза соврал, а Л оба раза сказал правду:Л: Пс Бд
П: !Лс Бд
Б: !Лс !Пе
Л П Б Пс Бд Лс Бд Лс Пе
0 1 2 0 0 1 1 0 1 конфликт Бд и Лс
0 2 1 0 0 0 1 1 1 конфликт Бд и Лс
1 0 2 1 1 0 0 0 1 конфликт Бд
2 0 1 0 1 0 0 1 1 конфликт Бд и Лс
1 2 0 1 1 0 1 0 0 ОК
2 1 0 0 1 1 1 0 0 конфликт Лс
y = 100 - 100 * sqrt( x / N)
(N – время, когда результат становится нулём)y = 100 - 100 * sqrt( x / 176000)
y = 100 - 30 ln( 1 + x / 10000)
var canvas = document.getElementById("myCanvas")
, ctx = canvas.getContext("2d")
, r
;
ctx.translate( 500/2, 500/2); // передвинуться на центр листа
ctx.font = "14px Arial";
ctx.textAlign = "center";
ctx.textBaseline="middle";
ctx.fillStyle = "#999";
for(r=100;r<=500;r+=20) circle(r);
function circle(r) {
var dist = 16
, n = Math.round( 2 * Math.PI * r / dist)
, i
;
for(i=0;i<n;i++) {
ctx.rotate( 2 * Math.PI / n); // повернуть лист
ctx.fillText( Math.round(100*Math.random())%2?0:1,0,-r);
}
}
function getPostScore(time) {
var diff = Math.floor((new Date()).getTime()/1000) - time;
if( diff <= 3600) return 50000;
else if( diff <= 7200) return 25000;
else if( diff <= 10800) return 10000;
else return 0;
}
getPostScore(1493487180); // 10000
y = k / x
k = 50000 * 3600
она удачно захватывает и вторую точку. Но плоха тем, что ближе к нулю зашкаливает в +бесконечность.function getPostSigma(time){
var diff = Math.floor((new Date()).getTime()/1000) - time;
return Math.round( 10000 + 40000 / (1 + Math.exp((diff-6800)/700)));
}
getPostSigma(1493531780); // 49998
getPostSigma(1493522780); // 11545
options
, которым даёте значение в начале, и options
внутри функции – это две разные штуки. Разберитесь с «областью видимости» переменных в JavaScript. Внутри функции как бы объявляется собственная версия переменной options
, значение которой передаётся в функцию при её вызове.opts
– и всё встанет на свои места: options = {
width: 10,
height: 20,
contents: 'some text'
};
function show(opts) {
var width = opts.width || "";
var height = opts.height || "";
var contents = opts.contents || "Предупреждение";
return width + height + contents;
}
console.log(show( options)); // 30some text
options.contents = 'Другой текст';
console.log(show( options)); // 30Другой текст
'' + width + height + contents