PHP unlink() Vs unset()

These two PHP functions are identical on performing some undo operations but differs in the type of data on which they are applied to perform such undo functionalities.

In PHP, unlink() is acting as the drop operation which will completely delete files, whereas, unset() is used to delete the file content for emptying it. Let us look into the following paragraphs to have a detailed information about these functions with examples.


unlink() in PHP

PHP unlink() functions are used to delete a file within a directory completely on successful execution, Rather, it causes PHP warning error. The possibilities for error occurrences are, if we are not having permission to access the directory of the file to be deleted, or if such file does not exist.

This function accepts two arguments, that is, the required file name to be unlinked with the file content, and an optional context parameter used to specify the supported protocols like http://, ftp://, file:// and etc.

Now, let us have an example to learn the usage of unlink() function in PHP. In this example, we are going to create a file and add the content programmatically. And then, we are going to unlink() this file after getting a copy of it. For performing the file create, write and copy operation, we can use PHP supported file functions we have seen already.

$source = "D:/test_folder/hello.txt";
$destination = "D:/test_folder/welcome.txt";
$filePointer = fopen($source,"x");
fwrite( $filePointer, "PHP FUNCTIONS\n
File Handling functions\n" );

The above PHP program will preserve the copied file welcome.txt and unlink the original file hello.txt. And, we need to ensure that the target directory, in which we create new file and a copy of it, exists. And also, it is required to have appropriate permissions for unlinking files. Otherwise, the following warning error will be displayed.

Warning: unlink(D:/test_folder/hello.txt): Permission denied in ...

To suppress this warning notice displayed to the browser, we can use the unlink() function with the prefix @ symbol.

PHP unset()

Unlike the above PHP function, unset() is used to make the target file to be empty on removing its content, meaning that, the purpose is for clearing content instead of deleting a file permanently from the folder. unset() not only used to clear the file content, but also used for undoing initialization of a PHP variable, and thereby makes it empty.

In the following code sample, unset() is used for clearing the content initialized with the PHP variable $welcome_text. Similarly, we can use this function for emptying file by removing its content on specifying the path of the file as we have done with PHP unlink().

$welcome_text = "Welcome to PHPPOT";
if(isset($welcome_text)) {
echo "<strong>My welcome text is: </strong><i>" . $welcome_text . "</i>";
} else {
echo "<strong>My welcome text is: </strong> empty";

The PHP code shown above, it calls the function unset() after initializing $welcome_text. So, the initialization will not create an effect on this variable, that we can know on getting the result of echo statement. Since we have unset, the isset() function will return false for the conditional statement that leads the else part to execute, and so, browser displays,

My welcome text is: empty

This PHP code tutorial was published on July 14, 2013.

↑ Back to Top