PDA

Ver Versão Completa: Resolvido PHP Rigorosos Padrões: Apenas as variáveis devem ser passados por referência



ctrenks
30-05-18, 17:09
Mensagem de erro depois de actualizar o VB para 4.2.5, em seguida, mais recente lançamento do VBET..

PHP Rigorosos Padrões: Apenas as variáveis devem ser passados por referência /xxxx/includes/vbenterprisetranslator_class_translator.php na linha 410

ctrenks
02-06-18, 21:02
Quaisquer pensamentos sobre este erro, a sua re -aparecendo, mas muitas vezes não?

vBET
04-06-18, 12:11
Vamos investigá-lo e enviar-lhe uma resposta em breve.

vBET
04-06-18, 12:25
Solução rápida para o seu problema:
1. Arquivo aberto includes/vbenterprisetranslator_class_translator.php
2. Encontrar

public function translateTextToDivide(&$toTranslate, $serie) {
3. Remover da linha de sinal '&'
4. Ir para o 2 (cada tradutor tem a sua própria versão desta função, então você precisa remover o sinal em vários lugares)

Alguma explicação - o sinal "& " permite a passagem de valor sem copiá-lo, então foi adicionado por motivos de desempenho.
Desde alguns versão do PHP é a linguagem de forças para passar lá apenas variáveis (e não valores de contagem ad hoc quando a função é chamada). Isso é muito inconveniente, porque precisamos alterar o código em muitos lugares e criar variáveis temporárias só para chamar a função, mas é assim que funciona agora, então vamos ter para actualizar o nosso código.
Nós demos a vocês uma solução rápida. Vamos verificar como a função é utilizada e decidir, é melhor remover '&' ou criar variáveis temporárias em alguns lugares.

ctrenks
04-06-18, 18:44
Obrigado, mas se o desempenho for um problema, eu vou permitir que o erro, como muito, muito, muito pequena ocorrência, mas Obrigado pela explicação.

vBET
15-06-18, 22:25
Solução sem o desempenho punição será incluído na nova versão. Para uma rápida correção, por favor:
1. Arquivo aberto includes/vbenterprisetranslator_class_translator.php
2. Pesquisar:

return vbet_translateEncodedText(substr($toTranslate, 0, $point), $this->from, $this->to, $serie, $this)
.$this->translateTextToDivide(substr($toTranslate, $point), $serie);
3. Substituir por:

$rest = substr($toTranslate, $point);
return vbet_translateEncodedText(substr($toTranslate, 0, $point), $this->from, $this->to, $serie, $this)
.$this->translateTextToDivide($rest, $serie);
4. Ir para o 2 (vários tradutores com este código)

Automatic Translations (Powered by Google, Microsoft®, Yandex, SDL Language Cloud, IBM Watson and Apertium):
AfrikaansAlbanianArabicBelarusianBulgarianCatalanChineseCroatianCzechDanishDutchEnglishEstonianFilipinoFinnishFrenchGalicianGermanGreekHaitian CreoleHebrewHindiHungarianIcelandicIndonesianIrishItalianJapaneseKoreanLatvianLithuanianMacedonianMalayMalteseNorwegianPersianPolishPortugueseRomanianRussianSerbianSlovakSlovenianSpanishSwahiliSwedishTaiwaneseThaiTurkishUkrainianVietnameseWelshYiddish
vBET 4.10.1 supports automatic translations