PHP总结的一些语法

来源:互联网 发布:linux内核分析 编辑:程序博客网 时间:2024/06/05 07:50

1:->:指代某某的一个方法

2:public 表示全局,类内部外部子类都可以访问;
private表示私有的,只有本类内部可以使用;
protected表示受保护的,只有本类或子类或父类中可以访问;

3:

M方法的调用格式:

M('[基础模型名:]模型名','数据表前缀','数据库连接信息')

1
$User= M('db2.User','think_');

表示实例化Model模型类,并操作db2数据库中的think_user表。

4:

SQL where子句用于指定的条件,而从单个表或多个表的连接获取数据。

如果给定的条件满足,那么它返回从表中特定的值。将使用WHERE子句来筛选记录和读取只需要记录。

5:field方法属于模型的连贯操作方法之一,主要目的是标识要返回或者操作的字段,可以用于查询和写入操作。

6:new UserModel();//定义方法  使得这个仓库有效

7:md5() 函数计算字符串的 MD5 散列。

md5() 函数使用 RSA 数据安全,包括 MD5 报文摘要算法。

8:

str_replace(find,replace,string,count)
参数描述find必需。规定要查找的值。replace必需。规定替换 find 中的值的值。string必需。规定被搜索的字符串。count可选。对替换数进行计数的变量。

10:count() 函数返回数组中元素的数目。

11:ceil() 函数向上舍入为最接近的整数。

返回不小于 x 的下一个整数,x 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。

12:

 假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户的创建时间排序 ,代码如下:

  1. $User->where('status=1')->order('create_time')->limit(10)->select();

这里的whereorderlimit方法就被称之为连贯操作方法,除了select方法必须放到最后一个外(因为select方法并不是连贯操作方法),连贯操作的方法调用顺序没有先后,例如,下面的代码和上面的等效:

http://document.thinkphp.cn/manual_3_2.html#continuous_operation

13:

order方法属于模型的连贯操作方法之一,用于对数据库操作的结果进行排序。即相当于是在select语句中一个order by的子句。
用法
    $Model->where('status=1')->order('id desc')->limit(5)->select();
注意:连贯操作方法没有顺序,可以在select方法调用之前随便改变调用顺序。
支持对多个字段的排序,例如:
    $Model->where('status=1')->order('id desc,status')->limit(5)->select();

如果没有指定desc或者asc排序规则的话,默认为asc。ASC是升序

desc是降序

14:$map['字段名'] = array('表达式','查询条件');
表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:
表达式含义EQ等于(=)NEQ不等于(<>)GT大于(>)EGT大于等于(>=)LT小于(<)ELT小于等于(<=)LIKE模糊查询[NOT] BETWEEN(不在)区间查询[NOT] IN(不在)IN 查询EXP表达式查询,支持SQL语法示例如下:
EQ :等于(=)
例如:

  1. $map['id']  = array('eq',100);
和下面的查询等效
  1. $map['id']  = 100;
表示的查询条件就是 id = 100


   $map['tbusergroup.fdcDesc'] = ['like','%'.$kw.'%'];
这里指模糊查找 tbusergroup.fdcDesc中的 $kw值,%值%;表示缺少的空字;

提示:"%" 可用于定义通配符(模式中缺少的字母)。

 $map['_logic'] = 'or';
如果进行多字段查询,那么字段之间的默认逻辑关系是 逻辑与 AND,但是用下面的规则可以更改默认的逻辑判断,通过使用 _logic 定义查询逻辑:

就相当于 $map['tbusergroup.fdcDesc'] = ['like','%'.$kw.'%'] or  $map['tbusergroup.fdcName'] = ['like','%'.$kw.'%'];

   $map['tbusergroup.fdcDesc'] = ['like','%'.$kw.'%'];//?
            $map['tbusergroup.fdcName'] = ['like','%'.$kw.'%'];
            $map['_logic'] = 'or';
  1. $where['name']  = array('like', '%thinkphp%');
  2. $where['title']  = array('like','%thinkphp%');
  3. $where['_logic'] = 'or';
  4. $map['_complex'] = $where;
  5. $map['id']  = array('gt',1);
查询条件是 

( id > 1) AND ( ( name like '%thinkphp%') OR ( title like '%thinkphp%') )

  $where['_complex'] = $map;
复合查询相当于封装了一个新的查询条件,然后并入原来的查询条件之中,


复合查询使用了_complex作为子查询条件来定义,配合之前的查询方式,可以非常灵活的制定更加复杂的查询条件。
很多查询方式可以相互转换,例如上面的查询条件可以改成:

