/* 일반 배열 */
$array_1 = [1, 2, 3, 4, 5];
var_dump(count($array_1)); // int(5)

$array_2 = [];
var_dump(count($array_2)); // int(0)

$array_2[0] = 1;
$array_2[1] = 2;
var_dump(count($array_2)); // int(2)

/* 연관 배열 */
$associative_array = [
	'name' => '홍길동',
	'age' => 30,
	'city' => '서울'
];
var_dump(count($associative_array)); // int(3)

/* 다차원 배열 */
$multi_dimensional_array = [
	[1, 2, 3],
	[4, 5, 6],
	[7, 8, 9]
];
var_dump(count($multi_dimensional_array)); // int(3)

// 다차원 배열의 모든 배열 요소의 개수를 ​​계산
var_dump(count($multi_dimensional_array, 1)); // int(12)
count(Countable|array $value, int $mode = COUNT_NORMAL): int
$multi_dimensional_array = [
	[1, 2, 3],
	[4, 5, 6],
	[7, 8, 9]
];
var_dump(count($multi_dimensional_array)); // int(3)

// 다차원 배열의 모든 배열 요소의 개수를 ​​계산
var_dump(count($multi_dimensional_array, 1)); // int(12)
class String_Length_Counter implements Countable {
    private $string;

    public function __construct($string) {
        $this->string = $string;
    }

    public function get_string_length() {
        return strlen($this->string);
    }

    // Countable 인터페이스의 메서드를 구현
    public function count() {
        return $this->get_string_length();
    }
}

// String_Length_Counter 객체 생성
$counter = new String_Length_Counter("Hello, world!");

// count() 함수를 이용하여 객체의 요소 수를 계산
echo "문자열의 길이: " . count($counter); // 출력: 13