sash

ответов0 / помог0

Типизация в php7

1679573979
Привет. Рассматриваю возможности php7 и столкнулся с непонятной ошибкой. Создаю два класса, у одного метод должен принять объект. И выдаёт в итоге ошибку Argument 1 passed to Calculator2::addTwoInts() must be an instance of object, instance of Calculator given,

declare(strict_types=1);
error_reporting(E_ALL);
 
class Calculator
{
  public $a;
  
  function __construct(){
    $this->a = array('jne'=>1);
  }
}
 
class Calculator2
{
  public function addTwoInts(object $y): bool { 
    var_dump($y);
    return true;
  }
}
 
$calc = new Calculator();
echo gettype($calc); // object!!!!
$b = new Calculator2();
$b->addTwoInts($calc);
Что оно хочет, не подскажете?
Jewbacabra
ответов1 / помог1
1679574325
В php нету класса, такого как Object в java, от которого наследуются другие классы.

public function addTwoInts(Calculator $y): bool
https://www.php.net/manual/ru/functions.arguments.php#functions.arguments.type-declaration.types
sashвлепить жирный лайк
Сначала вход
A B i U S JS PHP HTML CSS SQL C C++ C# PYTHON JAVA
Для входа только имэйл или имя и апроль
Можно сменить аватар
Имэйл Ваше имя
Пароль