After we add a file inside Myfile.php
with:
require_once 'abc.php';
or
include_once 'abc.php';
How we will remove the file? Or how to stop the abc.php
file content being accessed after a certain block of code?
After we add a file inside Myfile.php
with:
require_once 'abc.php';
or
include_once 'abc.php';
How we will remove the file? Or how to stop the abc.php
file content being accessed after a certain block of code?
In PHP, once a resource is included, it can not be removed or "un-included". This is the very principle of PHP file inclusion. See : http://www.php.net/manual/en/function.include.php
The include statement includes and evaluates the specified file.
Once the interpreter has evaluated your code, the job is done. All operations have been taken into account, and in order to undo the changes, you have to perform the opposite operations. For instance, if your included file declares the class MyClass
then you would need to undefine it, which is also impossible for very same reason as above. See : Unset Class.
If your file actually adds functions and not classes, then since PHP 5.3, you can use anonymous functions. This allows you to assign functions to variables, which can be unset. See this answer for details.
If a part of your code's logic has to disappear at some point, then you did not spend enough time designing before implementing.
If you need to undo an inclusion because of name conflicts, the problem is pretty much the same. However, a solution in this case would be to use namespaces. Still, a little review of your application design should be enough to avoid such conflicts.
Edit about frameworks : a single framework cannot fit for each and every application. Symfony, for instance, uses namespaces absolutely everywhere to avoid any possible conflicts (yet, some occur). If your framework does not offer you the possibility to easily distinguish two model classes with the same name, then I'd say it does not fit (at least, not with your design).
if($x=TRUE){include("thisFile_inc.php);}
. –
Party There's a workaround. You can include the file while output buffering is turned on. Then save the output into a variable like $output
. Use it if you need it, otherwise, just do unset($output)
to discard it;
ob_start();
include('file.php');
$output = ob_get_contents();
ob_end_clean();
And later on, you can do unset($output)
when you don't need it anymore.
© 2022 - 2024 — McMap. All rights reserved.
user_details
andpayment_details
, it will create classes inuser
folder andpayment
folder withdetails.php
file and class -details
.. – HerwickModel\user\details
,Model\payment\details
. – Herwick