首页 > 解决方案 > 借助 sort() 函数对有序整数数组进行排序的 PHP 类

问题描述

我为上述问题写下了以下内容

<?php

class sortClass{

  public function __construct(array $arrayPassed){
    return sort($arrayPassed);
    }

}
$newarray=array(11,-2,4,35,0,8,-9);
$sorted =  new sortClass($newarray);
print_r($sorted);

?>

并且输出是 'sortClass Object()' ,我想要一些帮助来理解为什么它不会打印出排序的数组,当我们实例化一个类时 - 构造函数将自动执行并返回它返回的内容对吗?那么为什么不打印 $sorted object 打印构造函数中返回的内容呢?

标签: phparrayssorting

解决方案


你不需要一个包装器class来排序,你可以直接运行sort函数,你的代码的问题是,返回__constructor.

我建议你直接这样运行它:

<?php
  $newarray = array(11,-2,4,35,0,8,-9);
  sort($newarray);
  print_r($newarray);
?>

或者如果您仍然需要 OOP 版本,请使用这个:

<?php

class sortClass{
  private $arrayPassed = [];
  public function __construct(array $arrayPassed){
    $this->arrayPassed = $arrayPassed;
  }

  public function sort() {
    sort($this->arrayPassed);
    return $this->arrayPassed;
  }
}

$newarray = array(11,-2,4,35,0,8,-9);

$sortClass =  new sortClass($newarray);

print_r($sortClass->sort());

推荐阅读