Л: Пс Бд
П: Лс Бд
Б: Лс Пе
Л-П
связаны через Бд
, а П-Б
через Лс
, остаётся пара Л-Б
– кто-то из них оба раза правда, другой оба раза ложь.!Лс
.П: !Лс Бд
Лс
было ложным, надо так же сделать ложными утверждения Б. Значит, Б оба раза соврал, а Л оба раза сказал правду:Л: Пс Бд
П: !Лс Бд
Б: !Лс !Пе
Л П Б Пс Бд Лс Бд Лс Пе
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 конфликт Лс
"function anonymous() {
$(document).ready(function() {
$('i').hide();
})
$(window).load(function() {
$('i').show();
var twitterPos = $('#twitter').position();
var githubPos = $('#github').position();
var stackPos = $('#stack').position();
var linkedinPos = $('#linkedin').position();
var codePos = $('#code').position();
var plusPos = $('#plus').position();
var mailPos = $('#mail').position();
var imgPos = $('.me').position();
$('i').css({
position: 'absolute',
zIndex: '1',
top: imgPos.top + 100,
left: '47%'
});
setTimeout(function() {
$('#twitter').animate({
top: twitterPos.top + 10,
left: twitterPos.left - 10
}, 500);
}, 250);
setTimeout(function() {
$('#twitter').animate({
top: twitterPos.top,
left: twitterPos.left
}, 250);
$('#github').animate({
top: githubPos.top + 10,
left: githubPos.left - 6
}, 500);
}, 500);
setTimeout(function() {
$('#github').animate({
top: githubPos.top,
left: githubPos.left
}, 250);
$('#stack').animate({
top: stackPos.top + 10,
left: stackPos.left - 3
}, 500);
}, 750);
setTimeout(function() {
$('#stack').animate({
top: stackPos.top,
left: stackPos.left
}, 250);
$('#linkedin').animate({
top: linkedinPos.top + 10,
left: linkedinPos.left
}, 500);
}, 1000);
setTimeout(function() {
$('#linkedin').animate({
top: linkedinPos.top,
left: linkedinPos.left
}, 250);
$('#code').animate({
top: codePos.top + 10,
left: codePos.left + 3
}, 500);
}, 1250);
setTimeout(function() {
$('#code').animate({
top: codePos.top,
left: codePos.left
}, 250);
$('#plus').animate({
top: plusPos.top + 10,
left: plusPos.left + 6
}, 500);
}, 1500);
setTimeout(function() {
$('#plus').animate({
top: plusPos.top,
left: plusPos.left
}, 250);
$('#mail').animate({
top: mailPos.top + 10,
left: mailPos.left + 10
}, 500);
}, 1750);
setTimeout(function() {
$('#mail').animate({
top: mailPos.top,
left: mailPos.left
}, 250);
}, 2000);
})
}"
IP-адресов, с которых «приходят» роботы Яндекса, тоже много, и они часто меняются. Поэтому мы не разглашаем их список и не рекомендуем использовать фильтрацию на их основе.
$class = new \ReflectionClass('Название класса'); // Создаем объект для рефлексии класса
$method = $class->getMethod('Имя метода'); // Получаем метод по имени
$params = $method->getParameters(); // Получаем массив с параметрами
$paramName = $params[0]->getName(); // Берем первый элемент массива, он имеет тип ReflectionParameter, и получаем его имя.
$method = new \ReflectionMethod('Класс', 'Имя метода');
// Далее, аналогично
// Начиная с версии PHP 7
$name = $name ?? 'anonimous';
// До PHP 7
$name = $name === null ? 'anonimous' : $name;
// или более предпочтительный вариант
// т.к. идет проверка объявлена переменная или нет
$name = isset( $name ) ? $name : 'anonimous';
// Самое простое, это что-то вроде
if($a == null) $a = 'default';
// Но это не очень красиво.
$a = $a ?: 'default';
Где можн получить подробную информацию по этому вопросу?
какие данные можно получить о пользователе
var p = 'val';
(function () {
var name; // undefined
if (typeof name === 'undefined') {
console.log(name);
name = "newVal";
console.log(name);
} else {
console.log(name);
}
})();// newVal