我有RPG游戏。人们可以在那里买一些东西。我为这样的项目创建了一个函数:
function item($id) {
switch ($id) {
case 1:
$name = 'item name 1';
$price = 1200;
break;
}
}
我做得对吗,你怎么看,这是检索项目信息的最佳方式吗?
答案 0 :(得分:7)
因为它是一个RPG,如果它不是 microscopic ,你应该把这些信息放在数据库中,然后根据该信息的ID查询你的数据库。
答案 1 :(得分:2)
您是否正在编写所有商品?这意味着要进行任何更改,您需要重新编译它。为什么不使用一些XML,数据库或只是逗号分隔的文本文件?
如果您使用某种存储格式,您还可以制作一个辅助应用程序来实时管理/编辑/添加/删除项目,而不必每次都重新编译代码。
答案 2 :(得分:1)
您也可以将其设为键控数组。
$items = array(
"1" => array( "name" => "item name 1", "price" => 1200 ),
"2" => array( "name" => "item name 2", "price" => 600 )
);
然后使用$ items [1] ['name']
访问它答案 3 :(得分:0)
有一种方法可以给猫皮肤。
鉴于您没有使用关系数据库并且将对所有内容进行硬编码,这应该“正常”但您需要返回某些类型的返回语句来返回数据。如果您计划在没有数据库的情况下执行此操作,则可能希望将“项目”信息作为array
返回。明显的缺点是,您必须始终修改该文件,并且无论何时添加新项目都有可能破坏整个应用程序。
XML或文本文件是与关系数据库相关的另一种选择。
我的建议是,学习如何使用数据库,MySQL是一个明智的选择,因为它与PHP配对得很好。
答案 4 :(得分:0)
在这种情况下,我会将您的信息存储在数组中,例如。
$items = array(array("name" => "item name 1", "price" => 1200))
然后当你访问它时你可以做
function item($id)
{
$name = $items[$id].name;
$price = $items[$id].price;
}
但是数据库在类似的想法中会更好
答案 5 :(得分:0)
如果您只有少量项目,请将它们放在数组中,这样可以保持简单:
$items=array(
1=>array('item name 1', 1200),
2=>array('item name 2', 4600),
...
);
否则,根据您的需要以及您拥有的项目数量以及愿意更改的频率,使用存储方法,无论是数据库还是文件。
答案 6 :(得分:0)
如果您的游戏是多人游戏,您可能需要非常认真地考虑如何处理数据。
传输对象是事务性的非常重要。
例如,用户不能购买物品,并在同一时刻断开连接。这可能允许用户产生无限量的物品或金钱。
大多数数据库提供这种传输操作,但某些MMORPG的开销可能有点高,因此这些游戏倾向于使用自定义数据库。
答案 7 :(得分:0)
我同意建议数据库使用的人,你应该在我看来使用MySQL,创建这个表: 物品(ID,NAME,PRICE) 您可以使用alter table命令在将来扩展此表并添加新列。
程序员经常犯下对查询进行硬编码的错误,并且每当他们改变数据库结构时,他们都必须查看他们的源代码。您可以通过编写PHP类来防止这种情况发生,从而防止这种情况发生。该课程应如下所示:
class DatabaseUserTemplate {
private tableName = null;
public $columnList = array();
public function selectCommand($parameters, $filter)
{
//implement you code here
}
public function insertCommand($parameters)
{
//implement you code here
}
public function deleteCommand($filter)
{
//implement you code here
}
public function updateCommand($parameters, $filter)
{
//implement you code here
}
public function construct($tableName)
{
$this->tableName = $tableName;
}
private function getColumnList()
{
//implement you code here
}
}
这个类在项目的上层很容易使用。
祝你好运, Lajos Arpad。