Skip to content

Instantly share code, notes, and snippets.

View vanbrabantf's full-sized avatar
😃

Frederick Vanbrabant vanbrabantf

😃
View GitHub Profile
<?php
$right = $this->invert($tree->getLeft());
$left = $this->invert($tree->getRight());
return new Node($tree->getValue(), $left, $right);
<?php
if ($tree === null) {
return null;
}
<?php
public function invert(?Node $tree): ?Node
{
if ($tree === null) {
return null;
}
$right = $this->invert($tree->getLeft());
$left = $this->invert($tree->getRight());
<?php
public function invert(Node $tree): Node
{
$right = $tree->getLeft();
$left = $tree->getRight();
return new Node($tree->getValue(), $left, $right);
}
<?php
$level3al = new Node('deepAL', null, null);
$level3ar = new Node('deepAR', null, null);
$level3bl = new Node('deepBL', null, null);
$level3br = new Node('deepBR', null, null);
$level2a = new Node('midA', $level3al, $level3ar);
$level2b = new Node('midB', $level3bl, $level3br);
<?php
class Node
{
private $value;
private $left;
private $right;
public function __construct(string $value, ?Node $left, ?Node $right)
{
<?php
declare(strict_types=1);
final class CustomerName
{
private $firstName;
private $lastName;
public function __construct(string $firstName, string $lastName)
<?php
public function setFirstName(string $firstName): CustomerName
{
return new self($firstName, $this->lastName());
}
<?php
public function __construct(string $firstName, string $lastName)
{
Assert::stringNotEmpty($firstName);
Assert::stringNotEmpty($lastName);
Assert::alpha($firstName);
Assert::alpha($lastName);
$this->firstName = $firstName;
$this->lastName = $lastName;
<?php
public function sendMail(
CustomerName $customerName,
Email $email
): void
{
$mail = new Mail($customerName->fullName(), $email);
// send mail
}