$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');
Вы определяете строку, используя одинарные кавычки, и PHP не анализирует строки с разделителями одиночной кавычки. Чтобы получить переменную интерполяцию, вам нужно использовать двойные кавычки или конкатенацию строк (или их комбинацию). См. http://php.net/manual/en/language.types.string.php для получения дополнительной информации.
Также вы должны проверить, что mysql_query вернул действительный ресурс результата, иначе fetch_ *, num_rows и т. д. не будут работать с результатом, поскольку это не результат! IE:
$username = $_POST['username']; $password = $_POST['password']; $result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username'); if( $result === FALSE ) { trigger_error('Query failed returning error: '. mysql_error(),E_USER_ERROR); } else { while( $row = mysql_fetch_array($result) ) { echo $row['username']; } }
http://us.php.net/manual/en/function.mysql-query.php для получения дополнительной информации.
, если final используется с объектами, вы не можете изменить ссылку на этот объект, но изменение значения отлично. Aray - это объект в java, и если вы хотите, чтобы значение объекта не изменялось, после его создания вам нужно будет сделать объект неизменным и примитивный массив нельзя сделать неизменным в java.
final int [] finalArr={5,6,8};
System.out.println("Value at index 0 is "+finalArr[0]);
//output : Value at index 0 is 5
//perfectly fine
finalArr[0]=41;
System.out.println("Changed value at index 0 is "+finalArr[0]);
//Changed value at index 0 is 41
int[] anotherArr={7,9,6};
// finalArr=anotherArr;
//error : cannot assign a value to final variable finalArr
Подробнее о неизменяемом массиве вы можете обратиться к этим ссылкам:
Если вы не хотите изменять значения, а также хотите получить доступ к членам коллекции, не требуя случайного доступа, очень простое решение вместо постоянного массива имеет окончательный неизменный список:
static final ImmutableList<Type> arrayOfConstants = ImmutableList.of(t1, t2, t3);
-Если вы знаете значения до начала, инициализируйте значения массива и отметьте этот массив как final
.
-Если вы не знаете значения изначально, тогда напишите общедоступные методы getter / seters и объявите массив как private
. Записывать логику в методе setter, чтобы отменить изменения после выполнения определенного элемента (или выбросить исключение при нескольких изменениях одного и того же элемента)
Это время, когда этот пост открыт. Я удивлен, почему никто не думал о
public static final List<LanguageModel> GenderDataSource = new ArrayList<GenderModel>(){{
add(new LanguageModel("0", "English"));
add(new LanguageModel("1", "Hindi"));
add(new LanguageModel("1", "Tamil"));
};};
, где LanguageModel просто содержит два свойства Id и Title или использует все, что ваш модельный класс общих Тип может быть.
Должен работать как постоянный.
- N Baua
Если вы хотите создать неизменяемый массив, нет, вы не можете. Все массивы в Java изменяемы.
Если вы просто хотите предопределить массив в своем классе, вы можете это сделать:
private static final int[] MY_ARRAY = {10, 20, 30, 40, 50};
Здесь мы создали предопределенный массив MY_ARRAY
длины 5, поэтому MY_ARRAY[0]
- 10
и т. д. Будьте осторожны, хотя даже если поле MY_ARRAY
объявлено окончательным, это не означает, что элементы массива не могут быть изменены. Таким образом, лучше не публиковать этот массив публике с помощью модификатора public
или protected
.
Я имею в виду, что компоненты массива являются константами, т. е. [0] является постоянной переменной, такой как этот открытый статический окончательный int SIZE = 10;
blockquote>Вы не можете указывать имена индексов массива.
Вы можете инициализировать массив, используя значения ранее существовавших констант:
public static final int SIZE = 10; public static final int[] CONSTANTS = { SIZE };
Имейте в виду, что, хотя массив объявлен
final
, его значения могут все еще меняются.final
только гарантирует, что вы не можете повторно назначить переменную массива, поэтому вы захотите инкапсулировать массив, чтобы предотвратить мутацию:final class Constants { public static final int SIZE = 10; private static final int[] CONSTANTS = { SIZE }; public static int getConstant(int index) { return CONSTANTS[index]; } }
Если вы хотите использовать цикл, я предлагаю вернуть глубокое копирование массива.