PHP: mi a @ folyik itt?
Valaki magyarázzon el nekem valamit PHP-val kapcsolatban:
1) ez a kód fut:
<?php
$a = array(
"2012-01-01 00:00:00" => 1,
"2012-01-01 01:00:00" => 2,
"2012-01-01 02:00:00" => 3,
"2012-01-01 03:00:00" => 17
);
foreach ($a as $k => $v) {
echo "\$a[$k] => $v.\n";
}
?>
2) Ez a kód nem ad ki semmit!
<?php
include 'chartlib.php';
$a = array(
"2012-01-01 00:00:00" => 1,
"2012-01-01 01:00:00" => 2,
"2012-01-01 02:00:00" => 3,
"2012-01-01 03:00:00" => 17
);
foreach ($a as $k => $v) {
echo "\$a[$k] => $v.\n";
}
?>
A különbség csak annyi, hogy hivatkozok egy másik fájlra, amit majd használni szeretnék. Nem értem a 2) esetében miért nem ad ki semmit, nulla, üres az oldal, az oldal forráskódja teljesen üres. Mindenhol azt írják a PHP-t könnyû megtanulni. Szerintem ez egy használhatatlan nyelv, következetlen.
"Szerintem ez egy használhatatlan nyelv, következetlen."
Pedig bizony nem az.
Esélyes, hogy a behívott fájlban van valami hiba és a szerveren ki vannak kapcsolva a hibaüzenetek, ezért nem látsz semmit.
"Szerintem ez egy használhatatlan nyelv, következetlen."
Ez valóban így van, de ha te ezt 0 PHP tudással jelented ki, akkor meglehetősen hiteltelen vagy. Szimplán lusta vagy kideríteni, mi a hiba, és ítélkezel mert az kényelmes.
Furcsa, Ideone-on lefut és kiírja amit kell:
Nem lehet, hogy a chartlib.php-ben van valami turpisság?
Az include utasításnál a hivatkozott fájlt elérési útját fájl-rendszer szinten kell megadni. Ez relatív hivatkozásnál nem szokott gondot okozni, ha a file ott van, ahol lennie kell.
Valószínű, hogy a php hibaüzenetei ki vannak kapcsolva, ezért nem látsz semmi eredményt. Célszerű lenne bekapcsolni őket:
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
?>
"használhatatlan nyelv, következetlen"
Ezzel a hozzá állással kb. az összes nyelvre mondható.
Egy matek példát se tudsz megcsinálni a kellő tudás/gyakorlás nélkül akár 5p alatt.
Ha hiba van, akkor az valahol ott kell lennie. Attól hogy nem dob hibaüzenetet attól lehet másfajta hiba is. Mert nem csak szintaktikai hiba létezik.
- Szintaktikai hiba:
Lényegében fordítási hiba. pl. nem teszel ki egy ";" vagy egy "(" jelet.
- Szemantikai hiba:
Az előzővel ellentétben NEM dob hibát. NINCS HIBA ÜZENET! Ez egyfajta logikai hiba. A program lefut, csak valamit nem úgy történik ahogy te megtervezted. Mondok 1 példát: Egy elágazásban nem kisebb "<" jelet írsz, hanem egy nagyobb ">" jelet. Kód szinten nincs is hiba, de még is keresheted órák hosszat ha egy több 1000 soros kódról beszélünk.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!