<?php //变量声明(php变量无需单首创建,变量会在第一次赋值时建立) $a = 1; //弱类型(php变量会根据其值自动转换为相应的数据类型) $a = "a"; $A = 2.0; //命名规则(大小写敏感,建议采用小驼峰方式并增长三字节的类型前缀) $strName = "张伟佩"; $intAge = 24; //做用域 function sayHi(){ $strLocal = "小明"; echo $strName." say hi"; // say hi echo $strLocal." say hi"; // 小明 say hi //Global做用域只能在函数外进行访问,若在函数内访问能够经过如下两种方式 //1.在变量前加global关键字 global $strName; echo $strName." say hi"; // 张伟佩 say hi //2.经过数组$GLOBALS[index],该数组已键值对形式存放了全部全局变量 echo $GLOBALS['intAge']; //24 } sayHi(); ?>
常规运算符php
= + - * / % += *= ++ --
字符加.
数组
<?php //字符链接符 $str1 = "hello"; echo $str1." world"; //hello world //a.=b 即 a = a.b $str2 = " world"; $str1.=$str2; //$str1 = $str1.$str2; echo $str1; //hello world ?>
<?php $a = "1"; $b = 1; //“==” 判断两个变量数值是否相等 var_dump($a == $b); //bool(true) //“===”判断两个变量数值和类型是否都一致 var_dump($a === $b); //bool(false) //因为php变量具备弱类型,两变量若类型不一样,比较时具备必定规则 //first 存在bool的都转为bool,true > false var_dump(true > 0); //bool(true) //next 存在数字,均转为数字 var_dump("12" > 2); //bool(true) var_dump(1 > "a"); //bool(true) var_dump('f' > 2); //bool(false) //next 均为数字字符串则转为数字比较 var_dump("12" > "110"); //bool(fase) //last 按字符串比较 var_dump("a1" < "b"); //false ?>
<?php //数组声明经过array关键词,除定义常规数组外还能够经过=>来声明键值对数组 $arrCars = array("bmw","volvo","audi","volvo"); $arrAges = array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); //数组遍历 //1.for for($i = 0;$i < count($arrCar);$i++){ echo $arrCar[$i]; } //2.foreach foreach($arrCars as $car){ echo $car; } foreach($arrAges as $key => $value){ echo $key."'s age is ".$value; } //3.指针 reset($arrAges); while(list($key,$val)= each($arrAges)) { echo "$key=> $val<br />"; } //经常使用数组方法 count($arrCar); //返回数组大小,4 sort($arrCar); //排序,按元素内容正向排序,【"audi","bmw","volvo","volvo"】 usort($arrCar,"mySortFunc"); //根据自定义函数进行排序 array_unique($arrCar); //移除重复元素,【"audi","bmw","volvo"】 array_push($arrCar,"tesla"); //入栈元素,【"audi","bmw","volvo","tesla"】 array_shift($arrCar); //删除并返回数组首个元素,【"bmw","volvo","tesla"】 array_map("myMapFunc",$arrCar); //对数组内每一个元素执行自定义函数 ?>
<?php $strName = "HelloWorld"; echo strlen(strName); //10 ?>
<?php $strName = "Hello World"; echo strpos(strName,"World"); //6 ?>
<?php $arrWords = explode(" ","Hello World"); var_dump($arrWords); //array(0 => "Hello",1 => "World") //implode与explode相对,将数组转换为字符串,别名join echo implode(" ",$arrWords); //"Hello World" ?>
<?php $str1 = "hello"; $str2 = "world"; if(strcmp($str1,$str2) > 0) echo "$str1大于$str2"; ?>
<?php //经过Class关键字声明类,封装了相关的成员属性和方法 Class Person{ //类的属性 public $name; //类构造函数 function __construct($n){ $this->name = $n; } //【public】公有方法,在各个位置都可访问 public function sayHi(){ echo "hi,my name is ".$this->name; } //【private】私有方法,只有在本类中访问 private function temp(){ echo "here in Person"; } } //子类(经过extends关键字继承父类中修饰符为public和protected的属性和方法,php中为单继承,父类仅有一个) Class Programmer extends Person{ public $type; //当子类中能够声明与父类中同名的方法,该方法具备与父类不一样的功能,称为重载 function __construct($n,$t){ //当须要调用父类中方法时,经过parent::funcName来访问 parent::__construct($n); //$this是类中自带的指针,指向当前调用该方法的对象 $this->type = $t; } public function sayType() { echo "I'm a ".$this->type; } } //经过new关键字声明子类对象 $objPgm = new Programmer("zhangweipei","rd"); //调用父类继承的方法 $objPgm->sayHi(); //hi,my name is zhangweipei //调用自身方法 $objPgm->sayType(); //I'm a rd //父类中private方法没法被继承,所以下面调用报错 $objPgm->temp(); //Fatal error ?>
在类中具备“魔术功能”的一些特定方法称为魔术方法,一般以__
开头,常见的魔术方法除上面见到的__construct
外还有__set、__get、__call
等服务器
方法 | 说明 | 语法 |
---|---|---|
__construct | 构造函数,建立对象时 | public void __construct (mixed $value) |
__set | 在给不可访问属性赋值时 | public void __set ( string $name , mixed $value ) |
__get | 读取不可访问属性的值时 | public mixed __get ( string $name) |
__call | 在对象中调用一个不可访问方法时 | public mixed __call ( string $name , array $arguments ) |
<?php Class Person{ private $name = "defalutName"; public function sayHi(){ echo "hi,my name is ".$this->name."\n"; } private function temp(){ echo "Inside in Person"; } //在给不可访问属性赋值时 public function __set($name , $value){ echo "you're setting ".$name." to ".$value."\n"; } //读取不可访问属性的值时 public function __get($name){ echo "you're getting ".$name."\n"; } //在对象中调用一个不可访问方法时 public function __call($name , $arguments) { echo "you're calling function ".$name." with arguments ".implode(",", $arguments)."\n"; } } $objP = new Person(); echo $objP->name; //you're getting name $objP->sayHi(); //hi,my name is defalutName $objP->name = "Lee"; //you're setting name to Lee $objP->temp("arg1","arg2"); //you're calling function temp with arguments arg1,arg2 ?>
<?php //打开文件,第一个参数为文件路径,第二个为打开模式, //常见的打开模式有r只读、w只写、r只写(追加)、x只写(文件不存在时不新建)、r+读写等 $fileHandle = fopen("test.txt","a+"); //全读 $strContent = fread($fileHandle,filesize("test.txt")); //逐行读 while(!feof($fileHandle)){ $strLine = fgets($fileHandle); } //写文件 fwrite($fileHandle,"hello world\n"); //关闭文件 fclose($fileHandle); ?>
当异常发生时,若未被捕获或执行相应处理将致使严重错误而中断程序,经过异常处理方法能够捕获异常并执行相应的逻辑ide
<?php //handleArr方法仅接受array类型的参数,不然便抛出异常 function handleArr($arr) { if(!is_array($arr)){ //Exception为php内置的异常类,接受两个参数,第一个为错误信息,第二个为错误代码 //也自定义继承系统Exception类的异常类,而后在catch中调用自定义方法 throw new Exception("param is not array", 1); } # some code handle with arr } try { $intTemp = 1; //传入整形参数,触发异常 handleArr($intTemp); } //捕捉异常 catch (Exception $e) { //Exception中的经常使用方法有 echo $e->getCode(); //返回错误代码 echo $e->getMessage(); //返回错误信息 echo $e->getFile(); //返回代码文件的完整路径 echo $e->getLine(); //返回代码文件中产生异常的代码行号 } ?>
变量 | 说明 |
---|---|
$GLOBALS | 全局做用域中可用的变量 |
$_SERVER | 服务器及执行环境的信息 |
$_GET | 经过 URL 参数传递给当前脚本的变量的数组 |
$_POST | 经过Post方式传递给当前脚本的变量的数组 |
$_COOKIE | 经过 HTTP Cookies 方式传递给当前脚本的变量的数组 |
Reference:
http://www.w3school.com.cn/php/
http://php.net/docs.php
PHP和MySql Web开发[book]函数
博文做者:vicfeel
博文出处:http://www.cnblogs.com/vicfeel
本文版权归做者和博客园共有,欢迎转载,但须保留此段声明,并给出原文连接,谢谢合做!
若是阅读了本文章,以为有帮助,您能够为个人博文点击“推荐一下”!this