PHP将布尔值传递给ArrayObject进行内部比较

PHP将布尔值传递给ArrayObject进行内部比较,php,dataframe,Php,Dataframe,是否有方法访问传递给ArrayObject的布尔值的详细信息,以便与数组的每个元素进行比较 我已经开始为PHP开发一个数据框架,这似乎已经达到了极限 示例代码: <?php class DataFrame extends ArrayObject { public function offsetGet($key) { if (is_bool($key)) { echo "Passed a boolean: {$key}\n";

是否有方法访问传递给ArrayObject的布尔值的详细信息,以便与数组的每个元素进行比较

我已经开始为PHP开发一个数据框架,这似乎已经达到了极限

示例代码:

<?php

class DataFrame extends ArrayObject {
    public function offsetGet($key) {
        if (is_bool($key)) {
            echo "Passed a boolean: {$key}\n";
        } else {
            echo "Comparing: {$key}\n";
        }
    }
}
将输出(对于任何非空、非假、非零比较):

否则:

Comparing: hello
Passed a boolean: 1
不管怎样,我都无法与这种方法进行比较



我是否可以实现一个接口来访问布尔比较方法,或者类似的东西是PHP无法实现的?无论哪种方式,这都是对其他许多方法的补充,如果没有经典的数据帧语法,那将是一种耻辱。

如果你是指类似R的数据帧语法,我很抱歉地说PHP并没有以本机方式公开这样的接口,但没有任何东西阻止你实现它

您将从中获得的最接近于函数

对于PHP 5.3+,您可以执行以下操作:

$data = array('hello', 'world');
$selected = array_filter($data, function($val) {
    return $val === 'world';
});
var_dump($selected); // will output: array(1) { 0 => world }
Comparing: hello
Passed a boolean: 1
$data = array('hello', 'world');
$selected = array_filter($data, function($val) {
    return $val === 'world';
});
var_dump($selected); // will output: array(1) { 0 => world }