在php中,函数如何同时返回数组和类

在php中,函数如何同时返回数组和类,php,Php,示例1: 示例2: 我希望函数返回一个数组和类,但不知道如何使它工作! 请帮助我改进代码…每个函数一次只能返回一个值,因此解决此问题的常用方法是返回数组(或对象,但返回数组显然更简单): 对于您的代码来说,最好的方法是返回对象数组,如果where的结果是多行,那么您将拥有包含多个对象的数组,但是如果where的结果是一行,那么您将拥有仅包含一个对象的数组 另一个创建另一个函数的解决方案是“Find”,因此Find将只返回一个对象,“where”将始终返回数组一个函数不能返回多个对象。p

示例1:


示例2:


我希望函数返回一个数组和类,但不知道如何使它工作!
请帮助我改进代码…

每个函数一次只能返回一个值,因此解决此问题的常用方法是返回
数组(或
对象
,但返回数组显然更简单):


对于您的代码来说,最好的方法是返回对象数组,如果where的结果是多行,那么您将拥有包含多个对象的数组,但是如果where的结果是一行,那么您将拥有仅包含一个对象的数组


另一个创建另一个函数的解决方案是“Find”,因此Find将只返回一个对象,“where”将始终返回数组

一个函数不能返回多个对象。php中没有
返回(val1,val2)
。有些语言(如perl)支持检测返回值的使用方式,因此可以动态返回适当的类型。php没有(虽然可能7也有类似的东西——还不太熟悉v7的变化)?班名?你是说对象吗?也就是说,你可以返回一个对象,并实现各种神奇的方法,比如uu toString(),这样对象就可以动态地将自己“转换”成不同类型的结构。@Marc通常的方法是通过引用传递参数以获得返回值。你可以让你的类实现
Iterable
接口,这样调用者就可以像循环数组一样循环它。
<?php
class test{
    function text($text){

    }
    function remove($text){

    }
}
$test=new test();
$text1=$test->text('my text 1')->remove('my')->remove('text'); // 1
$text2=$test->text('my other text')->remove('other')->remove('text');// my
?>
<?php

function foo() {
   $cls = new class_test();
   return array(
             'class' => $cls,
             'users' => $cls->db('users')->where(['id','>','1'],['id','<','10']);
}