What role does umask play in setting permissions on Unix systems when using mkdir() in PHP?

When using mkdir() in PHP on Unix systems, the umask value determines the default permissions that are set on the newly created directories. The umask value is a bitmask that specifies which permissions should be removed from the default permissions. To ensure that the directories are created with the desired permissions, you can set the umask value before calling mkdir().

$desired_permissions = 0775; // Set the desired permissions for the directories
$old_umask = umask(0); // Set umask to 0 to ensure the desired permissions are applied
mkdir('/path/to/directory', $desired_permissions, true); // Create the directory with the desired permissions
umask($old_umask); // Reset umask to its original value