我是.net程序员vb&c#,但我似乎无法弄清楚如何将我的对象变成PHP中的列表或数组.
var mylist = new List<myobject>();
mylist.add(myobject1);
mylist.add(myobject2);
Run Code Online (Sandbox Code Playgroud)
我试过了什么
产品是以下集合的财产orderitems:
$this->Products = getOrderItems();
public function getOrderItems()
{
$items = array();
$count = 0;
// connect to db, query.....
while($row = mysql_fetch_array($result, MYSQL_BOTH)){
$count++;
$items[$count] = ($row);
}
echo 'Count of Order Items...' . $count;
return $items;
}
Run Code Online (Sandbox Code Playgroud)
我甚至关闭了吗?
moo*_*moo 15
$items = array();
while($row = mysql_fetch_array($result, MYSQL_BOTH)) {
$items[] = $row;
}
echo 'Count of Order Items...', count($items);
Run Code Online (Sandbox Code Playgroud)
$this->Products = getOrderItems();在 PHP 中是合法的,但它指的是(全局)函数getOrderItems()而不是类方法。从类内部调用时,类方法和变量总是必须以$this->(或self::,如果它们是静态变量)为前缀。
在您的示例代码中,您错了。getOrderItems 被定义为类方法,但您的调用不是$this->范围的,因此 php 假定一个函数。它应该抛出一个function not found错误。
该[]表示法将一个元素添加到数组的末尾。
示例代码中第一个元素的索引是 1(这不是 VB 的标准情况吗?)。php 通常从 0 开始 - 尽管有可能(因为 php 数组不是真正的数组)从任意索引开始,我建议坚持使用零。
mysql_fetch_array是一种古老的使用 mysql 的方式。现在你更喜欢使用 mysqli 或(甚至更好)PDO。
(...) php 中的列表或数组。
列表、数组、堆栈等等:在 php 中,一切都是有序映射(误导性地称为数组):
PHP: Arrays : PHP 中的数组实际上是一个有序映射。映射是一种将值与键相关联的类型。此类型针对多种不同用途进行了优化;它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等等。由于数组值可以是其他数组,树和多维数组也是可能的。
更新:
抱歉,我现在没有足够的时间来解释pdo / mysqli在mysql 上的细微差别。
所以这里只是基础知识:
oop: pdo 和 mysqli 是面向对象的(艰难的 mysqli 有功能别名)
准备语句:最重要的是:pdo/mysqli 得到了准备好的语句。这意味着,您首先使用占位符准备一次查询,然后稍后填写值(无需再次准备查询)。这种方法有 3 个明显的优点:
性能:更快,因为数据库只需要分析、编译和优化一次查询(至少对于复杂的查询)
安全性:不需要带引号的字符串(自动发生!),使 sql 注入攻击更加困难
可维护性:查询的逻辑部分和数据部分是分离的,因此更易于阅读,您不必进行大量的字符串合并
驱动程序驱动: pdo 不是特定于数据库的。有几个受支持的数据库系统,可以更轻松地将代码移植到其他数据库后端(但它不是像 ODBC 那样的数据库抽象层,因此 SQL 仍然必须兼容)并提高可重用性
当然,还有很多
| 归档时间: |
|
| 查看次数: |
25260 次 |
| 最近记录: |