如何在php中调用函数的条件中检查文件名

时间:2017-01-05 11:53:29

标签: php function if-statement

我正在从一个函数调用多个函数...根据我的范围,我想根据调用该函数的文件从父函数调用一个特定的函数...

function dispcategories() {
    include ('database/connection.php');

    $select = mysqli_query($con, "SELECT * FROM categories");

    while ($row = mysqli_fetch_assoc($select)) {
        echo "<table class='category-table'>";
        echo "<tr><td class='main-category' colspan='2'>".$row['category_title']."</td></tr>";
        dispsubcategories($row['cat_id']);
        dispsubcategoriesstate($row['cat_id']);
        echo "</table>";
    }
}

从dispcategories我想调用dispsubcategoriesstate()当且仅当文件updatestate.php调用dispcategories()...如果任何其他文件调用dispcategories()而不是它不应该调用dispsubcategoriesstate()... 希望每个人都能得到一个问题,如果条件与否,谁可以检查文件名是否被调用

1 个答案:

答案 0 :(得分:1)

包含文件就像在源代码中输入一样。您可以使用魔术常量__FILE__来确定当前文件,但这不会告诉您写入调用函数的文件。

我建议你更应该将一个参数传递给你的函数,然后根据它调用子程序。

声明您的函数,并将行dispsubcategoriesstate($row['cat_id']);替换为下面显示的块

function dispcategories($fetchSubCategories = false) {
    // your code goes here
    if ($fetchSubCategories === true) {
        dispsubcategoriesstate($row['cat_id']);
    }
    // the rest of your code goes here

}

当您从不想要子类别的文件中调用它时,您将像现在一样调用它:

dispcategories();

每当您希望它获取子类别时,您可以通过以下方式传递参数:

dispcategories(true); 

我正在使用可选的函数参数,如果这令人困惑,您应该阅读manual page