配置php变量,PHP环境配置、变量

PHP运行环境安装

在初始学习PHP时建议使用集成化开发环境,下面是常用的集成开发环境

集成开发软件

可使用的操作系统

说明

WAMP

Win

推荐

XAMPP

Win/Mac

Mamp

Mac

推荐

Lamp

Linux(CentOS/Fedora/Debian/Ubuntu)

MAC下安装Mamp

mac下自带PHP,自行配置环境会比较麻烦,而且容易不小心更改到系统配置,造成不必要麻烦。推荐使用Mamp,下载安装后电脑上就有了PHP、phpMyAdmin、MySQL

配置网站根目录

Mac配置

打开Mamp,按下图所示选择一个文件夹作为网站根目录

0a5d758fc367

访问网站只需要localhost:8888

Windows配置

安装WampServer,创建虚拟主机

0a5d758fc367

建议的做法是为每个项目创建一个虚拟主机,当不会用到时再删除它

空白符和换行

在php中,空白符和换行符号都不是必须的,但最好做到简洁易懂。php语句以;结尾。

echo 'hello,world'

?>

如果php文件只有php代码,结尾?>

不是必须的,推荐做法是php文件只写php,结尾符省略

注释

echo 'hello,world';

// 单行注释

# 单行注释

/**

* 多行注释

*/

查看数据

echo输出一个或多个变量,它不是函数,不需要使用括号,如果输出多个用逗号分隔

echo 1,2,3,4;

var_dump打印变量的相关信息

var_dump(1234);

区别:echo是直接输出,var_dump输出和带有变量类型

变量知识

定义变量

PHP是弱类型语言,不像其他语言需要对变量进行类型声明。PHP中以$作为前缀来定义变量,以a~z(大小写)或_下划线定义变量名。

下面是合法的变量名

$hd = 'baidu.com';

$_name = 'abc';

下面是非法的变量声明

$999 = 'yahoo.com'

$&* = 'sina.com.cn'

传值和引用

传值赋值

直接使用=将变量的值赋值给另一个变量

$a = 1;

$b = $a;

$b = 2;

echo $a;//结果是1

引用赋值

将一个变量的内存地址赋值给另一个变量的行为即传址赋值。需要在=等号前加上&引用符号,这样两个变量指向内存中的一个地址,任何一个变量的改变都影响到另一个变量

$a = 1;

$b = &$a;

$b = 2;

echo $a;//b和a指向同一内存地址,b改变了a也跟着变,结果是2

可变变量

一个变量的值可以作为另一个变量的名

$a = 'hello'; //普通变量

$$a = 'world'; //可变变量 相当于:$hello = ‘world’;

echo "$a ${$a}";//输出:hello world

echo "$a $hello";//输出:hello world

第二句把word赋值给$a,其实是新建了名为hello的变量

变量作用域

变量作用域指变量在代码中可以访问的位置

超全局变量

可以代码的任何位置都可以访问的变量

变量

说明

$_GET

地址栏GET提交

$_POST

表单POST提交

$_FILES

文件上传变量

$_SESSION

会话变量

$_COOKIE

cookie值变量

$_GLOBALS

全局变量

$_REQUEST

包含

math?formula=_GET%E3%80%81_POST、$_COOKIE

$_SERVER

服务器环境变量

全局变量

全局声明(函数外声明)的变量会保存在 $_GLOBALS 中,函数内默认不能访问到全局变量,它有两种方式可以被访问到

使用 global 关键字。

$hd='abc';

function p() {

//利⽤ global 引入全局变量

global $hd;

echo $hd;

}

p();

使用全局数组$GLOBALS调⽤用全局变量量。 如: $GLOBALS['hd'];

注意:尽量避免使用自定义全局变量,以便造成全局污染

检测变量

通过 isset 函数可以检测变量是否定义

var_dump(isset($name));

# 结果是false

变量销毁

php在全部代码执行结束后会删除所有变量,也使用 unset 函数可以在程序运行中删除变量

$name='houdunren.com';

