Инициализация класса уже выдает недостающие аргументы - PullRequest
0 голосов
/ 16 июня 2020

Я больше не знаю, что делаю не так. Даже не использую эту функцию, и у меня уже есть отсутствующие аргументы слева и справа, брошенные в журналы ошибок, как ни странно, он все еще выполняет свою работу и возвращает требуемую информацию, как и другие мои классы, но я понятия не имею, почему эти двое просто не закрываются .

<?php    
  include_once "classes/getT.php";
  include_once "classes/getC.php";

  $getT = new getT();
  $getC = new getC();
?>

Код из обоих включений полностью похож, только другой URL-адрес для передачи CURL и других переменных.

<?php
   class getT{
    function getT ($tID, $count, $offset) {
      $url = "...?tId=$tID&count=$count&offset=$offset";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

      $curl_response = curl_exec($curl);
      curl_close($curl);
      return $curl_response;
    }
  }
?>

Ответы [ 2 ]

2 голосов
/ 16 июня 2020

Похоже, вы пытаетесь использовать конструктор php в старом стиле (через метод с именем, совпадающим с именем класса). У него есть три аргумента, и вы должны предоставить их при создании нового объекта вашего класса:

  $getT = new getT($tID, $count, $offset);
  $getC = new getC($tID, $count, $offset);
0 голосов
/ 16 июня 2020

Если у вас есть класс:

<?php
   class getT{
    function getT ($tID, $count, $offset) {
      $url = "...?tId=$tID&count=$count&offset=$offset";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

      $curl_response = curl_exec($curl);
      curl_close($curl);
      return $curl_response;
    }
  }
?>

И вы создаете новый объект вроде этого:

$getT = new getT();

, вы получите отсутствующие аргументы, потому что вы не предоставили аргументы, которые у вас есть в вашем конструкторе ($tID, $count, $offset)

У вас есть три аргумента, поэтому вы должны добавить:

$getT = new getT(4, 50, 0); //or whatever values you have

Вам действительно стоит подумать об изменении способа вы называете конструкторы сегодня (это легко сделать, и вы можете пожалеть, если не сделаете этого позже, когда обновится PHP)

<?php
   class getT{
    public function __construct($tID, $count, $offset) {
      $url = "...?tId=$tID&count=$count&offset=$offset";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

      $curl_response = curl_exec($curl);
      curl_close($curl);
      return $curl_response;
    }
  }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...