- 相关推荐
php用法有哪些
一般来说,看到有->的用法都是这样的形式对象->属性或方法,如:$a=new b();$a->c;那么php中的“->”用法有哪些呢?下面小编给大家整理了php中的“->”用法,供大家参阅。
php用法有哪些
mysql_fetch_object() 和 mysql_fetch_array() 类似,只有一点区别 - 返回一个对象而不是数组。间接地也意味着只能通过字段名来访问数组,而不是偏移量(数字不是合法的属性)。
echo $row->field;
/* this is invalid */
echo $row->0; 手册里有这个例子:
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);
->简介
->运算符叫做“指向结构体成员运算符”,是C语言和C++语言的一个运算符。
一个指针当用来指向一个结构体、对象时,称之为结构体指针或对象指针。结构体指针或对象指针中的值是所指向的结构体或对象的首地址。通过结构体指针或对象指针即可访问该结构体或对象。
这需要用到结构体关键字struct和C++类关键字class。
结构体指针和对象指针定义的形式:
struct 结构体类型名 *指针名;//结构体指针
struct 结构体类型名 *指针名 = &一个结构体的名字;//结构体指针并赋初值
struct 结构体类型名 *指针名 = new struct 结构体类型名;//结构体指针并用new申请内存
struct 结构体类型名 *指针名 =(struct 结构体类型名 *)malloc(sizeof(struct 结构体类型名))//结构体指针并用malloc申请内存 使用应包含头文件stdlib.h
//对象指针的定义方法略同。
优先级:1
这个运算符在链表中很有用。
->用法实例
#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
不过在定义全局函数的时候最好传入引用而不是指针,这样在调用对象时和定义函数不会出错
策略模式中主要角色
这个模式设计到三个角色:
环境角色(Context):持有一个Strategy的引用
抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体的策略类所需的接口
具体策略(ConcreateStrategy)角色:包装了相关的算法或行为
使用场景
假设现在要设计一个购物车系统,一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定比这个复杂。例如:对普通会员无折扣,对中级会员提供8折优惠,对高级会员提供7折优惠。
根据上述描述,货品价格是根据以下几个算法中的一个进行的:
对普通会员无折扣
对中级会员8折
对高级会员7折
控制浮点数打印格式
浮点数的打印和格式控制是sprintf 的一大常用功能,浮点数使用格式符”%f”控制,默认保留小数点后6 位数字,比如:
复制代码 代码如下:
sprintf("%f", 3.1415926); //结果:"3.141593"
但,有时我们希望自己控制打印的宽度和小数位数,这时就应该使用:”%m.nf”格式,其中m 表示打印数字的整体宽度,n 表示小数点后的位数。比如:
复制代码 代码如下:
sprintf(" %9.3f", 3.1415926); //右对齐:位数不够用空格补全。结果:" 3.142"
sprintf(" %-9.3f", 3.1415926); //左对齐:位数不够用空格补全。结果:"3.142 "
sprintf(" %.3f", 3.1415926); //不指定总宽度,结果:"3.142"
注意一个问题
复制代码 代码如下:
$num = 100;
sprintf("%.2f", $num );
sprintf("%.2f", (double)$num);
上面的两个结果真的一样吗?虽然看起来是一样的,但是下面的原因,可能会有所启发.
原因是:参数压栈时调用者并不知道跟num相对应的格式控制符是个”%f”。而函数执行时函数本身则并不知道当年被压入栈里的是个整数,于是可怜的保存整数$num的那4个字节就被不由分说地强行作为浮点数格式来解释了,整个乱套了。
【php用法有哪些】相关文章:
PHP语言的特性有哪些12-22
c语言if语句的用法有哪些03-17
c语言中indexof用法有哪些04-02
php中三元运算符用法04-02
php编程语言入门需要掌握哪些知识05-12
PHP的基本作用03-17
PHP基本语法04-29
PHP常量介绍04-21
photoshop有哪些功能02-28
大学有哪些专业04-06