Я создаю программу PHP, в которой есть класс ученика с различными свойствами, такими как имя, идентификатор, адрес и т. Д. Я не понимаю, почему моя проверка в разделе «Задать свойства» не обновляется правильно.Штат, почтовый индекс и возраст обновляются, а остальные нет.Я понятия не имею, почему мой студенческий идентификатор показывает 274. Я даже не понимаю, откуда он это взял.Пожалуйста, объясните, почему моя проверка не работает должным образом.
function set_student_name($value)
{
$error_message = true;
(ctype_alpha($value) && strlen($value) <= 20) ? $this->student_name = $value : $error_message = false;
return $error_message;
}
Это то, что я думал, что это означало: Если значение является строкой, И значение <= 20, ТО значение == student_name. </p>
Хорошо, вот остальная часть моего кода.Есть два файла.Первый - это класс.
class Student
{
// --------------------------------Properties-----------------------------------
private $student_id = 6212;
private $student_name = 'No Name';
private $student_address = 'No Address';
private $student_state = 'No State';
private $student_zip = 0;
private $student_age = 0;
private $error_message = '??';
// --------------------------------Constructor----------------------------------
public function __construct($value1, $value2, $value3, $value4, $value5, $value6)
{
$id_error = $this->set_student_id($value1) == true ? 'TRUE,' : 'FALSE,';
$name_error = $this->set_student_name($value2) == true ? 'TRUE,' : 'FALSE,';
$address_error = $this->set_student_address($value3) == true ? 'TRUE,' : 'FALSE,';
$state_error = $this->set_student_state($value4) == true ? 'TRUE,' : 'FALSE,';
$zip_error = $this->set_student_zip($value5) == true ? 'TRUE,' : 'FALSE,';
$age_error = $this->set_student_age($value6) == true ? 'TRUE,' : 'FALSE,';
$this->$error_message = $id_error . $name_error . $address_error . $state_error . $zip_error . $age_error;
}
// ---------------------------------toString------------------------------------
public function __toString()
{
return $this->$error_message;
}
// --------------------------------Set Methods----------------------------------
public function set_student_id($value)
{
$error_message = true;
(ctype_digit($value) && ($value > 0 && $value <= 9999)) ? $this->student_id = $value : $error_message = false;
return $error_message;
}
public function set_student_name($value)
{
$error_message = true;
(ctype_alpha($value) && strlen($value) <= 20) ? $this->student_name = $value : $error_message = false;
return $error_message;
}
public function set_student_address($value)
{
$error_message = true;
(ctype_alpha($value) && strlen($value) <= 20) ? $this->student_address = $value : $error_message = false;
return $error_message;
}
public function set_student_state($value)
{
$error_message = true;
(ctype_alpha($value) && strlen($value) <= 20) ? $this->student_state = $value : $error_message = false;
return $error_message;
}
public function set_student_zip($value)
{
$error_message = true;
(ctype_digit($value) && ($value > 0 && $value <= 99999)) ? $this->student_zip = $value : $error_message = false;
return $error_message;
}
public function set_student_age($value)
{
$error_message = true;
(ctype_digit($value) && ($value > 0 && $value <= 100)) ? $this->student_age = $value : $error_message = false;
return $error_message;
}
// --------------------------------Get Methods----------------------------------
public function get_student_id()
{
return $this->student_id;
}
public function get_student_name()
{
return $this->student_name;
}
public function get_student_address()
{
return $this->student_address;
}
public function get_student_state()
{
return $this->student_state;
}
public function get_student_zip()
{
return $this->student_zip;
}
public function get_student_age()
{
return $this->student_age;
}
public function get_properties()
{
return "$this->student_id, $this->student_name, $this->student_address, $this->student_state, $this->student_zip, $this->student_age.";
}
}
Это второй файл, который вызывает класс:
require_once 'student.php';
$collegeStudent = new Student('0422', 'John Smith', '315 Home St', 'Georgia', '30204', '20');
list($id_error, $name_error, $address_error, $state_error, $zip_error, $age_error) = explode(',', $collegeStudent);
print $id_error == 'TRUE' ? 'Student ID update successful<br/>' : 'Student ID update not successful<br/>';
print $name_error == 'TRUE' ? 'Name update successful<br/>' : 'Name update not successful<br/>';
print $address_error == 'TRUE' ? 'Address update successful<br/>' : 'Address update not successful<br/>';
print $state_error == 'TRUE' ? 'State update successful<br/>' : 'State update not successful<br/>';
print $zip_error == 'TRUE' ? 'Zip code update successful<br/>' : 'Zip code update not successful<br/>';
print $age_error == 'TRUE' ? 'Age update successful<br/>' : 'Age update not successful<br/>';
// ------------------------------ Set Properties--------------------------------
print '------------------------------------------------------------------------<br/>';
$student_error_message = $collegeStudent->set_student_id(0422);
print $student_error_message == true ? 'Student ID update successful<br />' : 'Student ID update not successful<br />';
$student_error_message = $collegeStudent->set_student_name('John Smith');
print $student_error_message == true ? 'Name update successful<br />' : 'Name update not successful<br/>';
$student_error_message = $collegeStudent->set_student_address('315 Home St');
print $student_error_message == true ? 'Address update successful<br />' : 'Address update not successful<br/>';
$student_error_message = $collegeStudent->set_student_state('Georgia');
print $student_error_message == true ? 'State update successful<br />' : 'State update not successful<br/>';
$student_error_message = $collegeStudent->set_student_zip(30204);
print $student_error_message == true ? 'Zip code update successful<br />' : 'Zip code update not successful<br/>';
$student_error_message = $collegeStudent->set_student_age(20);
print $student_error_message == true ? 'Age update successful<br />' : 'Age update not successful<br/>';
print '------------------------------------------------------------------------<br/>';
// ------------------------------ Get Properties--------------------------------
print $collegeStudent->get_student_id() . '<br />';
print $collegeStudent->get_student_name() . '<br />';
print $collegeStudent->get_student_address() . '<br />';
print $collegeStudent->get_student_state() . '<br />';
print $collegeStudent->get_student_zip() . '<br />';
print $collegeStudent->get_student_age() . '<br />';
$student_properties = $collegeStudent->get_properties();
list($student_id, $student_name, $student_address, $student_state,
$student_zip, $student_age) = explode(',', $student_properties);
print "Student ID is $student_id. Student name is $student_name. Student address
is $student_address. Student state is $student_state. Student zip is $student_zip.
Student age is $student_age.";
Вот мой вывод:
![output](https://i.stack.imgur.com/qq8Us.png)