Как заставить мой скрипт php определить страну вставленной ссылки в БД [дубликат]

Нет, постоянный пул для чисел не работает так же, как для строк. Для строк используются только константы времени компиляции, тогда как для типов оберток для целых типов любая операция по боксу будет всегда использовать пул, если он применим для этого значения. Так, например:

int x = 10;
int y = x + 1;
Integer z = y; // Not a compile-time constant!
Integer constant = 11;
System.out.println(z == constant); // true; reference comparison

JLS гарантирует небольшой диапазон объединенных значений, но реализации могут использовать более широкий диапазон, если они пожелают.

Обратите внимание, что, хотя это не гарантируется, каждый Реализация Я рассмотрел использование Integer.valueOf для выполнения операций бокса - так что вы можете получить тот же эффект без помощи языка:

Integer x = Integer.valueOf(100);
Integer y = Integer.valueOf(100);
System.out.println(x == y); // true

Из раздела 5.1 .7 из JLS :

Если значение p, помещенное в поле, равно true, false, байт или символ в диапазоне от \ u0000 до \ u007f, или int или короткое число от -128 до 127 (включительно), затем пусть r1 и r2 - результаты любых двух бокс-конверсий p. Всегда бывает, что r1 == r2.

В идеале боксирование данного примитивного значения p всегда дает идентичную ссылку. На практике это может оказаться невозможным с использованием существующих методов внедрения. Правила выше - прагматичный компромисс. Последнее заключительное предложение требует, чтобы определенные общие значения всегда помещались в неразличимые объекты. Реализация может кэшировать эти, лениво или нетерпеливо. Для других значений эта формулировка запрещает любые предположения о идентичности вложенных значений на части программиста. Это позволило бы (но не требовать) совместного использования некоторых или всех этих ссылок.

Это гарантирует, что в большинстве распространенных случаев поведение будет желательным, не налагая чрезмерного штрафа за производительность, особенно на небольшие устройства. Менее ограниченные памятью реализации могут, например, кэшировать все значения char и short, а также значения int и long в диапазоне от -32K до + 32K.

5
задан rash111 12 May 2012 в 09:49
поделиться

1 ответ

Если вы не хотите использовать HTML5 Geolocoation API , вы можете обнаружить бит от IP.

Или попробовать другое другое решение

API геокодирования Google

Geolocator-PHP

Maxmind http: // www.maxmind.com/app/php

ipinfodb

5
ответ дан Hasse Björk 18 August 2018 в 22:24
поделиться
  • 1
    Хотя эти ссылки могут ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. – Jay Blanchard 24 April 2017 в 19:33
Другие вопросы по тегам:

Похожие вопросы: