Если сомневаетесь, создайте контрольный пример!
Построить тест-кейс:
if ( $c = true ) {
echo 'Success';
} else {
echo 'No Success';
}
Запустите это онлайн: http://codepad.org/jxylNzOu
Вы заметите, что первый блок будет выполнен, только если условия повысятся true
(или то, что PHP оценивает как true
при запросе), поэтому он не спрашивает, было ли значение успешно применено к $c
, а точнее, является ли значение, примененное к $c
, равным true
.
Относительно вашего конкретного примера ...
Если в вашем случае, когда вы пытаетесь открыть соединение с MySQL, $c
будет true
, если соединение установлено, в результате будет запущен первый блок if-statement
. В противном случае, если соединение не установлено, $c
будет иметь значение false, что делает условие if-statement
false, что приведет к выполнению блока else
.
Согласно документации для mysql_connect()
, одна из двух вещей может быть возвращена из этой функции.
- Идентификатор ссылки MySQL (если установлено соединение)
FALSE
, указывая на невозможность установить соединение.
Так что нет разницы между следующими примерами кода
$conn = mysql_connect( $host, $user, $pass );
if ( $conn ) { /*...*/ }
И
if ( $conn = mysql_connect( $host, $user, $pass ) {
/*...*/
}