Since your original question has already been answered let me suggest another approach that avoids global variables all together.
You seemingly have a function + a default value that you set as a global variable. You can also define default values for function parameters.
<?php // test.php
function test($flags=4) {
echo '<br/>in test flag="'.$flags.'"';
if ($flags!=0) {
echo ' flag works';
}
}
Hayır global değişken, ama yine de bir parametre olmadan test () çağırabilir ve işlevi varsayılan değeri kullanın - Eğer parametre geçirerek üzerine yazabilirsiniz.
function something() {
$include_file = 'test.php';
if ( file_exists($include_file) ) {
require_once ($include_file);
echo "\nwithout parameter: "; test();
echo "\nwith a parameter: "; test(16);
}
}
something();
exit;
baskılar
without parameter: <br/>in test flag="4" flag works
with a parameter: <br/>in test flag="16" flag works
İşte exactly aynı davranış değil ama may be Eğer ilk etapta ne istediğini ....
edit: Başka bir nokta olabilir
if ( file_exists($include_file) ) {
require_once ($include_file);
Kullandığınız inşa. Ben bu konuda güçlü bir görüş (ya da herhangi bir güçlü kanıtlar ;-)) yok ama kullandığınız düşünebilirsiniz
$something = include $include_file;
if ( false!==$something ) { /* error handling here... */ }
yerine. include "döner" php dosyası yoktur eğer yanlış. Tüm bu çalışmaları bunun için 'gerekli dahil dosyası açıkça FALSE dönmez olmasıdır. (APC gibi bir şey kullanırken örneğin) bu might dostça önbellek olacak. Fakat yine de: ben eldeki Bunun için hiçbir kanıt, sadece bir önsezi var. En azından bu kodu "nazikçe" bir hata işlemek için bir şans verir.