PHP学习笔记

PHP学习笔记

一.

注释:1,//,但在这种注释中不能出现?>,否则当做结束。如果开启short_open_tag和asp_tag设置,>和%>同样不能出现在注释中。2,/**?,不允许嵌套。3,#

变量使用前无需声明。引用赋值:用不同的变量名访问同一个变量内容,当一个变量的值改变时,另一个也跟着改变。普通赋值将原变量的内容原封不动的复制下来,重新开辟了一个空间,而引用赋值只是给原变量重新起了一个名字,并没有开辟新的空间。

引用赋值用&

不同于C中使用const关键字来定义常量,在PHP中,使用define()函数来实现。

define(变量名【一般为大写字符串】(变量名一定要加引号),常量的值【可以是布尔值或字符串】,可选参数【其值若为true,则常量对大小写敏感】)

预定义常量(未记忆)

Int:如果给出的整型数超出了有效范围,则会被解释成浮点型。

‘<p>’表示加一空行后换行;’<br>’表示换行。

八进制加0,16进制加0x。强制类型转换,类似C,如(int)(14/5)

float:浮点变量的值是不准确的,因此不要试图比较两个浮点数是否相等。E和e相同。

布尔值一般用于条件语句或循环语句的表达式中。将一个变量转换成布尔型需用bool或boolean来强制转换。当转换为bool值时,FALSE的有0,空字符串和字符串“0”,不含任何元素的数组,特殊类型NULL,从没有任何标记的XML文档生成的SimpleXML对象。

字符串变量,三种定义方式,单引号,双引号和界定符(<<<),假如字符串中包含变量名,双引号中的变量名会被实际值所替代,而单引号中的变量名会按普通字符直接输出。

使用<<<定义时,以标识符开始,然后是要输出的字符串,最后以同样的标识符结尾(前面不能有空格或缩进,必须顶格)。<<<定义时内部的变量也会被实际值代替,因此该技术常被用来进行界面与逻辑代码的分离。

用<<<定义字符串总是无法试验成功。

数组的索引可以是数字,也可以是字符串。定义:array(value1,value2,…)或array(key1=>value1,key2=>value2,…),或$my_array[key1]=value1   $my_array[key2]=value2……

NULL即空值(不区分大小写),特殊数据类型,表示没有为该变量设置任何值,与空格的意义不同。使用unset()函数删除的变量。

二.

复合赋值运算符

==两者的值相等;===(全等)两者的值相等且类型也相等。

!=或<>为不等,!==为不全等

比较运算符返回的结果为逻辑值真或假。

逻辑与&&或and,逻辑或||或or,xor抑或,!非。

位运算符用来对整型数的指定位进行置位,如果被操作数是字符串,则对该字符串的ASCII码值进行操作。&按位与,|按位^抑或,~按位非,<<,>>左右移。

位运算是转化成二进制进行运算。

++i,先加1,再引用

三目运算符同C。

字符串运算符(.)小圆点,将任意多的字符串连接成一条字符串。如果操作中有数值型变量,则会先将其转成字符串,再进行连接。还可将字符串连接符和赋值运算符组合(.=),

将后面的连接到前面的变量。字符串连接还可以用{},结合双引号。如$c =”{$a}{$b}”;(此种情况也可以不加{},双引号内本来$b输出)

 

三.

表达式语句后面加;

屏蔽语句通过使用错误控制运算符@,将其放在出错的表达式前,可以屏蔽出现的错误信息(error   warning  等等)。除了一些不影响程序运行的小错误,为了屏蔽可能影响用户体验的出错信息,可以使用屏蔽语句,否则不推荐使用。   

1月31日前

 

 

四.条件语句

If语句

If…else…同C,只是不确定如果是一条语句需不需要加花括号

If elseif elseif else    (elseif可以写成else if)

