Компьютерный форум NoWa.cc

Компьютерный форум NoWa.cc (https://nowa.cc/index.php)
-   PHP (https://nowa.cc/forumdisplay.php?f=305)
-   -   Что означает символ & в php (https://nowa.cc/showthread.php?t=152326)

chertenok 18.03.2008 23:08

Что означает символ & в php
 
Что означает символ & в php?
Выдает ошибку на него перед new незнаю что обозначает вот привожу код:

function Connect()
{
$oDsn = TSQL::parseDSN();

$Result = @mysql_connect($oDsn['host'], $oDsn['user'], $oDsn['pass']) or
$Result = &new PEAR_Error(mysql_error(), mysql_errno());

if(is_resource($Result))
{
@mysql_select_db($oDsn['database'], $Result) or
$Result = &new PEAR_Error(mysql_error(), mysql_errno());
}
if(PEAR::isError($Result)) PEAR::throwError($Result->getMessage());
return $Result;
}
и выдает ошибку именно на &
что обозначает и как его заменить если надо?
и вот что в браузере выдает
--------------------------------------------------------------------------
PHP ver: 5.1.4
date: 18.03.2008 10:45:09
file: C:\Program Files\Apache Group\Apache2\htdocs\test\php-bin\__core\database.inc.php
line: 69
message: Assigning the return value of new by reference is deprecated
unhandled error
--------------------------------------------------------------------------

czukowski 19.03.2008 00:32

Ответ: Что означает символ & в php
 
Написано же, "Assigning the return value of new by reference is deprecated".
Лучше убрать &, хотя, можно и подавить ошибку (error_reporting).

chertenok 19.03.2008 07:47

Ответ: Что означает символ & в php
 
а как её подавить

Добавлено через 2 минуты
а как её подавить?

Добавлено через 39 минут
куда вставить (error_reporting)?

czukowski 19.03.2008 11:28

Ответ: Что означает символ & в php
 
См. http://php.net/error_reporting

chertenok 19.03.2008 12:34

Ответ: Что означает символ & в php
 
Ну я все понимаю ссылку написал спасибо ну а как валенку объясни че сделать просто убирал я эти & и толку никакого переходит на другие файлы где прописано и потом выдает уже на другое!! просто на денвере сайт работал без прроблем а как пришлось его в инет выкладывать фигу выдает ошибку эту и незнаю че делать ты просто скажи че куда прописать, ато с английским несильно дружу и в пхп тож не ас.
вот куда его прописать error_reporting?
в .htaccess?? или перед new? ато что что ссылочку дал спасибо буду искать как сделать1 ну а лучше напишипросто срочно надо!!!!

chertenok 19.03.2008 20:14

Ответ: Что означает символ & в php
 
я так понял это функция соединения с базой вот
/**
* функция устанавливает соединение с базой данных
*
*return mixed PEAR_Error - в случае ошибки
*/

function Connect()
{

$oDsn = TSQL::parseDSN();

$Result = @mysql_connect($oDsn['host'], $oDsn['user'], $oDsn['pass']) or
$Result = &new PEAR_Error(mysql_error(), mysql_errno());

if(is_resource($Result))
{
@mysql_select_db($oDsn['database'], $Result) or
$Result = &new PEAR_Error(mysql_error(), mysql_errno());
}

if(PEAR::isError($Result)) PEAR::throwError($Result->getMessage());

return $Result;

} //\\Connect

скорей всего нет соединения с базой может изза этого??
вот конфиг соединения с базой мож тут че неатак??
<?php
$SITE_CONFIG['SITE_STATE'] = '1';
$SITE_CONFIG['ADMIN_LOGIN'] = 'root';
$SITE_CONFIG['ADMIN_PASSWORD'] = 'admin';
$SITE_CONFIG['GUEST_USER'] = 'guest';
$SITE_CONFIG['GUEST_PASSWORD'] = 'guest';
$SITE_CONFIG['DB_DSN'] = 'mysql://root:@localhost/len-energo';
$SITE_CONFIG['DB_TABLE_PREFIX'] = 'c_';
$SITE_CONFIG['SITE_EMAIL'] = 'info@oligma.net';
$SITE_CONFIG['CUSTOM_FILES_EXT'] = 'jpg gif png pdf';
$SITE_CONFIG['ITEMS_COUNT_SHOW_ON_PAGE'] = '10';
$SITE_CONFIG['USER_PHOTO_FILE_EXT'] = 'jpg png';
$SITE_CONFIG['USER_PHOTO_FILE_SIZE'] = '1024';
$SITE_CONFIG['USER_PHOTO_SIZE_W'] = '100';
$SITE_CONFIG['USER_PHOTO_SIZE_H'] = '100';
$SITE_CONFIG['SITE_DOCUMENT_ROOT'] = '/';
$SITE_CONFIG['NEWS_PERIOD_SENDING'] = '0';
?>
подскажи что нибудь!!!

czukowski 19.03.2008 23:32

Ответ: Что означает символ & в php
 
Видать, потому, что в денвере версия пхп старше.

Там же есть примеры:
PHP код:

<?php

// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR E_WARNING E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR E_WARNING E_PARSE E_NOTICE);

// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL E_NOTICE);

// Report all PHP errors (bitwise 63 may be used in PHP 3)
error_reporting(E_ALL);

// Same as error_reporting(E_ALL);
ini_set('error_reporting'E_ALL);

?>

Выбираешь строчку, которая тебе нужна (я не знаю, что это за ошибка - fatal error, warning, notice или что, попробуй по одной на крайняк) и вставляешь куда-нибудь в начало скрипта. Лучше, конечно, убирать & перед new, т.к. в следующих версиях php этот код может вызывать уже критические ошибки, т.к. это уже вообще не будет поддерживаться.

chertenok 20.03.2008 10:44

Ответ: Что означает символ & в php
 
Спасибо! буду пробовать так вот смотри у меня просто в скрипте есть много где стоит два && между операторами и че они обзначают? мож чем другим заменить их?а так спасибо!!

czukowski 21.03.2008 16:21

Ответ: Что означает символ & в php
 
Вах! && заменять ничем не надо, они и так работают :)
Рекомендуется заменить только где $что-то = &new что-то на $что-то = new что-то :)

chertenok 22.03.2008 10:32

Ответ: Что означает символ & в php
 
czukowski,
мож сделаем проще скока будет стоить чтоб ты подредактировал код и сайт нормально заработалпросто в денвере нормуль работает а тут такая бодяга выскочил ума уже непреложу!!

czukowski 22.03.2008 13:21

Ответ: Что означает символ & в php
 
Думаю, дорого, так что это лучше не ко мне...

Мешок 25.03.2008 10:11

Ответ: Что означает символ & в php
 
Цитата:

Сообщение от chertenok (Сообщение 1544209)
$Result = @mysql_connect($oDsn['host'], $oDsn['user'], $oDsn['pass']) or
$Result = &new PEAR_Error(mysql_error(), mysql_errno());

замени на
Код:

$Result = @mysql_connect($oDsn['host'], $oDsn['user'], $oDsn['pass']) or
die ('Соединение не восстановлено или что-то типа того')

Цитата:

Сообщение от chertenok (Сообщение 1544209)
@mysql_select_db($oDsn['database'], $Result) or
$Result = &new PEAR_Error(mysql_error(), mysql_errno());

замени на
Код:

@mysql_select_db($oDsn['database'], $Result) or
die('База не выбрана или что-то такое.')

Хотя может где-то предполагается

Цитата:

Сообщение от chertenok (Сообщение 1544209)
if(PEAR::isError($Result)) PEAR::throwError($Result->getMessage());
return $Result;

тогда не надо.
Ошибку выдает скорее всего, что нет там, куда ты это все перенес этой библиотеки, т.е. библиотеки с классом PEAR.
Это по ходу какая-то библиотека обработки ошибок. А она, кажца, была добавлена только в 5 ПХП.

czukowski 26.03.2008 11:53

Ответ: Что означает символ & в php
 
deprecated значит, что функция устарела и со временем перестанет поддерживаться.

lieba 19.07.2010 11:01

Re: Ответ: Что означает символ & в php
 
Капец! Изначально был задан вопрос: "Что означает символ & в php?" Ответов ... (имхо читать и понимать суть вопроса, тут не многие умеют).

Ответ: & (символ) -> амперсанд (описание):
1. в Языках Си, С++, Java и других, символ «&» применяется для обозначения нескольких операторов:
1.1 для получения указателя переменной, унарный оператор, «&» должен предшествовать идентификатору (имени) переменной;
1.2 оператор «&» обозначает логическое И;
1.3 оператор «&&» обозначает условное логическое И (проверка истинности последующего выражения только при условии истинности предшествующего).
2. в CGI оператором «&» разделяются аргументы в строке запроса.
3. в Бейсике символ &, стоящий сразу после имени переменной, означает тип переменной «длинное целое», а сочетание символов &H означает, что число записано в шестнадцатеричной системе счисления, а в Visual Basic, кроме того, с помощью операции & происходит конкатенация (объединение) строк.
4. в XML (в т. ч. HTML) конструкция вида &#xxxx; (где xxxx — число) позволяет вывести символ с кодом XXXX из юникод-пространства.
5. в большинстве командных интерпретаторов unix-подобных ОС команда, завершенная амперсандом, будет выполняться в "фоновом режиме".

Пример: Обработка формы.
Рассмотрим функцию process_form() обработки формы после ввода ответов пользователем.

Код:

<?php
function process_form() {
  global $name;
  global $cheese;
  global $times;

  if ($cheese == 'brie') { $cheese_message = 'I love brie.'; }
  elseif ($cheese == 'cheddar') { $cheese_message = 'Cheddar is awesome!'; }
  else { $cheese_message = 'Fresh mozzarella is divine.'; }

  $favorite_times = count($times);

  if ($favorite_times <= 1) {
    $times_message = 'You should eat cheese more often.';
  } elseif ($favorite_times > 1 && $favorite_times < 4) {
  $times_message = 'Those are good times to eat cheese.';
  } else {
    $times_message = 'You are eating too much cheese.';
  }

  echo "Hello $name.";
  echo "$cheese_message $times_message";
}

?>

Здесь мы считываем глобальные значения переменных, включенных в форму. Затем мы смотрим, какой сорт сыра выбрал пользователь и в соответствии с этим формируем начало выводимого на страницу текста. Далее используется функция count() для того, чтобы подсчитать, сколько раз в день ест сыр человек, ответивший на наши вопросы. А при анализе значений переменной $favorite_times мы воспользовались операциями сравнения "меньше чем" и "больше чем". Знаки && в условном операторе "$favorite_times > 1 && $favorite_times < 4" означают логическую операцию "И" ("and"). То есть $favorite_times должно одновременно быть больше 1 и меньше 4 для того, чтобы условие было выполнено. Ну, и наконец, выводим введенное человеком имя и наше сообщение для него (нее).

zdv2010 14.11.2010 12:20

Re: Что означает символ & в php
 
Знак амперсанта & означает передачу аргумента по ссылке, т.е. фактически передачу ее адреса.
например если в функцию передать переменную по ссылке, то все изменения , которые будут делаться с этой переменной внутри функции будут фактически проводиться над той переменной, которая была передана за пределами этой функции


Текущее время: 13:11. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2026 NoWa.cc

Время генерации страницы 0.03472 секунды с 9 запросами