我正在传递已被分配$row
的{{1}}我将它传递给另一个类我想检查它是否是方法中的stdClass对象,例如,如果我想检查如果它是一个数组我会做
$statement->fetchAll();
我该如何检查它是否是stdClass对象?
最后是这种称为类型提示?
答案 0 :(得分:7)
这是一个小脚本,可以帮助您检查变量是否是对象,或者是否是特定类型的对象,如果不想将参数函数转换为所需类型的对象。
<?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);
答案 1 :(得分:3)
好的解决方案看起来很简单。
public function hello(stdClass $row)
我用php版本5.3检查了它的工作原理。就像传递stdclass对象一样,但所有其他类型都会产生可缓存的致命错误。
答案 2 :(得分:1)
每当您想要明确说明函数接收哪种对象作为参数时:
如果你期待一个Person对象:
public function talkTo(Person $person){
}
如果你期待一个stdClass对象:
public function printOut(stdClass $row){
}
需要数据库对象吗?
public function save(Database $db){
}