Kết nối một lần các tập tin trong PHP

Giả sử chúng ta có một tập tin pow.php, trong đó lưu trữ một bộ các hàm:

pow.php<?php
  function square($num) {
    return $num ** 2;
  }
  
  function cube($num) {
    return $num ** 3;
  }
?>

Giả sử chúng ta sử dụng các hàm của tập tin pow.php trong tập tin sum.php:

sum.php<?php
  require 'pow.php';
  
  function squareSum($arr) {
    $res = 0;
    
    foreach ($arr as $elem) {
      $res += square($elem);
    }
    
    return $res;
  }
  
  function cubeSum($arr) {
    $res = 0;
    
    foreach ($arr as $elem) {
      $res += cube($elem);
    }
    
    return $res;
  }
?>

Giả sử trong tập tin chính, chúng ta kết nối cả hai tập tin chứa hàm:

index.php<?php
  require 'pow.php';
  require 'sum.php';
  
  echo square(3) + squareSum([1, 2, 3]);
?>

Tuy nhiên, có một vấn đề đang chờ đợi chúng ta. Đối với tập tin index.php, tập tin pow.php sẽ được kết nối hai lần: một lần trực tiếp và một lần thông qua tập tin sum.php.

Điều này sẽ dẫn đến sự cố, vì chúng ta sẽ có hai bộ hàm với tên giống nhau.

Để giải quyết vấn đề, nên kết nối tất cả các tập tin thông qua toán tử require_once - nó sẽ chỉ kết nối tập tin một lần, bỏ qua các lần kết nối lặp lại:

index.php<?php
  require_once 'pow.php';
  require_once 'sum.php';
  
  echo square(3) + squareSum([1, 2, 3]);
?>
Задание 1

Hãy tạo một số tập tin với các bộ hàm hữu ích. Kết nối các tập tin này với nhau và với tập tin chính của bạn.