一、PHP基础语法 变量到数组

 <?php
//phpinfo(); /* 变量
$a=1;//不分配空间
echo "\$a=".$a;
echo "<br/>";
var_dump($a);// 结果为NULL
echo "hello worrld";*/ /* int型最大能表示多大
echo "<br/>".PHP_INT_SIZE;
echo "<br/>".PHP_INT_MAX;//(2的31次方-1) 31:4*8-1个符号位
$a=-2147483648;
echo "<br/>".$a;
var_dump($a);//超过int型 范围 则会变为float类型*/ /* 布尔值
$d=0.0;
if(!$d){
echo "!!";
}*/
/* 浮点数
浮点数精度是14(从左边开始,第一个非0就是精度的开始)*/ /*字符型 单引号和双引号区别 $d=90;
$d1="$d";
$d2='$d';
echo $d1;
echo $d2;*/ //$a=7/5.1;
//echo $a; # === 包括类型也相等
/*$a=2;
$b=2.0;
if($a!=$b)
{
echo"!=";
}
if($a!==$b)# !== 包括类型也不相等
{
echo "!==";
}*/ /* &&和||只要前面的一个为真假即不执行后一个
and 和 or 则不是
or的优先级比=低 所以
$e=false or true; //结果为false,因为此时$e先赋值为FALSE
var_dump($e);
$f=true and false;//结果为true,因为此时$e先赋值为true
var_dump($f);*/ /*字符串拼接
$a="1";$b="2";
$c=$a.$b;
*/ /* 对象类型运算符 class Dog{}
$dog=new Dog;
var_dump($dog instanceof Dog); $a=3;
echo $a++*3;//9*/ /*常量
define("TAX_INT",21);
#$TAX_INT=9;
echo TAX_INT; const TAX_TWO=0.3;
echo "<br/>".TAX_TWO; */ /*
#require 'other.php';//不会判断是否重复,可能导致重复输出
require_once 'other.php';// 先判断是否有重复引入 #include '111other.php';
#include_once 'other.php'; #require 和include区别:
#include如果出现了错误会继续执行,
#而require则会终止程序 #echo "22"; $i=2;
$result=getNum($i);//传值,也可以传地址&
echo $result;*/ /*全局变量 global
$a=1;
function get()
{
global $a;//可作用于局部内了
$a++;
}
get();
echo $a;
*/ /*数组初始化
//$array=array(1.2,12,"wrwe",true);
//echo count($array); $arr=array("log"=>"daomul","mima"=>123);
echo count($arr)."<br/>";
foreach($arr as $key=>$val)
{
echo $key."=".$val."<br/>";
} $arr2=array(""=>"32",1=>"fdsf",23,23);
echo $arr2[""]."<br/>";
echo $arr2[2]."<br/>"; #使用true作为下标,即是1 ,false :0; null:"" $arr3=array(123.4=>"arr3");
echo $arr3[123]."<br/>"; #显示详细数组信息
print_r($arr3); echo "<br/>";
var_dump($arr3); #数组可以动态增长
$arr4=array(2,3);
echo $arr4[1]."<br/>";
$arr4[2]='11 22 333 444';
#echo $arr4[2]; #字符串的拆分 explode
$arr=explode(" ",$arr4[2]);
print_r($arr); foreach($arr as $key=>$val)# (要循环的数组 as 数组下标变量)
{
echo "<br/>$key=>$val";
} echo "<br/>".$arr[1];
unset($arr[1]);#销毁数组元素后,关键字下标不会被重新填充组合
print_r($arr);*/ /*数组运算 叠加
$a=array("a"=>12,"b"=>23);
$b=array("a"=>21,"c"=>43);
$a=$a+$b;
print_r($a);*/ ?>

二、数组

 <html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<body>
<h1> 同一个界面传输参数</h1> <?php
/* 在 input中加 value="<?php echo $grades; ?>" 仿造百度搜索 */
error_reporting(E_ALL ^ E_NOTICE);
$grades=$_REQUEST['grade'];
$grade=explode(" ",$grades);
$all=0;
foreach($grade as $k=>$v)
{
$all+=$v;
}
?> <form action="test.php" method="post">
<input type="text" name="grade" value="<?php echo $grades; ?>"/>
<input type="submit" value="start"/>
</form> <?php
echo "总的:".$all;
?>
</body>
</html>

三、静态变量

 <?php

       class Child
{
public static $num=0;
public $name;
function __construct($name) //只有new之后才能调用
{
$this->name=$name;
}
//静态变量不能用this来访问
public function join()
{
self::$num+=1; //可以: Child::$num
echo $this->name."you";
}
} $child1=new Child("k");
$child1->join();
$child1=new Child("a");
$child1->join();
$child1=new Child("b");
$child1->join();
echo "<br/>".Child::$num;
//类外只能是 类名::变量,
//类内就能两种
?>

