Вы используете document.getElementById()
для извлечения значения из формы, но вы не указали атрибут id
во входных элементах.
<input type="text" id="firstName" placeholder="First Name" name="firstName" required/><br><br>
<input type="text" id="lastName" placeholder="Last Name" name="lastName" required/><br><br>
<input type="text" id="signUpUserName" placeholder="Username" name="signUpUserName" pattern="^[a-zA-Z][a-zA-Z0-9-_\.]{8,20}$" required/><br><br>
<input type="text" id="signUpPassword" placeholder="Password" name="signUpPassword" pattern="(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$" required/><br><br>
<input type="text" id="signUpVerPassword" placeholder="Verify Password" name="signUpVerPassword" pattern="(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$" required/><br><br>
Обычно первое лучше по причинам, которые другие люди уже заявили здесь.
Однако, если необходимо хранить данные на классе конфиденциально, но место элементов данных неизвестно, Вы будете часто видеть, что Ваш 2-й пример, объединенный с __, добирается () __, набор () сцепляется для сокрытия этого, они хранятся конфиденциально.
class someThing {
private $data = array();
public function __get( $property )
{
if ( isset( $this->data[$property] ) )
{
return $this->data[$property];
}
return null;
}
public function __set( $property, $value )
{
$this->data[$property] = $value;
}
}
Затем объекты этого класса могут использоваться как экземпляр stdClass, только ни один из участников, которых Вы устанавливаете, на самом деле общедоступны
$o = new someThing()
$o->cow = 'moo';
$o->dog = 'woof';
// etc
Эта техника имеет свое использование, но знать, что __ добираются () и __, набор () находится на порядке в 10-12 раз медленнее, чем установка общественных собственностей непосредственно.
Если код является повторяющимся, массивы и (foreach) циклы убирают вещи. Необходимо решить, является ли понятие "животных" в коде повторяющимся или нет, или если код должен закопать к уникальности каждого участника.
Если я должен повторить меня несколько раз, я циклично выполняюсь.
Если Вы используете private $data;
Вы только что получили непроницаемый блоб данных там... Явно утверждение их сделает Вашу жизнь намного легче, если Вы выясните, как работает класс.
Другое соображение состоит в том при использовании IDE с автоматическим заполнением - это не собирается работать с 2-м методом.
Можно объединить эти 2 метода, таким образом, некоторые переменные являются hardcoded в класс, в то время как другие являются динамичными. hardcoded переменные будут иметь предпочтение по сравнению с волшебными методами.
Я предпочитаю первый метод по нескольким причинам:
В хорошем IDE обнаруживаются свойства класса, даже если частный/защищающий легче видеть то, что было уже определено, уменьшив шанс, Вы храните ту же информацию дважды. Если общеизвестная шина поражает Вас по дороге домой, намного более просто для другого разработчика войти и прочитать Ваш код. И в то время как это не относится к частному var, это делает в защищенный Вар в классах, которые расширяют этот класс, действительно необходимо стараться избегать второго метода для чистой удобочитаемости.
Кроме того, как примечание стороны, я почти всегда выбираю защищенный по частному, если у меня нет очень определенной причины сделать его частным.
Единственное время я, вероятно, использовал бы второй метод, было то, если я хранил набор многих из одного вида вещи.