unset($name);

注意:全局变量不能在函数中删除,unset只能删除函数内部定义的变量

$name = 'abc';

function run()

{

global $name;

unset($name);

}

run();

echo $name;

# 依然可以输出 abc

静态变量

一个静态变量在所有对该函数的调用之间共享,并且仅在脚本的执行期间函数第一次被调⽤时被初始化。 要声明函数变量为静态的⽤关键字static。通常静态变量的第一次使⽤时赋予⼀个初始值

function calculate()

{

static $a=1;

return ++$a;

}

calculate(); // 2

echo calculate(); // 3

静态变量可以用于记录脚本执行次数

数据类型

使用不同数据类型储存不同数据,下面是常用PHP数据类型表:

类型

说明

integer

整型

float

浮点型

string

字符串

boolean

布尔型

array

数组

object

对象

整型

整型可以是十进制、八进制、十六进制。

01988 #十进制

0xfff #十六进制

PHP中使用octdec()函数将8进制转为10进制,

使用hexde()函数将16进制转为10进制

// 八进制转十进制

echo octdec(777); //511

// 十六进制转十进制

echo hexdec('FAF'); // 4015

float浮点数

浮点数表示实数,可理解为有限或无限小数

0.12

-10.98

布尔型

当转换为 boolean 时,以下值被认为是FALSE/false:

布尔值 FALSE

整型值 0(零)

浮点型值 0.0(零)

空白字符串

字符串 "0"

没有成员变量的数组

没有单元的对象(仅适用于 PHP 4)

特殊类型 NULL(包括尚未设定的变量)

所有其它值都被认为是 TRUE/true,注意空对象也为真

字符串

字符串可以用双引号""或''号包含,区别是双引号中可以解析变量

$url = 'baidu.com';

$string = "百度网址是 {$url}";

输出中文字符问题

在所有输出前使用下面的代码可以正确显示中文:

header('Content-type:text/html;charset=utf-8');

转义符

转义是将有多种含义的字符进行转换,比如$即是变量前缀也是美元符号,就需要转义在不同场景进行改变,转移符号为/

符号

含义

\t

制表符

\n

换行符

注意:浏览器解析的换行和制表符,同输出到磁盘的换行以及制表符结果是不一样的

echo "变量定义 \$name = 'baidu.com.com',学会了吗?\n";

定义符

定义符文本表现的就和双引号字符串一样,在定界符文本中不需要转义引号,适合输入大量文本

注意:结束符必须从第一列开始,并且后面除了分号以外不能包含任何其他字符,空格也不可以

$string = <<

标题

str;

连接符

多个字符串使用.符号连接

$name = 'abc';

$url = 'abc.com'

echo $name.'一些文字'.$url;

字符串常用函数

strlen — 取得字符串长度传度的函数

echo strlen('学习编程'); // 12

一个汉字占3个字节,所以4个字占12字节。一般用下面方法居多

mb_strlen — 根据字符编码获取长度

echo mb_strlen('学习编程','utf8'); // 4

trim — 截去字符串首尾的内容

$string = ' com ';

echo strlen(trim($string,' moc')); // 3

# 从前后删除` moc`和空格字符

注意:trim($string,' moc')只要出现在moc出现的字符都会删掉,不管顺序是否匹配

rtrim从右侧删除、ltrim从左侧删除

$string = ' .com ';

echo strlen(rtrim($string,' moc')); // 4

strtolower — 字母转为小写

$str = "Mary Had A Little Lamb and She LOVED It So";

$str = strtolower($str);

echo $str; // Prints mary had a little lamb and she loved it so

strtoupper — 字母转大写

$str = "Mary Had A Little Lamb and She LOVED It So";

$str = strtoupper($str);

echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO

ucfirst — 将字符串的首字母转换为大写

$foo = 'hello world!';

$foo = ucfirst($foo); // Hello world!

ucfirst经常用于文件名大写

ucwords — 将字符串中每个单词的首字母转换为大写

$foo = 'hello world!';

