致命错误:函数名必须是字符串PHP函数

致命错误:函数名必须是字符串PHP函数,php,mysql,fatal-error,Php,Mysql,Fatal Error,有人能帮忙吗?我收到以下错误:致命错误:函数名必须是…中的字符串。。。。在线120 这是代码-我觉得很好,但可能是第二双眼睛?我将突出显示第120行 function display($name, $display_name, $id, $package_results, $payment_type, $before_percent_box, $before_price_box, $after_percent_box, $after_price_box, $min_price_box) {

有人能帮忙吗?我收到以下错误:致命错误:函数名必须是…中的字符串。。。。在线120

这是代码-我觉得很好,但可能是第二双眼睛?我将突出显示第120行

function display($name, $display_name, $id, $package_results, $payment_type, $before_percent_box, $before_price_box, $after_percent_box, $after_price_box, $min_price_box)
{
    LINE 120 -> $records = $mysql_num_rows($package_results);   

    if ($records > 0)   //If there are records
    {
        while($package_row = mysql_fetch_assoc($results))
        {

        }
    }
    else    //If there were no records found
    {
        if ($payment_type == 1)     //If it is a PAYG
        {
            createPricePackageTable($name, $display_name, $id, "", $before_percent_box, $before_price_box, $after_percent_box, $after_price_box, $min_price_box, $records, 1);  //Create one blank table, 1 month
        }
        else    //If it is any other payment type other than PAYG
        {
            createPricePackageTable($name, $display_name, $id, "", $before_percent_box, $before_price_box, $after_percent_box, $after_price_box, $min_price_box, $records, 2);  //Create two blank tables, 6 and 12 months 
        }
    }
}
我还包括调用上述函数之前的代码:

function build($name, $id, $memberid, $results) 
{
    echo "<div class='popup-column' style='width: 100%;'>";
        echo "<h3>Payment Option " . $memberid . "</h3>";

        echo "<p>Which payment options do you offer?</p>";

        echo "<div class='payment-options'>";
            $payment_type = 0;

            $display_name = $name;      //Get the name of the Payment Type
            $name = str_replace(" ", "", $name);

            $disable  = 'readonly="readonly" class="readonly"';
            $before_percent_box = '';   //Setup variables to hold whether a input box is disabled or not
            $before_price_box = '';
            $after_percent_box  = '';
            $after_price_box  = '';
            $min_price_box    = '';

            switch($name)   //Disable some input box fields
            {
                case "Split1" :
                    $payment_type = 5;

                    break;

                case "Split2" :
                    $payment_type = 6;

                    break;

                case "Fixed1" :
                    $payment_type = 3;

                    $before_percent_box = $disable;
                    $after_percent_box  = $disable;
                    $after_price_box  = $disable;
                    $min_price_box    = $disable;

                    break;

                case "Fixed2" :
                    $payment_type = 4;

                    $before_percent_box = $disable;
                    $after_percent_box  = $disable;
                    $after_price_box  = $disable;
                    $min_price_box    = $disable;

                    break;

                case "PAYG" :
                    $payment_type = 1;

                    $before_percent_box = $disable;
                    $after_percent_box  = $disable;
                    $after_price_box  = $disable;
                    $min_price_box    = $disable;

                    break;

                case "Commission" :
                    $payment_type = 2;

                    $before_percent_box = $disable;
                    $before_price_box = $disable;

                    break;
            }

            displayPackagePricesTable($name, $display_name, $id, $results, $payment_type, $before_percent_box, $before_price_box, $after_percent_box, $after_price_box, $min_price_box);    //Display the table with the prices
函数构建($name、$id、$memberid、$results)
{
回声“;
回显“支付选项”。$memberid.”;
echo“您提供哪些付款选项?

”; 回声“; $payment_type=0; $display\u name=$name;//获取付款类型的名称 $name=str_replace(“,”,$name); $disable='readonly=“readonly”class=“readonly”'; $before\u percent\u box='';//设置变量以保存是否禁用输入框 $before_price_box=''; $after_percent_box=''; $after_price_box=''; $min_price_box=''; 开关($name)//禁用某些输入框字段 { 案例“Split1”: $payment_type=5; 打破 案例“拆分2”: $payment_type=6; 打破 案例“Fixed1”: $payment_type=3; $before_percent_box=$disable; $after_percent_box=$disable; $after_price_box=$disable; $min_price_box=$disable; 打破 案例“Fixed2”: $payment_type=4; $before_percent_box=$disable; $after_percent_box=$disable; $after_price_box=$disable; $min_price_box=$disable; 打破 案例“PAYG”: $payment_type=1; $before_percent_box=$disable; $after_percent_box=$disable; $after_price_box=$disable; $min_price_box=$disable; 打破 “委员会”案: $payment_type=2; $before_percent_box=$disable; $before_price_box=$disable; 打破 } displayPackagePricesTable($name、$display\u name、$id、$results、$payment\u type、$before\u percent\u box、$before\u price\u box、$before\u percent\u box、$after\u price\u box、$min\u price\u box);//显示包含价格的表格

由于可以调用,PHP尝试调用名为
$mysql_num_rows
的函数。该变量在代码中的任何地方都没有定义,并且是
NULL
。因此,您实际上是在尝试调用名称不是字符串的函数,并导致PHP触发该致命错误

将该行更改为:

$records = mysql_num_rows($package_results);   
          ^-- remove the $

您有一个以$符号开头的函数名。请将其删除:

$records = mysql_num_rows($package_results);

$mysql\u num\u rows
null
这个问题似乎与主题无关,因为它是关于打字错误的。你真的需要学习如何读取错误消息……还有一个相关的注意事项:
mysql\u*
函数不再维护,不应该在任何新的代码库中使用。它正在被淘汰,取而代之的是更新的API。Instead你应该和or一起使用。啊,谢谢你,谢谢你!