1.变量

   <?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();
?>

2.运算符

  • 常规运算符

       = + - * / % += *= ++ --
  • 字符加.

    <?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
?>

3.数组

    <?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); //对数组内每个元素执行自定义函数
?>

4.字符串函数

  • strlen(str) 返回字符串str长度
   <?php
$strName = "HelloWorld";
echo strlen(strName); //10
?>
  • strpos(str,subStr) 返回子串subStr在str的位置
   <?php
$strName = "Hello World";
echo strpos(strName,"World"); //6
?>
  • explode() 将字符串转换为数组
    <?php
$arrWords = explode(" ","Hello World");
var_dump($arrWords); //array(0 => "Hello",1 => "World")
//implode与explode相对,将数组转换为字符串,别名join
echo implode(" ",$arrWords); //"Hello World"
?>
  • strcmp($str1,$str2) 比较两字符串的大小
    <?php
$str1 = "hello";
$str2 = "world";
if(strcmp($str1,$str2) > 0)
echo "$str1大于$str2";
?>

5.类与对象

    <?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
?>

6.魔术方法

在类中具有“魔术功能”的一些特定方法称为魔术方法,通常以__开头,常见的魔术方法除上面见到的__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 ?>

7.文件操作

    <?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); ?>

8.异常处理

当异常发生时,若未被捕获或执行相应处理将导致严重错误而中断程序,通过异常处理方法可以捕获异常并执行相应的逻辑

<?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(); //返回代码文件中产生异常的代码行号
}
?>

9.系统变量

变量 说明
$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

本文版权归作者和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作!

如果阅读了本文章,觉得有帮助,您可以为我的博文点击“推荐一下”!

php简明学习笔记的更多相关文章

  1. 学习笔记《简明python教程》

    学习笔记<简明python教程> 体会:言简意赅,很适合新手入门 2018年3月14日21:45:59 1.global 语句 在不使用 global 语句的情况下,不可能为一个定义于函数 ...

  2. Node.js学习笔记(3):NPM简明教程

    Node.js学习笔记(3):NPM简明教程 NPM常用操作 更新NPM版本 npm install npm -g -g,表示全局安装.我们可以指定更新版本,只需要在后面填上@版本号即可,也可以输入@ ...

  3. Node.js学习笔记(4):Yarn简明教程

    Node.js学习笔记(4):Yarn简明教程. 引入Yarn NPM是常用的包管理工具,现在我们引入是新一代的包管理工具Yarn.其具有快速.安全.可靠的特点. 安装方式 使用npm工具安装yarn ...

  4. Java超简明入门学习笔记(一)

    Java编程思想第4版学习笔记(一) 第二章 一切都是对象(Hello World)          这个笔记本主要记录了我在学习Java编程思想(第4版,中文版)的过程中遇到的重难点及其分析.主要 ...

  5. Java超简明入门学习笔记(四)

    Java编程思想第4版学习笔记(四) 第六章 访问权限控制         访问权限控制是面向对象编程中的重要概念,它划分了类设计者和类使用者的界限.通过设置权限,它一方面告诉类设计者,哪个部分的修改 ...

  6. Java超简明入门学习笔记(三)

    Java编程思想第4版学习笔记(三) 第五章 初始化与清理(构造器和垃圾回收机制)         Java有和C++类似的构造函数来为新创建的对象执行初始化及完成一些特殊的操作,有的类数据成员可能会 ...

  7. Java超简明入门学习笔记(二)

    Java编程思想第4版学习笔记(二) 第三章 操作符 & 第四章 控制执行流程(流程控制语句)         第三章和第四章的内容主要是讲操作符和流程控制语句,Java的大多数操作符和流程控 ...

  8. Java超简明入门学习笔记(零)

    Java编程思想第4版学习笔记(零) 前言          这个笔记本主要记录了我在学习Java编程思想(第4版,中文版)的过程中遇到的重难点及其分析.主要参考了C++11版本的C++语言,对比了它 ...

  9. Git学习笔记(10)——搭建Git服务器

    本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...

随机推荐

  1. Python爬虫Dota排行榜爬取

    1.分析网站 打开开发者工具,我们观察到排行榜的数据并没有在doc里 doc文档 在Javascript里我么可以看到下面代码: ajax的post方法异步请求数据 在 XHR一栏里,我们找到所请求的 ...

  2. 关于PHP高并发抢购系统设计

    内容并发抢购系统注意事项高并发架构设计描述程序端核心代码实现订单流程mysql 端并发解决方案注意事项(1)高并发环境下,对于服务器cup.内存.网络宽带使用率会瞬间暴涨,需要注意对同服务器上其他应用 ...

  3. 学习笔记TF022:产品环境模型部署、Docker镜像、Bazel工作区、导出模型、服务器、客户端

    产品环境模型部署,创建简单Web APP,用户上传图像,运行Inception模型,实现图像自动分类. 搭建TensorFlow服务开发环境.安装Docker,https://docs.docker. ...

  4. Linux安装JDK完整步骤

    1.检查一下系统中的jdk版本 [root@localhost software]# java -version 显示: openjdk version "1.8.0_102" O ...

  5. HTTP权威指南-HTTP报文

    在开始学习本章之前,先来提一些问题,什么是报文?如何创建报文?怎么去理解报文?以及报文的用处有哪些? 什么是报文? 可以这么去理解,如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹 ...

  6. DiscuzX3.1搬家全过程

    最近做了一个安全交流小社区,由于太卡了,之后换了服务器,要给论坛搬家 所以在这里写一下记录. 首先,搬家前要做好以下准备: 1.在网站后台-站长-数据库-备份-网站-Discuz! 和 UCenter ...

  7. 整理一些提高C#编程性能的技巧

    1.使用StringBuilder代替使用string 连接符 "+" 说明:String类对象是不可变的(只读),一旦创建该对象,就不能修改该对象的值. 对象String对象的重 ...

  8. 几个常用的linux命令(操作服务器时会用到)

    目录 tmux 背景 安装 使用 启动一个tmux session 暂时离开当前session 回到之前的session 重命名session 创建window 创建pane ps scp 参考 tm ...

  9. UWP的Converter妙用

    MVVM模式的使用,简化了UWP应用的开发,使层次更加分明.在写xaml的时候,有些小技术还是很实用的:比如Converter,字面上理解是转换器,那它到底是转换什么的?接触过的可能知道它起的是类型转 ...

  10. POJ 1207 3N+1 Problem

    更简单的水题,穷举法即可. 需要注意的点: 1.i 和 j的大小关系不确定,即有可能 i>j 2.即使i>j,最后输出的结果也要严格按照输出,亦即如果输入10,1,则对应输出也应为 10 ...