风马一族_php
Posted 风马一族
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了风马一族_php相关的知识,希望对你有一定的参考价值。
原文来自:http://www.cnblogs.com/sows/p/6017018.html(博客园的)风马一族 侵犯版本,后果自负
回顾
运算符:算术运算符、逻辑运算符、比较运算符、位运算符、赋值运算符、字符串运算符、自操作运算符、错误抑制符、三元运算符
位:二进制、原码、反码、补码
流程控制:顺序、分支、循环
分支结构:if分支 和 switch分支
switch:每个case最后面都会跟上break
switch:适合固定值的处理,不适合条件运算处理
if : 适合处理条件运算方面的处理
循环结构:for 、 while 、 do-while 、 foreach
` 函数:系统函数和自定义函数
调用:函数名(),系统一旦碰到一个值后面跟了括号,系统就会把内存里的内容读出来,当做函数去执行
定义函数:function 函数名(形式参数列表) {
//函数休
//返回值
}
function myfunc($name) { //函数体 }
myfunc($name,$age,$sex......); //php支持实际参数比形式参数数量多,多余的部分,系统放弃了使用,而只获取形参对应的数量,对应的位置
参数传递:值传递,引用传递
值传递:将外部变量的值,复制一份,赋值给形参
引用传递:将外部变量所指向的内存空间的地址,赋值给形参
function myfunc(&$name){ //函数体 } //添加 地址符 &
myfunc($name) //不能使用地址符&
作用域:全局作用域和局部作用域
全局作用域:函数外部可以使用
局部作用域:函数内部使用
函数内部使用外部变量:$GLOBALS("变量名"),global关键字
=============================================================
任务
计算器
1 ========================================= 2 html 使用表单,做出来基本的计算器的界面 3 ========================================= 4 <html> 5 <head> 6 <meta http-equiv="content-type" content="text/html;charset=utf-8"> 7 </head> 8 9 <body> 10 <form method="POST" action=""> 11 <input type="text" name="first" size="5"/> 12 <select name="opr"> 13 <option value="+">+</option> 14 <option value="-">-</option> 15 <option value="*">*</option> 16 <option value="/">/</option> 17 <option value="%">%</option> 18 </select> 19 <input type="text" name="second" size="5"/> 20 <span>=</span> 21 <input type="text" /> 22 <input type="submit" nam="submit" value="提交" /> 23 </form> 24 </body> 25 26 27 ========================================= 28 使用PHP计算表单提交的内容 29 ========================================= 30 <html> 31 <head> 32 <meta http-equiv="content-type" content="text/html;charset=utf-8"> 33 </head> 34 <?php 35 //PHP计算器 36 //可以输入两个数值,可以选择操作符号,返回计算结果 37 //要在当前直接显示结果,还要保护用户的操作 38 39 if(!isset($_POST[\'submit\'])){ 40 //直接访问 41 }else{ 42 //提交数据,进行运算 43 $first = $_POST[\'first\']; 44 $second = $_POST[\'second\']; 45 $opr= $_POST[\'opr\']; 46 47 //计算结果,先初始化为0 48 $res=0; 49 50 //根据操作符来计算结果 51 switch($opr){ 52 case \'+\': 53 $res= $first + $second; 54 break; 55 case \'-\': 56 $res= $first - $second; 57 break; 58 case \'*\': 59 $res= $first * $second; 60 break; 61 case \'/\': 62 $res= $first / $second; 63 break; 64 case \'%\': 65 $res= $first % $second; 66 break; 67 } 68 } 69 ?> 70 <body> 71 <form method="POST" action=""> 72 <input type="text" name="first" size="5" value="<?php echo isset($first)?$first:\'\'; ?>" /> <--!PHP语句的作用:提交后,显示用户输入的数据 --> 73 <select name="opr"> 74 <option value="+" <?php echo isset($opr)?(($opr==\'+\')?\'selected="selected"\':\'\'):\'\'?>>+</option> 75 <option value="-" <?php echo isset($opr)?(($opr==\'-\')?\'selected="selected"\':\'\'):\'\'?>>-</option> 76 <option value="*" <?php echo isset($opr)?(($opr==\'*\')?\'selected="selected"\':\'\'):\'\'?>>*</option> 77 <option value="/" <?php echo isset($opr)?(($opr==\'/\')?\'selected="selected"\':\'\'):\'\'?>>/</option> 78 <option value="%" <?php echo isset($opr)?(($opr==\'%\')?\'selected="selected"\':\'\'):\'\'?>>%</option> 79 </select> 80 <input type="text" name="second" size="5" value="<?php echo isset($second)?$second:\'\'; ?>" /> <--!PHP语句的作用:提交后,显示用户输入的数据 --> 81 <span>=</span> 82 <input type="text" readonly disabled size="5" value="<?php echo isset($res)?$res:\'\'; ?>" /> <!--readonly 只读(禁止输入) disabled 失去光标--> <--!PHP语句的作用:提交后,显示运算的结果 --> 83 <input type="submit" name="submit" value="提交" /> 84 </form> 85 </body> 86 87 ============================================= 88 PHP语句说明 89 90 //提交数据后,运算符会默认选择第一个符号 91 //为了让提交数据,显示用户提交时选择的运算符,而使用selected="selected" 92 //本程序主要使用PHP来编写计算器,因此使用如下语句,【可以使用JS等来实现,也是允许】 93 <?php echo isset($opr)?(($opr==\'+\')?\'selected="selected"\':\'\'):\'\'?> 94 95 //从php中,接收php运算的结果 96 value="<?php echo isset($res)?$res:\'\'; ?>" 97
九九乘法
1 <?php 2 //函数内进行乘法法则的运算 3 function calculator($rows){ 4 for($row=1;$row<=$rows;++$row){ 5 for($col=1;$col<=$row;++$col){ 6 echo "$row * $col = ".($row*$col)."\\t"; 7 } 8 echo "<br />"; 9 } 10 } 11 12 //调用函数,传递的行数为12[大于0的整数] 13 calculator(9); 14 ?> 15 16 结果(示例) 17 1 * 1 = 1 18 2 * 1 = 2 2 * 2 = 4 19 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 20 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 21 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 22 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 23 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 24 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 25 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
- 函数的默认值
- 主要:对于有参数的函数,若没有给函数传递参数时,函数就会使用自身定义的默认值,作为参数传入
- 例子:
1 <?php 2 //函数内进行乘法法则的运算 3 function calculator($rows=10){ 4 for($row=1;$row<=$rows;++$row){ 5 for($col=1;$col<=$row;++$col){ 6 echo "$row * $col = ".($row*$col)."\\t"; 7 } 8 echo "<br />"; 9 } 10 } 11 12 //调用函数,传递的行数为12[大于0的整数] 13 calculator(); 14 ?> 15 16 结果: 17 1 * 1 = 1 18 2 * 1 = 2 2 * 2 = 4 19 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 20 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 21 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
=============================================================
匿名函数
定义:没有名字的函数
语法:变量名 = function(参数列表) {//函数体};
问题:1、没有名字的函数如何定义
函数的定义在编辑阶段,会被系统存放到代码区,会有一个内存地址,需要通过变量来保存函数的内存地址
2.没有名字的函数如何调用
1.调用函数必须有括号,函数的调用实际是在栈里开辟内存空间,把函数体给加载进来,逐行执行。
2.通过变量保存的函数的内存地址,来讲函数给取出放到栈里
3.告诉系统,取出来的数据是一个函数,系统需要当做函数来处理,增加一个括号
匿名函数的作用?
1.是一种允许的语法结构
2.一般是用于函数的参数(主要)
1 <?php 2 3 //定义匿名函数,将函数赋值给变量 4 $name=function(){ 5 return "风马一族"; 6 }; 7 8 //调用匿名函数 9 echo $name(); 10 ?>
方法: 使用function(){//函数体} 定义函数
$name = function(){//函数体}; //将函数赋给变量,记得加上分号 ;
$name(); //给变量加上括号 () ,相当于让系统承认它是一个函数,而不是变量
=============================================================
伪类型
mixed : 说明一个参数可以接受多种不同的(但不一定是所有的)类型
例如: gettype() 可以接受所有的PHP类型 //获取变量的类型 http://php.net/manual/zh/function.gettype.php
str_replace()可以接受字符串和数组
number : 说明一个参数可以是integer 或者 float
callback : 回调类型
示例代码
1 <?php 2 3 function myfunc($func_name,$name=\'东京\'){ 4 5 $name .= \'你好\'; 6 7 $func_name($name); 8 } 9 10 function display($welcome){ 11 echo $welcome." you are sows"; 12 } 13 14 myfunc(\'display\',\'淘宝\'); 15 16 ?>
void: 1 作为返回类型意味着函数的返回值是无用的。
2 作为参数列表意味着函数不接受任何参数
... : 在函数原型中,$... 表示等等的意思,当一个函数可以接受任意个参数时使用此变量名
=============================================================
可变函数
可变变量:将一个变量的值当做一个变量的名字,从而去获取另个变量的值 $$变量名
可变函数,通过一个变量,获取其对应的变量值,然后通过给该值增加一个括号(),让系统认为该值是一个函数,从而当作函数来执行
1 <?php 2 3 function display(){ 4 //函数体 5 } 6 7 $var = \'display\'; 8 9 $var(); 10 11 ?>
1 <?php 2 3 //自定义函数 4 function sows(){ 5 6 return "you are sows"; 7 } 8 9 //将自定义函数的名称,赋给变量 10 $name="sows"; 11 12 //给变量添加(),让系统来把变量,当作函数来使用 13 echo $name(); 14 ?>
=============================================================
数据类型转换
指的是将数据(变量)的值转换成目标数据类型
PHP中有两种数据类型转换方式:自动转换、强制转换
1. 自动转换:系统根据操作所需要的类型将变量的值进行对应类型的转换
自动转换都是系统本身所做的事情,不需要用户去干预
2. 强制转换: 根据具体的需求,将变量的值事先转换成所需的数据类型
int integer : 整型,将数据转换成整型
bool Boolean: 将数据值换成布尔值
float : 转换成浮点型
string : 转换成字符型
array :转换成数组类型
object : 转换成对象类型
语法: (数据类型)变量
1. var_dump 把变量的类型及长度还有数据值都输出
2. 通过函数gettype函数,获得数据的类型,返回一个字符串
疑问:为什么会两种变量类型 , float or double?
设置数据类型:settype($var,\'类型\') 《======》 (类型)$var;
示例
规则如下:
1. 字符串只有以数值或者小数点开始的时候,系统才会有可能将字符串进行数值转换,要不然直接转换成0
2. 若出现一个英文句号,则把句号后面的数字视为小数部分
4. 只读取前面连续的数值,没有字母或者其他特殊字符
3. 只读取一个句号
4.如果有小数点最终保留,那么数据类型变成浮点型,否则是整型
=============================================================
判断数据类型
PHP提供了一些函数来判断数据的类型,函数都是以is_开头,后面跟数据类型。
如果是目标类型则返回true , 否则返回false;
//标量
is_scalar 检测变量是否是一个标量
is_array 检测变量是否是数组
is_bool 检测变量是否是布尔型
is_float 检测变量是否是浮点型
is_real 此函数是 is_float() 的别名函数
is_integer 检测变量是否是整型
is_long 检测变量是否是整型
is_finite 判断是否为有限值
is_infinite 判断是否为无限值
is_object 检测变量是否一个对象
is_subclass_of 如果此对象是该类的子类,则返回 TRUE
is_numeric 检测变量是否为数字或数字字符串
is_string 检测变量是否是字符串
is_tainted 检查字符串是否被污染(被修改)
//特殊
is_null 检测变量是否是空值
is_resource 检测变量是否为资源类型
//文件
is_writable 判断给定的文件名是否可写
is_file 判断给定文件名是否为一个正常的文件
is_readable 判断给定文件名是否可读
is_uploaded_file 判断文件是否是通过 HTTP POST 上传的
is_link 判断给定文件名是否为一个符号连接
is_dir 判断给定文件名是否是一个目录
is_executable — 判断给定文件名是否可执行
//无分类
is_callable 检测参数是否为合法的可调用结构
is_soap_fault 检查SOAP调用是否失败
is_nan 判断是否为合法数值
iis_set_app_settings 创建虚拟目录的应用程序作用域
示例 php是弱类型的,因此 1 相当true
文件包含
1.网站网页的分层设计,将不同的数据(一些公共的显示数据),整理出来,形成一个单独的文件。只需要在其他html代码界面中,需要用到的时候,直接包含(加载)。
案例
1. 所有内容在一个页面
1:所有内容分成多个页面存放
index.php
header.php footer.php
2.代码的重用:PHP所写的函数功能,类文件、配置文件等。在需要应用这些代码的时候,直接将文件给包含即可
语法: <?php include \'文件的路径\' ?>
文件包含 include、include_once、require、require_once,将一个文件的内容包含进另外一个文件。
include、require 使用一次包含一次文件
include_once、require_once 脚本中包含另个脚本多次,但只加载一次
include 语句包含并运行指定文件,若找不到文件,会提示警告,并继续运行【E_WARNING
】
require 语句包含并运行指定文件,若找不到文件,会提示错误,并终止运行【E_COMPILE_ERROR
】
示例: include使用示例
include出错的表现
require的使用示例
require出错的表现
连接数据库的示例
index.php 主页
public.php 连接数据库的指令
mysql.php 保存数据库的连接信息
文件的包含路径
文件路径有两种:绝对路径和相对路径
绝对路径:从磁盘根目录到文件所在的目录
相对路径:文件相对当前文件所在的位置,相当一个参照物(一般就是文件 )
1.相对路径表示方式:
./ :表示当前目录
../ :表示上级目录
/ :网站根目录
2.文件嵌套包含
绝对路径
好处:在文件嵌套包含中不会出现问题
坏处:修改文件位置时,需要修改文件的路径
相对路径
坏处:在文件嵌套包含中易出现问题
好处:文件路径修改,比较简单
注意:文件嵌套包含时,使用绝对路径较佳
终止脚本执行
终止脚本执行,指的是通过一条语句告诉PHP引擎,此语句之后的其他语句不需要执行。
PHP提供了三种方式来终止脚本执行:return、die、exit
return : 执行到该处退出,如果是在函数中,表示退出函数,如果是在脚本中,表示脚本停止执行。
函数的return是返回函数调用的地方,脚本的return是返回给脚本被包含的地方。
示例 return方式
======================
php04_index.php :包含文件,用来包含其它的文件
php03_return.php :被包含,而且将自身资源返回给包含文件
==========================
die的方式
===========================
exit
===========================
基于以上可能,所以PHP的配置文件(项目配置文件:数据库的连接信息信息等),采用以上方式
系统函数
字符串函数
strlen: 计算字符串的长度
语法:strlen("字符串");
1 <?php 2 header(\'Content-type:text/html;charset=utf-8\'); 3 4 $str=\'You are sows\'; 5 6 $name="我是中国人"; 7 8 var_dump(strlen($str)); 9 var_dump(strlen($name)); 10 11 ?> 12 13 ==================================== 14 结果: 15 int(12) //$str=\'You are sows\'; 十个字母 = 两个空格 =12 16 17 int(15) //$name="我是中国人"; 五个汉字 *3 =15 18 19 ==================================== 20 说明: 21 gbk | gb2312 编码里, 中文占用两个字节 22 23 utf-8 编码里,中文占用三个字节
==============
substr : 获取字符串中的子字符串
语法:substr("字符串",截取的起始位置,截取长度); //截取长度需要根据编码的字节占用量来考虑
1 <?php 2 header(\'Content-type:text/html;charset=utf-8\'); 3 4 $str=\'You are sows\'; 5 6 $name="我是中国人"; 7 8 var_dump(substr($str,0,2)); 9 var_dump(substr($name,3,3)); 10 11 ?> 12 ========================== 13 结果: 14 string(2) "Yo" //截取的位置从0开始,字节长度为2 15 string(3) "是" //截取的位置从3开始,字节长度为3 16 17 ========================== 18 说明: 19 1. 字符串的字符位置:是从左到右用0开始计算 20 21 2. 一个字符在不同编码规范中,占用字节数不同, 22 因此,截取长度需要根据编码进行考虑。 23 例如:在ascll中截取5个字符,截住长度是5 24 在utf-8中截取5个字符,截取长度是15 25 26
==============
strtolower:将字符串转化为小写
语法:strtolower("字符串");
1 <?php 2 header(\'Content-type:text/html;charset=utf-8\'); 3 4 $str=\'You Are sows\'; 5 6 var_dump(strtolower($str)); 7 8 ?> 9 10 结果: 11 string(12) "you are sows" //有大写变小写,没有的,不用管
==============
strtoupper: 将字符串转化为大写
语法:strtoupper("字符串");
1 <?php 2 header(\'Content-type:text/html;charset=utf-8\'); 3 4 $str=\'You Are sows\'; 5 6 7 8 var_dump(strtoupper($str)); 9 10 ?> 11 12 ============================== 13 结果: 14以上是关于风马一族_php的主要内容,如果未能解决你的问题,请参考以下文章