常量变量的复习

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-31 20:16   14   0

变量

1,PHP变量的定义和使用

通过正则表达式表示为:字母 下划线 开头 ^[a-zA-Z_]\w*

2,PHP变量的作用域

$var1 = 10;//这个就是全局范围的变量

function test(){

//$var1 = 20;//在函数内部定义的变量,就是局部范围的变量,作用范围只能在函数内不起作用

//如何在局部范围内使用全局变量

global $var1;//方法一

echo $var1;

echo $GLOBALS['var1'];//方法二(推荐)

}

test();

echo $var1;

【如何在局部范围内使用全局范围的变量?使用global】

3,变量的赋值(值传递;引用传递)

$num1 = 10;

$num2 = $num1;

$num1=20;

echo $num2;//10 php默认的变量赋值是值传递,不改变原来变量的值

echo '<br/>';

$num3 = 10;

$num4 = &$num3;

$num3 = 20;

echo $num4;

//20 这里是引用传递通过&来实现,引用的是保存在内存地址中得值,如果修改会修改内存地址中得值

4,超全局变量(预定义的变量)

① $GLOBALS 保存全局变量

② $_SERVER 保存服务器信息

③ $_GET 保存get数据

④ $_POST 保存post数据

⑤ $_FILES 保存提交的文件

⑥ $_COOKIE 保存得到的cookie

⑦ $_SESSION 保存session数据

⑧ $_REQUEST 保存请求数据

⑨ $_ENV 保存环境

常量

1. //常量的定义define("常量名"常量值”);

define("PATH",__FILE__);

echo PATH;

echo '<br/>';

//判断某个常量是否被定义了

echo defined("PATH");

if(defined("PATH")){

echo PATH;

}else {define("PATH",__FILE__);}

【define()函数可以定义常量;defined()判断某个常量是否被定义了】

2.特点:(1)常量的定义不用使用$

(2)常量不用理会作用域,可以在任何地方使用

(3)常量一旦被定义,不能被重新复制

魔术常量(7个):

__FILE__ 获得当前文件的绝对路径和文件名

__LINE__ 文件当前的行号

控制结构

1,return;

(1)函数中使用return,立即停止函数的执行,将函数的值返回;

(2)在php脚本中使用,停止脚本文件代码的执行

function control(){

$a=10;

$b=20;

return $a+$b;//如果在函数内部使用return 会停止函数运行并将结果返回

echo 'hello';

}

$a=10;

$b=20;

return ;//如果在php的脚本中使用return 会停止脚本运行;

2,require_once()

和require()作用一样,都是引入外部文件,区别在于require_once(),如果该文件已经被包含,则不会再次包含,避免函数重定义和变量的重新赋值

3,include()和require()的区别在于,include()重复包含文件时,产生警告级别的错误;require()产生致命错误

函数

函数参数的传递默认是值传递,所以即使在函数内部改变了参数的值,也不会改变函数外面参数的值

想要函数的参数采用引用传递,在参数前面 &

PHP的数据类型

1,标量类型: 字符串 整型浮点型布尔型

字符串:

(1)单引号双引号

$str1 ="hello world";//双引号会解析变量----执行速度慢

$str2 ='hello world';//单引号会将内容原封不动的输出----执行速度快

(2) heredoc :heredoc擅长定义复杂的字符创

(3)常用的字符串函数(重点)

①字符串查找://strpos(haystack,needle);查找字符串首次出现的位置

  //strrchr() 从字符串最后一次出现的位置开始,返回子字符串

Eg:$str='this is mymacbook';

echo strpos($str,'m');//返回第一次出现的位置

echo strrchr($str,'m');//返回最后出现的字符之后的字符串

②字符串替换://trim()去掉字符串首尾空白字

//str_replace(查找的字符串,替换的字符串,在哪个字符串中查找);

//substr_replace()把字符串的一部分替换成另一个字符串

//substr(string,start,length);返回字符串的子串

Eg:$str3=' hello ';

$str4=trim($str3);//去除空格

echo strlen($str4);//输出字符串的长度

