PHP break werkt niet bij nieuwe host
Code (php)
Bij mijn oude host krijg ik dan 'testpiet' als resultaat, maar bij mijn nieuwe host een witte pagina. De PHP-versie staat op 7.0. Enig idee of er een manier is om dat aan te zetten? Of zie ik iets over het hoofd?
Fatal error: 'break' not in the 'loop' or 'switch' context in /bla/bla.php on line ...
Op voorgaande PHP versies werd de het script tot aan de break gewoon uitgevoerd, maar zag je normaal gesproken wel een warning daarna.
De vraag is echter.... Wat doet de break daar? Bedoel je geen exit of die() om het script te stoppen?
En om verder te borduren op je vraag: Waarom moet je script abrupt stoppen? Kan je dit niet netjes handlen met if-else statements?
Daar staat zoiets in:
PHP Fatal error: 'break' not in the 'loop' or 'switch' context in ........
Tussen de pagina's die ik wil overzetten zitten wel een paar complexe scripts waar ik 'break' heb gebruikt. Ik zit er niet echt op te wachten dat ik die allemaal moet gaan wijzigen. Deze code is niet zozeer een concreet voorbeeld, maar puur om te testen of de pagina werkt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
ini_set('display_errors',1);
error_reporting(E_ALL|E_STRICT);
echo 'Current PHP version: ' . phpversion();
echo $test;
$test = "test";
echo $test;
if($test == "test") {echo "piet"; break;}
echo "jan";
?>
ini_set('display_errors',1);
error_reporting(E_ALL|E_STRICT);
echo 'Current PHP version: ' . phpversion();
echo $test;
$test = "test";
echo $test;
if($test == "test") {echo "piet"; break;}
echo "jan";
?>
G Jansma op 13/05/2017 21:31:21:
Ik zit er niet echt op te wachten dat ik die allemaal moet gaan wijzigen.
Ken je 'find & replace' al?
Gewijzigd op 13/05/2017 21:44:56 door - Ariën -
Wanneer je break correct gebruikt, dus in de situaties waar dat zou mogen geeft het geen problemen. Je probleem is dus per definitie dat je break niet correct gebruikt.
Edit: Maar zover ben ik nog niet gekomen om die betreffende pagina's te gaan checken. Dit scriptje leek me ook te moeten functioneren gezien het op mijn oude host (weliswaar 5.5) ook werkt. Maar is het dan een PHP 7.0 kwestie, of ligt het aan de host?
Gewijzigd op 13/05/2017 21:53:45 door G Jansma
In jouw test-script gebruik je 'break' verkeerd. Dát is de kwestie.
- Ariën - op 13/05/2017 21:56:52:
In jouw test-script gebruik je 'break' verkeerd. Dát is de kwestie.
Klopt.
Zo werkt het namelijk wel gewoon:
@SanThe: In PHP 7 wordt het hele script niet eens met uitgevoerd dan. Geloof ik...
Weet je dan wel zeker dat het probleem break is? Of zit je je blind te staren op iets anders, zoals het gebruik van de oude mysql extensie?
@Ariën dat geldt voor alle PHP versies vanaf 4.0.0.
Gewijzigd op 13/05/2017 22:08:41 door Ben van Velzen