Introduction

Welcome! Today, we will explore creating a simple address book application using PHP and its associative arrays. This task will help you understand how to manipulate associative arrays in PHP, focusing on adding, retrieving, and deleting entries. By the end of this lesson, you'll have a solid grasp of these fundamental operations.

Introducing Methods to Implement

In this task, we will implement three methods to manage our address book:

  • function addContact($name, $phoneNumber): Adds a new contact. Returns false if the contact already exists; otherwise, adds the contact and returns true. In this task, let's assume phone numbers do not change, so it's not allowed to overwrite the existing contact's number.
  • function getContact($name): Retrieves the phone number for a given name. Returns null if the contact does not exist.
  • function deleteContact($name): Deletes a contact with the given name. Returns true if the existing contact is deleted; false otherwise.

Let's break down each method in detail in the next sections.

Step 1: Implementing 'addContact'

This method adds a new contact to the address book with the given $name and $phoneNumber. If the contact already exists, it returns false. Otherwise, it adds the contact and returns true.

Question: Why do you think we need to check if the contact already exists?

Answer: To avoid duplicating existing entries. If a contact with the same name already exists, we shouldn't allow overwriting its phone number in this method, as it's only for creation.

Here is the method implementation:

<?php

class AddressBook {
    private $contacts = array();

    public function addContact($name, $phoneNumber) {
        if (isset($this->contacts[$name])) {
            return false;
        }
        $this->contacts[$name] = $phoneNumber;
        return true;
    }

    // To display the current contacts
    public function printContacts() {
        foreach ($this->contacts as $name => $phoneNumber) {
            echo "$name: $phoneNumber\n";
        }
    }
}

// Example usage:
$addressBook = new AddressBook();
echo $addressBook->addContact("Alice", "123-456-7890") ? "true\n" : "false\n";  // true
echo $addressBook->addContact("Alice", "098-765-4321") ? "true\n" : "false\n";  // false
$addressBook->printContacts();  // Alice: 123-456-7890

In this method:

  • We verify if the contact already exists using isset($this->contacts[$name]).
  • If it exists, we return false.
  • If it doesn't exist, we add it to our associative array and return true.
Sign up
Join the 1M+ learners on CodeSignal
Be a part of our community of 1M+ users who develop and demonstrate their skills on CodeSignal