本周开始学习跟着老黄学习php:
PHP知识点:
PHP 它其他就是一种服务端的脚本语言。
PHP 能做很多事情,包括网站,手机应用,游戏开发,脚本开发等。
php 建议初期使用notepad++ 开发。
notepad里建议安装一个插件 explorer 有文件管理器的功能。
行业内的PHP开发组合,一般如下:
WAMP WNMP WANMP LAMP LNMP LANMP
关于注释:
建议以后每个脚本的最前面有一个注释,信息如下:
/*
** fileName: bobaogeAuto.php //文件名字
** etc: auto import bobaoge message //文件的用处
** author: jabez.huang //文件的作者
** date: 2016/01/04 //最后一次更新时间
*/
关于PHP标识:
每一个PHP是以 <?php 开头 以 ?> 结尾
注意:php文件里是可以写HTML的。但是需要注意的是,不能写在PHP的范围内,也就是不能再<?php ?>内,只能在之外写。比如 <?php echo 123; ?> <h1>123</h1>
echo 是 PHP 输出函数。 关于PHP输出函数有以下几种:
1、echo 输出基础类型,如字符串 和 数字,bool等
2、print 同上,但是有返回值1
3、printf 也是输出格式化字符串
4、print_r 输出集合类型,有一定规则。
5、var_dump 输出集合类型,没有规则
学习建议:在你编程之前请打开你的PHP手册,这是必备良药!
PHP变量是以$符号标识的。
注意:变量只能以下划线_ 和大小写字母开头,在变量过程中,只能有下划线 大小写字母 以及 数字。不要有空格!运算符等!
正确:$a $ab $_ab
错误: $1a $a b
在PHP中有通配符,%s 代表是匹配字符串类型,%u %d %i 都是匹配整型 %f 代表是匹配浮点类型 %.2f 代表是匹配浮点类型 保留2个小数。
printf() 和 sprintf()的区别:
printf() 返回的是 字符串 和 长度。
sprintf() 返回的是只是格式化的字符串
如: sprintf("http://aiqiyi.com/%s", "寻龙诀");
变量赋值是指将一个变量的值给另一个变量。如:
$a = 10;
$b = $a;
$b = 20;
echo $a;//10
echo $b;//20
引用赋值是指将一个变量的内存地址给另一个变量,因为如果整个给内存地址的变量一旦发生改变,那么另一个变量立马改变。
$a = 10;
$b = &$a;
$b = 20;
echo $a; //20
echo $b; //20
PHP中字符串连接 不用+ 用 .
函数作用域
在PHP中,全局变量改变,通常不会影响到局部变量,除非你一定要去使用全局变量。那么请你一个关键字 叫做global。如:
$number = 1000;
funciton abc(){
global $number;
echo $number;
}
abc();
static 关键字一般用于静态变量,而静态变量的作用就是让这个变量在不使用的时候 不会被释放,而是长期保留。
PHP中 {}用于表示同时编译括号内的变量,如:
$a = 10 ; echo {$$a};
PHP中的数据类型:
整型、浮点型、布尔型、字符串
数组、对象、资源类型、NULL
单引号和双引号的区别:
双引用会进一步解析内部的变量定义,而单引号则会直接输出这个字符,因为理论上来说单引号快一些。
PHP中的数组、字典的关键字是array
如 $a = array(); //定义了一个空数组
$a = array( 1, 2, 3 ); //定义了一个数组有3个元素。
遍历数组,第一种方法,count为数组计数:
for( $i = 0 ; $i < count($a); $i++ ){
echo $a[$i];
}
遍历数组,第二种方法,foreach:
foreach( $a as $key ){
echo $key;//$key名字为变量名 随便定义
}
字典:$a = array( "name" => "abc", "a" => "b");
在php的字典中 key => value 的形式存在的。
遍历字典:
foreach( $a as $key => $value ){
echo $key."-".$value;
}
PHP函数:
1、rand 随机数。rand(最小值,最大值)
2、array_rand 随机数组。提取数组中的任意一个元素。注意是提取下标。array_rand(数组,提取数);
3、array_search 可以快速找到数组或者字典中的某个值,如果没有找到返回的0或者false。
注意:这个函数因为会返回0,但是0在数组里是有下标的,因此判断的时候请用 恒等 ===
array_search( "查找的值", 集合 );
4、array_unique 给集合去重,如果发现重复的元素直接删除
练习一:请在昨天的斗地主洗牌后,给3位玩家发牌,并显示牌的花色和牌面,请整理每个人的手牌
5、unset 移除集合里的某个值
$arr = array( 1, 2, 3 );
如: unset( $arr[0] );
6、die() 设置程序断点,用于程序调试
7、array_unshift 在集合头部插入一个或者多个单元。如:array_unshift( $arr , "a", "b" );
8、array_pop 删除集合最后一个元素。
9、array_shift 删除集合第一个元素。
10、implode 将数组以特殊符号,链接成字符串。
11、explode 将字符串以特殊符号进行分割成数组。
PHP语法加强:
文件编码的简要说明:
在中国有2种编码非常常用:
1、gb2312 / gbk
2、utf-8
如果你决定使用一种编码,那么请一直使用它,不然会有乱码危险!
应用于每次notepad新建PHP文件都是utf-8无BOM格式
notepad -> 首选项 -> (左侧)新建 -> 默认语言 php -> 右侧的选中UTF-8 无BOM头 应用于ANSI
注意:
因为webserver里有一个超时时间504,因此无法把PHP网页的执行时间,设置成无限秒。
因此在该种情况下,请使用 PHP执行脚本。
windows的基础命令:
dir 列出当前目录的文件和文件夹
cd 切换目录 如: cd abc 注意:中间有空格
cd .. 返回上一级目录
cd C:\Users\mybirdie\Desktop 切换到具体的目录
tab键 可以自动补全(如果当前在其他盘内,请先切换到当前盘,如c:)
PHP执行脚本:
1、请修改环境变量
控制面板->系统->左侧的高级系统设置-> 下方的环境变量,下方的 Path,打开,在尾部加入; (如果有则不需要添加,win10请使用新建不需要加入; ) 当然你的PHP安装路径 ,如:C:\PHP\PHP 。设置完毕之后点击完成,并关闭全部窗口。
2、重新打开cmd窗口,执行语句 php -v 会有显示当前PHP的版本。
3、php test.php 执行php任何脚本即可。
【BOM 字节序标记 php在处理BOM头的时候,有时候存在错误,因此建议用无BOM的】
【在windows的cmd下,如果需要显示中文,请将脚本编码格式转为 ANSI的格式】
set_time_limit();用于php脚本的执行时间 同等于在php.ini中的max_execution_time 默认执行30秒。
如果要设置成执行无限秒 set_time_limit( 0 );
sleep();用于暂停的秒数
换行:\n 用于脚本 <br/> 用于网页
array_keys 返回集合的键
array_values 返回集合的值
in_array 判断集合中是否有某个值,如in_array( "a",$arr); 返回的是布尔值。
array_key_exists 判断数组中是否包含了某个键值,返回的是布尔值。
array_count_values 返回的是数组中,所有值出现的次数
==========================
在php中的变量比较,优先转化成有同一类型的变量,优先转化成整型,如:0 == "name" 那么优先转化"name" 为0 因此 它们是相等的。
字符串中,转化后如果判断是浮点则直接用浮点跟整型比较一次。
==========================
sort() 升序 rsort() 倒序
判断某个变量的数据类型用 is_类型
如:
is_string 判断字符串
is_int 判断整型
is_array 判断数组
is_float 判断浮点
转化类型函数:
intval
floatval
strval
// 通常这种情况下:浮点*整型(字符串等) 会有二进制的问题,
//因此,如果需要解决有2个渠道:
//1、在输出之前用strval函数。
//2、请用round函数,功能是四舍五入
注意:在PHP中“a”+/-/*/ “b” 都是需要转化成整型或者字符串类型运算的。
强制转化成整型一般都是从左往右查看,如果为数字则保留,其他的则直接为0
如:10a 强制转化为 10 , a10 强制转化为 0
empty() 一般用于判断集合是否为空。
如:if( empty($arr) ) echo "集合为空";
var_export 输出或返回一个变量的字符串表示
通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。
宏:define 相当于超级全局变量。
define( "参数名", 值);
如: define("A","Hello");
echo A; //注意这里不要加$;
@ 忽略警告或者错误。继续执行下面的
echo "Hello";
echo @(1/0); //加了@会自动忽略掉警告或者错误
echo "Hello";
整个程式输出的是Hello Hello;
魔术方法
__FILE__ 当前文件的路径
__LINE__ 定义的行数
__DIR__ 当前文件的路径 不包括这个文件名
如:
define( "FPATH" , __FILE__ );
define( "Line" , __LINE__ );
define( "DIR1", __DIR__ );
$global 申请使用或者定义 全局变量。
$_SERVER 打印当前服务器的详细信息。
$_REQUEST 同时接收POST/GET方式请求
$_POST 接收POST方式请求
$_GET 接收GET方式请求
本周开始培训的重头戏,由老黄带着我们开始学习PHP,一开始学起来不是特别的顺畅,在装软件搞配置的时候就搞了老半天,不过最后还是顺利的配置好了。在开始学PHP语法的时候,虽说很多知识点都在学JS的时候学过,但在PHP里却不能融会贯通,学起来还是有点吃力,就是老黄打的都看得懂,但一旦老黄布置个任务下来就不知该如何下手,看似都掌握的知识点却不能灵活的去运用,主要还是我们练习的不够吧,还有一周学习周,好好努力吧。