PDA

Zobacz pełną wersję: Rozwiązany Surowe normy PHP: Tylko zmienne powinny być przekazywane przez odwołanie



ctrenks
30-05-18, 17:09
Błąd po uaktualnieniu VB 4.2.5, a następnie najnowszej wersji VBET...

Surowe normy PHP: Tylko zmienne powinny przekazywany przez odwołanie w /xxxx/includes/vbenterprisetranslator_class_translator.php na linii 410

ctrenks
02-06-18, 21:02
Każdy myśli o tym błędzie, jego re - pojawiające się, ale nie często?

vBET
04-06-18, 12:11
Będziemy go badać i wysłać odpowiedzi wkrótce.

vBET
04-06-18, 12:25
Quick fix w rozwiązaniu problemu:
1. Otwórz plik includes/vbenterprisetranslator_class_translator.php
2. Znajdź

public function translateTextToDivide(&$toTranslate, $serie) {
3. Usuń z linii znak '&'
4. Przejdź do 2 (każdy Tłumacz ma swoją własną wersję tej funkcji, więc trzeba usunąć znak w kilku miejscach)

Niektóre wyjaśnienia - znak '&' pozwala przekazać wartość bez kopiowania, więc został dodany ze względu na wydajność.
Od niektórych wersji PHP język wymusza aby przejść tam tylko zmienne (nie wartości liczyć ad hoc, gdy funkcja jest wywoływana). Jest to bardzo niewygodne, ponieważ musimy zmienić kod w wielu miejscach i Tworzenie zmiennych tymczasowych tylko dla wywołania funkcji, ale jest, jak to działa teraz, więc trzeba będzie zaktualizować nasz kod.
Daliśmy wam szybko naprawić. Będziemy sprawdzać, jak funkcja jest używana i zdecydować, czy lepiej usunąć '&' lub Tworzenie zmiennych tymczasowych w niektórych miejscach.

ctrenks
04-06-18, 18:44
Dziękuję, ale jeśli problem, jest wydajność będzie umożliwić błąd ponieważ jest zjawiskiem bardzo małe, ale dziękuję za wyjaśnienie.

vBET
15-06-18, 22:25
Rozwiązanie bez kary wydajności zostaną uwzględnione w nowej wersji. W quick fix, proszę:
1. Otwórz plik includes/vbenterprisetranslator_class_translator.php
2. Znajdź:

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

$rest = substr($toTranslate, $point);
return vbet_translateEncodedText(substr($toTranslate, 0, $point), $this->from, $this->to, $serie, $this)
.$this->translateTextToDivide($rest, $serie);
4. Przejdź do 2 (ten kod ma kilka tłumaczy)

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