电子商务行业的快速发展,让很多企业都看到电商给企业带来的巨大利益,越来越多的企业选择搭建自己的商城系统。但是很多企业对于商城系统开发了解可能并不多,因为目前很多商城系统采用的开发语言是PHP,所以今天千讯小编就来介绍下PHP语言和PHP商城系统。
说明:就是php系统内置的提供给使用的变量,这个变量一般都是超全局变量,超全局就是没有作用域的限制有的还可以跨页面
$GLOBALS_SERVER_GET_POST_FILES_COOKIE_SESSION_REQUEST_ENV
1.$GLOBALS
说明:globals是php内置的可以自动获取当前页面中的所有变量的内容,包括局部变量、全局变量、静态变量
2.$_SERVER
说明:server会自动获取服务器和客户端的信息
$_SERVER是一个包含了诸多如头信息(header)、路径(path)、以及脚本位置(scriptlocations)等信息的数组。这个数组中的项目由web服务器创建,不能保证每个服务器都提供全部项目,服务器可能会忽略一些或者提供一些没有在这里列出来的项目,这也就意味着大量的此类变量都会在CGI1.1规范中说明,
$HTTP_SERVER_VARS包含着相同的信息,但它不是一个超全局变量(注意$HTTP_SERVER_ARS与$_SERVER是不同变量,php处理他们的方式也不同)
3.$_FILES
说明:获取上传文件的信息
name:图片名称type:图片类型tmp_name:文件的临时文件夹和文件名称error:错误信息size:文件大小
将上传的文件移动到新的位置:move_uploaded_file
boolmove_uploaded_file(string$filename,string$destination)
filename:上传的文件的文件名destination:移动文件到这个位置
返回值
成功时返回true
如果filename不是合法的上传文件。不会出现任何操作,move_uploaded_file()将返回false
如果filename是合法的上传文件。但出于某些原因无法移动,不会出现任何操作,move_updloaded_file()将返回false,此外还会发出一条警告
4.$_GET:url方式传递数据
说明:其实就是浏览器地址传递方式
传递方式:URL地址参数值1=值1&参数值2=值2….
传递形式:表单的get方式和超链接方式
传递方式:表单的post方式或者ajax
说明:默认情况下包含了$_GET和$_POST和$_COOKIED的数组
表达式:表达式是php最重要的基石,在php中。几乎所写的任何东西都是一个表达式,简单但却最精确的定义一个表达式的方式就是任何有值的东西。如$a=1;
运算符分类
运算符优先级算术运算符赋值运算符位运算符比较运算符错误控制运算符执行运算符递增递减运算符逻辑运算符字符串运算符数组运算符类型运算符
1算术运算符
算术运算符包括:加(+)、减(-)、乘(*)、除(/)、求余(求模)(%)
a与b的积为:";echo$a*$b;//除法运算符echo"
a与b的商为:";echo$a/$b;//求余数echo"
a与b求余为:";echo$a%$b;>
注意:
1.当运行算术运算符时,字符串类型的会自动转换为0进行和数字运算,比如:$a=1$b=’b’,那么在运行算术运算符时,$b的值自动转换为0,$a+$b=1+0=1
案例:
2.赋值运算符:
赋值运算符:=就是把某个值赋给某个变量
语法:$a=1;
赋值一般说的是把等号后面的值赋值给前面的变量,可以多次赋值,$a=$b=1;
3.比较运算符
==:等于,比较的是值,只要值相等结果就是等于===:全等,比较的时类型和值,只有两个都相等才相等!=:不等于:类型转换后两个值不相等,返回为true!==:不全等:两个值不相等或他们的类型不同>:大于,<:小于>=:大于等于<=:小于等于
4.错误抑制符:@
说明:屏蔽一些不重要的错误,不影响当前页面的脚本运行
5.字符串运算符:.或者.=
说明:字符串连接符(拼接),把两个或多个字符串进行连接
7逻辑运算符:==—
说明:当前的操作数会自动加1或者减1
如果一个操作数,不给赋值,++$a和$a++是一样的。
前加:++$a;先加1在赋值。后加:$a++;先赋值在加1.
//利用自增,实现循环遍历for($n=0;$n<=10;$n++){echo'
a';echo$n;}echo'-----------------';//利用自增,实现外部变量循环遍历$z='a';for($i=0;$i<=10;$i++){$z++;echo$z;}
未经允许不得转载
说明:常量一旦定义,里面的值和常量是不能改变和销毁的,而且常量名不能重复
1.常量的定义:
语法:define(常量名,常量值);不能定义复合数据
5.xphp版本:const来定义复合的数据,如数组7.0php版本:define可以定义复合的数据.如:define(ARR,[1,2,3,4,5]);
2访问常量
说明:直接使用常量名就可以了.。如:echoNAME;
常量的使用:网站的配置文件中使用。如:当前网站路径
3.魔术常量—预定义常量
__LINE__:文件中的当前行号__FILE__:文件的完整路径和文件名,如果用在被包含的文件中,则返回被办好的文件名,自php4.0.2起,__FILE__总是包含一个绝对路径.如果是符号连接,则是解析后的绝对路径,而在此前的版本有时会包含一个相对路径__DIR__:文件所在目录。如果用在被包括文件中,则返回被包括的文件所在目录,它等价于dimame(__FILE__)除非是i根目录。赋值目录中名不包括末尾斜杠__FUNCTION__:函数名称,php4.3.0新增,php5起本常量返回该函数被定义时的名字(区分大小写)在php4中该值总是小写__CLASS__:类的名称__TRAIT__:trait的名称__METHOD__:类的方法名__NAMESPACE__:当前命名空间的名称mvc:URL传递数据:index.php:c=getuser&a=xxxx&m=index
产生随机数的函数:rand()
说明:rand:产生一个随机整数
intrand(void)
intrand(int$min,int$max)
题: 变量处理常用的函数有哪些?举例说出至少四个,并各举一个案例说明unset如何在函数内部就销毁一个全局变量,请使用的代码来说明如何销毁PHP基本数据类型的值传递和引用传递的区别是什么,请画出对应的内存示意图一个页面server.php,并输出至少5个$_SERVER内的元素信息,并说明是什么含义,页面表现形式如下:元素名称使用形式结果含义 PHP_SELF$_SERVER[‘PHP_SELF’]/test/$_SERVER.php表示本网页路径 参考:PHP手册〉语言参考〉预定义变量〉$_SERVER 5.写一个表单,用来填写“用户信息”,要求出现所有的表单元素类型(除文件类型): 文本框,密码框,单选,复选,下拉,多行文本域,隐藏域 提交后显示用户所填写的所有数据。复选框的问题:都一个name值,复选框name是一个,问:怎么实现获取多个选项的值 答案: 1.变量常用的函数: isset():案例:$user=isset($_GET[‘user’])$_GET[‘user’]:”;//判断是否存在 unset():案例:$a=1;unset($a);//销毁变量a empty():案例:$a=1;if(empty($a)){echo“存在”};//判断是否为空 echo:案例:$a=1;echo$a;//打印a var_dump():案例:$a=1;var_dump($a);//打印a 2.用unset销毁在函数中的全局变量 3.值传递和引用传递的区别 值传递,传递过去的是数值, 引用传递,传递的是地址值 4.新建一个server.php 5.答案 字符串类型:string php学习之php的八种数据类型之字符串string的使用 1.整数型:int 说明:是负数、0、正数的集合、在php中存储整数为10进制、八进制、十六进制 语法:$var=整数数字; 八进制的写法:在数字前面加上0,就是八进制。数字的范围有0-7。算法:出去开头0,各位+十位*8+百为*8*8+千位*8*8*8….$num=0456;//4*8*8+5*8+6=302十六进制的写法:在数字前面加上0x,数字为0-f算法:出去开头0,各位+十位*16+百为*16*16+千位*16*16*16….$num=0x456;//4*16*16+5*16+6=1110十进制的写法:直接写数字,数字范围0-9 php最大的存储数值为:21亿。用常量PHP_INIT_MAX查询,最大存储值为2147483647,超过这个值自动转为float型 php最大的位数为14位,一个数值占多个位置,PHP_INT_SIZE 2.浮点型:float 说明:就是小数,浮点型也叫浮点数、float、双精度数double或实数real php中的小说有两种表现形式, 普通的小数科学计数法 浮点数的精度有限,尽管取决于系统,php通常使用ieee754双精度格式,则由于取整而导致的最大相对误差为1.11e-16。非基本数学运算可能会给出更大的误差,并且要考虑到进行复合运算时的误差传递 此外,以十进制能够精确表示的有理数如0.1或0.7,无论有多少为数都不能被内部所使用的二进制精确表示,因此不能在不丢失一点点精度的情况下转换为二进制的格式,这就会造成混乱的结果,如:floor((0.1+0.7)*10)通常会返回7而不是预期中的8,因为结果内部的表示其实是类似于7.9999999999999991118… 所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等,如果确实需要更高的精度,应该使用任意精度数学函数或者gmp函数 普通小数形式 小数末尾多个,小数点后面超过最大长度,会自动删除超出部分,最末尾会四舍五入 科学计数形式 超过14位自动转为科学计数法 3.布尔类型:boolean 说明:在php中布尔型的数据只有两个值,true和false 布尔值一般都用于返回的结果用于流程控制语句中 4.数组:array 说明:一组数据的集合 $变量=array(元素1,元素2,元素3,……); 5.对象:object 说明:世间万物皆为对象 在php中的对象是由类创建来的 //class创建一个类,调用对象$name=null;$age=0;Classpeople{//属性var$name;var$age;//方法functionrun(){echo'跑步';}}//创建对象$zs=newpeople();$zs->name='张三';$zs->age=23;echo$zs->name;$zs->run();$ls=newpeople(); 6.空:null 说明特殊的null值表示一个变量没有值,null类型唯一的值就是它本身null 在php中只能有定义变量并赋值的情况,没有只定义不赋值,这个时候就需要创建一个变量,不知道存储说明值,这个时候可以使用null来创建变量 用法: 7资源:resource 说明:就是引用php外部的内容,这个时候的类型就是资源,资源是通过专门的函数建立和使用的 8.手册中的类型:用于说明需要某种类型的数据 mixed:一个参数可以接收多种不同的类型,如果函数需要的形参是两种以上,都会使用mixednumber:可以是int和floatvoid:作为返回类型意味着函数的返回值是无用的,void作为参数列表意味着函数不接受任何参数 9数据类型的转换 说明:在php中数据类型是可以进行互相转换的,如整型1转换成字符串’1′ 在php中分两种转换形式,:自动转换和强制转换 自动转换 给到特定写法就会改变原来的类型 强制转换 可以使用一些特殊的方式来强制型的改变类型 允许的强制转换的有: (int),(integer):转换为整型(bool),(boolean):转化为布尔类型(float),(double),(real):转换为浮点型(string):转换为字符串(array):转换为数组(object):转换为对象(unset):转换为null 前两天讲过PHP基础知识的判断条件和流程控制,今天来讲讲PHP基础知识之PHP基础入门--函数! 1、函数名是标识符之一,只能有数字字母下划线,开头不能是数字。 函数名的命名,须符合"小驼峰法则":myNameIsXiaoximy_name_is_xiaoxi 函数名不区分大小写。func()Func()FUNC()都可以 函数名不能与已有的函数名重复,不能与系统函数名重复。 注意:传入的函数名,必须是字符串格式:返回结果为true/false。 二、PHP中变量的作用域 3、函数中,使用变量,默认使用内部局部变量。如果,需在函数中使用全局变量,需要使用global关键字,将全局变量引用函数,才能使用。 函数中的变量名,如果与全局变量重复,global语句之上,为函数局部变量;global语句之下,为系统全局变量。 4、$GLOBALS[]全局数组: $GLOBALS["a"]=10;--->echo$GLOBALS["a"];//任何位置直接使用 5、函数中使用全局变量,还有一种方式:通过给函数传参,可以在函数内部使用全局变量; 但是,传递以后的参数是函数的局部变量,内部改变,外部不会变。 除非,传递的参数是地址functionfunc($a1,&$a2){}//函数内部修改a1,则全局a1不会变,函数内部修改a2,则全局a2会变。 如果函数的形参,出现了取址符号,则,调用函数时,实参必须是变量,而不能是字面量。 6、使用require与include包含不会影响作用域。 三、静态变量 2、静态变量的特点: >>>同一函数,多次调用,共享同一个静态变量。 四、函数的参数传递 1、在PHP中,涉及参数传递时:实参列表只能比形参多, 2、常规参数传递:functionfunc($a){}func($a); 3、引用参数传递:functionfunc(&$a){}func($a); ①通过&引用参数传递,函数内修改变量,函数外同步变化 ②形参为引用参数,实参只能是变量,不能是字面量func(10);× 4、默认参数:functionfunc($b,$a=10){}func(20); //是$可以不传,默认为10;$b必须传递,否则使用时未定义报错。 如果参数中既有默认参数,也有非默认参数,那么默认参数列表 必须要在非默认参数列表后面,即调用的时候必须保证非默认列表的优先赋值。 5、可变参数列表:由于PHP实参可以比形参多,那么我们可以传递N个实参,并通过PHP内置函数取到对应参数。 var_dump(func_get_args());//取所有参数列表(数组) var_dump(func_num_args());//返回参数的总个数相当于count(func_get_args()); var_dump(func_get_arg(0));//根据下标,返回每个参数 五、变量函数 1、将一个函数名,转为字符串后,赋给一个变量。这个变量,就是我们所说的变量函数,可以加()调用函数内容。 functionfunc(){}--->$fun="func";--->$func(); 六、回调函数 1、使用变量函数,自定义回调函数 functionfunc($func){$func();}--->functionf(){}--->func("f"); 2、使用call_user_func_array和call_user_func自定义回调函数; 两个函数的第一个参数,均为回调函数,表示执行当前回调。 不同点在于:call_user_func_array()第二个参数为数组,并将数组的每一个值赋给回调函数的参数列表,相当于JS中的apply(); 而call_user_func,是将回调函数的参数列表,直接展开写到第2~多个参数中,相当于JS中的call(); eg:call_user_func_array("func",array(1,2,3)); -->func(1,2,3); call_user_func("func",1,2,3);-->func(1,2,3); 七、匿名函数 由于变量函数,在调用时存在多种调用方(func()/$func();) 所以为了让函数的调用更为同一,才产生了匿名函数!!! 匿名函数本身也是变量,用var_dump();检测为Object类型 八、PHP闭包 在PHP中,子函数无法直接访问父函数的局部变量,必须使用User关键词向下传递!!! PHP丨PHP基础知识之流程控制WHILE循环「理论篇」 PHP丨PHP基础知识之条件语IF判断「理论篇」 PHP丨PHP基础知识之条件语SWITCH判断「理论篇」 PHPDocumentor是一个用PHP写的强大的文档自动生成工具,对于有规范注释的php程序,能够快速生成具有结构清晰、相互参照、索引等功能的API文档。旧版本是PHPDoc,PHPDoc是PEAR下面的一个非常优秀的模块,类似于javadoc。从1.3.0开始,更名为phpDocumentor,新版本新加了对php5语法的支持,同时,可以通过在客户端浏览器上操作生成文档,文档可以转换为PDF、HTML、CHM等格式的文档,这样非常有利于代码的升级、维护、移交等。 前提:安装的前提是已经安装了php环境,我安装的是xampp集成开发环境。 1.PHPDoc的结构及功能 PHPDoc是全部采用OOP的思想来编写的,这也是PEAR所推荐的方式,PHPDoc的工作原理:PHPDoc扫描指定目录下面的php源代码,扫描其中的关键字,截取需要分析的注释,然后分析注释中的专用的tag,生成xml文件,接着根据已经分析完的类和模块的信息,建立相应的索引,生成xml文件对于生成的xml文件,使用定制的模板输出为html文件。从设计上来说,PHPDoc使用了2个超类:PhpdocObject和PhpdocError。这是整个PHPDoc的基本类,这种方式也是PEAR所推荐的。当你编写应用框架时,最好能够有一个基本的超类,而其他的子类或者是功能类都有一个共同的祖先。在扫描源代码过程中,PHPDoc使用的是类似GREP的形式。PHPDoc令人满意的另一方面是其分析结果是以XML形式保存的,这就意味着其他应用程序可以共享这个数据,同时PHPDoc也提供了相应的接口,你可以实现这个接口,把API文档生成其他的形式,比如PDF,LATEX,WORD等。目前,PHPDoc的分析结果可以以HTML形式表现,由于使用了模板机制,可以很方便地定制风格。 2.安装PHPDoc 安装方式有两种,一是下载源码安装,另一种是通过pear安装。 第一种方法: 第一步:安装pear 使用dos窗口进入php安装目录,有个文件叫go-pear.bat,如果没有,建议到网上下载go-pear.phar,然后在dos窗口下运行go-pear.phar,从而安装pear。 phpgo-pear.phar 第二步:安装phpdoc PearinstallphpDocumentor 在phpDocumentor成功安装后,php安装目录下会多出来一个phpdoc.bat。这个文件就是我们用来生成文档的批处理文件。 在phpdoc.bat所在目录下,输入 Phpdoc–h 会得到一个phpDocumentor的详细参数列表。先看看最重要的几个吧。 -d 这个目录代表着需要生成文档的原始php文件目录(注意是目录) -t 这个目录代表着生成的文档存放目录 -o 这个参数代表着生成的文档格式,例如html格式,参数就是 HTML:frames:phpedit 第三步:生成文档 生成文档的命令就是: phpdoc-d"D:\phpdoc\1"-t"D:\phpdoc\1"-o"HTML:frames:phpedit" 可以看到,解析完成后,在目标目录下生成很多html文件,打开index.html文件,就是我们需要的文档,如上图所示。 第二种方法: 第一步:下载PHPDoc压缩文件(phpdoc.zip),地址如下: 第二步:解压到某一个目录 打开phpdoc.bat,编辑第16行: SETphpCli=D:\xampp\php\php.exe 配置phpCli为自己php.exe文件的路径即可。 第二步:dos窗口,进入文件的解压目录,然后执行解析文档命令即可。 以上是安装phpDocumentor1版本,目前已经更新到phpDocumentor2版本了,version2的安装也很简单。 第一步:安装pear(同上) 将go-pear.phar放到PHP目录下执行安装命令: 下面会执行输入system 然后一路回车安装完毕。 第二步:接下来安装类关系绘图用到的工具 pearinstallimage_graphviz 安装后,注意环境变量path添加上该bin的路径,重启电脑,否则无法生效 第三步:安装phpDocumentor pearchannel-discoverpear.phpdoc.org pearinstallphpdoc/phpDocumentor 稍等一会,安装步骤完成! 注意:两个软件安装后的目录都在PHP下的pear下面: php/pear/PhpDocumentor php/pear/Image 显然:version2比version1速度快了很多。 所谓一粉顶十黑,“PHP是最好的语言”的梗即由此而来,其实它并不是讽刺PHP语言本身,而是在讽刺并不深入理解PHP的开发者。 PHP有很多奇怪的设计,令大部分人必须有个参考手册握在手边才敢写代码,但它仍然能够吸引众多开发者。最重要的原因是:它拥有门槛低和用户群体大的优势。 但是用户群大了,各种水平的人都会有。 入门虽然很容易,但精通PHP是很难的,毕竟这个语言及其标准库里有太多未定义行为。 用户群中存在不少并不够精通PHP的群体,有些人没有真正尝试过其它语言,没经历过这些语言和解释器设计不佳的部分;也有些人由于长期使用PHP,对它产生了异常深厚的情感。 于是产生了一种现象:有些人认为PHP就是最简单最完善最好的语言,并且热衷于在各种论坛等地方与其他人进行争辩。 后来PHP语言招黑,乃至“PHP是最好的语言”成为一个讽刺PHP开发者的梗, 实际上还是由于2010年后移动app开发的火爆,移动开发和Web开发者地位的此消彼长而导致。 快速开始,绝无废话 我的linux服务器系统是CentOS6.5 1,安装apache: apache的文件目录/var/www/html apache启动,停止,查看状态的命令: 修改端口(默认是80)Listen8082 修改ServerNameServerNamelocalhost:8082 测试,能出来页面OK了 2,安装php yuminstallphpphp-devel 安装好后,php-v查看一下 能出来版本说明ok 再重启一下apache 写个php页面测试 在apache的文件目录/var/www/html下,创建一个test.php 保存后,回到浏览器测试 完成, 3,连接mysql mysql的安装,略。公司有DBA,呵呵。 先安装php的扩展 yuminstallphp-mysqlphp-gdphp-imapphp-ldapphp-odbcphp-pearphp-xmlphp-xmlrpc 安装完扩展之后需要再次重启apache 测试mysql是否链接成功的php代码';echo' ';foreach($arrayNameas$key=>$value){echo'元素名称 使用形式 结果 含义 ';echo'';echo' ';}echo'';'.$value.' ';echo"\$_SERVER['$value'] ";echo"".$_SERVER[$value]." ";echo''.$arr2[$key].' ';echo'