http://blog.csdn.net/hsd2012/article/details/51074821


15:I('get.'); // 获取整个$_GET 数组

  1. I('post.name','','htmlspecialchars'); // 采用htmlspecialchars方法对$_POST['name'] 进行过滤,如果不存在则返回空字符串
  2. I('session.user_id',0); // 获取$_SESSION['user_id'] 如果不存在则默认为0
  3. I('cookie.'); // 获取整个 $_COOKIE 数组
  4. I('server.REQUEST_METHOD'); // 获取 $_SERVER['REQUEST_METHOD'] 

16:delete()语句用于从数据库表中删除记录

17:两个数据库相连接!

 $join = ['LEFT JOIN tbusergroup on tbuser.fdlGroupID =
         tbusergroup.ID LEFT JOIN asupply on tbuser.fdlSupplyID = asupply.ID'];/

18:因此要使用 save() 方法更新数据,必须指定更新条件或者更新的数据中包含主键字段

ThinkPHP 内置的 save 方法用于向数据表更新数据,相当于 SQL 中的 UPDATE 行为。

ThinkPHP save() 方法

ThinkPHP 中使用 save() 方法来更新数据库,并且也支持连贯操作的使用。



19:json_encode
以json的形式弄出来
<?php$arr = array       (          'Name'=>'希亚',          'Age'=>20       );$jsonencode = json_encode($arr);echo $jsonencode;?>

程序运行结果如下:

{"Name":null,"Age":20}
$arr= array("姓名"=>"小明","年龄"=>30);
var_dump($arr);
echo "<hr>";
$jsone=json_encode($arr);//对变量(数组)进行json编码,返回json字符串, "{"\u59d3\u540d":"\u5c0f\u660e","\u5e74\u9f84":30}"
var_dump($jsone);

// 在js中使用JSON.parse()方法用于将一个JSON字符串转换为对象。
// 经常用于ajax在php端返回使用json_encode处理的json数据,而在ajax的success方法中则需使用JSON.parse()方法将其转换为对象。


20:

 static
 php中除了常规类和方法的使用,访问控制之外,还有静态关键字static,静态变量可以是局部变量也可以是全局变量,当一个程序段执行完毕时,静态变量并没有消失,它依然存在于内存中,下次在定义时还是以前的值,常用于递归或子函数中保留之前的值,可以用来定义变量和方法,作用就不具体说了,说一下使用方式,下面简单的代码:
21:

1.获取某个字段值

这个是getField方法最基本的用法,用于获取符合条件的某个字段值。

?
1
2
3
$User= M("User");// 实例化User对象
 // 获取ID为3的用户的昵称
$nickname=$User->where('id=3')->getField('nickname');

返回的nickname是一个字符串结果。也就是说,即使有满足条件的多个字段,也只会返回一个结果。

2.获取某个字段列

如果希望返回符合要求的字段列(多个结果),可以使用:

?
1
2
3
$User= M("User");// 实例化User对象
 // 获取status为1的用户的昵称列表
$nickname=$User->where('status=1')->getField('nickname',true);

第二个参数传入了true,返回的nickname则是一个数组,包含了所有满足条件的昵称列表。

21:isset函数是检测变量是否设置。

格式:bool isset ( mixed var [, mixed var [, ...]] )

返回值:

若变量不存在则返回 FALSE 
若变量存在且其值为NULL,也返回 FALSE 
若变量存在且值不为NULL,则返回 TURE 
同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE


22:
<?php if($a==1):?>
<input type="text">
<?php endif;?>
在HTML文件里判断条件的一种方式;
<?php if($a==1):?>
<input type="text">
<?php else:?>
<input type="checkbox">
<?php endif;?>

23:Swith:语句

switch($a){
  case 1:
  echo "星期1";
  break;
  case 2;
  echo "星期2";
 break;
 default:
 echo "你查寻的结构";
}

24:设置时间:

date_default_timezone_set("Asia/Shanghai");//设置时区
$time=date("Y-m-d H:i:s");//获取当前时间
echo $time;

25:$_GET和$_POST

PHP预定义变量;

$_GET;

就是接收表单或者超链接发过来的数据;

26:$_SESSION

告诉浏览器我的数据已经验证通过,登陆成功,此时session须要存储数据,其他页面通过判断session中存储的数据来判断是否登陆,Session可以跨页面进行传递

session_start();开启session功能

$_SESSION["username"]=$username;保存;

则在其他页面就可以

session_start();开启session功能

其他页面用这个验证