PHP自学笔记DAY7

1.函数的预加载

在执行代码之前,函数已经加载到内存中了。

函数的预加载
1.2与函数有关的魔术常量

__FUNCTION__//获取当前函数名

练习:打印颜色面板

效果

代码:

<style type="text/css">
td{
	border:#000 solid 1px;
	width:20px;
	height:20px;
}
table{
	border-collapse:collapse;
	float:left;
}
</style>
<div style="width:500px; margin:auto">
<?php
$arr=array('0','3','6','9','C','F'); //组成颜色的字符
$n=count($arr);	//数组的个数钱
for($r=0;$r<$n;$r++){
	echo '<table>';
	for($b=0;$b<$n;$b++){
		echo '<tr>';
		for($g=0;$g<$n;$g++){
			echo '<td style="background-color:#'.$arr[$r].$arr[$g].$arr[$b].'"></td>';	
		}
		echo '</tr>';
	}
	echo '</table>';
}
?>
</div>

2.包含文件

在网站用有相同的版权等界面,可以将将相同的页面作为包含文件,在展示的页面中,包含即可。

包含文件相当于将文件的内容复制到页面中,如果包含文件有页面结构(<html>),包含后,页面中就不止一个页面结构,这与W3C定义的规范不符合,所以包含文件中不能出现页面结构。

2.1路径

相对路径:以自身的所在的目录为参照。

绝对路径:以盘符,站点根目录为标准。

../上一级目录

./当前目录。

在html页面中/表示根目录,

2.2包含文件语法

1.include():可以包含多次

2.require():可以包含多次

3.include_once():只能包含一次

4.include_once():只能包含一次

包含文件如果是html页面,在包含文件中有php代码,则php代码可以被解析的。

require和include的区别

相同点:可以包含多次

不同点:require遇到错误停止执行

include:遇到错误,继续执行。

包含文件相当于拷贝文件得代码复制到主文件中,魔术常量除外,魔术常量取的是魔术常量所在的文件信息。

2.3./目录/文件和目录/文件的区别

这两种写法的效果基本是一样的,不带./的路径受到include_path配置的影响。

可以通过set_include_path()来设置包含文件所在的目录。

set_include_path():设置包含文件的目录

get_include_path():获取包含文件的目录

设置include_path的作用:

  1. 将项目的经常使用的文件放到一个统一的目录下,然后通过include_path指向此文件夹,就不用写很长的地址字符串。
  2. 将安全性高的文件放到站点外,通过include_path指向此目录。比如连接数据库文件。

3.终止脚本执行

3.1 exit()和die()

exit是die得别名,终止脚本执行,终止后可以输出一个字符串。

return 只终止当前页面的执行

3.2return的作用

1.终止函数的执行

2.从函数中返回值

3.终止脚本的执行。

4.用来做配置文件。

4.1延时脚本执行

函数:sleep(秒数)

5.1 foreach 数组指针

1.指针其实也是一个变量,用来保存某个元素的地址,指针可以移动

2.默认情况下,打开一个数组,指针会指向数组的第一个元素

语法结构:foreach(数组 as 键=>值){}

5.2流程图

foreach是循环,break和continue也适用于foreach循环

foreach值变量支持传地址

注意:键变量不支持传地址。

foreach循环变量数组的时候,变量的是数组的拷贝。

6.1数组指针的操作

  1. key();从关联数组中取得键名
  2. current() ;返回数组的当前单元
  3. next();将数组中的内部指针向后移一位
  4. prev();将数组指针内部向前移一位
  5. reset();将数组指针指向第一个单元
  6. en();将数组指针指向最后一个单元

eg.将数组的元素从后往前取

注意:如果一个数组连续输出两次,必然要将指针复位。

6.2each()

  1. 返回数组中当前的键/值,并将数组指针向前移动一步,如果内部指针穿越了数组的末尾,返回fales。
  2. 键值对被返回4个单元,其中包含索引数组和关联数组,下标是key和0的是键,下标是1和value的是值。
  3. each()=key()+current()+next()
  4. 如果第二次遍历,必须通过reset()复位指针。

eg.通过while+each遍历数组。

7.1list():将数组中的值赋值给变量

注意:数组只能为索引数组,不能是关联数组。

浩二赋值给stu1,学爽赋值给stu2

7.2each()+while()+list()

将索引数组赋值给$ey和$value.

8.1数组在在复制指针的时候指针的处理

在数组赋值的时候,如果指针合法,指针一起赋值。

如果指针不合法,新数组的指针会被重新初始化。新数组就是是先使用的数组。

重置指针。

8.2COW(写时复制)

COW就是copy on wirte,在值传递的情况下,数据在赋值的时候,内部存在一个优化,叫做写时复制。

在值传递的赋值时,真实的数据空间不是立即复制的,而是在其中一个变量执行写操作的时候才会重新分配内存空间。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 共1条
    • 魔法少女雪殇
    • 。。。0
      {{bai
      11月前