Непонятное поведение массива. Помогите!!!

ДмитрийCn

Новичок
Доброго времени суток, уважаемые!

Столкнулся с проблемой при переводе сайта с PHP4 на PHP5.
Функция создаёт коннект к MySQL и выбирает базу. Далее результат коннекта присваивается элементу массива. Вот кусок кода:

$conn12 = @mysql_connect('host','user','pass');
$params['sql_conn'] = $conn12;
fwrite($slog,"params['sql_conn']=".$params['sql_conn']."\n");
fwrite($slog,"params=".var_export($params,true)."\n");

а вот что выдаётся в файл $slog:

params['sql_conn']=Resource id #10
params=array (
'sql_conn' => NULL,
)

Прошу помощи!!!
Не понимаю как такое может быть!
 

С.

Продвинутый новичок
Я вижу только проблему с var_export(), которая ни на что не влияет. В чем проблема с массивом или переходом на PHP5?
 

ДмитрийCn

Новичок
Проблема как раз в том, что эта функция возвращает NULL в глобальном массиве $params['sql_conn'].
То есть за пределами этой функции всё также как и в var_export
 

С.

Продвинутый новичок
Кусок проблемного куда сюда. Только не где в главной роли var_export(), а global.
 

ДмитрийCn

Новичок
Кусок проблемного куда сюда. Только не где в главной роли var_export(), а global.
// это функция, файл /inc/lib/sql.php
function sql_connect() {
//подключение к базе
global $params, $settings;

$conn12 = @mysql_connect($settings['SQL_HOST'], $settings['SQL_LOGIN'], $settings['SQL_PASS']);

if(!$conn12) {
echo "<font color=red><b>Ошибка подключения к БД.<br>Зайдите попозже</b></font>";
exit();
}

mysql_select_db($settings['SQL_DATABASE'],$conn12);
mysql_query ("set names cp1251",$conn12);
$params['sql_conn'] = $conn12;
$params['sql_count'] = 0;
}
// это её вызов
<?
include($_SERVER['DOCUMENT_ROOT']."/cfg.php"); // тут объявлен массив $settings
include $settings['path']."/inc/lib/util.php";
include $settings['path']."/inc/lib/sql.php"; // вот из этого файла функция
include $settings['path']."/inc/lib/admin/default.php";

sql_connect();
// вот на этом месте значение $params['sql_conn'] равно NULL, а должно быть 'Resource id #...'
....
?>
 

ДмитрийCn

Новичок
Как пояснение: сайт этот не мной написан около 5 лет назад, на PHP4 работал без вопросов, сейчас приходится его переводить под PHP5.
Появляются ошибки... Сам сайт заработал с небольшими правками ошибок, а вот админка пока нет.
 

ДмитрийCn

Новичок
Оказалось дело в другом.
В любом случае, может кому полезно будет: var_export и var_dump показывают в массиве переменные типа resource как NULL, хотя там реально находится правильный Resource id #..
 

wc3banderlog

Новичок
asdf
Оказалось дело в другом.
В любом случае, может кому полезно будет: var_export и var_dump показывают в массиве переменные типа resource как NULL, хотя там реально находится правильный Resource id #..
Используйте print_r. А еще лучше заведите функцию, которая будет оборачивать вывод функции print_r в теги <pre>, тогда у вас будет очень удобный и наглядный инструмент отладки.
 
Сверху