Ticket #13 (closed Fehlermeldung: fixed)
Vergleichs-Operator '===' in categories.class.php
| Reported by: | Klaus <Speckbear@…> | Owned by: | jeena |
|---|---|---|---|
| Priority: | minor | Milestone: | |
| Component: | Kernfunktion | Version: | 1.0.1 |
| Keywords: | Cc: |
Description (last modified by jeena) (diff)
Hallo,
ich hatte das Problem, dass auf meinem Server mit php 4.3.4 entgegen auf dem Testsystem mit php 5.0.5 die Kategorien nicht angezeigt wurden. Der Fehler schein an einem Tippfehler ? zu liegen:
in categories.class.php wird als Vergleichsoperator an drei Stellen '===' statt '==' verwendet:
function get_id($url) {
foreach($this->categories AS $cat) {
if($cat['url'] === $url) return $cat['id'];
}
}
function get_categories() {
if(defined("JLOG_UPDATE") === false AND defined("JLOG_LOGIN") === false)
Nach Änderung auf '==' funktioniert es.
Gruss Klaus
Change History
comment:1 Changed 5 years ago by jeena
- Owner set to jeena
- Status changed from new to assigned
- Version set to 1.0
- Description modified (diff)
comment:2 Changed 5 years ago by jeena
Welchen der drei Vergleichsoperatoren meinst du? Kannst du mal mit var_dump() ausgeben lassen welchen Typ die entsprechenden Variablen haben?
comment:3 follow-up: ↓ 4 Changed 5 years ago by Klaus
Die Variablen $caturl?; $url; JLOG_UPDATE; JLOGLOGIN sind strings verschiedener Länge. Was bedeuten denn drei "===" Gleichheitszeichen ? Der Syntax war mir noch nicht bekannt.
comment:4 in reply to: ↑ 3 Changed 5 years ago by driehle
Was bedeuten denn drei "===" Gleichheitszeichen?
Siehe PHP-Manual, Vergleichs-Operatoren.
comment:5 in reply to: ↑ description Changed 5 years ago by driehle
if(defined("JLOG_UPDATE") === false AND defined("JLOG_LOGIN") === false)
An dieser Stelle wird jeweils die Rückgabe von defined() ausgewertet - da die Rückgabe von defined() nur entweder true oder false ist, darf ein Abändern der Vergleichs-Operatoren von === auf == eigentlich keinen Unterschied machen.
if($cat['url'] === $url) return $cat['id'];
Und wenn an dieser Stelle sowohl $caturl? als auch $url vom Typ string sind, dann dürfte hier == und === auch keinen Unterschied machen.
PHP 4.3.4 ist eine übelst alte PHP-Version, veröffentlicht im November 2003 - möglicherweise war das ein Bug in der Version. Klaus, wenn dein Provider heute noch eine PHP-Version von 2003 verwendet solltest du dir mal ernsthaft Gedanken darüber machen den Provider zu wechseln! ;-)
comment:6 Changed 5 years ago by Klaus <Speckbear@…>
Hallo,
danke für die Info, jetzt verstehe ich den Sinn der Programmierung. Mein Provider ist Evanzo, warum die noch diese alte Version haben verstehe ich auch nicht. Werde nachhaken. Ich habe noch eine zweite Seite bei 1und1, dort ist php V. 4.4.4 . Leider kann ich dort nicht testen.
comment:7 Changed 5 years ago by jeena
- Status changed from assigned to closed
- Resolution set to fixed
Da wir bei Jlog 1.x den Anspruch haben ab PHP 4.1.1 zu laufen habe ich das mal geändert: 1637
comment:8 Changed 5 years ago by anonymous
http://a-xanax-valium.associates-program.com Xanax Valium -- http://a-buy-valium.associates-program.com Buy Valium
