我在PHP上学习这门课程,我真的迷失了这一点。关键是能够使用类操作日期。
<?php
ini_set('display_errors', 'On');
// Create a class called user
class User {
protected $dates = [
'created',
];
// This is supposed to convert my dates from a string to an object
public function __construct() {
foreach($this->$dates AS $date) {
$property = $this->{$date};
$this->{$date} = new DateTime($property);
}
}
// Adding a public function that will be available outsite of the class
public function getFullName() {
return "{$this->firstname} {$this->lastname}";
}
}
$db = new PDO('mysql:host=127.0.0.1;dbname=pdo', 'root', '');
$req = $db->query("SELECT * FROM users");
$req->setFetchMode(PDO::FETCH_CLASS, 'User');
echo '<pre>', var_dump($req->fetch()), '</pre>';
die();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>PDO</title>
</head>
<body>
<?php while($user = $req->fetch()): ?>
<div class="user">
<h4><?php echo $user->getFullName(); ?></h4>
<p>Registered on <?php echo $user->created->format('d M Y'); ?></p> <!-- does not work -->
</div>
<?php endwhile; ?>
</body>
</html>
当我加载页面时,我有三个错误:
注意:未定义的变量:日期 /应用/ XAMPP / xamppfiles / htdocs中/侧面项目/课程/ PHP:SQL /学习 PHP编程从零开始/ 04 - PHP数据对象(PDO)/ 51 - 用户 第13行的class date / index.php
注意:未定义的属性:User :: $ in /应用/ XAMPP / xamppfiles / htdocs中/侧面项目/课程/ PHP:SQL /学习 PHP编程从零开始/ 04 - PHP数据对象(PDO)/ 51 - 用户 第13行的class date / index.php
警告:为foreach()提供的参数无效 /应用/ XAMPP / xamppfiles / htdocs中/侧面项目/课程/ PHP:SQL /学习 PHP编程从零开始/ 04 - PHP数据对象(PDO)/ 51 - 用户 第13行的class date / index.php
有人可以帮我理解我如何解决这个问题吗?提前谢谢你:)
答案 0 :(得分:0)
foreach($this->$dates AS $date)
应该是
foreach($this->dates AS $date)
否则,您尝试将$dates
用作变量
答案 1 :(得分:0)
你有两个问题
首先 $this->$dates
应为$this->dates
,第二 AS
应为小写as
更改此
foreach($this->$dates AS $date) {
到这个
foreach($this->dates as $date) {