If():…………;else:……;endif;(用冒号代替左半个花括号,用endif来代替右半个花括号。这种情况下elseif不能拆成else if。

Switch语句

Switch(表达式){

Case    常量表达式1:

语句1;break;

Default:语句n+1;

}

(也有不同于C的表示,用冒号代替左花括号,endswitch代替右花括号)

五.循环

While语句

While(逻辑表达式){

     语句块;

}

Do  while语句

Do{

   语句块;

}while(逻辑表达式);

For语句

foreach语句(PHP4开始引入,专门用来遍历数组;从PHP5开始,还能用来遍历对象)。

有两种语法格式:

Foreach(数组名 as 元素名){

语句块;}

(在遍历数组时,每次循环中会将当前数组元素的值赋给元素名,同时数组指针向后移动一个单元)

Foreach(数组名 as 键名=>元素名){

语句块;

}(还会将键值赋给键名)

六.跳转语句

在多重循环里,break后面可以接一个数字,表示跳出第几重循环。

七.数组

(不是具有相同数据类型的若干变量的有序集合,而是若干键值对的有序集合)

(提供了许多内建的函数库来简化对数组的操作)

两种数组:索引数组(用数字作为键),关联数组(用字符串作为键)

索引数组

定义数组:1.用array()函数

   $myarray = array(‘mo’,20,’’上海’);

2.直接赋值

    $myarray[0] = ‘mo’;

用array定义数组时,PHP会自动产生从0开始的索引。直接赋值定义时,可以不指定索引,PHP会自动生成从0开始的索引。甚至可以在某些情况下指定索引,下一次使用时不指定。

如果定义了两个相同的索引,前面的会被后面的覆盖。

二维数组:、

$myarray = array(

              array(‘mo’,20,90),

              array(‘lin’,9,0)

             );

或采用直接赋值的方法$myarray[0][0] = 9;

关联数组

用array函数定义数组:$myarray= array(‘name’ =>’mo’,’age’=>56);

直接赋值方式:$myarray[‘name’] = ‘momo’;

在关联数组中,字符串索引和数字索引可以并存。

如$myarray = array(‘name’ => ‘mo’,1 =>‘kanshi’);

如果有两个相同的索引,同样会被覆盖。

数组的遍历

同C中的部分,加一步 $size =count($myarray);

Foreach语句遍历数组:foreach($myarrayas $key=>$value)  echo $key‘=>’.$value;

使用list()遍历数组:

(list与array一样并不是真正的函数,而是一种语言结构,list只能用于下标从0开始的索引数组)

Void list(mixed $var,mixed $...)    参数中的$var为被数组赋值的变量名称。

用list遍历数组:   $myarray = array(‘mo’,38,’kkk’);

                   List($nickname ,$age,$name) =$myarray;

                     Echo $nickname.’ ‘.$age.’‘.$name;(这就将数组里的值赋给了写出的变量)

使用each()遍历数组

用于返回数组中当前的键值对,并将数组指针向前移动一步。

   Array each (array  &$var);

键值对返回为4个单元的数组,键名为0,1,key,value。单元0和key包含数组的键名,1和value包含数组元素的值。如果指针越过了数组的末端,则each()返回FALSE。

此处运行结果还有疑问。

混合使用list和each遍历数组:

While(list($name,$age) = each($myarray)){

      Echo $name.$age;

运行后结果为0=>   1=>   

关联数组的索引不具有明显的规律性,因此常常使用foreach语句来遍历。

此处对这几个语句还不太熟悉。

数组的操作(操作函数)

array_merge()  用来将一个或多个数组合并为一个数组。

Array Array_merge (array $array1 [,array $array2 [,array $...]]);

参数$array1,$array2,……是待合并的数组变量。

函数返回合并后的数组。如果待合并的数组中包含相同的字符串键名,则该键名后面的值将覆盖前一个值。如果待合并的数组中包含相同的数字键名,后面的值将不会覆盖前面的值,而是附加到该元素的后面。

Array_chunk()函数

Array array_chunk(array $input,int$size,[,bool $preserve_keys]);

参数input 是分割的数组变量,size是分割成的每个数组的元素个数(最后一个数组的元素个数可以小于size),可选参数preserve默认为FALSE,表示分割后的数组索引将从0开始重新编排。若设置为TRUE,则分割后的数组将保留原数组的键名。该函数将返回一个由分割后的若干数组组成的多维数组,索引从0开始。

此处运行及理解有问题。

Array_intersect函数

把一个或多个数组合并为一个数组,但合并后的这个数组时原数组的交集。

Array array_intersect(array $array1[,array$array2[,array $...]]);

PHP中使用sort()函数对数组正向排序。

Bool sort(array &$array [,int$sort_flags]);

其中,$array为待排序的数组,可选参数$sort_flags有四种设置。

SORT_REGULAR:正常比较,不改变类型。

SORT_NUMERIC:将数组元素作为数字来比较并进行排序。

SORT_STRING:将数组元素作为字符串来比较并排序。

SORT_LOCALE_STRING:根据当前的区域(locale)设置来把数组元素作为字符串比较排序。

排序成功将返回TRUE。成功排序时,元素将从低到高重新排序,原有的键名将被删除,元素将被赋予新的键名。

预定义数组(无需定义便可使用)

PHP预定义了一些全局的数组变量,可以通过它们获得系统环境,用户会话,表单数据等信息。

$_SERVER:提供了服务器和客户配置及当前请求环境的有关信息。根据服务器的不同,变量值和变量个数会有差别。例如用$_SERVER[‘SERVER_NAME’]可获得服务器的主机名,$_SERVER[‘SCRIPT_FILENAME’]可获得当前脚本的绝对路径。

$_ENV 解析所在服务器环境的有关信息。

如$_ENV[‘OS’]可以获得操作系统的类型;$_ENV[‘PATH’]可以获得系统环境变量。

$_GLOBALS包含了全局作用域里的所有变量。

此处还有疑问,如对服务器的理解等等

函数

函数名称区分大小写。

PHP支持函数内部定义函数,只有当外部函数被调用时,内部函数才被定义。无论函数在内部还是外部,它都具有全局作用域,都可以在全局作用域内被调用。

两大传递方式:值和引用

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于Smarty模板引擎的学习笔记,我可以为您提供以下内容: 1. Smarty是什么? Smarty是一个用PHP编写的模板引擎,它将PHP代码与HTML代码分离,使得代码更易于维护和设计。Smarty使用一套模板标签来代替PHP代码,这些标签可以在模板中使用,以生成最终的HTML代码。 2. Smarty的优势 - 简单易用:Smarty的模板标签简单易懂,可以快速上手。 - 分离代码:Smarty将PHP代码与HTML代码分离,使得代码更易于维护和设计。 - 可扩展性:Smarty支持插件机制,可以方便地扩展和定制功能。 - 性能优化:Smarty支持缓存机制,可以提高页面加载速度。 3. Smarty的基本语法 Smarty的模板标签由大括号包围,例如:{tag}。以下是Smarty的一些基本标签: - 输出变量:{$variable} - 条件语句:{if $variable == 'value'}{/if} - 循环语句:{foreach $array as $key => $value}{/foreach} - 引入文件:{include file="filename.tpl"} 4. Smarty的高级功能 - 模板继承:Smarty支持模板继承,可以减少模板重复代码。 - 插件机制:Smarty支持插件机制,可以方便地扩展和定制功能。 - 缓存机制:Smarty支持缓存机制,可以提高页面加载速度。 - 自定义函数:Smarty支持自定义函数,可以方便地扩展其功能。 以上是我为您提供的Smarty模板引擎学习笔记,希望对您有所帮助。如果您有其他问题,欢迎继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值