【PHP】入门知识

基础知识

  • 八种原始数据类型:
    • 四种标量类型:boolean、integer、float、string
    • 两种复合类型:array、object
    • 两种特殊类型:resource、null
  • var_dump($var):获取$var变量的类型
  • memory_get_usage():获取当前PHP消耗的内存
  • 八进制数字前加上0,十六进制数字前加上0x,打印时会自动转为十进制
  • 当双引号中包含变量时,变量会与双引号中的内容连接在一起
  • 当单引号中包含变量时,变量会被当做字符串输出
  • 当字符串长度过长时,可以使用Heredoc结构形式:
    • $string1 = <<<标识符
    • xxxxxxxxxxxxx字符串
    • 标识符;
  • error_reporting(0); //禁止显示PHP警告提示
  • unset($var):函数用于销毁给定的变量
  • bool define(string $constant_name, mixed $value[, $case_sensitive = true]):定义常量
    • 第一个参数“constant_name”为必选参数,常量名称,即标志符,常量的命名规则与变量的一致,但是要注意哦,它可不带美元符号哦。
    • 二个参数“value”为必选参数,它是常量的值。
    • 第三个参数“case_sensitive”为可选参数,指定是否大小写敏感,设定为true表示不敏感,一般不指定第三个参数的情况下,默认第三个参数的值为false。
  • constant(string constant_name)函数:它和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,在使用上要灵活、方便,
  • 错误控制运算符“@”:对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉.需要注意的是:错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等
  • foreach(数组 as 值):只取值,不取下标
  • foreach(数组 as 下标 =>): 同时取下标和值
  • print_r($farr):可以输出数组键以及对应的值
  • __construct():定义一个构造函数,具有构造函数的类,会在每次对象创建的时候调用该函数,因此常用来在对象创建的时候进行一些初始化工作.如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象
  • __destruct()进行定义,析构函数指的是当某个对象的所有引用被删除,或者对象被显式的销毁时会执行的函数
  • 静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用。静态属性不允许对象使用->操作符调用。
  • 属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性
  • __call():方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载
  • clone:对象复制,在一些特殊情况下,可以通过关键字clone来复制一个对象,这时__clone方法会被调用,通过这个魔术方法来设置属性的值
  • serialize()对象序列化,可以通过serialize方法将对象序列化为字符串,用于存储或者传递数据,然后在需要的时候通过unserialize将字符串反序列化成对象进行使用。
  • str_replace($find,$replace,$string):对字符串string里的find值替换为replace值

系统常量

  • _FILE_ :php程序文件名。它可以帮助我们获取当前文件在服务器的物理位置。
  • _LINE_ :PHP程序文件行数。它可以告诉我们,当前代码在第几行。
  • PHP_VERSION:当前解析器的版本号。它可以告诉我们当前PHP解析器的版本号,我们可以提前知道我们的PHP代码是否可被该PHP解析器解析。
  • PHP_OS:执行当前PHP版本的操作系统名称。它可以告诉我们服务器所用的操作系统名称,我们可以根据该操作系统优化我们的代码。

正则表达式

  • preg_match():用于执行一个正则匹配,常用来判断一类字符模式是否存在
  • \ 一般用于转义字符
  • ^ 断言目标的开始位置(或在多行模式下是行首)
  • $ 断言目标的结束位置(或在多行模式下是行尾)
  • . 匹配除换行符外的任何字符(默认)
  • [ 开始字符类定义
  • ] 结束字符类定义
  • | 开始一个可选分支
  • ( 子组的开始标记
  • ) 子组的结束标记
  • ? 作为量词,表示 0 次或 1 次匹配。位于量词后面用于改变量词的贪婪特性。 (查阅量词)
  • * 量词,0 次或多次匹配
  • + 量词,1 次或多次匹配
  • { 自定义量词开始标记
  • } 自定义量词结束标记
  • \s匹配任意的空白符,包括空格,制表符,换行符。
  • [^\s]代表非空白符。
  • [^\s]+表示一次或多次匹配非空白符。
  • \d匹配数字
  • \w匹配字母或数字或下划线
  • \s匹配任意的空白符,包括空格、制表符、换行符
  • 当使用+之后将会变的贪婪,它将匹配尽可能多的字符,但使用问号?字符时,它将尽可能少的匹配字符,既是懒惰模式。