四、继承/封装/多态/抽象

     /*class Child
{
public static $num=0;
public $name;
//构造方法
function __construct($name) //只有new之后才能调用
{
$this->name=$name;
}
//静态变量不能用this来访问
public function join($ifee)
{
self::ifee+=1; //可以: Child::$num
echo $this->name."you";
}
} $child1=new Child("k");
$child1->join();
$child1=new Child("a");
$child1->join();
$child1=new Child("b");
$child1->join();
echo "<br/>".Child::$num;
//类外只能是 类名::变量,
//类内就能两种*/ //静态方法不能采用非静态变量,只能使用非静态变量
// 成员函数之间相互调用,需要用 $this->text(); //继承 //1、子类只能继承一个父类
// 如果想多重继承可以考虑通过多次继承:
/*class A{}
class B extends A{}
class C extends B{}*/ //2、父类中的构造方法,在创造一个子类的对象实例的时候不会默认自动调用
//3、 子类中调用父类的方法
//父类名::方法名(); / parent::方法名(); parent小写的 //覆盖:
# 子类的方法和父类的方法名称和参数个数完全一样,但不要求参数名相同
# 但是修饰符可以不同,但是子的范围〉=父类范围
# 父类是private则不能覆盖
/*class A{
function F(){
echo " 父类在此!<br/>";
}
}
class B extends A{}
class C extends B{
function F(){
echo "调用了父类了<br/>";
parent::F();
A::F();
}
}
$C1=new C();
$C1->F();*/ //抽象类:父类中不需要被实例化,只让子类继承,也可以被调用里面的;达到代码复用 #抽象类 abstract class name{}
#抽象方法 abstract public cry();
#抽象类不一定也有抽象方法
#类包含抽象方法则必须为抽象类
#子类继承抽象父类,则必须为抽象类或者实现继承的所有,所有!方法 //接口:interfacde 接口{//属性 //方法}
# 只能定义规范,让类去实现接口 ,不能自己实现,
# class c implements 接口{}
# 接口不能被实例化/接口能继承其他多个接口/不能不为public
# 一个类实现了一个接口,必须把接口以及其继承的接口的方法全部实现
# (1 多个平级的类都要实现某个功能,只是实现方式不同,没有继承关系,
#(2 项目经理定规范,让其他程序员实现
/*interface Stu
{
const A=90;
public function add();
}
interface Stu2{} class MyStu implements Stu,Stu2
{
public function add()
{
echo "dddd".Stu::A."<br/>";
}
}
$mystu=new MyStu();
$mystu->add();
echo "OK".Stu::A; #获得接口中的常量*/ //final 使类中的方法不被覆盖
# final 不能修饰成员属性
/*class A
{
final public function get($salary)
{
return $salary*3;
}
}
class B extends A
{
public function get($sal)
{
return $sal*2;
}
}
$b=new B();
$b->get("21"); #Cannot override final method A::get() */ //const常量
# 要赋初始值;不能后面赋值;不能加$等修饰符
# self::A ; 类名::A ;接口名::A; 等方式获得常量A的值

五、文件操作以及错误处理

 <?php

   // 文件操作
/*处理错的方式1
if(!file_exists("file1.txt"))
{
echo "not here";
exit();
}
else
{
$fp=fopen("file1.txt","r");
echo "文件已打开";
fclose($fp);
}*/ /* 处理错的方式2
if(!file_exists("a.txt"))
{
die("wenjianbucunzai");
}
else
{}
echo "end";*/
/*处理错的方式1 file_exists("b.txt") or die("zhen de ");
echo "end";
*/ //定义错误函数
/*function my_error($error,$err_message)
{
echo "<font size='5' color='red'> $error </front><br/>";//2
//echo "错误信息是:".$err_message;
exit();
} //改变系统默认的错误处理函数(“用户自己定义的错误输出函数”,“错误类型”)
set_error_handler("my_error",E_WARNING);
$fp=fopen("aa.txt",'r');*/ //错误触发器 function my_error3($error,$err_message)
{
echo "错误号:".$error;
}
function my_error4($error,$err_message)
{
echo "big big!";
}
set_error_handler("my_error3",E_USER_WARNING);//
set_error_handler("my_error4",E_USER_ERROR);//致命错误,不继续执行
$age=140;
if($age>120)
{
//调用触发器的时候指定错误级别
trigger_error("输入的数字过大!",E_USER_ERROR);
//trigger_error("输入的数字过大!",E_USER_WARNING);
//exit();
}
echo "ok";
?>

六、错误日志

 <?php

  //错误日志 php.ini 中的error_log的配置

  function my_error5($error,$err_meaasge)
{
$err_info="错误信息:".$error."--".$err_meaasge;
//echo time();
//输出 当前日期
// 调整时区:默认时期是UTC和中国差8小时 PRC 或者Asia/Chongqing date_default_timezone_set("PRC"); echo date("Y-m-d G-i-s");
echo "<br/>".$err_info; #将错误存入系统文件中
error_log("时间是:".date("Y-m-d G-i-s")."-".$err_info."\r\n",3,"myerror.txt");//3个参数
}
set_error_handler("my_error5",E_USER_WARNING);
$i=1;
if($i<2)
{
trigger_error("输入的数字过小",E_USER_WARNING);
}
?>

七、捕获异常

 <?php

   //处理异常
