如何在PHP中调用函数

4
我一直在学习如何创建会话对象的课程,已经成功了。如果我将完整的代码放入PHP文件中,一切都很好!但是我想把它放在另一个模块(PHP文件)中,并只使用一行代码(或等效的方式),比如GetSessiondata();
<?php
$SqlCon = new DBConnect("Databaselocation","Database","Usr","Pss");                     
$UserDataSet = $SqlCon->GetUserList("SELECT * FROM Users");

echo "<br /><br />";
echo "<br /><br />";

if ($UserDataSet)          
{               
    echo "<table>" . "<thead>" ;
    echo "<tr><th scope=\"col\">" . 'Usr' . "</th>";
    echo "<th scope=\"col\">" . 'Lvl' . "</th></tr></thead><tbody>";                
    foreach($UserDataSet as $data)
    {                                  
        echo "<td>" .$data->GetUsrName()."</td>" ;
        echo "<td>" .$data->GetUsrLevel()."</td></tr>" ;                                       
    }
    echo "<tfoot><tr><th scope=\"row\" colspan=\"2\">" . 'Total Users = 2' . "</th></tr></tfoot>";
    echo "</tbody>" . "</table>" ;  
}
else
    echo "Nothing Found in DB!";
?>

我认为他想问的是如何将代码放入函数中,以及可能需要哪些代码。 - Mawg says reinstate Monica
1
@Mawg 对不起,我没有读完所有的帖子。 - Squalo
是的,抱歉,我不太擅长这个,我还在努力学习中...请原谅!所以,require一次会将所有数据放置在调用它的页面上? - Mark
像这样... <?php include_once 'config/Tables.php';?> 或者 <?php require("config/Session.php");?> - Mark
如果您正在寻找有关此主题的更多信息,我建议您首先阅读官方文档。例如面向对象编程(OOP)的手册页面。这可能会为您提供一个很好的起点,了解要研究什么。OOP具有提供可读性和清晰度的优点。 - IsThisJavascript
显示剩余3条评论
3个回答

1

我建议将这个重构过程分为两步:

1.将您的代码封装到函数中:

function someFunctionName() {
    $SqlCon = new DBConnect("Databaselocation","Database","Usr","Pss");                     
    $UserDataSet = $SqlCon->GetUserList("SELECT * FROM Users");

    echo "<br /><br />";
    echo "<br /><br />";

    if ($UserDataSet)          
    {               
        echo "<table>" . "<thead>" ;
        echo "<tr><th scope=\"col\">" . 'Usr' . "</th>";
        echo "<th scope=\"col\">" . 'Lvl' . "</th></tr></thead><tbody>";                
        foreach($UserDataSet as $data)
        {                                  
           echo "<td>" .$data->GetUsrName()."</td>" ;
           echo "<td>" .$data->GetUsrLevel()."</td></tr>" ;                                    
        }
        echo "<tfoot><tr><th scope=\"row\" colspan=\"2\">" . 'Total Users = 2' . "</th></tr></tfoot>";
        echo "</tbody>" . "</table>" ;  
    }
    else
        echo "Nothing Found in DB!";
}

// and call your function
someFunctionName();

2.创建另一个文件,比如说functions.php,放在同一个目录下并将函数移入其中。现在你可以在你的php页面中引用这个文件:

require_once 'functions.php';

// and call your function
someFunctionName();

非常感谢,我会尝试一下的。我已经大致知道把它包装在一个函数中是正确的方向,但不知道如何调用它受到了限制。 - Mark

1
您需要在想要使用它的位置“require”您的文件。
这里是一个例子
使用类:
(请注意:此处为原文,无需翻译)

Whatever.php

class Whatever {
  public function __construct() {
    // Ever when the code is instantiated, this will be called too!
  }
  public function myMethod() {
    echo 'hello';
  }
}

index.php

require_once('./Whatever.php');
$whatever = new Whatever();
$whatever->myMethod();

Without classes:

functions.php:

function whatever(){ echo 'hello'; }

index.php:

require_once('./functions.php');
whatever();

阅读更多:

Require:http://php.net/manual/es/function.require.php

Require_once:http://php.net/manual/es/function.require-once.php


1
你好,我尝试了第一种方法,即添加require_once并调用函数,但是这会给我带来一个PHP错误:“PHP Parse error: syntax error, unexpected 'public' (T_PUBLIC)”。我在这里阅读到...https://dev59.com/yWYr5IYBdhLWcg3w29vi,它说这是不正确的,因为它应该在一个类中? - Mark

0

我想你正在寻找include

保存你的文件,然后你可以像这样在另一个文件中包含它:

include 'my_file.php';

你也可以使用:

阅读文档以获取更多解释或查看此问题


太棒了,这很有效。你需要在想要使用它的地方“require”你的文件。这里是一个例子使用类:MyClass.php我实际上已经尝试过使用MyClass的第二种方法,但没有在html顶部使用require_once :-)非常感谢大家的帮助。 - Mark
1
@Mark,你可以有多个文件(一个用于数据库连接,一个用于常量等),将它们包含在1个文件(例如master.php)中,然后在需要的每个页面上包含此文件。当你学习面向对象编程时,你可能想创建一个自动加载器(可以自动包含你的类文件)。希望你会喜欢学习PHP;-) (PS:如果我的问题解决了你的问题,你可以点赞和/或接受它) - AymDev
这正是我想学习的。我想学习面向对象编程,我正在尽力学习。但我有一些学习障碍,但我也不是那种说“我不行”的人 :-),所以我在努力!你们所有人给我的伟大反馈都让我朝着正确的方向前进...到目前为止,我已经创建了Session.php、SessionData.php和GetSessionData.php。我也想把所有的SQL语句放在一个地方。你的答案在哪里可以找到呢?因为我在页面上找不到它。 - Mark
1
@Mark,我建议你经常浏览StackOverflow和php.net文档,这会对你有很大帮助!接受我的答案:在答案左侧,您可以看到分数(您可以投票),在分数下方,您可以看到一个灰色的勾选框。点击它,您就可以设置问题的被接受答案。 - AymDev
我可能在我的问题/反馈和它们需要的位置上犯了一个错误(如果是这样,我很抱歉!)你的建议很有帮助,让我取得了巨大的进步,谢谢。但为了澄清答案,让每个人都满意 :-) “使用类:”部分“是”我如何设置我的Class:Method,所以这帮助我理解了类/方法的工作原理!并且使用“include”方法(如果这是正确的术语!)已经帮助我启动了GetSessionData.php,所以再次感谢大家提供的每一条信息! - Mark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接