【问题标题】:Unable to call custom function in Laravel无法在 Laravel 中调用自定义函数
【发布时间】:2015-06-29 19:40:51
【问题描述】:

我正在尝试基于字符串检索排列集。但是,我无法正确执行该功能。我对公共静态或私有或我应该如何调用该函数不太擅长。

<?php namespace Helpers;

class Helper {

public static function permute($str,$i,$n) 
{
   if ($i == $n)
       return "$str\n";
   else {
        for ($j = $i; $j < $n; $j++) {
          swap($str,$i,$j);
          permute($str, $i+1, $n);
          swap($str,$i,$j); // backtrack.
       }
   }
}

public static function swap(&$str,$i,$j) {
    $temp = $str[$i];
    $str[$i] = $str[$j];
    $str[$j] = $temp;
}}

这就是我从控制器调用函数的方式。

Helper::permute($str,0,strlen($str))

我收到此错误:

调用未定义函数 Helpers\swap()

【问题讨论】:

    标签: php laravel static namespaces public


    【解决方案1】:

    您正在从静态上下文调用方法 swap()permute(),但将它们视为非静态的。
    尝试将其更改为以下内容:

    public static function permute($str,$i,$n) 
    {
        if ($i == $n)
            return "$str\n";
        else {
            for ($j = $i; $j < $n; $j++) {
                self::swap($str,$i,$j);
                self::permute($str, $i+1, $n);
                self::swap($str,$i,$j); // backtrack.
            }
        }
    }
    

    【讨论】:

    • 把3行的调用方法改成self::但是不知道为什么没有返回任何值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 2019-08-23
    • 2014-01-31
    • 1970-01-01
    相关资源
    最近更新 更多