php-基础知识

1. 字符串中的单引号与双引号的区别?

两者均能表示字符串,不同之处在于双引号包含的变量($str)会被自动替换成变量的实际数值,而单引号中包含的变量则按照普通字符串输出。

需要注意的是:对转义符的使用,在单引号的字符串中,使用单引号时,只要对单引号进行进行转义(\”); 单在双引号字符串中还要注意 双引号,$等字符的使用,这些特殊字符都需要转义符来先转换。

2.  if(‘0’ == “ttt”){echo ‘相等’} else {echo‘不相等’}; 输出结果?

总结一句话:0等于任何非数字开头的字符串。 由于‘0’ 即0 ,“ttt” 与0比较也是0 ,故两者相等。如需这个条件不成立,则需要使用判断是否全等 “===”, 既要判断数值是否相等还需判断类型是否一致。

3.  对于数据类型转换有两种方法

a. 强制转换,如: 强转为integer, $a = (integer)’123abd’; 结果为$a=123;(注意:字符串只被截取到非数字前,具体看第4点)

b. 使用settype函数, settpye(参数1:变量,参数二:‘转换类型’);如:$a=’123abc’; settype($a,’integer’); echo $a;  输出结果为:123; 需要注意的是:参数1放的必须是变量,且settype函数的返回值类型是BOOL。

4. 字符串转换为整型或者浮点型 

  如果字符串是以数字开头的,就会先把数字部分转换为整型,再舍去后面的字符串;如果数字中含有小数点,则会去到小数点前一位。

5. 布尔类型

在php中,不是只有false值才为假,在一些特殊情况下bool值也被认为是false。如 0,  0.0, “0” , “ ”(空字符串);

6. 复合数据类型

    Array(数组)和Object(对象), 两者能够相互转换,

如$array = array(‘p’,’h’,’p’);

$obj = $array;

foreach ($obj as  $value) {

echo $value;

}     输出:php

php的数组和iOS有所不同 ,php数组是可以键值对形式存入,它不是根据索引取值。

7. 常量

php中的常量和iOS中的宏定义一致。如使用常量定义一个网站,和一个域名。如:

define(‘WEB_SITE’, ‘http://www.baidu.com’);

define(’SITE_NAME’, ‘百度’);  define函数的返回值为BOOL类型来判断该常量是否已经定义过;

8. 变量

变量赋值有三种方法:直接赋值,间接赋值,引用赋值

间接赋值:间接赋值后两个变量使用各自的内存,互不干扰

引用赋值:赋值后两个变量执向的是同一块内存地址,当其中一个变量的值改变,另一个变量的也随着改变。使用 & 符号来表示引用。(个人觉得可以理解为类似于双指针)

9. 变量作用域

局部变量,全局变量,静态变量。作用域和其他语言一样,需要注意的是:在php中 全局变量在函数中使用需要在函数中先用global声明;如:

$a  = 0;

function foo(){

global $a;

 $a ++;

echo $a;

}

10.  预定义变量

$_SERVER[‘REMOTE_ADDR’] :正在浏览当前页面用户的IP地址

$_SERVER[‘REMOTE_HOST’] : 正在浏览当前页面用户的主机名

$_SERVER[‘REMOTE_PORT’] : 用户连接到服务器时使用的端口

还有$_SESSION , $_POST, $_GET , $GLOBALS。

11.  拓展

[HTTP_HOST] : 主机名

[HTTP_REFERER] : 用户跳转到当前页面前网页地址

[SERVER_NAME] ,[SERVER_ADDR] :用户IP地址

    原文作者:php_bruce
    原文地址: https://www.jianshu.com/p/b19af1d6d565
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