Isto é um BUG ou há algum erro na instrução?

Senhores, vejam estas instruções dentro de um evento onBeforeUpdate:

{w_numQRespondidas}=0;
{w_numQNaoRespondidas}=0;

verificaprovafeita();

{w_numQRespondidas}=[w_numQResp];
{w_numQNaoRespondidas}=[w_numQNaoResp];
[w_numProva] = {idProvaRealizada};

echo "Prova Completada antes do if : ".{provaCompletada};
echo "Num Questões Não Respondidas : ".[w_numQNaoResp];

if ([w_numQNaoResp]=0) {{provaCompletada}=1;}
else {{provaCompletada}=0;}

echo "Prova Completada depois do if : ".{provaCompletada};

{dataAtualizacao} = date(‘d-m-Y H:i:s’);

Vejam os Echos das instruções em negrito que foram reproduzidos na aplicação.

Prova Completada antes do if : 0Num Questões Não Respondidas : 0Prova Completada depois do if : 0

A pergunta é, porque o conjunto lógica de instruções dentro do “If” em negrito, acima, não está funcionando???

É um bug ou estou errando em alguma coisa?
Abaixo as instruções em “código fonte” gerado pelo SC:

[b]echo "Prova Completada antes do if : ".$this->provacompletada ;

echo "Num Questões Não Respondidas : ".$this->sc_temp_w_numQNaoResp;

if ($this->sc_temp_w_numQNaoResp=0) {$this->provacompletada =1;}

else {$this->provacompletada =0;}

echo "Prova Completada depois do if : ".$this->provacompletada ;
[/b]
Podem me ajudar com isso?

Olá,

Qual o código do método verificaprovafeita()?

No if vc está fazendo uma atribuição.

para comparação deve ser ==