#注意事项:异常抛出之后,得代码不会被继续执行
#抛出异常之后如果没用处理则会报错
try
{
addUser("1a");
}
catch(Exception $e)
{
echo "失败信息:".$e->getMessage();//getLine()
#可以继续抛出 throw $e;
#也可以顶一个顶级异常处理
# $i=8/0 fopen("a.txt","r") 很难抛出异常
} function addUser($user)
{
if($user=="a")
{
echo "登陆成功!";
}
else
{
throw new Exception("用户名错误!");
} } /*#顶级异常处理
function my_error()
{
echo "我是顶级异常处理!".e->getMeaasge();
}
set_error_handler("my_error");*/ ?>

PHP 基础知识代码总结的更多相关文章

  1. iOS Swift基础知识代码

    推荐:Swift学习使用知识代码软件 //集合类型 数组 字典 func array1(){ var arr = [","dd"] //简单写法 var arr1 = [ ...

  2. 021PHP基础知识——代码重用

    <?php /** * 代码重用 * include() require() 载入文件 * include() 如果载入的文件不存在,提示警告错误. * require() 如果载入的文件不存在 ...

  3. 1.4 Python基础知识 - 代码书写格式及条件判断"if ... else ..."

    一.代码的书写规则 在所有的开发语言中,代码之间都是有关联的关系,有的是包含关系,有的是上下级关系,有的是代表语句的结束.在python中也是有相应的规则的: 1.在没有上下级关系的代码中,代码要顶行 ...

  4. java基础知识代码-------枚举类型

    package com.mon10.day22; /** * 类说明 :枚举类型,案例二 * * @author 作者 : chenyanlong * @version 创建时间:2017年10月22 ...

  5. 为企业应用开发提速,写给企业IT部门的低代码开发基础知识

    简介:应用程序开发长期以来一直是IT部门和业务部门面临的问题. IT部门总是被新的应用程序需求弄得不堪重负.他们不可能完成业务部门想要完成的每一个项目. 同时,业务部门的用户厌倦了等待,并开始完全绕过 ...

  6. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  7. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  8. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  9. 前端开发:css基础知识之盒模型以及浮动布局。

    前端开发:css基础知识之盒模型以及浮动布局 前言 楼主的蛮多朋友最近都在学习html5,他们都会问到同一个问题 浮动是什么东西?  为什么这个浮动没有效果?  这个问题楼主已经回答了n遍.今天则是把 ...

随机推荐

  1. unity, 获取mesh名称

    正确的获取mesh名称的方法: MeshFilter meshFilter=node.GetComponent<MeshFilter>();    string meshName=mesh ...

  2. CentOS中安装JDK与Intellij idea

    卸载CentOS中自带openjdk CentOS自带openjdk,可以先用java –version检测是否存在jdk版本.如果存在,最好在安装oracle的jdk之前最好卸载,可以使用如下指令 ...

  3. [sh]shell脚本栗子

    我会定期的把看到的一些好的shell和py脚本搜集在这里,供参考学习: 命令行回收站 推荐一个不相关的:trash-cli,就是命令行版的回收站,它的神奇之处在于不是简单的把文件移动到回收站,而且可以 ...

  4. nginx rewrite目录对换

    /123/xxx----->xxx?id=123 [root@web01 default]# pwd /app/www/default [root@web01 └── sss └── index ...

  5. 安装oracle11g 并且开启APEX 安装

    1.Windows下Oracle安装图解----oracle-win-64-11g 详细安装步骤 - souvc - 博客园 oracle 11g 下载网址   一. Oracle 下载   官方下地 ...

  6. Ecshop安装的坑,建议不要使用!

    最近因为工作的需要,安装了下ecshop,这个曾经的火爆开源程序,现在也呈现出疲态. 1.请看官方的运行环境推荐: 服务器端运行环境推荐·php版本5.0以上5.3以下的版本(推荐使用5.2系列版本) ...

  7. cocos2dx对所有子节点设置透明度

    看到cocos2dx2.2.5发布了,修复了输入框的bug,于是我们的项目也升级到了2.2.5, 升级过程还是比较顺利,没想到后来发现设置透明度无效了. 经过调试发现要调用一下setCascadeOp ...

  8. 知乎日报 API 分析

    声明 下面全部 API 均由 知乎(Zhihu.Inc) 提供,本人採取非正常手段获取. 获取与共享之行为或有侵犯知乎权益的嫌疑.若被告知需停止共享与使用.本人会及时删除此页面与整个项目. 请您暸解相 ...

  9. Unity3D中UGUI使用ScrollBar之后保存,工程启动报错原因跟踪

    笔者不久前将Unity3D版本更新为4.6.2之后.在使用新UI的时候发现关闭项目之后经常再次打开项目会出现一对的报错. 找了一圈,发现是ScrollBar控件出现了BUG.整个空间的滑块消失了. 在 ...

  10. alsamixer + alsactl 控制放音通道

    1 使用alsamixer的gui界面配置放音(控制OUT1,OUT2的音量); 2 退出alsamixer,使用alsactl  store生成配置文件,文件位于/etc/asound.state; ...