$foo = ucwords($foo); // Hello World!

$foo = 'hello|world!';

$baz = ucwords($foo, "|"); // Hello|World!

$baz = ucwords($foo, "|");第二个参数是字符串分隔符

md5 — 计算字符串的 MD5 散列值,以 32 字符十六进制数字形式返回散列值

md5('houdunren.com') //962ff8546a001f8f6d0adecf08905d14

md5常用于处理文件名含有特殊字符,如dd/mm/index.php,运用函数后文件名不含特殊符号

explode — 使用一个字符串分割另一个字符串

$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";

$pieces = explode(" ", $pizza);

echo $pieces[0]; // piece1

echo $pieces[1]; // piece2

拆分的结果是一个数组

implode — 将一个一维数组的值转化为字符串

$array = array('lastname', 'email', 'phone');

$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

substr — 返回字符串的子串

$rest = substr('abcdef', 1); // bcdef

$rest = substr('abcdef', 1, 3); // bcd

$rest = substr("abcdef", 0, -1); // 返回 "abcde"

$rest = substr("abcdef", 2, -1); // 返回 "cde"

$rest = substr("abcdef", 4, -4); // 返回 ""

$rest = substr("abcdef", -3, -1); // 返回 "de"

substr截取中文字符会得到不正确的结果,需要用mb_substr,并指定编码参数

mb_substr — 获取部分字符串

echo mb_substr('前端', 1, 1, 'utf-8'); //端

strstr — 查找字符串的首次出现

$email = 'name@example.com';

$domain = strstr($email, '@');

echo $domain; // 打印 @example.com

strrchr — 查找指定字符在字符串中的最后一次出现

echo strrchr('hdcms.jpg', '.'); // .jpg

strpos — 查找字符串首次出现的位置,如果没找到,将返回 FALSE

echo strpos('hou', 'o'); // 返回1

strrpos — 计算指定字符串在目标字符串中最后一次出现的位置

echo strrpos('.com', 'o'); // 返回2

str_replace — 子字符串替换

echo str_replace('houdunren', 'hdcms', 'houdunren.com'); //返回 hdcms.com

// 原字符串 替换字符 模式串

echo str_replace(['小猫','小狗'], '*', '我家有一只可爱的小猫和小狗'); //我家有一只可爱的*和*

echo str_replace(['小猫','小狗'], ['猫猫','旺旺'], '我家有一只可爱的小猫和小狗'); //我家有一只可爱的猫猫和旺旺

NULL

NULL数据类型只有一个值NULL,它有三种情况:

变量未被赋予任何值

变量被赋值为NULL

被unset()函数处理后的变量

$a; //变量 $a未被赋予任何变量,值为NULL

$b = NULL; //变量 $b被赋值为NULL

$c = 10;

unset($c); //使用unset()函数处理后,$c为NULL

相关函数

判断类型getType()

$num = 1234;

$type = gettype($num);

var_dump($type);

检测是否为布尔型is_bool

$var = true;

$bool = is_bool($var);

var_dump($bool);

检测是否为整型is_int()

$int = 1234;

$bool = is_int($int);

var_dump($bool);

检测是否为浮点数is_float()

$num = 1.1234;

$bool = is_float($num);

var_dump($bool);

检测是否为字符串is_string()

$string = 'houdunwang';

$bool = is_string($string);

var_dump($bool);

检测是否为NULL is_null()

$var = null;

$bool = is_null($var);

var_dump($bool);

类型转换

自动转换

PHP类型根据值,自动转换

$num1 = '1';

$num2 = '2';

echo $num1 + $num2; # 字符串转为数字相加

强制转换

settype($var,'type'); # type类型为integer、double、string、array 与 object

$var = '123';

settype($var,’integer’);

var_dump($var); 就会变成int类型

intval() $var = '123';

var_dump(intval($var));

floatval() $var = '1.23';

var_dump(floatval($var));

strval() $var = 123;

var_dump(strval($var));

文档帮助

网址php.net可以下载php和文档信息,中文文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值