echo'<hr/>';

$str5=__FILE__;

$str6=str_replace('string.php','',$str5);

$str7=str_replace('\\','/',$str6);

echo $str7;

echo'<hr/>';

$str8='this is my macbook';

echo substr($str8,8);

echo'<hr/>';

echo substr_replace($str8,'iphone',11);

③ 字符串比较:

//strcasecmp()以不区分大小写的方式比较字符串,返回0表示字符串相等

//将字符串全部转化为小写 strtolower($str1);

//将字符串全部转化为大写 strtoupper($str2);

Eg:$name1="USERNAME";

$name2="username";

//strcasecmp();以不区分大小写的形式进行比较字符串

echo strcasecmp($name1,$name2);

//将字符串全部转换成大写或小写strtoupper()转化为大写

//die();//exit()停到这里不向下进行

if($name1==strtoupper($name2)){

echo 'true';

}else{

echo 'false';

}

④字符串拆分://explode将字符串根据某个定界符分割成一个数组

//implode()通过一个定界符使数组元素连接成一个字符串

Eg:$str_1='php,.net,3g,java';

$str_2=explode(',',$str_1);

//根据某个定界符将字符创分割成一个数组,

//数组的元素就是根据定界符分割成的几个部分

var_dump($str_2);

echo'<hr/>';

//implode()根据某个定界符 将数组元素连接起来生成一个字符串

$arr=array('php','.net','3g','java');

echo implode(',',$arr);

echo'<hr/>';

正则表达式匹配

//php支持正则表达式正则可以比喻成一个筛子 js可以使用 php也可以使用

preg_match('/(HTTP:\/\/W{3}\.)(.+)/i','HTTP://WWW.sina.com',$match);

//如果提供了第三个参数 会将在整个正则表达式匹配的所有结果放到数组中

//sina.com 替换成360.com

echo preg_replace('/sina\.com/','360.com','HTTP://WWW.sina.com')

2,复合类型:数组对象

数组

(1)使用for()遍历数组,适合下标从0开始,连续的整型索引数组

(2)foreach()遍历数组

Eg:$array= array('php','.net');

//count()统计数组元素的个数

for($i=0;$i<count($array);$i++){

echo $array[$i];

}

echo '<hr/>';

$array= array('php','.net','subject'=>'java','name'=>'xiaoming');

foreach ($array as $value){//每循环一次 将当前的索引对应的值付给$value

echo $value;

}

数组指针

(1)current()获得当前数组指针指向的数组元素

(2)next() 将数组的指针指向下一个

(3)prev() 将数组的指针向前移动一个

(4)reset() 重置数组指针

(5)end() 将数组指针移动到最后

Eg:$arr2=array('php','.net','subject'=>'java','name'=>'xiaoming');

//echo current($arr2);

next($arr2);

// echo prev($arr2);

echo reset($arr2);//重置

常用的数组函数:

array_push() 入栈,讲一个或多个元素压入数组的末尾

array_pop() 出栈,将数组最后一个元素弹出

array_shift() 将数组开头的元素移出

array_unshift() 在数组开头插入一个元素

eg:$array=array('php');

array_push($array,'.net');//入栈,向数组末尾添加一个元素

var_dump($array);

echo '<hr/>';

var_dump(array_pop($array));//出栈将数组中的最后一个元素弹出

echo '<hr/>';

$array=array('php','.net','3g');

echo array_shift($array);

echo '<hr/>';

array_unshift($array,'c');

var_dump($array);

数组排序:

sort() 删除数组原有的键名

rsort() 对数组逆向排序,删除数组原有的键名

asort() 对数组正向排序(按照元素值),不会删除数组原有的键名

ksort() 对数组按照键名排序

eg:$array=array('php','subject'=>'.net','3g');

//sort($array);//先删除数组的键名 再根据数组的值排序

//rsort($array)

//ksort($array);//按照键名排序优先排特殊字符数字字母

asort($array);//不删除原有的键名按照数组元素的值排序

var_dump($array);

3,特殊类型: Null resource(资源)

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP