[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Что происходит с массивом ?
Acid
Всем привет.Снова нужна помошь с массивом.
Я заполняю массив из файла функцией file();,которую присваиваю пустому массиву.В главном файле массив работает нормально,а в библиотеке,где он глобализован его значения игнорируються %) Как быть ?



Спустя 6 минут, 9 секунд (8.08.2011 - 14:07) linker написал(а):
Штатная гадалка в отпуске, давай пример кода.

Спустя 27 минут, 59 секунд (8.08.2011 - 14:35) Acid написал(а):
Сейчас будет версия для скачивания.

Спустя 9 минут, 47 секунд (8.08.2011 - 14:44) Acid написал(а):
linker,гадалка вернулась и ... выложила код

Спустя 28 минут, 44 секунды (8.08.2011 - 15:13) linker написал(а):
Народу в 99% случаях не хочется что-либо качать, открывать смотреть. Необходимо выложить ТОЛЬКО проблемные участки кода, не надо всё пихать.

Спустя 35 минут, 15 секунд (8.08.2011 - 15:48) Acid написал(а):
Еще проще :

index.php
<?
include ("library.php");
$ar=array();
$ar=file("map.txt");
array_left();
?>

library.php

<?
function
array_left{
global $ar;
$t="array_search(2,$ar,true)";
$m=$ar[$t-1];
if ($m!="0"){
left();
}
}

?>


Как то так.Это неполный код,но проблема в том,что в переменной $m образуеться,а $t вообще пуста,хотя все правильно.Еще проще :

index.php
<?
include ("library.php");
$ar=array();
$ar=file("map.txt");
array_left();
?>

library.php

<?
function
array_left{
global $ar;
$t="array_search(2,$ar,true)";
$m=$ar[$t-1];
if ($m!="0"){
left();
}
}

?>


Как то так.Это неполный код,но проблема в том,что в переменной $m образуеться,а $t вообще пуста,хотя все правильно.
























Спустя 1 минута, 41 секунда (8.08.2011 - 15:50) Acid написал(а):
Сорри за дублированный код

Спустя 5 минут (8.08.2011 - 15:55) neadekvat написал(а):
> $t="array_search(2,$ar,true)";
Шо це такое?

Спустя 11 минут, 49 секунд (8.08.2011 - 16:07) linker написал(а):
function array_left(&$ar)
{
if (($t = array_search(2, $ar)) !== false)
{
$m = $t > 0 ? $ar[$t-1] : $ar[$t];
if ($m)
left();
}
}


$ar = file("map.txt", FILE_IGNORE_NEW_LINES);
array_left($ar);
Дальше всё зависит от функции left().

Спустя 5 минут, 28 секунд (8.08.2011 - 16:12) Acid написал(а):
Спасибо,как и обещал плюсую.

Спустя 3 минуты, 53 секунды (8.08.2011 - 16:16) Acid написал(а):
neadekvat,это поиск индекса массива содержащую строку поиска ячейки.

Спустя 5 минут, 55 секунд (8.08.2011 - 16:22) Acid написал(а):
Кое что меня пугает:как будет передаватся массив параметром,если он не имеет ссылки на index.php ?

Спустя 27 минут, 46 секунд (8.08.2011 - 16:50) linker написал(а):
Acid
Это заставляет тебя думать, прежде чем вызывать array_left(). Даже используя global $ar; это не отменяет наличия массива $ar прежде чем вызвать array_left(). Ещё более строгий вариант
function array_left(array &$ar)
{
...
}
таким образом ты оградишь себя от всяких ошибок.
Быстрый ответ:

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