我们可以通过使用“memory_get_usage”获取当前PHP消耗的内存。
<?php
echo $m1 = memory_get_usage();
echo "<br />";
$var_string = "123";
echo $m2 = memory_get_usage()-$m1;
echo "<br />";
$n=123;
echo $m3 = memory_get_usage()-$m1-$m2;
echo "<br />";
$f=123.00;
echo $m4 = memory_get_usage()-$m1-$m2-$m3;
echo "<br />";
$var_array = array("123");
echo $m5 = memory_get_usage()-$m1-$m2-$m3-$m4;
echo $m6 = memory_get_usage();
?>
通过“var_dump”函数,输出数据类型。
<?php
$string = "就是就是";
var_dump($string);
echo "<br />";
$string = 9494;
var_dump($string);
echo "<br />";
?>
image.png
当我们用”echo”指令输出布尔类型时,如果是“true”则输出的是“1”
<?php
$man = "男";
$flag = $man == "男";
echo $flag ;
echo "<br />" ;
var_dump($flag);
?>
image.png
当双引号中包含变量时,变量会与双引号中的内容连接在一起,当单引号中包含变量时,变量会被当做字符串输出。
<?php
$love = "I love you!";
$string1 = "慕课网,$love";
$string2 = '慕课网,$love';
echo $string1;
echo "<br />";
echo $string2;
?>
image.png
一行一行的读文件
<?php
//首先采用“fopen”函数打开文件,得到返回值的就是资源类型。
$file_handle = fopen("/data/webroot/resource/php/f.txt","r");
//echo var_dump($file_handle);
if ($file_handle){
//接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,然后输出每行的文字
while (!feof($file_handle)) { //判断是否到最后一行
$line = fgets($file_handle); //读取一行文本
echo $line; //输出一行文本
echo "<br />"; //换行
}
}
fclose($file_handle);//关闭文件
?>
禁止显示PHP警告提示
<?php
error_reporting(0); //禁止显示PHP警告提示
$var;
var_dump($var);
$var1 = null;
var_dump($var1);
$var2 = NULL;
var_dump( $var2);
$var3 = "节日快乐!";
unset($var3);
var_dump($var3);
?>
什么是常量
什么是常量?常量可以理解为值不变的量(如圆周率);或者是常量值被定义后,在脚本的其他任何地方都不可以被改变。
<?php
$p = "PII";
define("PI",3.14);
define($p,3.14);
echo PI;
echo "<br />";
echo PII;
?>
//第一个参数“constant_name”为必选参数,常量名称,即标志符,常量的命名规则与变量的一致,
//但是要注意哦,它可不带美元符号哦。第二个参数“value”为必选参数,它是常量的值。
//第三个参数“case_sensitive”为可选参数,指定是否大小写敏感,设定为true表示不敏感,
//一般不指定第三个参数的情况下,默认第三个参数的值为false。
//(注: string表示参数类型为字符串类型,mixed表示参数类型可以接受为多种不同的类型,
//case_sensitive = true表示默认为布尔类型TRUE)
image.png
认识一下系统常量
-
__FILE__ :php程序文件名。它可以帮助我们获取当前文件在服务器的物理位置。
-
__LINE__ :PHP程序文件行数。它可以告诉我们,当前代码在第几行。
-
PHP_VERSION:当前解析器的版本号。它可以告诉我们当前PHP解析器的版本号,我们可以提前知道我们的PHP代码是否可被该PHP解析器解析。
-
PHP_OS:执行当前PHP版本的操作系统名称。它可以告诉我们服务器所用的操作系统名称,我们可以根据该操作系统优化我们的代码。
取变量的值
第二种是使用constant()函数。它和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,在使用上要灵活、方便,其语法格式如下:
mixed constant(string constant_name)
第一个参数constant_name为要获取常量的名称,也可为存储常量名的变量。如果成功则返回常量的值,失败则提示错误信息常量没有被定义。(注:mixed表示函数返回值类型为多种不同的类型,string表示参数类型为字符串类型)
如何判定常量是否被定义
如果常量被重复定义以后,PHP解析器会发出“Constant XXX already defined”的警告,提醒我们该常量已经被定义过。那么,在团队开发,或代码量很大的情况下,我们如何去判定一个常量是否被定义呢?
defined()函数可以帮助我们判断一个常量是否已经定义,其语法格式为:
bool defined(string constants_name)
它只有参数constant_name,指的是要获取常量的名称,若存在则返回布尔类型true,否则返回布尔类型false; (注:bool表示函数返回值类型为布尔类型)
PHP中的错误控制运算符
PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;
如果激活了track_error(这个玩意在php.ini中设置)特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。
需要注意的是:错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。
<?php
$conn = @mysql_connect("localhost","username","password");
echo "出错了,错误原因是:".$php_errormsg;
?>
PHP变量的数据类型
在PHP中,支持8种原始类型,其中包括四种标量类型、两种复合类型和两种特殊类型。PHP是一门松散类型的语言,不必向PHP声明变量的数据类型,PHP会自动把变量转换为自动的数据类型,一定程度降低了学习PHP的门槛。
- 布尔类型(boolean):只有两个值,一个是TRUE,另一个FALSE,它不区分大小写
- 整型(integer):类似于常见的整数。它可以用十进制、八进制、十六进制指定。十进制就是日常使用的数字;八进制,数字前必须加上“0”(这个0是阿拉伯数字0,可不是英文字母“欧”哦);十六进制,数字前必须加“0x” (这个0也是阿拉伯数字0,不是“欧”哦)。
- 浮点型(浮点数、双精度数或实数),也就是通常说的小数,可以用小数点或者科学计数法表示。科学计数法可以使用小写的e,也可以使用大写的E。
- 字符串是由一系列字符组成,在PHP中,字符和字节一样,也就是说,一共有256种不同字符的可能性。
字符串型可以用三种方法定义:单引号形式、双引号形式和Heredoc结构形式。php Heredoc结构 - 资源(resource):资源是由专门的函数来建立和使用的,例如打开文件、数据连接、图形画布。我们可以对资源进行操作(创建、使用和释放)。任何资源,在不需要的时候应该被及时释放。如果我们忘记了释放资源,系统自动启用垃圾回收机制,在页面执行完毕后回收资源,以避免内存被消耗殆尽。
- NULL(NULL):NULL是空类型,对大小写不敏感,NULL类型只有一个取值,表示一个变量没有值,当被赋值为NULL,或者尚未被赋值,或者被unset(),这三种情况下变量被认为为NULL。
PHP中的赋值运算符
-
"=":把右边表达式的值赋给左边的运算数。它将右边表达式值复制一份,交给左边的运算数。换而言之,首先给左边的运算数申请了一块内存,然后把复制的值放到这个内存中。
-
"&":引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。
PHP中的字符串连接运算符
- 连接运算符(“.”):它返回将右参数附加到左参数后面所得的字符串。
- 连接赋值运算符(“.=”):它将右边参数附加到左边的参数后。
$b = "东边日出西边雨"; $b .= ",道是无晴却有晴";
网友评论