php学习笔记1——php基础
来源:互联网 发布:青苹果申报数据库 编辑:程序博客网 时间:2024/06/17 13:16
php简介和安装(windows环境)
1,PHP:Hypertext Preprocessor,超文本预处理器2,HTTP:Hypertext Transfer Protocol, 超文本传输协议 >>>建立连接,发送请求,给出应答,关闭连接 常见状态码:200,400,401,403,404,500,5033,LAMP:Linux,Apache,MySQL,PHP LNMP:Linux,Nginx,MySQL,PHP WAMP:Windows,Apache,MySQL,PHP
4,PHP环境搭建 分布搭建(win下): Apache下载安装,更改配置文件>>Apache/bin/conf/httpd.conf >>更改php根目录:DocumentRoot "" Dirctory "" >>更改本地服务器名称:ServerName localhost:80; PHP下载安装,更改配置文件>>php/php.ini >>放开extension_dir = "ext",打开扩展库>>转到888行左右放开相应的ext 再回到Apache/bin/conf/httpd.conf再文件尾加入: LoadModule php5_module "../php/php5apache2_4.dll" //php目录下找 AddHandler application/x-httpd-php .php PHPInDir "../php" //php安装的根目录5,集成环境:Wampserver,XAMPP,PHPStudy,等 Wampserver下载安装,更改根www目录同上Apache 配置虚拟目录>>wamp64/bin/apache/apache2.4.23/conf/extra/httpd-vhost.conf 复制粘贴添加新的配置:ServerName test.com //或其他英文名 DocumentRoot D:../.. Directory "D:../.." 添加本地IP到win,>>C:windows/system32/drivers/etc/hosts 文件尾添加:127.0.0.1 test.com
6,php的标记风格(插标) <?php echo <<<AAA a,XML风格<?php ?> b,shell(脚本)风格<script language="php"> </script> c,简短风格<? ?>//需要在php.ini里更改short_open_tag = off 为on d,ASP标记风格<% %>//需要在php.ini里更改asp_tags = off 为onAAA ?>
7,PHP注释: // c++风格 # shell风格 /* */c 多行注释风格8,编码规范:DRY原则,Do not repeat Yourself 命名规则:变量,有意义的英文单词,之间可用_连接 函数,同上,运用小驼峰,首词小写,后面每词首字母大写 类,同上,运用大驼峰,首词大写,后面每词首字母大写 注意缩进和留白:嵌套要缩进,避免3层以上嵌套, 各功能区空行留白 参数间,后空一格 验证不可少:前端要验证,后端也要验证,输出也要验证 合理使用缓存机制,适当使用框架
php基础1
9,数据类型标量数据类型: Boolean,布尔型,TRUE or FALSE (true false) String,字符串型, 单引号'' 不解析变量,把变量名原样输出(理论上速度比双引号快) 双引号"" 解析变量,输出变量值 <<<FFF //相当于多行双引号("") FFF; //单独占一行,且前后不能有多余的空格 转义字符,\' \n \r \t \" \% ... Integer,整型(int),有符号整数 //php中没有无符号整数 Float,浮点型,浮点型数(有小数点或者E) 复合数据类型: array,数组,一组数据的集合(可以是任何数据,包括数组),组成要素,索引(下标/键名)———元素 $arr=array(1,2,3,'bb'); //不指定键名,索引从0开始 $arr=arry('key'='value','key'='value'...tec) //指定键名 $arr[key]=value; //同上 object,对象,类的一个实例化 class Gun{ } $obj= new Gun(); //定义一个类的对象 特殊数据类型: resource,资源,保存外部资源的一个引用的变量,如打开文件/图形画布等 null,空值 没有赋初始值的变量 赋值为null的变量 被内置函数unset()处理了的变量10,数据类型的转换
自动转换:标量数据类型参与类型时,PHP解析器会根据实际情况自动转换 强制转换:使用PHP运算符或内置函数强制改变变量数量类型 函数: intval($var); //强制转换为整型(取整) floatval($var); //强制转换为浮点型 stringval($var); //强制转换为字符型 settype($var,type); //type为目标数据类型 unset($var); //转为null,销毁变量 运算符: (int/integer)$var; (float)$var; (string)$var; (bool/boolean)$var; (array)$var; (object)$var; 类型检测:var_dump($var); //打印变量的详细星星 is_bool($var); is_int($var); is_float($var); is_string($var); is_array($var); is_object($var); is_null($var); is_numeric($var); //判断变量是否为数字(字符型的数字也行)11,常量,用于存储程序中不变的数据
使用函数define()来声明,声明后值不可改变,常量名必须以下划线或字母开始,不需要$符,区分大小写,一般全字母大写 bool define(sting$name,mixed$value [,bool$case]); //bool$case ,true or false,true对大小写不敏感,反之则反,默认false eg: define(FILENAME,'huwhois'); //定义常量FILENAME,值为huwhois,对大小写敏感 使用函数defined()来判断是否定义为常量 defined(FILENAME); //判断FILENAME是否定义为常量了,返回值为true or falsephp常见的预定义常量(可以直接拿来用):<?phpecho "__FILE__,当前文件的路径:".__FILE__.'
';echo "__LINE__,当前PHP程序的行数:".__LINE__.'
';echo "PHP_VERSION,当前PHP的版本:".PHP_VERSION.'
'; echo "PHP_OS,当前PHP使用的操作系统:".PHP_OS.'br';echo "Boolean值:TRUE FALSE
";echo "E_ERROR,php错误的级别代码:".E_ERROR.'
'; echo "E_WARNING,警告的级别代码:".E_WARNING.'
'; echo "E_ERROR,语法解析有潜在问题处的级别代码:".E_PARSE.'
'; echo "E_NOTICE,该常量为发生不寻常,但不一定是错误处的级别代码:".E_NOTICE.'
'; ?>12,变量,用于存储程序中值可以改变的数据
$Name [=value]; 变量名前要加$符 变量名必须以字母或下划线开头,后面可跟字母/下划线/数字 变量名区分大小写 变量名不允许与系统内建变量/函数/常量等同名a,变量赋值方式: 直接赋值,使用赋值号 = //$a = 5; 传值赋值,将一个变量的值赋值给另一个变量(传一个副本) //$b=$a ==>>$b=5 引用赋值,将一个变量的内存空间和另一个变量共享(家也给了) //$a=5, $c=&$a, ==>>$c=5; 若$c值改变了,$a也跟值一起变 但使用unset()函数销毁其中一个时,另一个不受影响,有福同享,有难不当b,变量的作用域,即变量起作用的范围,主要是根据他们的声明方式和为孩子决定的 1,局部变量,声明在某范围的变量,只在其声明范围内起作用,如函数体里的内部变量 2,全局变量,使用关键字global定义,可在广泛范围内使用 3,静态变量,使用关键字static定义,制作用在函数域内,函数结束后不会释放,而会保存最后一次调用的值,等待函数下次被调用时使用 4,可变变量,即多个$组在一起,变量名由其他变量的值确定c,php预置变量,又称超级全局变量,系统定义的,可直接使用,以数组形式存储相关信息,详见数组13,运算符,即变量执行算术/逻辑运算的符号,也成操作符
算术运算符:非数值型参与运算时PHP先转换为数值型 + - * / % ** 从左到右(左联) ++ -- 从右到左(右联),变量先做其他运算,再自加 字符串运算符: (.) 赋值运算符:右联,左边为变量名,右面右表达式或常量 = += -= *= /= %= .= 比较运算符:又称关系运算符或条件运算符,用于判断操作数的关系,返回布尔值(TRUE or FALSE) == === != <> !== > < >= <= 逻辑运算符:用来判断逻辑表达式的真假,操作数为boolean,返回也是boolean and && or || not ! xor(亦或) 三目运算符: exp1?exp2:exp3 //exp1为真则执行exp2否则执行exp3 运算符优先级:特殊运算符>算术运算符>比较运算符>逻辑运算符>赋值符 运算符优先级相同则由运算符的结合方向决定运算先后 没有结合行的同级运算符不能对一个操作数使用 圆括号有最高优先级,适当加圆括号可是运算表达式更清晰14,流程控制,即程序执行的顺序控制(执行跳过选择等)
顺序结构,按先后从上到下执行,语句只执行一次 分支结构,根据条件判断执行那些语句块 单分支, if(expression){ statement } 多分支, if(expression){ statement1 }else{ statement2 } 多重分支,if(expression1){ statement1 }elseif(expression2){ statement2 }......else{ statement3} 分支嵌套, if(expression0){ if(expression1){ statement1 } }else{ if(expression2){ statement2 } } 多分支选择 switch(exoression){ //表达式为整型或字符 case 常量1; statement1; break; case 常量2; statement2; break; case 常量3; statement3; break; case 常量4; statement4; break; ... default; statementn; break; }15循环结构,主要有条件表达式和执行语句组成,且必须有结束条件
条件循环,while,常用于循环次数不知的时候 while(expression){ statement; //必须要有结束条件 } while循环也可以嵌套多层,但一般不会嵌套多层 do{ statement; }while(expression); do while循环基本同while,但至少会在判断前执行一次体内语句 计数循环,for循环 for (initalization,con-expr,++/-- ){ statememt; } foreach循环,一般用来遍历数组和对象,配合关键字as使用 for($aaray as $key=>$val){ echo $key.'-----'.$val; }使用循环写乘法口诀 $i=1; while($i<10){ $j=1; while{ echo $j.'*'.$i.'='.$j*$i; } $i++; } for($i,$i<10,$i++){ for($j,$j<10,$j++){ echo $j.'*'.$i.'='.$j*$i; } } 跳转结构 break 跳出当前循环,执行循环外语句 continue 跳过本次循环,执行下一次循环16,函数,被命名的独立代码块,返回一个结果自定义函数,使用关键字function命名 function fuc_name( arguments ){ 函数体 return r_value; } 函数命名规则,以字母下划线开头,后面可跟字母数字下划线 不可与系统函数名重名 函数名不区分大小写 函数只有调用时才会执行,return的值给调用的地方 函数需要先定义才调用 参数列表(argument)由0个一个或多个表达式组成,之间用逗号隔开 形参是函数定义时,函数名后面跟着的参数 实参是函数调用时,函数名后面跟着的参数 参数传递方式,按值传递,参数把函数外变量值的副本(即复制)给函数体用,函数体内操作不会改变函数外的变量 按引用传递,参数把函数外变量的内存地址共享给函数体使用,函数体内操作会改变外部的变量 默认值传递,即给形参设置默认值,当没对应实参传进来时,函数调用默认值 有默认值的形参必须放到参数列表最后 默认值必须是常量表达式 自定义传参,函数定义时不给形参,调用时函数参数数量不定,函数体类通过以下函数获取参数列表(数组) func_num_args(); 返回参数个数 func_get_arg(n); 返回参数指定位置的参数值 func_get_args(); 返回包含所有参数的数组17,递归函数,在函数体内调用函数本身function sunm($a){ if($a>0){ return $a+sum($a-1); }}sum(100); 求0到100的和function test($n){ echo $n; if($n>0){ test($n-1); } ehco $n;}test(5);18,嵌套函数,是指在一个函数体内又同事调用一个或多个函数,形成函数内外嵌套的关系先调用外部函数,才能调用内部函数,内部函数不调用,不执行function start(){ echo "正在开机...\n"; function boot(){ echo "正在加载引导程序...\n"; } function welcome($user){ echo "欢迎使用本系统\n"; }}start();boot();welcome("aaa");19,php内置函数库,即内置函数常见的内置函数 empty(), 检查一个变量是否为空,空返回true,非空返回false isset(), 检测一个变量是否被设置及值时候不为null,非空为true,空或null为false gettype(), 获取变量类型 print_r(), 格式化打印标量(一般用来打印数组) unset(), 销毁一个变量 var_dump(), 打印变量相关信息(位置,类型,值,长度等) is_numeric(),检测变量是否为数字,或纯数字字符串
阅读全文
0 0
- php学习笔记1——php基础
- PHP课程-Php基础学习1笔记
- PHP学习笔记-PHP语言基础1
- 【PHP学习笔记1】php基础介绍
- php学习笔记--php基础
- PHP学习笔记:基础
- php基础学习笔记
- PHP基础学习笔记
- php基础学习笔记
- 学习笔记1(php基础)
- php学习(1)——php基础
- PHP学习笔记-PHP语言基础2
- PHP学习笔记-PHP语言基础3
- PHP学习笔记2-php基础语法
- php 学习笔记 —— 基础语法 (一)
- php语言基础学习笔记
- php基础语法学习笔记
- PHP学习笔记 (基础篇)
- android studio logcat 中文乱码解决
- 2017四川省赛总结
- Centos7 防火墙使用
- NLTK学习笔记(二):文本、语料资源和WordNet汇总
- Flex中的ViewStack
- php学习笔记1——php基础
- evaluate-reverse-polish-notation
- 黑白主题切换
- 转载:The Growth of Software Test
- OpenCV优化:图像的遍历4种方式
- HTML基础知识
- C++网站开发MVC框架TreeFrog Framework教程——6.模型层
- Python学习之os模块
- 数据存储和访问