<?php class Math_Complex { // Свойства: действительная и мнимая части. public $re, $im; // Метод: добавить число к текущему значению. число задается // своей действительной и мнимой частью. function add(Math_Complex $y) { $this->re += $y->re; $this->im += $y->im; } // Преобразуем число в строку function __toString() { return "({$this->re}, {$this->im})"; } } $a = new Math_Complex(); $a->re = 314; $a->im = 101; $b = new Math_Complex(); $b->re = 303; $b->im = 6; $a->add($b); echo $a->__toString();
<?php /* * To test Math_Complex and Math_ComplexOp * $Id$ */ require_once 'Math/ComplexOp.php'; $a = new Math_Complex(0.3, 0.5); $b = new Math_Complex(1.0, -M_PI_2); $im = -1.2; echo "a = " . $a->toString() . "\n"; echo "b = " . $b->toString() . "\n"; echo "im = {$im}i\n"; $z = Math_ComplexOp::createFromPolar(0.022, -0.223); echo "from polar, z = " . $z->toString() . "\n"; $z = Math_ComplexOp::sqrt($a); echo "sqrt(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::sqrtReal(-2.3); echo "sqrtReal(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::exp($a); echo "exp(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::log($a); echo "log(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::log10($a); echo "log10(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::conjugate($a); echo "conjugate(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::negative($a); echo "negative(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::inverse($a); echo "inverse(a) = " . $z->toString() . "\n";