Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переопределение assert 
:(
    Опции темы
Enelar
Дата 10.1.2012, 02:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 13.1.2008

Репутация: нет
Всего: 1



Нужно для своих нужд определить функцию
function Assert( $condition, $file, $line )
Но столкнулся с отчаянным сопротивлением денвера:
Код

Fatal error: Cannot redeclare Assert() in W:\home\frontend.ttl\www\index.php on line 4
Fatal error: Cannot redeclare ASSERT() in W:\home\frontend.ttl\www\index.php on line 4
Fatal error: Cannot redeclare AsSeRt() in W:\home\frontend.ttl\www\index.php on line 4
Fatal error: Cannot redeclare asSErT() in W:\home\frontend.ttl\www\index.php on line 4


Текст index.php:
Код

<?php
function Assert( $condition, $file, $line )
{
}
?>
<hr>End.

Как с этим бороться?
PM MAIL   Вверх
Xplod
Дата 10.1.2012, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



Assert - это встроенная функция, переопределить не выйдет,  придумайте другое название функции

upd: PHP не поддерживает перегрузку функции, в отличии от С++

Это сообщение отредактировал(а) Xplod - 10.1.2012, 07:50
PM MAIL   Вверх
Enelar
Дата 10.1.2012, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 13.1.2008

Репутация: нет
Всего: 1



Если вы не заметили, определена функция с маленькой буквы.
Пхп что, регистро независим?

Добавлено через 1 минуту и 56 секунд
Господи и вправду так... для чего это сделано? Как отключить?

Добавлено через 2 минуты и 27 секунд
Чего? Какая минута, так время летит???

Добавлено через 2 минуты и 40 секунд
ЧЕГОООО КАКИЕ ДВЕ МИНУТЫ

Добавлено через 2 минуты и 51 секунду
А, понял, фуф
PM MAIL   Вверх
Xplod
Дата 10.1.2012, 08:33 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



выпрыгнул с балкона...
PM MAIL   Вверх
Sanchezzz
Дата 10.1.2012, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Можно удалить функцию но для изврата нужно pecl runkit расширение а оно нам нужно?

достаточно воспользоватся конструкцией класса или назвать функцию собственю немного похожу а в коде если долго не хочется парится произвести поиск и замену текста.

Код

class A {

  function aa($p){
     return;
  }

}

A::aa($_SERVER);




Это сообщение отредактировал(а) Sanchezzz - 10.1.2012, 11:29


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
$дмитрий
Дата 10.1.2012, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



Если так парит используй преффикс
PM MAIL   Вверх
actuator
Дата 10.1.2012, 13:27 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 15.12.2011

Репутация: нет
Всего: 3



Зачем определять свой Ассерт? Чтобы получить сомнительное удовольствие писать везде assert(a==0, __FILE__, __LINE__)? Можно же просто обработчик подключить: assert_options(ASSERT_CALLBACK, 'my_assert_handler');.
PM MAIL   Вверх
Enelar
Дата 10.1.2012, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 13.1.2008

Репутация: нет
Всего: 1



Да, в итоге с префиксом, с классом не очень.
Ассерт нужен что бы писать a == 0, а не "а == 0".

Благодарю господа.
PM MAIL   Вверх
actuator
Дата 10.1.2012, 17:10 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 15.12.2011

Репутация: нет
Всего: 3



Цитата(Enelar @  10.1.2012,  17:00 Найти цитируемый пост)
Ассерт нужен что бы писать a == 0, а не "а == 0".

Так assert и принимает bool либо string. Строки нужны чтобы при отключении assert'а избежать выполнения проверки.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0849 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.