Автор Тема: func  (Прочитано 3754 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Enemy

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 204
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.lutsiv.com
func
« : 30 Сентября 2002, 22:53:29 »
pow($user$ulevel-1)
когда код в таком виде, пхп возращает ошибку - мол не льзя так "$ulevel-1". Тогда приходится ввести новую переменную, а может можна как то этот error обойти? без новой переменной?
И второй вопрос: есть ли обратная функция функции pow? Типа корень в степени? Если нет, то как мне его найти?
Life is Good

Оффлайн PilotV

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
func
« Ответ #1 : 01 Октября 2002, 01:12:34 »
1) Должно быть "зя", а не низя.
2) корень стерпени y из x = pow(x,1/y)
Я так думаю (c)

Оффлайн rembo

  • Больной
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.v4.ru
func
« Ответ #2 : 01 Октября 2002, 05:01:09 »
PHP manual - User contributions
Цитировать
The examples given above by the documentation writer all use hard-coded numbers. The POW function can be a bit trickier when used with variables.
This is because revisions made to the function after version 4.0.6 move away from the type looseness generally associated with PHP.
For example, the following line of code runs under 4.0.6 but raises a warning ("Invalid argument(s) passed to pow()") under 4.2.1:
 $term2 = 1 / pow(1+$r,$t);
?>
The reason? $t has type text. In 4.0.6 this was silently cast to int, but not in 4.2.1. One way to ensure this line of code works:
 $term2 = 1 / pow(1+$r,intval($t));
?>
Of course the current type of $t could be checked before passing it to POW. However, if PHP is going to go in this direction, it might be easier on programmers to enforce strict typing as in C.
программист должен все сделать так, чтоб потом ничего не делать

Оффлайн PilotV

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
func
« Ответ #3 : 01 Октября 2002, 16:09:13 »
Интересно... Но уроды, конечно.
Однако, это означает, что в вышеописанном примере должно (или может) ругаться на $user а не на $ulevel-1.
Я так думаю (c)

Оффлайн Enemy

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 204
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.lutsiv.com
func
« Ответ #4 : 01 Октября 2002, 17:16:25 »
ну intval($ulevel-1) я пробовал, не работает...
Life is Good

Оффлайн PilotV

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
func
« Ответ #5 : 02 Октября 2002, 00:55:14 »
Приведи код со строками инициализации передаваемых параметров, типа:
$user=...;
$ulevel=...;
pow($user, $ulevel-1);
Я так думаю (c)

Оффлайн Enemy

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 204
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.lutsiv.com
func
« Ответ #6 : 02 Октября 2002, 01:55:58 »
Цитировать
$user=...;
$ulevel=...;
pow($user, $ulevel-1);


простые int переменные:

$user=2;
$ulevel=3;
pow($user, $ulevel-1);
Life is Good

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
func
« Ответ #7 : 02 Октября 2002, 02:33:46 »
хмм, у меня твой код без проблем работает.
Может баг какой-то

или числа :
$user=0;
$ulevel=0;
pow($user, $ulevel-1);

полностью текст ошибки процититруй
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн PilotV

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
func
« Ответ #8 : 02 Октября 2002, 03:19:24 »
У меня аналогично все пучком.
Правда, у меня 4.2.3 а не 4.2.1 - может, уже наладили в ней.
Но у меня работает даже в полностью строковом варианте:
$user="2";
$ulevel="3";
pow($user, $ulevel);
Я так думаю (c)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
func
« Ответ #9 : 02 Октября 2002, 04:09:49 »
Цитировать
Правда, у меня 4.2.3 а не 4.2.1 - может, уже наладили в ней.
тестил на 4.1.3-dev
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Enemy

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 204
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.lutsiv.com
func
« Ответ #10 : 05 Октября 2002, 16:55:40 »
все нормально, сменил алгоритм и тепер это уже не проблема.
все равно всем спасибо
Life is Good

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28