Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не инициируется функция
Форумы портала PHP.SU » » Вопросы новичков » Не инициируется функция

Страниц (1): [1]
 

1. rasl89 - 10 Декабря, 2020 - 19:57:55 - перейти к сообщению
Всем привет.
Такая проблема.
В некотором исполняемом файле подключаю файл и вызываю в нем функцию:

PHP:
скопировать код в буфер обмена
  1.         include_once ($_SERVER['DOCUMENT_ROOT'].'/wp-content/plugins/fre-credit/functions.php');
  2.         credit_get_total_project_working($user_ID);


Далее сама функция:
PHP:
скопировать код в буфер обмена
  1. function credit_get_total_project_working($user_ID){
  2.     global $bidsumma;
  3.  
  4.     if($_SERVER["REQUEST_METHOD"]=="POST"){
  5.         if (!empty($_POST["bid_budget"])){
  6.             $bidsumma = $_POST["bid_budget"];
  7.         }
  8.     }
  9.  
  10.     $total_project_working = 0 ;
  11.  
  12.     $total_project_working += $bidsumma;
  13.  
  14.     $list_project_working  = get_posts(array(
  15.         'post_type' => 'bid',
  16.         'author' => $user_ID,
  17.         'post_status' => array('disputing','accept','complete'),
  18.         'posts_per_page' => -1,
  19.     ));
  20.     if(!empty($list_project_working)){
  21.         foreach ($list_project_working as $v){
  22.             $payment_amount = 0 ;
  23.             $fre_paykey = get_post_meta($v->ID,'fre_paykey',true);
  24.             $history_status_transfer = get_post_meta($fre_paykey,'history_status',true);
  25.             if($history_status_transfer == 'pending'){
  26.                 $bid_budget = get_post_meta($v->ID,'bid_budget',true);
  27.                 $payer_of_commission = get_post_meta($v->ID,'payer_of_commission',true);
  28.                 if($payer_of_commission !='project_owner'){
  29.                     $commission_fee = get_post_meta($v->ID,'commission_fee',true);
  30.                     $payment_amount = $bid_budget - $commission_fee;
  31.                 }else{
  32.                     $payment_amount = intval($bid_budget);
  33.                 }
  34.             }
  35.  
  36.             $total_project_working += $payment_amount;
  37.  
  38.         }
  39.     }
  40.  
  41.     return $total_project_working;
  42. }


$user_ID передаю через функцию, а вот $bidsumma пытаюсь поймать постом.
не выходит, передать $bidsumma через функцию по типу:
PHP:
скопировать код в буфер обмена
  1. function credit_get_total_project_working($user_ID,$bidsumma )


не могу эта функция завязана еще и на другие процессы, начинают на это ругаться

как в функцию транслировать еще данные $bidsumma?

POST не ловится, НО я итак его уже ловлю в исполняемом файле где инициирую эту функцию, но ведь это не одноразовая переменная, почему не ловится в функции...
2. Строитель - 10 Декабря, 2020 - 20:41:23 - перейти к сообщению
rasl89 пишет:
как в функцию транслировать еще данные $bidsumma?
Передавайте $bidsumma вторым аргументом, а чтоб не возникло конфликтов с остальными вызовами этой функции, сделайте этот аргумент необязательным.
3. rasl89 - 10 Декабря, 2020 - 21:02:53 - перейти к сообщению
Строитель пишет:
rasl89 пишет:
как в функцию транслировать еще данные $bidsumma?
Передавайте $bidsumma вторым аргументом, а чтоб не возникло конфликтов с остальными вызовами этой функции, сделайте этот аргумент необязательным.


я так и сделал:
PHP:
скопировать код в буфер обмена
  1. credit_get_total_project_working($user_ID, $bidsumma);


а там где был конфликт:

PHP:
скопировать код в буфер обмена
  1. $total_project_working = credit_get_total_project_working($user_id, $bidsumma = null);


но это не помогло, переменная $bidsumma передает пустоту, но вне функции данные в ней есть
4. Строитель - 11 Декабря, 2020 - 00:26:27 - перейти к сообщению
rasl89 пишет:
я так и сделал

А надо было сделать наоборот - в объявлении функции передать необязательный аргумент
PHP:
скопировать код в буфер обмена
  1. dit_get_total_project_working($user_ID, $bidsumma=null){
  2.     //code
  3. }
5. rasl89 - 11 Декабря, 2020 - 17:07:18 - перейти к сообщению
Строитель пишет:
rasl89 пишет:
я так и сделал

А надо было сделать наоборот - в объявлении функции передать необязательный аргумент
PHP:
скопировать код в буфер обмена
  1. dit_get_total_project_working($user_ID, $bidsumma=null){
  2.     //code
  3. }


так тоже не работает, если в инициации функции мы ставим:
$bidsumma=null, а в самой функции $bidsumma
начинает ругаться на другую функцию, которую я ранее указывал,
ошибки:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Fatal error: Uncaught ArgumentCountError: Too few arguments to function credit_get_total_project_working(), 1 passed in C:\Webserver\OSPanel\domains\sporim2\wp-content\plugins\fre-credit\functions.php on line 237 and exactly 2 expected in C:\Webserver\OSPanel\domains\sporim2\wp-content\plugins\fre-credit\functions.php on line 508
  2. ( ! ) ArgumentCountError: Too few arguments to function credit_get_total_project_working(), 1 passed in C:\Webserver\OSPanel\domains\sporim2\wp-content\plugins\fre-credit\functions.php on line 237 and exactly 2 expected in C:\Webserver\OSPanel\domains\sporim2\wp-content\plugins\fre-credit\functions.php on line 508


строка другой функции на которую ругается дебаггер (237 стр):
PHP:
скопировать код в буфер обмена
  1. $total_project_working = credit_get_total_project_working($user_id);


если и в инициации и в самой функции ставим $bidsumma=null, то $bidsumma не передается, но ошибки нет
6. Строитель - 11 Декабря, 2020 - 22:12:37 - перейти к сообщению
rasl89, то есть вы хотите сказать, что такой пример у вас не работает?
7. rasl89 - 11 Декабря, 2020 - 22:20:50 - перейти к сообщению
Строитель пишет:
rasl89, то есть вы хотите сказать, что такой пример у вас не работает?


Не работает( замучился, все вариации перебрал.
$bidsumma приходит пустая в функцию, хоть тресни
8. Строитель - 11 Декабря, 2020 - 22:24:18 - перейти к сообщению
rasl89 пишет:
Не работает( замучился, все вариации перебрал.
Вы хоть по ссылке посмотрели? А то там-то как раз рабочий пример опубликован, с ожидаемым результатом. Если у вас не работает заведомо рабочий пример, вы явно делаете что-то не так. На этом я покидаю тему.
9. rasl89 - 11 Декабря, 2020 - 22:30:46 - перейти к сообщению
Строитель пишет:
rasl89 пишет:
Не работает( замучился, все вариации перебрал.
Вы хоть по ссылке посмотрели? А то там-то как раз рабочий пример опубликован, с ожидаемым результатом. Если у вас не работает заведомо рабочий пример, вы явно делаете что-то не так. На этом я покидаю тему.


да, конечно посмотрел, спасибо!
(Добавление)
он вроде как не полный

 

Powered by ExBB FM 1.0 RC1