PHP 5.2 remarque: l'Utilisation de la constante indéfinie __DIR__ - supposé '__DIR__
En php 5.3 ou moins, il va fournir un message d'erreur comme suit:
Notice: Use of undefined constant __DIR__ - assumed '__DIR__
C'est parce que je suis en utilisant la magie de la constante __DIR__
. Est-il une alternative à l'utilisation de __DIR__
en 5.3 ou moins??
Voici le code qui en est la cause:
<?php
/**
* Load template files
*
* $files Contains alphabetized list of files that will be required
*/
$files = array(
'elements.inc',
'form.inc',
'menu.inc',
'theme.inc',
);
function _zurb_foundation_load($files) {
$tp = drupal_get_path('theme', 'zurb_foundation');
$file = '';
//Workaround for magic constant; for now because of php 5.2 issue
//http://drupal.org/node/1899620#comment-6988766
if( !defined( __DIR__ ) )define( __DIR__, dirname(__FILE__) );
//Check file path and '.inc' extension
foreach($files as $file) {
$file_path = __DIR__ .'/inc/' . $file;
if ( strpos($file,'.inc') > 0 && file_exists($file_path)) {
require_once($file_path);
}
}
}
_zurb_foundation_load($files);
Meilleure idée: mettre à Jour. PHP5.2 n'est plus maintenu. Et tôt ou tard, et la mise à jour est une bonne idée de toute façon 😉
vrai, je pensais que de l'aller; mais il est comme un internet explorer 6 problème. Les gens ne veulent pas y renoncer
IE6 est pas pris en charge par MS lui-même, vous savez? 😉 PHP5.2, doivent être traitées comme non sécurisé. De l'autre côté 5.4 est pour un certain temps maintenant, et même de 5,5 viendra quelque part entre avril et juin. À mon avis, il n'est pas utile de donner "ce peuple" motifs à coller sur les 5.2
Heureux, je ne suis pas le seul. Semble comme il y a 10 000 autres personnes avec le même problème.
Pensais que c'était en fait une utile.
vrai, je pensais que de l'aller; mais il est comme un internet explorer 6 problème. Les gens ne veulent pas y renoncer
IE6 est pas pris en charge par MS lui-même, vous savez? 😉 PHP5.2, doivent être traitées comme non sécurisé. De l'autre côté 5.4 est pour un certain temps maintenant, et même de 5,5 viendra quelque part entre avril et juin. À mon avis, il n'est pas utile de donner "ce peuple" motifs à coller sur les 5.2
Heureux, je ne suis pas le seul. Semble comme il y a 10 000 autres personnes avec le même problème.
Pensais que c'était en fait une utile.
OriginalL'auteur chrisjlee | 2013-02-01
Vous devez vous connecter pour publier un commentaire.
Utiliser le vieux truc:
Mais si possible, mettez à jour vers une version plus récente de PHP.
Oui, il produit le même résultat
"acceptable" peut-être, mais vous devriez préférer
__DIR__
pour des raisons de lisibilité.Sur PHP 5.3+, je vais utiliser
__DIR__
sans hésitations. Mais pour la compatibilité avec les versions antérieuresdirname(__FILE__)
n'est pas que laid et le plus largement utilisé. Et à mon avisdirname(__FILE__)
est beaucoup plus lisible queif( !defined( __DIR__ ) )define( __DIR__, dirname(__FILE__) );
Comme mentionné dans mon commentaire à la question elle-même: 5.2 est plus maintenu. Ou pouvez-vous acheter des jeux modernes, compatible avec windows 98, aujourd'hui? // Je voudrais garder tout ce
define()
-merde de suite: Si__DIR__
n'existe pas, le moteur d'exécution est incompatible. Thats it.OriginalL'auteur Tchoupi