View Full Version: Opgelost PHP Strikte Normen: Alleen variabelen moeten worden doorgegeven aan de hand
Fout na het upgraden van VB naar 4.2.5 vervolgens de nieuwste versie van VBET..
PHP Strikte Normen: Alleen variabelen moeten worden doorgegeven door de verwijzing in /xxxx/includes/vbenterprisetranslator_class_translator.php op regel 410
Alle gedachten over deze fout, het opnieuw verschijnen, maar niet vaak?
We onderzoeken het en stuur je antwoord snel.
Snelle oplossing voor uw probleem:
1. Bestand openen includes/vbenterprisetranslator_class_translator.php
2. Zoeken
public function translateTextToDivide(&$toTranslate, $serie) {
3. Verwijderen van de regel-teken '&'
4. Ga naar 2 (elke vertaler heeft zijn eigen versie van deze functie, zodat je nodig hebt om te verwijderen het bord op verschillende plaatsen)
Enige uitleg - het teken '&' laat passeren waarde, zonder deze te kopiƫren, zodat het toegevoegd voor performance redenen.
Sinds enkele versie van PHP de taal krachten te passeren er alleen variabelen (geen waarden tellen ad hoc wanneer de functie wordt aangeroepen). Dit is erg vervelend, want we moeten veranderen de code op veel plekken en maken van tijdelijke variabelen alleen voor het aanroepen van de functie, maar dat is hoe het werkt nu, dus we zullen moeten werken met onze code.
We gaven je een snelle fix. We zullen nagaan hoe de functie wordt gebruikt en besluiten, is het beter om te verwijderen '&' of het maken van tijdelijke variabelen op sommige plaatsen.
Dank u, maar als de prestaties een probleem, ik zal het mogelijk maken de fout als een heel klein voorval, maar Bedankt voor de uitleg.
Oplossing prestaties zonder straf worden opgenomen in de nieuwe release. Voor een snelle fix, kunt u:
1. Bestand openen includes/vbenterprisetranslator_class_translator.php
2. Zoek:
return vbet_translateEncodedText(substr($toTranslate, 0, $point), $this->from, $this->to, $serie, $this)
.$this->translateTextToDivide(substr($toTranslate, $point), $serie);
3. Vervangen door:
$rest = substr($toTranslate, $point);
return vbet_translateEncodedText(substr($toTranslate, 0, $point), $this->from, $this->to, $serie, $this)
.$this->translateTextToDivide($rest, $serie);
4. Ga naar 2 (meerdere vertalers hebben deze code)
Automatic Translations (Powered by Google, Microsoft®,
Yandex, SDL Language Cloud, IBM Watson and Apertium):
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.