php学习至今一年有余,笔记积累挺多的,也挺杂的,写篇文章整理一下吧。php
PHP
输出文本的基础指令:echo
和 print
。linux
echo
是PHP语句, print
和print_r
是函数,语句没有返回值,函数能够有返回值(即使没有用)express
echo
输出一个或者多个字符串。print
只能打印出简单类型变量的值(如int,string)print_r
能够打印出复杂类型变量的值(如数组,对象)segmentfault
var_dump
返回表达式的类型和值,而print_r
仅返回结果,相比调试代码使用var_dump
更便于阅读。数组
变量用于存储值,好比数字、文本字符串或数组。PHP 中的全部变量都是以 $ 符号开始的。
PHP 变量名称对大小写敏感!函数
PHP 有三种不一样的变量做用域:学习
local(局部) global(全局) static(静态)
函数以外声明的变量拥有 Global
做用域,只能在函数之外进行访问。ui
函数内部声明的变量拥有 LOCAL
做用域,只能在函数内部进行访问。this
global
关键词用于访问函数内的全局变量。spa
一般,当函数完成/执行后,会删除全部变量。不过,有时我须要不删除某个局部变量。实现这一点须要更进一步的工做。
要完成这一点,请在您首次声明变量时使用 static 关键词:
<?php function myTest() { static $x=-1; echo $x; $x--; } myTest();//-1 echo "<br>"; myTest();//-2 echo "<br>"; myTest();//-3 ?>
php类型:**PHP 支持八种原始类型。**
要指定一个布尔值,使用关键字 TRUE 或 FALSE。两个都是大小写不敏感的。
咱们可使用(int)来将小数强制类型转换成整数。
<?php var_dump((int)(26/3));//int(8) ?>
php中有三种数组:
索引数组:就是下标是顺序整数做为做为索引(好比第几排第几列)$class[5] 关联数组:就是下标是字符串做为索引(好比名字)$class2["zhangsan"] 多维数组 - 包含一个或多个数组的数组
下标要嘛是整数,要么是字符串。
<?php $array = array( "foo" => "bar", "bar" => "foo", ); // 自 PHP 5.4 起 $array = [ "foo" => "bar", "bar" => "foo", ]; ?>
数组单元能够经过 array[key]
语法来访问。
Note: 这并不意味着老是给键名加上引号。用不着给键名为常量或变量的加上引号,不然会使 PHP
不能解析它们。
例子 | 名称 | 结果 |
---|---|---|
$a + $b | 联合 | $a 和 $b 的联合 |
$a == $b | 相等 | 若是 $a 和 $b 具备相同的键/值对则为 TRUE |
$a === $b | 全等 | 若是 $a 和 $b 具备相同的键/值对而且顺序和类型都相同则为 TRUE |
$a != $b | 不等 | 若是 $a 不等于 $b 则为 TRUE |
$a <> $b | 不等 | 若是 $a 不等于 $b 则为 TRUE |
$a !== $b | 不全等 | 若是 $a 不全等于 $b 则为 TRUE |
+
运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。
要初始化一个对象,用 new 语句将对象实例到一个变量中。
strlen() 函数用于计算字符串的长度。
strpos() 函数用于在字符串内检索一段字符串或一个字符。
能够用 define() 函数来定义常量。一个常量一旦被定义,就不能再改变或者取消定义。
经常使用的魔术常量:
定义常量例子:
<?php define("poems" , "Homeric epic"); echo poems ;//outputs "Homeric epic" ?>
在 PHP 中,只有一个字符串运算符。
并置运算符 (.)
用于把两个字符串值链接起来。如:echo "a= ".$a."<br>";
左边将字符串文字"a="与变量$a的值链接,第二处是与换行符"<br>"
链接
函数只有在被调用时才会被执行,这点和js是同样的,一样,函数定义也是以function关键字开头的。
<?php function sum($x,$y){ $z=$x + $y; return $z; } echo "-2+10= ".sum(-2,10);//outputs "-2+10=8" ?>
当没有return
语句时,以上将会变成"-2+10=";
在这里,只讲下foreach
语句。
foreach
语句遍历输出数组:
语法:
foreach (array_expression as $value){ statement}; foreach (array_expression as $key => $value){ statement};
参数array_expression
是指定要遍历的数组,$value
是数组的值
<?php $actors [0] ="Marry"; $actors [1] ="Lorry"; $actors [2] = "mike"; foreach ($actors as $values){ echo "Name:$values<br>"; } ?>
以上代码将输出:
Name:Marry
Name:Lorry
Name:mike
1. __set( )方法:这个方法用来为私有成员属性设置值的,有两个参数,第一个参数为你 要为设置值的属性名,第二个参数是要给属性设置的值,没有返回值。 2. __get()方法:这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的 成员属性的名称,返回获取的属性值,这个方法不用咱们手工的去调用
php中方法不区分大小写
require(dirname(__FILE__).'/global.php'); //引入全局文件 require(dirname(__FILE__).'/config.ini.php'); //引入基本配置文件
在类的成员方法里面,能够用 ->(对象运算符):$this->property
(其中 property 是该属性名)这种方式来访问非静态属性。
静态属性则是用 ::
(双冒号):self::$property
来访问。
=>
数组成员访问符号,->
对象成员访问符号;$this
->$name=$value
:将当前类的name
变量的值设为$value
;$this
表明了类自己,->
是访问其类成员的操做符
双冒号运算符(::
)类名::
静态属性/方法
“::
”用来调用类中静态的属性和方法
<?php //array数组 $users = array('phone','computer','dos','linux'); echo $users;//只会打印出数据类型Array print_r($users);//Array ( [0] => phone [1] => computer [2] => dos [3] => linux ) $numbers = range(1,5);//建立一个包含指定范围的数组 print_r($numbers);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) print_r(true);//1 var_dump(false);//bool(false) //print_r能够把字符串和数字简单地打印出来,数组会以Array开头并已键值形式表示,print_r输出布尔值和null的结果没有意义,所以用var_dump更合适 //经过循环来显示数组里全部的值 for($i = 0 ;$i < 5;$i++){ echo $users[$i]; echo '<br/>'; } //经过count/sizeof统计数组中单元数目或对象中的属性个数 for($i = 0; $i < count($users);$i++){ echo $users[$i]; echo '<br/>'; } //还能够经过foreach循环来遍历数组,这种好处在于不须要考虑key foreach($users as $value){ echo $value.'<br/>';//点号为字符串链接符号 } //foreach循环遍历 $key => $value;$key和$value是变量名,能够自行设置 foreach($users as $key => $value){ echo $key.'<br/>';//输出键 } ?>