(array)$variable在php中是什么意思

(array)$variable在php中是什么意思,php,casting,Php,Casting,我最近遇到了一些代码问题,如下所示: $key = "upload_8_fid_aids.tmp"; public function to_key($key) { $s = $this->table;//$s = kv foreach((array)$key as $k=>$v) { $s .= '-'.$this->primarykey[$k].'-'.$v; } ret

我最近遇到了一些代码问题,如下所示:

    $key = "upload_8_fid_aids.tmp";
    public function to_key($key) {

        $s = $this->table;//$s = kv
        foreach((array)$key as $k=>$v) {
            $s .= '-'.$this->primarykey[$k].'-'.$v;
        }
        return $s;
    }
在foreach循环中有一个($array)$key签名,我首先要说的是以variabls$k为前缀的“array”,这意味着什么?我想到的第一个想法是它将$k转换为数组,尽管变量$k是字符串,在php中把字符串转换成数组似乎合理吗?我认为这是不合理的。那么数组是什么意思呢


提前谢谢

在PHP中将字符串强制转换为数组时,它会变成一个数组,并将字符串推送到数组中

:

输出:

Array
(
    [0] => This is a string!
)
也就是说,我觉得代码很奇怪,我不认为需要循环,它可能只是:

$key = "upload_8_fid_aids.tmp";

public function to_key($key) {
    $s = $this->table; //$s = kv
    $s .= '-' . $this->primarykey[0] . '-' . $key;
    return $s;
}

在PHP中将字符串强制转换为数组时,它将成为一个数组,并将字符串推送到该数组

:

输出:

Array
(
    [0] => This is a string!
)
也就是说,我觉得代码很奇怪,我不认为需要循环,它可能只是:

$key = "upload_8_fid_aids.tmp";

public function to_key($key) {
    $s = $this->table; //$s = kv
    $s .= '-' . $this->primarykey[0] . '-' . $key;
    return $s;
}

括号中的任何类型都告诉PHP将以下内容强制转换为该类型


在这种情况下,这是一种省钱的方法,可以通过强制它为一来避免检查
是否(is_array($key))

括号中的任何类型都告诉PHP将以下内容强制转换为该类型


在这种情况下,这是一种省钱的方法,可以通过强制将对象转换为数组来避免检查(is_array($key))。

将对象转换为数组:

 <?php
        /*** create an object ***/
        $obj = new stdClass;
        $obj->foo = 'foo';
        $obj->bar = 'bar';
        $obj->baz = 'baz';

        /*** cast the object ***/
        $array = (array) $obj;

        /*** show the results ***/
        print_r( $array );
    ?>

将对象转换为数组:

 <?php
        /*** create an object ***/
        $obj = new stdClass;
        $obj->foo = 'foo';
        $obj->bar = 'bar';
        $obj->baz = 'baz';

        /*** cast the object ***/
        $array = (array) $obj;

        /*** show the results ***/
        print_r( $array );
    ?>

我认为$key是一个对象,他们正在将其转换为数组@TomPHP$k是一个字符串,我认为$key是一个对象,他们正在将其转换为数组@TomPHP$k是一个字符串