C++ to PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : C++ to PHP

Re: C++ to PHP

par Jc71 » 14 janv. 2017, 13:03

Bonjour,

Et je rajouterai ceci : tous les entiers hors limites en PHP (comme les BIGINT récupérés d'une base de données) sont a gérer sous forme de chaînes de caractères.

++

Re: C++ to PHP

par @rthur » 11 janv. 2017, 03:00

J'ai trouvé un passage dans la doc qui pourrait t'intéresser :
La taille d'un entier est dépendant de la plate-forme, cependant, une valeur maximale d'environ 2 milliards est habituelle (cela correspond à 32 bits signés). Les plateformes 64-bit ont habituellement une valeur maximale d'environ 9E18, sauf pour Windows, qui est toujours en 32 bit. PHP ne supporte pas les entiers non-signés. La taille d'un entier peut être déterminée en utilisant la constante PHP_INT_SIZE, et la valeur maximale, en utilisant la constante PHP_INT_MAX
Source : http://php.net/manual/fr/language.types.integer.php

Re: C++ to PHP

par @rthur » 11 janv. 2017, 02:58

Bonjour,

Une piste pourrait être de tester la valeur courante avec la variable PHP_INT_MAX qui correspond à la valeur maximale possible en PHP pour un entier.
http://php.net/manual/fr/reserved.constants.php

C++ to PHP

par stef75 » 10 janv. 2017, 16:32

Bonjour à tous,

j'ai commencé un peu de PHP et je pense que j'avance bien, mais j'ai un probleme delicat qui sort totalement de mes competences.

Je dois traduire la fonction c++ suivant en PHP. Mais voila, en C++ quand le unsigned long est plein, il s'arrange pour enlever ce qui ne rentre pas, mais en PHP, je me retrouve avec une variable () qui n'est est hors limit.

Pouvez vous m'aider svp ?

Mille mercis,
Stef

Code : Tout sélectionner

unsigned long JSHash(const std::string& str) { unsigned long b = 495120; unsigned long a = 60999; unsigned long hash = 0; for(std::size_t i = 0; i < str.length(); i++) { hash = hash * a + str[i]; a = a * b; } return (hash & 0x7FFFFFFF); }