8

我正在传递$row已分配$statement->fetchAll();给它的东西

public function hello(array $row)

我将如何检查它是否是 stdClass Object ?

最后这叫做​​类型提示吗?

4

3 回答 3

20

这是一个小脚本,可以帮助您检查变量是对象还是特定类型的对象,如果不想将参数函数转换为所需的对象类型。

<?php
function text($a){

   if(is_object($a)){
       echo 'is object';
   }else{
       echo 'is not object';
   }

   //or if you want to be more accurate 
   if($a instanceof stdClass){
       echo 'is object type stdClass';
   }else{
       echo 'is not object of type stdClass';
   }

}

$b = new stdClass();
text($b);
于 2012-10-04T09:54:40.027 回答
2

很好的解决方案看起来很简单。

public function hello(stdClass $row)

我检查了 php 5.3 版,它可以工作。就像传递一个 stdclass 对象一样,但所有其他类型都给出了可缓存的致命错误。

于 2012-10-04T09:33:31.627 回答
0

每当您想明确说明函数接收哪种对象作为参数时:

如果您期待一个 Person 对象:

public function talkTo(Person $person){

}

如果您期待一个 stdClass 对象:

public function printOut(stdClass $row){

}

需要数据库对象吗?

public function save(Database $db){

}
于 2012-10-04T09:38:32.710 回答