无法在 Laravel 中调用自定义函数

Posted

技术标签:

【中文标题】无法在 Laravel 中调用自定义函数【英文标题】:Unable to call custom function in 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()

【问题讨论】:

【参考方案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::但是不知道为什么没有返回任何值。

以上是关于无法在 Laravel 中调用自定义函数的主要内容,如果未能解决你的问题,请参考以下文章

laravel自定义公共函数

我在哪里把我的自定义类和函数放在 Laravel 中

laravel5.6laravel 自定义公共函数

laravel - 背包 - addFilter 自定义查询

向 Laravel 查询构建器添加自定义函数

如何使用google apps脚本在自定义函数中编辑自定义函数的调用单元格?