Modify ↓
#132 closed Bug/Fehler (fixed)
Probleme mit auto_require und dem Geltungsbereich von Variablen
| Reported by: | H. H. H. | Owned by: | Ronald Parcinski |
|---|---|---|---|
| Priority: | hoch | Milestone: | modified-shop-2.0.0.0 |
| Component: | Shop | Version: | 1.06 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description
In den Dateien welche über auto_require eingebunden werden, dürfen keine Variablen definiert werden auf die im folgenden Code zugegriffen werden soll.
Beispiel JanoLaw:
function auto_require(...) {
...
// require 30_janolaw.php
if (defined('MODULE_JANOLAW_STATUS') && MODULE_JANOLAW_STATUS == 'True') {
require_once(DIR_FS_EXTERNAL.'janolaw/janolaw.php');
$janolaw = new janolaw_content();
}
...
}
Da dies in der Funktion auto_require() mit einem require eingebunden wird, ist ein Zugriff auf die JanoLaw Klasse über $janolow ohne diese erneut zu initialisieren im folgendem Code nicht möglich.
Möglichkeiten um dieses Problem zu umgehen.
- Gleich auf Klassen und autoload umsteigen.
- auto_require nicht für Code verwenden, bei dem auf Variablen aus den auto_require Dateien im weiteren Scriptverlauf zugegriffen werden soll.
- Variablen innerhalb nur global deklarieren.
- Mit folgendem Konstrukt arbeiten und durch auto_require ein Array mit den einzelnen Dateien ausgeben.
foreach(auto_require(..) as $file) require $file;
Für weitere Informationen bei php.net einfach mal nach variable scope suchen.
Attachments (0)
Change History (2)
comment:1 by , 12 years ago
| Summary: | Logische Probleme mit auto_require und Geltungsbereich von Variablen → Probleme mit auto_require und dem Geltungsbereich von Variablen |
|---|
comment:2 by , 12 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
Version 0, edited 12 years ago by (next)
Note:
See TracTickets
for help on using tickets.

gefixt in @5788