Функции не возращают FALSE

ast-ross

Новичок
Функции не возращают FALSE

Привет ALL!
Возникла досадная проблемма! Вот значится такая конфигурация сервака:


Linux Fedora Core 4
Apache 1.3.37 (Unix) PHP/5.2.0 mod_deflate/1.0.21
PHP компилился как DSO c таким configure:

--with-foobar
--with-apxs=/usr/local/apache/bin/apxs
--with-config-file-path=/usr/local/apache/conf
--with-mysql=/usr/local/mysql
--with-mysqli=/usr/local/mysql/bin/mysql_config
--with-oci8=$ORACLE_HOME
--with-zlib=/usr/local
--without-libiconv-prefix
--with-freetype-dir=/usr/local/lib/freetype
--with-gd=/usr/local
--with-ttf
--enable-gd-native-ttf
--enable-calendar
--enable-ftp
--enable-sigchild
--disable-debug


Так вот такой учаток кода:
PHP:
<?
$mysql_conn = mysql_connect("localhost", "user", "pass");
if ($mysql_conn != false) echo "connected!";
else echo "not connected!";
?>
В случае если есть коннект к БД то пишет connected!, а если нет соединения то не пишет not connected!, тока warning-и... Т.е. не работает if else или функции в случае ошибки не возвращают false, пробовал проделовать это же и с ftp_connect(), fopen(), file_put_contents() - глухо! До этого стоял PHP 5.1.6 и все работало! php.ini остался прежний от версии 5.1.6

Подскажите где не доглядел???
 

ast-ross

Новичок
Автор оригинала: Гравицапа
PHP:
$mysql_conn = mysql_connect("localhost", "user", "pass"); 
var_dump($mysql_conn);
?
bool(false)

йо блин! возращает! а почему тогда не работает if else???

-~{}~ 15.12.06 12:37:

при чем так все работает:
PHP:
<?
$a=1;
if ($a==1) echo "OK";
else echo "BAD";
?>
OK

PHP:
<?
$a=0;
if ($a==1) echo "OK";
else echo "BAD";
?>
BAD
 

sage

Новичок
что значит не работает?? ну-ка внимательно посмотри на свой if...else

-~{}~ 15.12.06 16:44:

ну и что тебе не нравится в приведённом тобою примере?
 

ast-ross

Новичок
Автор оригинала: sage
что значит не работает?? ну-ка внимательно посмотри на свой if...else

-~{}~ 15.12.06 16:44:

ну и что тебе не нравится в приведённом примере?
Ну вроде все нормально??? Ткни где не верно в упор не вижу...

Не нравиться что если mysql_connect возращает false то не работает if else
 

ast-ross

Новичок
Вот этот алгоритм:
PHP:
<?
$mysql_conn = mysql_connect("localhost", "user", "pass");
if ($mysql_conn != false) echo "connected!";
else echo "not connected!";
?>
В случае если нет соединения должен выводить not connected!, чего он не делает... Вообще путо, только варнинги... Но если я подавлю их @ то будет просто чистый экран не надписи connected! ни not connected! а должно быть!
 

zerkms

TDD infected
Команда форума
ast-ross
так не бывает
99% виной этому человеческий фактор
 

ast-ross

Новичок
ну блин! дайю тот же тестовый код что и исполняю... В том то и прикол что блин не работает!!! ааааааааа.... Помогите боевой проект встал колом!

-~{}~ 15.12.06 13:06:

Вот блин! Тупо перекомпилил с темиже ключами и все стало работать!!! Видать configure где то сглючил...
 

Андрейка

Senior pomidor developer
Лучше используй !==
действительно.. а то вдруг mysql_connect подключицца и ради прикола вернет 0... но нас с хряком так просто не обмануть, мы хитрые)
 

HraKK

Мудак
Команда форума
Андхрейка
mysql_connect не вернет, не волнуйся спи спокойно.
А вот в другие случаи вполне могут и вернуть 0, ага?
Поэтому при сравенни на false иммет смысл !==.

Это мое ИМХО.
 

jonjonson

Охренеть
Ну тогда будьте принципиальными и правильными до конца =))
PHP:
$mysql_conn = mysql_connect("localhost", "user", "pass");
if (false === $mysql_conn) {
    die("not connected!");
}
echo "connected!";
// ... Код далее
или
PHP:
$mysql_conn = mysql_connect("localhost", "user", "pass");
if (!$mysql_conn) {
    die("not connected!");
}
echo "connected!";
 

hermit_refined

Отшельник
Ну тогда будьте принципиальными и правильными до конца =))
утверждение с приведенным кодом не сочетается. Ничего "правильного до конца" в том, чтобы выводить пользователю информативное "not connected!" - нет. Лучше просто к черту послать.
Так как первая сработает если $mysql_conn будет равно 0
никто не в силах заставить её вернуть 0.
мне только кажется, или все действительно начали друг к другу по пустякам придираться? :)
 

phprus

Moderator
Команда форума
hermit_refined
никто не в силах заставить её вернуть 0.
Я в силах. Так как я могу пропатчить исходники, так чтобы mysql_connect раз в е^pi соединений возвращала 0.

мне только кажется,
Скорее всего тебе не кажется. Я лично думаю что все действительно начали друг к другу по пустякам придираться. Включая и меня :)
 

RigVan

Постоянный член клуба
ast-ross

Ты посмотри внимательно на конструкцию свою if... else, ни чего не замечаешь?
Что это означает:
PHP:
if ($mysql_conn != false) echo "connected!";
else echo "not connected!";
где скобки фигурные потерял?
 
Сверху