👨💻 Реальный вопрос от реального человека
Почему route в Codeigniter 4, присваивает неверное значение параметру контроллера?
Возникла непонятная ситуация. При передаче значения false в обычную функцию, где по-умолчанию значение = null присвоение или вывод значения происходит правильно:
Результат:
Однако, когда я попытался передать тоже самое в параметр контроллера через route, то для значения false вывелось true, что, соответственно, дало неверные результаты. Из-за чего такое могло произойти? Может codeigniter как-то по-другому false в параметре обрабатывает? Route-ы:
Controller:
Результат:
PHP задачи с собеседований
Почему route в Codeigniter 4, присваивает неверное значение параметру контроллера?
Возникла непонятная ситуация. При передаче значения false в обычную функцию, где по-умолчанию значение = null присвоение или вывод значения происходит правильно:
function some(?bool $a = null)
{
var_dump($a);
}
some();
some(true);
some(false);
Результат:
NULL
bool(true)
bool(false)
Однако, когда я попытался передать тоже самое в параметр контроллера через route, то для значения false вывелось true, что, соответственно, дало неверные результаты. Из-за чего такое могло произойти? Может codeigniter как-то по-другому false в параметре обрабатывает? Route-ы:
$routes->get('default', 'Results::index');
$routes->get('successful', 'Results::index/true');
$routes->get('errors', 'Results::index/false');
Controller:
public function index(?bool $decline = null)
{
var_dump($decline);
exit;
}
Результат:
NULL
bool(true)
bool(true)
PHP задачи с собеседований
👍2
👨💻 Задача для вас. Решение в следующем посте
Создайте переменные, присвоив им логические значения true и false, вещественное число 43.658+e2, но предварительно записав его в обычном виде, и корень квадратный из отрицательного числа, например, sqrt(-2). Выведите значения всех переменных на экран.
PHP задачи с собеседований
Создайте переменные, присвоив им логические значения true и false, вещественное число 43.658+e2, но предварительно записав его в обычном виде, и корень квадратный из отрицательного числа, например, sqrt(-2). Выведите значения всех переменных на экран.
PHP задачи с собеседований
Решение задачи 👆
PHP задачи с собеседований
<?php
$a=true; //Присвоили логическое значение true
$b=false; //Присвоили логическое значение false
$f=4365.8; //Присвоили вещественное число
$z=sqrt(-2); //Присвоили корень квадратный из -2
echo $a, '<br>'; //Выведет 1, т.к. true преобразуется в строку '1'
echo $b, '<br>'; //Выведет пустую строку, т.к. false преобразуется в ''
echo $z, '<br>'; //Выведет NAN
echo $f; //Выведет 4365.8, точнее строку '4365.8'
?>
PHP задачи с собеседований
👨💻 Задача для вас. Решение в следующем посте
Создайте три переменные и присвойте им строки: 'Добро ', 'побеждает ', 'зло'. Создайте еще одну переменную и присвойте ей объединенную строку (для конкатенации строковых переменных используйте обычную точку). Выведите ее на экран.
PHP задачи с собеседований
Создайте три переменные и присвойте им строки: 'Добро ', 'побеждает ', 'зло'. Создайте еще одну переменную и присвойте ей объединенную строку (для конкатенации строковых переменных используйте обычную точку). Выведите ее на экран.
PHP задачи с собеседований
👎15👍4
Решение задачи 👆
PHP задачи с собеседований
<?php
//Присвоили первую строку
$a='Добро ';
//Присвоили вторую строку
$b='побеждает ';
//Присвоили третью строку
$c='зло ';
//Присвоили объединенную строк
$d=$a.$b.$c; у
//Выведет 'Добро побеждает зло'
echo $d, '<br>';
?>
PHP задачи с собеседований
👎24
Курс анализа систем: учат проектировать системы и распиливать монолиты
12 мая стартует курс по «Анализу систем». 4-недельный курс о том, как проектировать системы. Новые — чтобы не переделывать, старые — чтобы разобрать на части и ускорить разработку. Учат распиливать монолиты, обоснованно выбирать технологии и архитектурные стили, оставляя после себя понятную документацию.
Если дойдёте до конца — сможете спроектировать ПО для большинства крупных работодателей или разбить на части доставшийся в наследство монолит на 500кк строк.
Авторы — Антон Давыдов и Школа сильных программистов. Возможно вы знакомы с ними по другому их легендарному курсу «Асинхронная архитектура».
Что будет на каждой неделе:
Неделя 0. Работа с требованиями, разделение системы на элементы (работа с требованиями, Event Storming, Модель данных, Базовое сравнение микросервисов и монолитов, Система, форма и функция системы)
Неделя 1. Стратегический анализ бизнеса и архитектурные стили (Strategic DDD, subdomains; Coupling & cohesion, temporal coupling, local & global complexity; Quality attributes/non functional requirements/architecture characteristics; Поиск характеристик и перевод бизнес-терминов в характеристики; Циклы жизни систем)
Неделя 2. Внешние ограничения и документация (Ограничения системы, Выбор вида БД в зависимости от характеристик, Выбор вида коммуникаций и брокера для событий, Fitness function)
Неделя 3. Распиливаем монолит (Добавление новой функциональности в отдельных сервисах; Объединение сервисов; Вынос функциональности из монолита в сервис; Strangler Fig Application, Volatility Based Decomposition, Tactical Forking, Component-Based Decomposition)
Неделя 4. Итоги и дальнейшие шаги.
Домашка будет без кода — только квадратики, так что подойдёт любой язык.
Есть тарифы с обратной связью и без. С личной проверкой домашек, чатом и Q^A-сессией. До 1 мая можно записаться по старой цене. Для подписчиков промокод PHPQUIZ10 даст дополнительную скидку в 10%. Действует до 1 мая.
Посмотреть программу и условия →
12 мая стартует курс по «Анализу систем». 4-недельный курс о том, как проектировать системы. Новые — чтобы не переделывать, старые — чтобы разобрать на части и ускорить разработку. Учат распиливать монолиты, обоснованно выбирать технологии и архитектурные стили, оставляя после себя понятную документацию.
Если дойдёте до конца — сможете спроектировать ПО для большинства крупных работодателей или разбить на части доставшийся в наследство монолит на 500кк строк.
Авторы — Антон Давыдов и Школа сильных программистов. Возможно вы знакомы с ними по другому их легендарному курсу «Асинхронная архитектура».
Что будет на каждой неделе:
Неделя 0. Работа с требованиями, разделение системы на элементы (работа с требованиями, Event Storming, Модель данных, Базовое сравнение микросервисов и монолитов, Система, форма и функция системы)
Неделя 1. Стратегический анализ бизнеса и архитектурные стили (Strategic DDD, subdomains; Coupling & cohesion, temporal coupling, local & global complexity; Quality attributes/non functional requirements/architecture characteristics; Поиск характеристик и перевод бизнес-терминов в характеристики; Циклы жизни систем)
Неделя 2. Внешние ограничения и документация (Ограничения системы, Выбор вида БД в зависимости от характеристик, Выбор вида коммуникаций и брокера для событий, Fitness function)
Неделя 3. Распиливаем монолит (Добавление новой функциональности в отдельных сервисах; Объединение сервисов; Вынос функциональности из монолита в сервис; Strangler Fig Application, Volatility Based Decomposition, Tactical Forking, Component-Based Decomposition)
Неделя 4. Итоги и дальнейшие шаги.
Домашка будет без кода — только квадратики, так что подойдёт любой язык.
Есть тарифы с обратной связью и без. С личной проверкой домашек, чатом и Q^A-сессией. До 1 мая можно записаться по старой цене. Для подписчиков промокод PHPQUIZ10 даст дополнительную скидку в 10%. Действует до 1 мая.
Посмотреть программу и условия →
tough-dev.school
Анализ систем — новый курс от Школы Сильных Программистов и Антона Давыдова
👍3
👨💻 Реальный вопрос от реального человека
Как вывести определенное значение в html
Вопрос очень простой но при этом я попал в какой-то тупик, получаю массив с api и хочу вывести его в html, а именно значение score
Подскажите как это сделать с помощью javascript?
Сам запрос у меня на php и я решил этот вопрос, но не могу вывести в нужном мне месте, поэтому решил отбросить и попробовать сделать на js
PHP задачи с собеседований
Как вывести определенное значение в html
Вопрос очень простой но при этом я попал в какой-то тупик, получаю массив с api и хочу вывести его в html, а именно значение score
/tmp/phpFh1f8Warray(2) {
["quality"]=>
array(1) {
["score"]=>
float(0.7031919360160828)
}
["status"]=>
string(2) "ok"
}
Подскажите как это сделать с помощью javascript?
Сам запрос у меня на php и я решил этот вопрос, но не могу вывести в нужном мне месте, поэтому решил отбросить и попробовать сделать на js
<?php
$authorization = "SRd6kjgk6pPuGoDdl2kO3Mbt" . ":" . "DQIRvCnwinFJt4CgLQWuxiWIUNjTeq2mtar74KdRcILyLvpw";
$url = "https://api.everypixel.com/v1/quality?";
$filename = $_FILES['file']['name'];
$filedata = $_FILES['file']['tmp_name'];
$filesize = $_FILES['file']['size'];
print($filedata);
if ($filedata != '')
{
$headers = array("Content-Type:multipart/form-data");
$postfields = [
'data' => new \CurlFile($filedata, 'image/png', $filename)
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_USERPWD, $authorization);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_INFILESIZE, $filesize);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
$data = curl_exec($curl);
curl_close($curl);
$json = str_replace('Array ( ) ', '', $json);
$json = json_decode($data, true);
var_dump($json);
}
?>
PHP задачи с собеседований
👍4👎2
👨💻 Упражнение | Cортировка упорядоченного целочисленного массива с помощью функции sort()
Напишите класс PHP, который сортирует упорядоченный целочисленный массив с помощью функции sort ()
Пример массива: array (17, -3, 5, 35, 0, 8, -9)
Вывод: Array ([0] => -9 [1] => -3 [2] => 0 [ 3] => 7 [4] => 8 [5] => 17 [6] => 35)
PHP задачи с собеседований
Напишите класс PHP, который сортирует упорядоченный целочисленный массив с помощью функции sort ()
Пример массива: array (17, -3, 5, 35, 0, 8, -9)
Вывод: Array ([0] => -9 [1] => -3 [2] => 0 [ 3] => 7 [4] => 8 [5] => 17 [6] => 35)
PHP задачи с собеседований
👎2👍1
Решение задачи 👆
Есть другой способ решить эту задачу? Разместите свой код в комментарии
PHP задачи с собеседований
<?php
class array_sort
{
protected $_asort;
public function __construct(array $asort)
{
$this->_asort = $asort;
}
public function alhsort()
{
$sorted = $this->_asort;
sort($sorted);
return $sorted;
}
}
$sortarray = new array_sort(array(17, -3, 5, 35, 0, 8, -9));
print_r($sortarray->alhsort())."\n";
?>
Есть другой способ решить эту задачу? Разместите свой код в комментарии
PHP задачи с собеседований
👎14👍1
👨💻 Упражнение | Класс Calculator, который принимает два значения в качестве аргументов
Напишите класс PHP Calculator, который будет принимать два значения в качестве аргументов, затем складывать их, вычитать их, умножать их вместе или делить по запросу.
Пример: $mycalc = new MyCalculator( 10, 6);
echo $mycalc- > add(); // 16
echo $mycalc- > multiply(); // 60
PHP задачи с собеседований
Напишите класс PHP Calculator, который будет принимать два значения в качестве аргументов, затем складывать их, вычитать их, умножать их вместе или делить по запросу.
Пример: $mycalc = new MyCalculator( 10, 6);
echo $mycalc- > add(); // 16
echo $mycalc- > multiply(); // 60
PHP задачи с собеседований
Решение задачи 👆
Есть другой способ решить эту задачу? Разместите свой код в комментарии
PHP задачи с собеседований
<?php
class MyCalculator {
private $_fval, $_sval;
public function __construct( $fval, $sval ) {
$this->_fval = $fval;
$this->_sval = $sval;
}
public function add() {
return $this->_fval + $this->_sval;
}
public function subtract() {
return $this->_fval - $this->_sval;
}
public function multiply() {
return $this->_fval * $this->_sval;
}
public function divide() {
return $this->_fval / $this->_sval;
}
}
$mycalc = new MyCalculator(12, 6);
echo $mycalc-> add()."\n"; // 18
echo $mycalc-> multiply()."\n"; // 72
echo $mycalc-> subtract()."\n"; // 6
echo $mycalc-> divide()."\n"; // 2
?>
Есть другой способ решить эту задачу? Разместите свой код в комментарии
PHP задачи с собеседований
Решение задачи 👆
Есть другой способ решить эту задачу? Разместите свой код в комментарии
PHP задачи с собеседований
<?php
function reverse_string($str1) {
$n = strlen($str1);
if($n == 1) {
return $str1;
}
else {
$n--;
return reverse_string(substr($str1,1, $n)) . substr($str1, 0, 1);
}
}
print_r(reverse_string('1234')."\n");
?>
Есть другой способ решить эту задачу? Разместите свой код в комментарии
PHP задачи с собеседований
👎1
Пока начинающие специалисты пытаются выполнить все требования рынка труда. И одной рукой создают сайт, другой админят сервер, а третьей заботятся о безопасности и SEO-продвижении. Профи и самые прошаренные пользуются панелью управления Ispmanager.
Потому что, как бы..зачем? Зачем что-то делать самому, если можно кнопочки тык-тык и SSL сам продлится, веб-сервер и веб-окружение установится на сервер, сайт развернётся за пару кликов, а всякие штуки по безопасности и SEO-оптимизации сделают всю работу за тебя.
В общем — вещь, рекомендую. Я лично управляю с помощью Ispmanager, но выбор широк, как среди бесплатных, так и платных. В общем, делайте легче, делайте играючи. 😁
Потому что, как бы..зачем? Зачем что-то делать самому, если можно кнопочки тык-тык и SSL сам продлится, веб-сервер и веб-окружение установится на сервер, сайт развернётся за пару кликов, а всякие штуки по безопасности и SEO-оптимизации сделают всю работу за тебя.
В общем — вещь, рекомендую. Я лично управляю с помощью Ispmanager, но выбор широк, как среди бесплатных, так и платных. В общем, делайте легче, делайте играючи. 😁
👨🏻💻 Нужно отфильтровать строку PHP
Нужно с помощью regexp сделать так, что 1) были только русские и английские буквы, цифры, пробелы и знаки !#$&() 2) не было английских букв рядом с русскими(при нахождении русская буква заменяется "#"
function filter($str){
$pattern = '/[^a-zA-Z\d а-яёА-ЯЁ]/';
$replacement = '';
$str=preg_replace($pattern, $replacement, $str);
$replacement = '\1#';
$pattern = '/([a-zA-Z])([а-яёА-ЯЁ])/';
$str=preg_replace($pattern, $replacement, $str);
$pattern = '/([^а-яёА-ЯЁ])([a-zA-Z])/';
$replacement = '#\2';
$str=preg_replace($pattern, $replacement, $str);
return $str;
}
PHP задачи с собеседований
Нужно с помощью regexp сделать так, что 1) были только русские и английские буквы, цифры, пробелы и знаки !#$&() 2) не было английских букв рядом с русскими(при нахождении русская буква заменяется "#"
function filter($str){
$pattern = '/[^a-zA-Z\d а-яёА-ЯЁ]/';
$replacement = '';
$str=preg_replace($pattern, $replacement, $str);
$replacement = '\1#';
$pattern = '/([a-zA-Z])([а-яёА-ЯЁ])/';
$str=preg_replace($pattern, $replacement, $str);
$pattern = '/([^а-яёА-ЯЁ])([a-zA-Z])/';
$replacement = '#\2';
$str=preg_replace($pattern, $replacement, $str);
return $str;
}
PHP задачи с собеседований
👎7
👨🏻💻 Блокирование файла сессии Laravel
В проекте на Laravel 7 иногда вываливается ошибка upstream timed out (110: Unknown error) while reading response header from upstream Сам сайт отдает при этом ошибку 504. Перебирая пошагово на каком этапе возникает проблема, пришел к тому, что в Middleware StartSession есть такая проверка на доступность сессии:
PHP задачи с собеседований
В проекте на Laravel 7 иногда вываливается ошибка upstream timed out (110: Unknown error) while reading response header from upstream Сам сайт отдает при этом ошибку 504. Перебирая пошагово на каком этапе возникает проблема, пришел к тому, что в Middleware StartSession есть такая проверка на доступность сессии:
$session = $this->getSession($request);Если изменить драйвер на Coockie, то проблема пропадает, но использовать куки в качестве хранилища не вариант, как и БД. Проблема возникает если использовать в качестве драйвера и file и redis. Есть ли какое-то решение этой проблемы?
if ($this->manager->shouldBlock() || ($request->route() && $request->route()->locksFor())) {
return $this->handleRequestWhileBlocking($request, $session, $next);
} else {
return $this->handleStatefulRequest($request, $session, $next);
}
PHP задачи с собеседований
👨🏻💻 Реальная проблема реального человека
Необходимо на php реализовать расчет гамма-функции
Задачка переводится с excel на yii2. Нужно на php рассчитывать Гамма функцию. В модуле stats вроде есть функция stats_cdf_gamma. Но пока не могу понять что там за входящие параметры(3шт.), в excel всего один параметр: гамманлог(х). Как-то в статистике и высшей математике не силен. Поскажите, можно ли будет использовать указанную функцию, или как-то подцепить ёкселевские функции или ещё какой вариант.
PHP задачи с собеседований
Необходимо на php реализовать расчет гамма-функции
Задачка переводится с excel на yii2. Нужно на php рассчитывать Гамма функцию. В модуле stats вроде есть функция stats_cdf_gamma. Но пока не могу понять что там за входящие параметры(3шт.), в excel всего один параметр: гамманлог(х). Как-то в статистике и высшей математике не силен. Поскажите, можно ли будет использовать указанную функцию, или как-то подцепить ёкселевские функции или ещё какой вариант.
PHP задачи с собеседований
👎2