[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка "cannot use a scalar value as an array"
Valeriya12
Здравствуйте! Извините заранее за мой плохой русский.

Задание такое: Пользователь вводит слово, потом вводит одну из букв которая составляет это слово, потом он вводит другую независимую букву. Программа просто заменят первую вводимую букву с втором, и печатает наше новое слово.

Я получаю ошибку "cannot use a scalar value as an array" и поэтому возникает один вопрос-- Обязательно использовать массивы для этого?

<?php
$str = (int)fgets(STDIN);
$chr = (int)fgets(STDIN);
$rep = (int)fgets(STDIN);
for ($x=0; $x<=(strlen($str)-1); $x++)
{
if ($str[$x]==$chr)
{
$str[$x]=$rep;
}
}

echo $str;
?>
GET
Цитата
$str = (int)fgets(STDIN);


$str - скалярная величина, а здесь
Цитата
  if ($str[$x]==$chr)
  {
  $str[$x]=$rep;
  }

вы к ней обращаетесь. как к массиву
Цитата
$str = (int)fgets(STDIN);
$chr = (int)fgets(STDIN);
$rep = (int)fgets(STDIN);

вот это я тоже не понял.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Valeriya12
Ой, теперь всё ясно. Да, вы правы. Я скопировала из другого кода этот fgets команд "(int)fgets(STDIN);" не заметая, что там же "int" написано. А вот теперь все работает....спасибо!

<?php
$str=trim(fgets(STDIN));
$chr=trim(fgets(STDIN));
$rep=trim(fgets(STDIN));
for ($x=0; $x<=(strlen($str)-1); $x++)
{
if ($str[$x]==$chr)
{
$str[$x]=$rep;
}
}

echo $str;
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.