php中的“->”用法
php中的“->”用法
一般來說,看到有->的用法都是這樣的形式對象->屬性或方法,如:$a=new b();$a->c;php中的“->”用法有哪些呢?本文是學(xué)習(xí)啦小編整理php中的“->”用法的資料,僅供參考。
php中的“->”用法
看看php手冊對mysql_fetch_object的介紹:mysql_fetch_object() 和 mysql_fetch_array() 類似,只有一點(diǎn)區(qū)別 - 返回一個(gè)對象而不是數(shù)組。間接地也意味著只能通過字段名來訪問數(shù)組,而不是偏移量(數(shù)字不是合法的屬性名)。
echo $row->field;
/* this is invalid */
echo $row->0;?> 手冊里有這個(gè)例子:
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result = mysql_query("select * from mytable");
while ($row = mysql_fetch_object($result)) {
echo $row->user_id;
echo $row->fullname;
}
mysql_free_result($result);
?>
->簡介
->運(yùn)算符叫做“指向結(jié)構(gòu)體成員運(yùn)算符”,是C語言和C++語言的一個(gè)運(yùn)算符。
一個(gè)指針當(dāng)用來指向一個(gè)結(jié)構(gòu)體、對象時(shí),稱之為結(jié)構(gòu)體指針或?qū)ο笾羔?。結(jié)構(gòu)體指針或?qū)ο笾羔樦械闹凳撬赶虻慕Y(jié)構(gòu)體或?qū)ο蟮氖椎刂贰Mㄟ^結(jié)構(gòu)體指針或?qū)ο笾羔樇纯稍L問該結(jié)構(gòu)體或?qū)ο蟆?/p>
這需要用到結(jié)構(gòu)體關(guān)鍵字struct和C++類關(guān)鍵字class。
結(jié)構(gòu)體指針和對象指針定義的形式:
struct 結(jié)構(gòu)體類型名 *指針名;//結(jié)構(gòu)體指針
struct 結(jié)構(gòu)體類型名 *指針名 = &一個(gè)結(jié)構(gòu)體的名字;//結(jié)構(gòu)體指針并賦初值
struct 結(jié)構(gòu)體類型名 *指針名 = new struct 結(jié)構(gòu)體類型名;//結(jié)構(gòu)體指針并用new申請內(nèi)存
struct 結(jié)構(gòu)體類型名 *指針名 =(struct 結(jié)構(gòu)體類型名 *)malloc(sizeof(struct 結(jié)構(gòu)體類型名))//結(jié)構(gòu)體指針并用malloc申請內(nèi)存 使用應(yīng)包含頭文件stdlib.h
//對象指針的定義方法略同。
優(yōu)先級:1
這個(gè)運(yùn)算符在鏈表中很有用。
->用法實(shí)例
#include
#include
using namespace std;
class C
{
public:
int num;
string name;
};
int main(void)
{
C obj;
C *p = &obj;
p->num = 5;
p->name = "Tony";
cout << p->num << p->name << endl;
return 0;
}
程序輸出:
5Tony
2.
#include
#include
using namespace std;
class C
{
public:
int num;
string name;
};
void changevalue(C *t,int num,string name)
{
t->num=num;
t->name=name;
}
int main(void)
{
C obj;
changevalue(&obj,5,"Tony");
cout << obj.num << obj.name << endl;
return 0;
}
程序輸出:5Tony
不過在定義全局函數(shù)的時(shí)候最好傳入引用而不是指針,這樣在調(diào)用對象時(shí)和定義函數(shù)不會出錯(cuò)。
看了php中的“->”用法的人還看了: