1

Не работает код, который должен вывести переменную $f по частям, ошибки никакой нет, код выводит только первый символ:

<?php
//$a =5;
//$b = $a;
//$a = ($b = 10);
//$a = $b = 10;
//$b = $c + 10;
$a = "New , string<br/>";
$b = "\n Don't work , string";
$c = "\t Tabulate , string";
$d = "\" Name , string";
$f = "\$ Dollars , string";
echo $a;
echo $b;
echo $c;
echo $d;
$p = true;
while(p == true) {
    for ($i = 0;$i < 8;$i =+ 1) {
        if ($f[$i] == "\$"){
            echo" Find dollar,catch it!";
        }
        echo $f[$i];
    }
    if ($f[$i] == 8) {
        $p=false;
    }
}
?>
n3r0bi0m4n
  • 1,197

1 Answers1

2

В while(p == true) { пропустили $ перед p: while($p) {

в цикле for ошибка. Вместо $i =+ 1 должно быть $i++

?> не должно быть в конце файла, если после него конечно не идёт что-либо, к примеру HTML.

Adam Bright
  • 1,548
  • 1
    ?> не должно быть в конце файла - его рекомендуют убирать, но это не жесткое правило. Так что не должно - не совсем корректно – Алексей Шиманский Oct 23 '17 at 19:06
  • 1
    не спорю, просто не хотелось оставлять альтернатив – Adam Bright Oct 23 '17 at 19:07
  • Спасибо , я только начинаю , если возможно есть какие-то ещё очень грубые ошибки , подскажите пожалуйста . –  Oct 23 '17 at 19:07
  • Можете подсказать , какой командой можно измерять длину строки в php? –  Oct 23 '17 at 19:10
  • 1
    strlen($string) если кол-во байт, sizeof(str_split($string)) если кол-во символов (русские буквы обычно занимают 2 байта, в отличие от англ) – Adam Bright Oct 23 '17 at 19:10
  • 1
    оО длина строки с помощью посимвольного разбиения, вы в своем уме вообще? – teran Oct 23 '17 at 19:15
  • 1
    не ну никто не отменял модули и mb_strlen($string), но mbstring не всегда доступен... :c – Adam Bright Oct 23 '17 at 19:16
  • 1
    да и собственно, чего вы придрались к $i +=1? Ошибка не в нем, а как вы указали что отсутствует $ у p. Формально был нотис, а-ля undefined constant p, assumed 'p' или он там пишет. – teran Oct 23 '17 at 19:19
  • 1
    не всегда доступен он был небось лет 10 назад. – teran Oct 23 '17 at 19:21
  • 1
    так там проблема в том, что не $i += 1, а $i = +1, очепятка, вот и придрался. а в качестве замены предложил сразу ++. – Adam Bright Oct 23 '17 at 19:21
  • 2
    @teran на самом деле там был $i = +1, а не $i +=1 :) И вообще там еще ошибка, например if ($f[$i] == 8) скорее всего должен быть в цикле for, иначе бесконечный... да и вообще там что-то странное) – Алексей Шиманский Oct 23 '17 at 19:22
  • 2
    ах да, пардоньте, +1 не заметил. но тем не менее "должно" тут тоже не хорошо выглядело. – teran Oct 23 '17 at 19:23