PHP学习(一)
变量
1、定义在函数外部的就是全局变量,它的作用域从定义处一直到文件结尾。
2、函数内定义的变量就是局部变量,它的作用域为函数定义范围内。
3、函数之间存在作用域互不影响。
4、函数内访问全局变量需要 global 关键字或者使用 $GLOBALS[index] 数组
5. 当一个函数完成时,它的所有变量通常都会被删除。然而,有时候希望某个局部变量不要被删除。要做到这一点,在第一次声明变量时使用 static 关键字。然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
<?php
$a=5;
$b=3;
function t1()
{
global $a,$b;
echo $a-$b; // 输出 2
}
t1();
echo PHP_EOL;
function t2()
{
echo $GLOBALS['a']-$GLOBALS['b']; // 输出 2
}
t2();
?>
6.PHP EOF用来定义一个字符串,首部和尾部需要独占一行,EOF可以用别的任意字符替换,但是得保持前后一致
<?php
echo <<<EOF
<h1>我的第一个标题</h1>
<p>我的第一个段落。</p>
EOF;
// 结束需要独立一行且前后不能空格
?>
7.PHP 是一门弱类型语言,PHP 会根据变量的值,自动把变量转换为正确的数据类型。
输出
PHP用echo和print来输出内容,他们的区别如下:
echo - 可以输出一个或多个字符串,无返回值
print - 只允许输出一个字符串,返回值总为 1
<?php
print "我要学 PHP!<br>";
echo "这是一个", "字符串,", "使用了", "多个", "参数。";
?>
他们都可以输出html代码,可以实现对应html代码效果
数据类型
1.var_dump() 方法,判断一个变量的类型与长度,并输出变量的数值,如果变量有值,则输出是变量的值,并返回数据类型。显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
2.数组类型:
$cars=array("Volvo","BMW","Toyota");
3.对象类型,用于存储类型,类对象和js很相似
<?php
class Car
{
var $color;
function __construct($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
?>
常量
设置常量,使用 define() 函数,函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
举一个不区分大小写的例子:
<?php
// 不区分大小写的常量名
define("GREETING", "哈哈", true);
echo greeting; // 输出 "哈哈"
?>
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。常量的定义不要在函数内定义
字符串
<?php
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . $txt2;
?> //输出HelloWorld!What a nice day
echo strlen("Hello world!"); //strlen()用于输出字符串长度
循环,条件判断
和java等语言相同,使用if,if…else,switch,when等,这里不再复述
这里就提一下PHP的foreach循环:
foreach ($array as $value)
{
要执行代码;
}
数组
关联数组能用自指定的键访问值
<?php
$fruits=array("apple","peach","pear");//定义数组
$age=array("a"=>"10","b"=>"11","c"=>"12");//定义关联数组
$length=count($fruits);//定义数组长度
echo <<<EOF
$length<br/>
EOF;
for($i=0;$i<$length;$i++){
echo $fruits[$i];
echo "<br/>";
}//遍历数组
foreach($age as $x=>$xAge){
echo $x." is ".$xAge."<br/>";
}//遍历关联数组
?>
数组排序
函数名 | 作用 |
---|---|
sort() | 对数组进行升序排列 |
rsort() | 对数组进行降序排列 |
asort() | 根据关联数组的值,对数组进行升序排列 |
ksort() | 根据关联数组的键,对数组进行升序排列 |
arsort() | 根据关联数组的值,对数组进行降序排列 |
krsort() | 根据关联数组的键,对数组进行降序排列 |