【问题标题】:Do PHP have Data-collection containers? [duplicate]PHP 有数据收集容器吗? [复制]
【发布时间】:2016-10-09 21:18:18
【问题描述】:

我是 .NET C# 程序员,现在正在学习 PHP 编程。

我发现 PHP 有点混乱。我希望这里有人可以帮助我澄清以下问题:

  1. PHP 是否有“动态数据收集”容器?
    • 我想在一个数据容器中收集对象?

我已经阅读了php toturial,但没有找到它!

在 C# 中,我们有以下动态数据收集容器:

  • 列表, ArrayList、Dictionary、HashSet

【问题讨论】:

  • 1. PHP 非常混乱。 2. 是的,PHP 有容器。如果没有任何标准容器,编码将非常困难。
  • 是的,这些容器在 php 中的名称是什么?
  • 它们应该是标准名称。这可能包含在任何基本的 PHP 教程中。

标签: c# php cakephp


【解决方案1】:

PHP 一开始就不是一种强类型语言。但是,它具有 OOP 功能。您始终可以在任何容器甚至声明中使用 $mixed 类型。

话虽如此,您的对象容器将在不依赖 C# 类型 List Generic 或任何对象数组集合的情况下工作。

但您可以随时指定类型。

这仅适用于 PHP 4、5 和 7。不知何故,在 PHP 6 中,他们破坏了 OOP 的开发并删除了一些。将 PHP 5 控制为稳定的 PHP。

后续版本增加了数学函数

array list ( mixed $var1 [, mixed $... ] )

正如你在这里看到的。您始终可以将“混合”作为您的类或数据类型的类型,就像您在 C# 中使用 var 一样。

但是,如果您严格要使用 CLASS 泛型,则还需要先要求该类,然后才能将其用作数据类型。

数组列表可以被foreach循环或任何类型的集合方法调用。

但是使用泛型 数组 (['test' => 'test']); 没有什么大的区别。

使用你想要的方法,就像你一样,想要实现 pragma strict。习惯了 C# 强类型。我不怪你试图找到相同的方法。就是这样,无论您希望代码多么干净。如果未指定,PHP 将始终允许在列表中添加不同的类型。

因为 PHP 是脚本语言,而不是编译语言。

【讨论】:

  • 好吧。如果你在 php MVC 中工作并且你想发送一个数据集合到 View。
  • 那你得做收藏清单了……怎么办?
  • 就像在 C# 中一样。首先制作业务逻辑是很常见的。既然你提到了 MVC。您必须在模型数据中执行此操作。您始终可以创建一个新的视图模型类。我希望你知道ViewModel 是什么。然后专门创建一个带有 get 设置的属性,然后像往常一样将该模型传递给视图。在您的业务模型中,您所要做的就是将集合添加到 VM 并将其传递到视图中。没有特殊的解决方法,如果您知道如何在 C# MVC 3 或更高版本中执行此操作,那么 PHP 没有区别。除非你不熟悉 PHP OOP。
猜你喜欢
  • 2011-11-01
  • 2012-11-21
  • 2010-12-16
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多