[RESOLVIDO] Bug biblioteca interna com valor do argumento alterado durante execução

Ao utilizar uma biblioteca interna para agrupar uma certa lógica compartilhada na aplicação, me deparo com um problema que já tinha ocorrido comigo antes e não entendi o motivo.

declarando o valor do argumento para 1:
image

recebendo o valor do parametro da função que deveria ser 1, mas está null.
image

o código:

o código possui alguns “debugs” e conversões de tipo, por uma suspeita que eu tinha, mas o problema é antes.

A aplicação está habilitada para utilizar essa biblioteca interna.

Faz um teste. Cria uma função igual porem com outro nome em “Métodos PHP” e veja se ela vai se comportar da mesma forma.

sim, se comporta igual e não atende o caso que seria reaproveitar em outras partes

1 Curtida

O problema eu já suspeitava, que seria problemas de escopo de variável.

Existia um campo gerenciado pelo SC com o mesmo nome que o parâmetro da função, acabando que sobrescrevia o valor.

Resolução, criar uma casse com métodos estáticos. A principio, não era para ocorrer esse tipo de problema com função, por ter um escopo diferente. E eu estava relutando para utilizar classes, pois o SC é bizarro.

class LancamentoService
{
    public static function movimentoEhRepasse($tipoLancamento)
    {
        $tipoConvertido = (int) $tipoLancamento;
        return $tipoConvertido >= 5 && $tipoConvertido <= 8;
    }

    public static function movimentoEhReembolso($tipoLancamento)
    {
        $tipoConvertido = (int) $tipoLancamento;
        return $tipoConvertido >= 1 && $tipoConvertido <= 4;
    }

    public static function tipoMovimentoDescricao($tipoLancamento)
    {
        if (self::movimentoEhReembolso($tipoLancamento)) return 'Reembolso';
        if (self::movimentoEhRepasse($tipoLancamento)) return 'Repasse';
        return 'Desconhecido';
    }
2 Curtidas