如何给PHP函数赋予有意义的名称? - php

这似乎是一个愚蠢而琐碎的问题。我在PHP中命名函数时遇到问题。我有两个函数可检索给定学生的ID或姓名和电子邮件的所有信息。

由于PHP不具有与JAVA相同的功能重载,因此我很难命名这些功能。

这是我所做的。这些是我给他们的名字。

get_students_with_id($id)get_students_with_name_and_email($name, $email)

但是参数会增加。我需要一个更好,更简单的解决方案来命名这些函数或方法。顺便说一句,它们都属于同一类。那我该怎么办?提前致谢。

php参考方案

搜索方法可能如下所示:

class Student {

    public static $columns =  ['id', 'name', 'email', 'password', /* ... */];

    // Imagine that this method is called with the following array:
    // ['name' => 'Joe', 'password' => 'Pa55w0rD']
    public static function search(array $queries) {

        // We will be appending WHERE clauses to this SQL query
        $sql = 'SELECT * FROM students WHERE ';

        // Get the column names
        $parameters = array_keys($queries);

        // Create a parameterized WHERE clause for each column
        foreach ($parameters as & $param) {
            if ( ! in_array($param, self::$columns)) {
                throw "Invalid column";
            }
            $param = "{$param} = :{$param}";
        }
        // Squish parameterized WHERE clauses into one
        // and append it to the SQL query
        $sql .= implode(' AND ', $parameters);

        // The query will now look something like this:
        //     SELECT * FROM students WHERE name = :name AND password = :password

        // Prepare the SQL query
        $stmt = DB::instance()->prepare($sql);

        // Go over the queries and bind the values to the columns
        foreach ($queries as $col => $val) {
            $stmt->bindValue(":" . $col, $val);
            // Internally the query will look something like this:
            //     SELECT * FROM students WHERE name = 'Joe' AND password = 'Pa55w0rD'
        }
        // Execute
        $result = $stmt->execute();
        // ...
    }
}

要使用该方法,您将执行以下操作:

$student = Student::search([
    'name'     => 'Joe',
    'password' => 'Pa55w0rD',
]);

您可能希望以一种更安全的方式处理数据(例如,确保对密码进行哈希处理),但是总的想法就在那里。

PHP标头功能不起作用 - php

我曾经使用此功能从一个PHP页面重定向到另一个:header( 'Location: student.php?cnp='.$_REQUEST['name']) ; 在我的本地主机中,它确实可以工作,但是如果在Internet中对其进行测试,则不会重定向。我也尝试给出完整的路径(如http://.../student.p…

哪个更好的做法?从Jquery响应获取HTML - php

这只是一个问题,以了解人们如何以及如何做到这一点,但是假设用户向列表中添加了一些内容,完成后,它将运行下面的ajax并更新.user-stream-list$.ajax({ url: "user-stream-list.php", success: function(data){ $(".user-stream-list…

将一个PHP对象发送到另一个PHP页面 - php

我想知道是否有一种方法可以将PHP对象发送到另一台计算机上的另一个PHP页面?例如-我实现了一个构造Trie的类。现在,在构造Trie之后,我想将对象发送到另一个PHP页面,以便它也可以访问该对象。可行的选择是将其包装到某种编码的JSON请求中,然后将其发送到可以使用jQuery将其中继到所需页面的页面吗?对不起,我对此绝对陌生!将感谢提供的任何帮助。干杯!…

在Codeigniter中以数组形式获取查询结果 - php

我有一个查询,如何获取结果作为数组? php大神给出的解决方案 像这样:$rs = $this->db->query(...); $array = $rs->result_array(); https://www.codeigniter.com/user_guide/database/results.html

验证php中的javascript对象 - php

在我的用户界面中,用户可以构建一些javascript对象,例如:var box = { "width": "100px", "height": "200px", "click": function () { alert("You clicked t…