компьютерный вопрос

Довольно понятно при беглом просмотре, вроде.
 
Ностальгия и комменты :)
 
Док, добрый день. На php8 такой код будет у Вас работать?

PHP:
<?php

    $message = "Работа не может быть продолжена из-за ошибки:<br>";
    $errors = ["PHP", "MySQL", "memcache"];

    $check = function(array $errors) use ($message) {
        if (isset($errors) && count($errors) > 0) {
            echo $message;

            foreach($errors as $error) {
                echo "$error<br>";
            }
        }
    }
    
    $check($errors);
?>
 
Как и почему
 
Можете не проверять - в песочнице тоже не работает, даже на 7-ом.
Возможно это как раз 8 и требует? У меня на 7.4 выдаёт ошибку
Parse error: syntax error, unexpected '$check' (T_VARIABLE) in ../test.php on line 16

Возможно, Вы слишком новую версию используете в написании?
Похоже на JS скорее, внешне.
У меня в панели лишь 7 версия, 7.4 самая юная :)
 
переменные, которые мы хотим использовать (из глобальной области видимости) в таких функциях необходимо передавать через use. Важно отметить, что по умолчание передаётся только значение, так что если вы хотите менять содержание передаваемой переменной и хотите, чтобы оно менялось за пределами анонимной функции, передавайте значение по адресу:
view sourceprint?
1
$x = 1;
2
$closure = function() use (&$x) { ++$x; };
3

4
echo $x . "<br />";
5
$closure();
6
echo $x . "<br />";
7
$closure();
8
echo $x . "<br />";
Это цитата, я не понял, возможно?
Возможно $check = function(array $errors) use ($message) обращается к глобальной переменной $message, а мы запускаем кусок?
 
Вот я пробую аналог:
PHP:
<?php


   $string = "Hello World!";
$closure = function() use ($string) { echo $string; };


$closure();
?>

 
Аааа, норм, разобрался ! :))
Там точка с запятой давала ошибку!
Точнее - её отсутствие!
Норм, проверяйте! По той же ссылке я выложил.
 

Новые комментарии

LGBT*

В связи с решением Верховного суда Российской Федерации (далее РФ) от 30 ноября 2023 года), движение ЛГБТ* признано экстремистским и запрещена его деятельность на территории РФ. Данное решение суда подлежит немедленному исполнению, исходя из чего на форуме будут приняты следующие меры - аббривеатура ЛГБТ* должна и будет применяться только со звездочкой (она означает иноагента или связанное с экстремизмом движение, которое запрещено в РФ), все ради того чтобы посетители и пользователи этого форума могли ознакомиться с данным запретом. Символика, картинки и атрибутика что связана с ныне запрещенным движением ЛГБТ* запрещены на этом форуме - исходя из решения Верховного суда, о котором было написано ранее - этот пункт внесен как экстренное дополнение к правилам форума части 4 параграфа 12 в настоящее время.

Назад
Сверху