Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否复制/克隆对象的部分?_Php_Oop - Fatal编程技术网

Php 是否复制/克隆对象的部分?

Php 是否复制/克隆对象的部分?,php,oop,Php,Oop,我有一个对象$stdClassObject,它是由json_decode创建的。这是火车时刻表。我需要能够创建一个新的对象,其中只包含那些向东行驶的列车。我不知道该怎么做,因为我对PHP中的对象非常陌生。下面是我分离出的PHP代码$trips[$ny_trip]: // $stdClassObject originally created by json_decode foreach ($trips as $ny_trip=>$ny_trip_info) { if (East_B

我有一个对象$stdClassObject,它是由json_decode创建的。这是火车时刻表。我需要能够创建一个新的对象,其中只包含那些向东行驶的列车。我不知道该怎么做,因为我对PHP中的对象非常陌生。下面是我分离出的PHP代码$trips[$ny_trip]:

// $stdClassObject originally created by json_decode
foreach ($trips as $ny_trip=>$ny_trip_info) {

    if (East_Bound($ny_trip_info->DESTINATION)) {
    // Copy or clone(?) $trips[$ny_trip]) to an object called east_bound
        ...
    }
}
我看到两种选择:

  • 实现magic方法,以便能够自定义克隆过程
  • 将此的自定义函数添加到类中。比如
    YourClass::customClone($options)

看起来第一个选项非常适合这里

我可以在不重新定义代码示例中从json_decode创建的原始对象的完整结构的情况下实现克隆技术吗?不,不幸的是,
json_decode()
将始终为您提供一个stdclass对象。我建议您创建一个特殊的类,比如说
CustomizedObjectClonery
,并在其中添加功能。我应该提到的是,将有不止一列东向列车,此IF语句用于从$trips[0到N]克隆选定的列车。