会话控制

  • ob_start():打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出
  • ob_get_contents():获得缓冲区的内容
  • setcookie():函数进行Cookie的设置.setcookie具有7个可选参数,我们常用到的为前5个:name( Cookie名)可以通过$_COOKIE[‘name’] 进行访问;value(Cookie的值);expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效;path(有效路径)如果路径设置为’/‘,则整个网站都有效;domain(有效域)默认整个域名都有效,如果设置了’www.imooc.com’, 则只在www子域中有效
  • setrawcookie():跟setcookie基本一样,唯一的不同就是value值不会自动的进行urlencode,因此在需要的时候要手动的进行urlencode。
  • $_COOKIE:任何从浏览器发回的Cookie,PHP都会自动的将他存储在$_COOKIE的全局变量之中,因此我们可以通过$_COOKIE[‘key’]的形式来读取某个Cookie值。
  • ob_clean():清空缓冲区
  • header():1.跳转页面2. 声明content-type3. 返回response状态码4. 在某个时间后执行跳转5. 控制浏览器缓存6. .执行http验证7. 执行下载操作
  • nl2br():函数在字符串中的每个新行(\n)之前插入 HTML 换行符(<br> 或 <br />)
  • setcookie(‘test’, ‘’, time()-1):将cookie的过期时间设置到当前时间之前,则该cookie会自动失效,也就达到了删除cookie的目的
  • session_start() :会创建新会话或者重用现有会话。 如果通过 GET 或者 POST 方式,或者使用 cookie 提交了会话 ID, 则会重用现有会话。
  • $_SESSION[‘test’]:设置一个session。session会自动的对要设置的值进行encode与decode,因此session可以支持任意数据类型,包括数据与对象等。
  • session_id():显示当前的sessionId
  • unset($_SESSION[‘test’]):销毁一个session.如果要删除所有的session,可以使用session_destroy函数销毁当前session,session_destroy()会删除所有数据,但是session_id仍然存在。session_destroy()并不会立即的销毁全局变量$_SESSION中的值,只有当下次再访问的时候,$_SESSION才为空,因此如果需要立即销毁$_SESSION,可以使用unset函数。如果需要同时销毁cookie中的session_id,通常在用户退出的时候可能会用到,则还需要显式的调用setcookie方法删除session_id的cookie值。
  • $str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), $str, MCRYPT_MODE_ECB)):对序列化后的用户信息$str使用密钥$secureKey进行加密
  • $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), base64_decode($str), MCRYPT_MODE_ECB):对加密后的秘文进行解密,得到序列化后的对象

文件系统

  • file_get_contents(‘./test.txt’),可以将整个文件全部读取到一个字符串中,也可以通过参数控制读取内容的开始点以及长度$content = file_get_contents(‘./test.txt’, null, null, 100, 500);
  • fopen(“filepath”, “r/w”):打开文件路径问filepath的文件,以r-读,w-写方式打开
  • fclose($fileResource):关闭文件资源变量
  • feof($fileResource):判断是否时最后一行
  • fgets($filr_handle):读取一行文本
  • freads($file, length):可以读取指定长度的字符串
  • fwrite($file,‘test’):向文件中写入’test’
  • file_exists($filename):不仅可以判断文件是否存在,同时也可以判断目录是否存在
  • is_file($filename):是确切的判断给定的路径是否是一个文件
  • is_readable()与is_writeable():在文件是否存在的基础上,判断文件是否可读与可写
  • file_put_contents($filename, ‘test’,FILE_APPEND):向文件中写入‘test’,并且以文件追加FILE_APPEND的方式写入
  • fileowner($filename):获得文件的所有者
  • filectime($filename):获取文件的创建时间
  • filemtime($filename):获取文件的修改时间
  • fileatime($filename):获取文件的访问时间
  • filesize($filename):可以取得文件的大小,文件大小是以字节数表示的
  • unlink($filename):删除文件
  • rmdir($dir):删除文件夹
  • foreach (glob(“*”) as KaTeX parse error: Expected '}', got 'EOF' at end of input: …me) { unlink(filename); }如果文件夹中存在文件,可以先循环删除目录中的所有文件,然后再删除该目录,循环删除可以使用glob函数遍历所有文件。

异常处理

  • 略,跟其他语言类似

数据库

  • mysql_connect():连接数据库
  • $link = mysqli_connect(‘mysql_host’, ‘mysql_user’, ‘mysql_password’ ) : mysqli扩展
  • mysql_select_db($db):选择数据库
  • mysql_query($sql):进行sql查询
  • mysql_fetch_assoc($result):读取数据,fetch_assoc返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false
  • mysql_insert_id():获得自增的主键id
  • mysql_fetch_array,可以通过设定参数来更改行数据的下标,默认的会包含数字索引的下标以及字段名的关联索引下标。可以通过设定参数MYSQL_NUM只获取数字索引数组,等同于mysql_fetch_row函数,如果设定参数为MYSQL_ASSOC则只获取关联索引数组,等同于mysql_fetch_assoc函数
  • mysql_affected_rows():函数来获取更新过的数据行数,如果数据没有变化,则结果为0
  • mysql_close($mnysql):关闭特定的数据库
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值