duandongjin5647 2013-12-04 17:45
浏览 20
已采纳

致命错误:函数名必须是字符串PHP函数[关闭]

Can anyone help? I am getting the following error: Fatal Error: Function name must be a string in .... on line 120

Here is the code - it looks fine to me, but maybe a second pair of eyes? I will highlight line 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 
        }
    }
}

I have also includes the code leading up to the calling of the above function:

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

...

  • 写回答

2条回答 默认 最新

  • duan5991518 2013-12-04 17:46
    关注

    Since it is possible to call a variable function, PHP tries to call a function named $mysql_num_rows. That variable isn't defined anywhere in your code and is NULL. So you'll essentially be trying to call a function whose name is not a string and causes PHP to trigger that Fatal error.

    Change that line to:

    $records = mysql_num_rows($package_results);   
              ^-- remove the $
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c