当前位置:首页 » 编程语言 » php对象与数组

php对象与数组

发布时间: 2023-06-01 07:32:02

php中数组是不是对象

不是对象。而且不是真正意义上的数组。

② PHP读取数据库信息的时候,用数组储存和对象储存哪种好

几乎没区别,效率上了数组可弊胡旅能好一点点,特别是做厅mysql_fetch_row返回的简单数组(不带字段名的),在处理复杂表达式的值时很方便,例如:
$sql='select
count(*),
sum(monye)
from
tab';
$res=mysql_query($sql);
list($cnt,$money_sum)=mysql_fetch_row($res);
mysql_free_result($res);
语句简单,效率最高。租凳
再次强调,别在乎那一点点效率,用你喜欢的方法编程

③ PHP中如何定义对象类型数组

应该是存到对象属性中吧
你把
public function setDepartment($department)
{
$this->department=$department;
}
改成
public function setDepartment($department)
{
$this->department[]=$department;
}
即可
private $department;
要不要改成
private $department=array();
其实无所谓

④ php怎么把对象转为数组

这里定义2个php匿名对象和数组相互转换的函数,代码如下:
function array2object($array) {
if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key => $val){ $obj->$key = $val; } } else { $obj = $array; } return $obj;}function object2array($object) { if (is_object($object)) { foreach ($object as $key => $value) { $array[$key] = $value; } } else { $array = $object; } return $array;}
用法示例如下:
$array = array('foo' => 'bar','one' => 'two','three' => 'four');$obj = array2object($array);print $obj->one; // output's "two"$arr = object2array($obj);print $arr['foo']; // output's bar

⑤ php 数组和对象的问题

function get_obj_by_id($objs, $id)
{
if(!empty($objs))
{
foreach($objs as $obj)
{
if($obj->id == $id)
return $obj;
}
}
return null
}

恩,为什么你的obj->id是private的呢
希望能解决您的问题。

⑥ PHP数组里面存放对象

楼上解释正确,不过我补充一下。
既然初始化是在类声明之后,那么可以通过手动串行化和反串行化来达到目的。
保存的时候使用serialize来保存,提取恢复的时候使用unserialize来恢复。
当然,这个还有一个要注意的地方,需要保存的对象最好是只包含数据,意思是,不要有数据库连接资源、文件资源之类的,如果包含这些,串行和反串行的结果都是一个int 0,反串行的时候可能不能正常工作。
至于对象串行反串行的一些可定制的功能,可以参考帮助文档的这个部分:
http://dk2.php.net/manual/zh/language.oop.magic-functions.php
通过定义魔术函数__sleep __wakeup来实现。

⑦ 从PHP函数参数为数组和对象的区别说开去

  • 数组操作,查询指定的值或者key,一般使用array_search和in_array;

  • 如腊含果已经有key了,可以直接$array[$key];

  • php对数组操作函数(这个里面很多轮衫笑都比较常用,最好塌纯掌握):

⑧ php中显示数组与对象的实现代码

1、
使用
print_r
(
$array/$var
)
print
是打印的意思,而r则取自Array的单词,那么该函数的功能就是打印数组内容,它既可以打印数组内容,也可以打印普通的变量。
print_r
($_REQUEST)
;
print_r
($_GET)
;
/*
打印使用GET方法传递的表单内容*/
print_r($_POST)
;
/*
打印使用表单POST方法传递过的数组内容*/
2、
使用
var_mp
($object/$array/$var)
var
代表变量(Variable),变量包括对象、数组以及标量变量,mp有倒出之意,加在一块,就是将变量或对象的内容全部输出出来。
var_mp($DB)
;
/*打印$DB数据库连接对象的内容*/
var_mp($fileHandle)
;
/*打印文件句柄对象的内容*/
var_mp($Smarty)
;
/*打印Smarty模板对象*/
3、
使用
var_export($object/$array/$var)
输出或返回一个变量的字符表示。此函数返回关于传递给函数的变量的结构信息,它和print_r()类似,不同的是其返回的表示是合法的PHP代码。可以通过将函数的第二个参数设置为TRUE,从而返回变量的表示。
例如:
复制代码
代码如下:
<?php
$a
=
array
(
1,2,
array("a","b","c"))
;
var_export
($a)
;
echo
"<br>"
;
$v
=
var_export
(
$a
,
TRUE)
;
echo
$v
;
?>
上例中,$v
=
var_export
(
$a
,
TRUE)
表示返回的是PHP的源代码,可以直接用PHP脚本的数组文件中。
相关说明:
以上三个函数都可以打印对象的值、系统函数值以及数组的内容;

echo
、print、printf可以打印变量内容,但不能显示数组及系统超级变量数组;

print_r

var_mp不仅可以打印数组、标量变量,还可以打印对象的内容;

var_mp语句不仅能打印变量、数组内容,还可以显示布尔变量和资源(Resource)的内容;

var_export
函数返回关于传递给该函数的变量的结构信息,和
var_mp()函数类似,不同的是其返回的内容是合法的PHP代码。

⑨ PHP 对象数组的筛选和判断

手打不易,有用请采纳。

$rArray = json_decode(json_encode($r),true);//通过json将对象转换为数组。
foreach($rArray as $k => $v){
if($v['banji']==1){ //如果banji=1则求语文成绩
echo "语文成绩={$v['yuwen']}";
}elseif($v['banji']==2){ //如果banji=2则求数学成绩
echo "语文成绩={$v['shuxue']}";
}
if($v['xingming']=='x'){ //有一个姓名为$x是否在banji1
if($v['banji']==1){
echo "xingmign为x的是班级1";
}else{
echo "xingmign为x的不是班级1";
}
}
}

⑩ PHP数组中可否存放对象如果可以,那么在smarty的模板中应当如何获取对象的属性值

PHP的数组是支持保存对象的实例的,然后你的错误提示中也能看出是用了数组的方式来访问了一个对象。
建议你不要用对象的形式,而全部都用数组。可以用json函数来转换
$user_array=json_decode(json_encode($user_array),true);

这样一来$user_array里面就全部都是数组,其中原先对象的部分被一个包含了其所有成员属性的数组替代。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:335
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:31
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:942
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:739
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:802
网卡访问 发布:2025-05-18 03:35:04 浏览:510
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371