Billets de la catégorie : Développement

Erreur PHP : Cannot create references to elements of a temporary array expression

Posté par Kromack le 31 janvier 2010 à 15:21 dans Développement   
Réagir à ce billet | Ce billet à été lu 135 fois

L’erreur fatale PHP Cannot create references to elements of a temporary array expression survient par exemple lorsqu’on tente d’assigner une variable par référence au sein d’une boucle foreach alors que le tableau d’entrée est une variable temporaire, c’est à dire générée et interprétée au sein de l’instruction foreach.

La variable n’ayant pas été déclarée et initialisée en dehors de la boucle, l’accès aux références de chaque élément n’est donc pas possible.

Le code ci-dessous illustre un cas de figure où l’erreur survient, notez que les méthodes utilisées sont celles de la classes Active Record du framework CodeIgniter :

$q = $this->o_db->get();
 
// The foreach's source array is created inside the foreach
// This way cause the fatal error "Cannot create references to elements of a temporary array expression"
foreach($q->result() as &$row) {
 
    $row->some_property = 'some_value';
 
}

La solution

Il suffit de déclarer le tableau d’entrée de la boucle foreach à l’extérieur de celui-ci :

$q = $this->o_db->get();
 
$result = $q->result();
 
// The foreach's source array is created outside the foreach
// This way allows to assign $row by reference
 
foreach($result as &$row) {
 
    $row->some_property = 'some_value';
 
}

PhpMyAdmin – résoudre l’erreur : Maximum execution time of 300 seconds exceeded

Posté par Kromack le 30 janvier 2010 à 15:02 dans Développement   
Réagir à ce billet | Ce billet à été lu 213 fois

Si vous tentez d’importer de grosses bases de données via PhpMyAdmin, vous risquez de rencontrer une erreur relative à ce logiciel :

Maximum execution time of 300 seconds exceeded

Cette erreur survient généralement après avoir augmenté toutes les limitations en terme de mémoire et de temps d’exécution de PHP via le fichier php.ini, c’est donc du côté de PhpMyAdmin qu’il faut chercher.

Pour augmenter la valeur de cette limitation, ouvrez le fichier suivant :

  • C:\wamp\apps\phpmyadminx.xx.x\config.inc.php dans un environnement WAMP
  • /var/www/html/phpMyAdmin-x.xx.x/config.inc.php dans un environnement LAMP

Cherchez ensuite la variable $cfg['ExecTimeLimit'] qui devrait avoir pour valeur 300 puis augmentez cette valeur à votre convenance ;)

N’hésitez pas à adopter la configuration ci-dessous lors de vos exports de bases de données, les insertions étendues permettent de diminuer fortement le poids des exports SQL.

Modifier la variable d’environnement CLASSPATH (PATH) sous Windows Vista

Posté par Kromack le 31 décembre 2009 à 20:45 dans Développement   
Réagir à ce billet | Ce billet à été lu 648 fois

Le développement Java impose parfois de modifier la valeur de la variable d’environnement PATH afin d’utiliser par exemple un SDK.

Pour modifier la variable Java CLASSPATH sous Windows Vista, suivez les instructions ci-dessous :

  • Cliquez sur démarrer (icône Windows), puis faîtes un clic-droit sur Ordinateur, sélectionnez Propriétés dans la boîte de dialogue :

  • Dans la nouvelle fenêtre, cliquez sur « Paramètres système avancés » :

  • Cliquez ensuite dans l’onglet « Paramètres système avancés » de la nouvelle boîte de dialogue, puis sur « Variables d’environnement » :

  • Sélectionnez alors la variable d’environnement à modifier (exemple : CLASSPATH) et cliquez sur modifier :

Comment activer PHP 5 chez Free.fr

Posté par Kromack le 30 novembre 2009 à 18:15 dans Développement   
Réagir à ce billet | Ce billet à été lu 323 fois

L’hébergement mutualisé (pages personnelles) du FAI Free ne fonctionnent pas sous PHP 5 par défaut. Cela a par exemple pour effet de provoquer l’erreur suivante sur les fichiers de classes :

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in...

Pour activer PHP 5 si suffit de renseigner la variable ci-dessous dans votre fichier htaccess :

php 1

NB : Si vous n’avez pas de fichier htaccess à la racine de votre FTP, créez simplement un fichier nommé .htaccess à l’aide d’un éditeur de texte, puis transférez le via un logiciel FTP.