PHP教程学习

PHP学习

学习:函数,字符串,数组,日期和时间,变量,运算符,类,面向对象。

1.函数

函数的命名不能以数字和点开头但可以用_
PHP 函数调用

<?php
function study()
{
    echo "functions";
}
 
echo "I love learning";
study();//函数调用
?>

输出:

I love learning functions

PHP 函数 - 添加参数

<?php
function bookname($a,$b)
{
    echo $a . " and the teacher is " . $b . "<br>";//.为并置运算符,添加了两个参数在bookname函数里
}
 
echo "The name of the first book is";
bookname("Advanced mathematics"," .");
echo "The name of the second book is";
bookname("C language"," .");
echo "The name of the third book is";
bookname("data structure"," .");
?>

输出:

The name of the first book isAdvanced mathematics and the teacher is .
The name of the second book isC language and the teacher is .
The name of the third book isdata structure and the teacher is .

php引用参数

<?php
	$a=1;$b=2;
	function hanshu($a,&$b){
		$a++;
		$b++;
	}
	hanshu($a,$b);//改变实参$b的值
	echo $a,$b;
?>

输出:

13

PHP 函数 - 返回值

<?php
function Return_value($x,$y)
{
    $total=$x+$y;
    print($total);//返回一个值
    echo "<br>";
    var_dump($total);//可以返回一个或多个表达式达式的类型与值并接着往下运行
    echo "<br>";
    return $total;//让函数返回一个值并结束
}
echo "1 + 16 = " . Return_value(1,16);
?>

输出:

17
int(17)
1 + 16 = 17

PHP 字符串变量

PHP 中的字符串变量

<?php 
$txt="Hello world!"; //创建一个叫为txt的字符串变量,并赋值为 "Hello world!" 
echo $txt; 
?>
//当赋给一个文本值给变量时,给文本值加上单引号或者双引号。

输出:

Hello world!

PHP 并置运算符

<?php 
$a="My name is"; 
$b="long."; 
echo $a . " " . $b; 
?>

输出:

My name is long.

PHP strlen() 函数
strlen() 函数返回字符串的长度(字节数)。

<?php 
echo strlen("Hello world!"); 
?>

输出:

12

PHP strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。

<?php 
echo strpos("Hello world!","world"); 
?>

字符串 “world” 的位置是 6。之所以是 6 而不是 7 的原因是,字符串中第一个字符的位置是 0,而不是 1。
输出:

6

String 函数:
bin2hex():把 ASCII 字符的字符串转换为十六进制值。
chop():移除字符串右侧的空白字符或其他字符。
chr():从指定 ASCII 值返回字符。
chunk_split():把字符串分割为一连串更小的部分。
convert_uudecode():对 uuencode 编码的字符串进行解码。
convert_uuencode():使用 uuencode 算法对字符串进行编码。
count_chars():返回字符串所用字符的信息。
echo():输出一个或多个字符串。
hex2bin():把十六进制值的字符串转换为 ASCII 字符。
lcfirst():把字符串中的首字符转换为小写。
levenshtein():返回两个字符串之间的 Levenshtein 距离。
ltrim():移除字符串左侧的空白字符或其他字符.。
ord():返回字符串中第一个字符的 ASCII 值。
print():输出一个或多个字符串。
printf():输出格式化的字符串。
str_ireplace():替换字符串中的一些字符(大小写不敏感)。
str_replace():替换字符串中的一些字符(大小写敏感)。
str_word_count():计算字符串中的单词数。

PHP 数组

数组是一个能在单个变量中存储多个值的特殊变量。
在 PHP 中创建数组
在 PHP 中,array() 函数用于创建数组:

array();

PHP 数值数组
这里有两种创建数值数组的方法:
自动分配 ID 键(ID 键总是从 0 开始):

$name=array(“Wang Wu”,“Zhang San”,“Li Si”);

人工分配 ID 键:

$name[0]="Wang Wu";
$name[1]="Zhang San";
$name[2]="Li Si";
<?php
$name=array("Wang Wu","Zhang San","Li Si");
echo "Your name is " . $name[0] . ".My name is " . $name[1] . ".His name is " . $name[2] . ".";
?>

输出:

Your name is Wang Wu.My name is Zhang San.His name is Li Si.

获取数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素的数量):

<?php
$name=array("Wang Wu","Zhang San","Li Si");
echo count($name);
?>

输出:

3

遍历数值数组

<?php
$name=array("Wang Wu","Zhang San","Li Si");
$length=count($name);//获取数组长度赋值给length
for($x=0;$x<$length;$x++)//依次输出数组中的所有值
{
    echo $name[$x];
    echo "<br>";
}
?>

输出:

Wang Wu
Zhang San
Li Si

PHP 关联数组
关联数组是使用您分配给数组的指定的键的数组。
这里有两种创建关联数组的方法:

$surname=array(“Wang”=>“Wu”,“Zhang”=>“San”,"Li "=>“Si”);

或者:

$surname[‘Wang’]=“Wu”;
$surname[‘Zhang’]=“San”;
$surname[‘Li’]=“Si”;

<?php
$surname=array("Wang"=>"Wu","Zhang"=>"San","Li "=>"Si");
echo "Surname is Wang," . "name is " . $surname['Wang'];
?>

Surname is Wang,name is Wu

遍历关联数组

<?php
$surname=array("Wang"=>"Wu","Zhang"=>"San","Li "=>"Si");
foreach($surname as $x=>$x_value)
{
    echo "surname=" . $x . ", name=" . $x_value;
    echo "<br>";
}
?>

输出:

surname=Wang, name=Wu
surname=Zhang, name=San
surname=Li , name=Si

PHP date() 函数

PHP date() 函数用于格式化时间/日期。
PHP Date() - 格式化日期
d :代表月中的天 (01 - 31)
m: 代表月 (01 - 12)
Y : 代表年 (四位数)
H:小时,24 小时格式,有前导零
i :有前导零的分钟数
s:秒数,有前导零

<?php
echo date("Y/m/d/H:i:s");
?>

输出:

2020/04/12/16:27:42

PHP 变量

变量是用于存储信息的"容器":
与代数类似

<?php
$a=5;
$b=6;
$c=$a+$b;
echo $c;
?>

输出:

11

PHP 变量规则:

变量以 $ 符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
变量名是区分大小写的($y 和 $Y 是两个不同的变量)

局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。

<?php 
$x=5; // 全局变量 

functiona() 
{ 
    $y=10; // 局部变量 
    echo "<p>测试函数内变量:<p>"; 
    echo "变量 x 为: $x"; 
    echo "<br>"; 
    echo "变量 y 为: $y"; 
}  

a(); 

echo "<p>测试函数外变量:<p>"; 
echo "变量 x 为: $x"; 
echo "<br>"; 
echo "变量 y 为: $y"; 
?>

输出:

测试函数内变量:
变量 x 为:
变量 y 为: 10
测试函数外变量:
变量 x 为: 5
变量 y 为:

PHP global 关键字
global 关键字用于函数内访问全局变量。在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:

<?php
$x=5;$y=10;
function a()
{
    global $x,$y;
    $y=$x+$y;
}
a();
echo $y; // 输出 15
?>

或者:

<?php 
$x=5; $y=10; 
function a() 
{ 
    $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y']; 
}  
a(); 
echo $y; // 输出 15
?> 

Static 作用域

<?php
function a()
{
    static $x=0;//每次调用该函数时,该变量将会保留着函数前一次被调用时的值
    echo $x;
    $x++;
} 
a();a();a();
?>
//该变量仍然是函数的局部变量。

PHP 运算符

PHP 算术运算符

<?php
  $x=1; $y=2;
  echo($x + $y); //加 输出3
  echo("<br>");  //换行
  echo($x - $y); //减 输出-1
  echo("<br>");  
  echo($x * $y); //乘 输出2
  echo("<br>");  
  echo($x / $y); //除 输出0.5
  echo("<br>");  
  echo($x % $y); //取余 输出0
  echo("<br>");  
  echo -$x;//取相反数 输出-1
  echo("<br>"); 
?>

输出:

3
-1
2
0.5
1
-1

PHP 赋值运算符

<?php
  $i=1;$j=2;
  $i = $j; //把右边的值赋给左边
  echo $i; //输出2
  echo("<br>"); 
  $i += $j; //==$i=$i(2)+$j(2)
  echo $i; //输出4
  echo("<br>"); 
  $i -= $j; //==$i=$i(4)-$j(2)
  echo $i; //输出2
  echo("<br>");  
  $i *= $j; //==$i=$i(2)*$j(2)
  echo $i; //输出4
  echo("<br>"); 
  $i /= $j; //==$i=$i(4)/$j(2)
  echo $i; //输出2
  echo("<br>"); 
  $i %= $j; //==$i=$i(2)%$j(2)
  echo $i; //输出0
  echo("<br>"); 
?>

输出:

2
4
2
4
2
0

PHP 递增/递减运算符

<?php
  $a=1;$b=2;$c=1;$d=2;
  echo ++$a; //a先加1再返回,输出2
  echo("<br>"); 
  echo $c++; //c先返回后加1,输出1
  echo("<br>"); 
  echo --$b; //b先减1后返回,输出1
  echo("<br>");
  echo $d--; //d先返回后减1,输出2
  echo("<br>");
?>

输出:

2
1
1
2

PHP 比较运算符

<?php
  $e=1;$f="1";
  var_dump($e == $f);//等于 1==1 输出true
  echo "<br>";
  var_dump($e === $f);//绝对等于,类型也要相同,1==="1" 输出false
  echo "<br>";
  var_dump($e != $f);//不等于 1!=1 输出false
  echo "<br>";
  var_dump($e !== $f);//绝对不等于,类型也不相同,1!=="1" 输出true
  echo "<br>";  
  $g=1;$h=2;  
  var_dump($g > $h);//大于,1>2 输出false
  echo "<br>";
  var_dump($g < $h);//小于,1<2 输出true
  echo "<br>"; 
  var_dump($g >= $h);//小于,1>=2 输出false
  echo "<br>"; 
  var_dump($g <= $h);//小于,1<=2 输出true
  echo "<br>";
?>

输出:

bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)

PHP 逻辑运算符

<?php
  $o=2;$p=5;
  var_dump($o<1 and/*(&&)*/ $p>2);//和,2<1和(&&)5>2 输出false
  echo "<br>";
  var_dump($o<1 or/*(||)*/ $p>2);//或,2<1或(||)5>2 输出true
  echo "<br>";
?>

输出:

bool(false)
bool(true)

PHP 数组运算符

<?php
  $x = array("a" => "red", "b" => "green"); 
  $y = array("c" => "blue", "d" => "yellow"); 
  $z = $x + $y; // $x 和 $y 数组合并
  var_dump($z);
  var_dump($x == $y);
  var_dump($x === $y);
  var_dump($x != $y);
  var_dump($x <> $y);
  var_dump($x !== $y);
?>

输出:

array(4) { [“a”]=> string(3) “red” [“b”]=> string(5) “green” [“c”]=> string(4) “blue” [“d”]=> string(6) “yellow” }
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)

三元运算符
另一个条件运算符是"?:"(或三元)运算符 。

(a1) ? (a2) : (a3) ;
表达式 a1 ?: a3 在 a1 求值为对时返回 a2,否则返回 a3。

<?php
$a = '1+1=2';
$b = ($a) ? $a : '3';
echo $b;
?>

输出:

1+1=2

组合比较符

$c = $a <=> $b;

如果 $a > $b, 则 $c 的值为 1。
如果 $a == $b, 则 $c 的值为 0。
如果 $a < $b, 则 $c 的值为 -1

<?php
// 整型
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1 
// 浮点型
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1 
// 字符串
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

输出:

0-110-110-11

PHP 面向对象

对象的主要三个特性:
对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为。
对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型。
对象的表示:对象的表示就相当于身份证,具体区分在相同的行为与状态下有什么不同。

面向对象内容
类 : 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。
对象 : 是类的实例。
成员变量 : 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可称为对象的属性。
成员函数 : 定义在类的内部,可用于访问对象的数据。
继承 : 继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
父类 : 一个类被其他类继承,可将该类称为父类,或基类,或超类。
子类 : 一个类继承其他类称为子类,也可称为派生类。
多态 : 多态性是指相同的函数或方法可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
重载 :简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
抽象性 : 抽象性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
封装 :封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。
构造函数 : 主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
析构函数 : 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做"清理善后" 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。

PHP 类定义
类使用 class 关键字后加上类名定义。
类名后的一对大括号({})内可以定义变量和方法。
类的变量使用 var 来声明, 变量也可以初始化值。
函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。

<?php
class Site {
  /* 变量 */
  var $url;
  var $title;

  function __construct( $par1, $par2 ) {
    $this->url = $par1;
    $this->title = $par2;
  }
  /* 函数 */
  function setUrl($par){
     $this->url = $par;
  }
  
  function getUrl(){
     echo $this->url . PHP_EOL;
  }
  
  function setTitle($par){
     $this->title = $par;
  }
  
  function getTitle(){
     echo $this->title . PHP_EOL;
  }
}
?>

变量 $this 代表自身的对象。
PHP 中创建对象

$a = new Name;

调用成员方法

// 调用函数,设置名字和年龄
$a->setname( "Zhang San" );
$a->setage( '18' );
// 调用函数,获取名字和年龄
$a->getname();
$a->getage();
<?php
class Name {
  /* 变量 */
  var $age;var $name;
  /* 函数 */
  function setage($b){
     $this->age = $b;
  }  
  function getage(){
     echo $this->age;
  } 
  function setname($b){
     $this->name = $b."<br>";
  }  
  function getname(){
     echo $this->name;
  }
}
$a = new Name;
// 调用函数,设置名字和年龄
$a->setname( "Zhang San" );
$a->setage( '18' );
// 调用函数,获取名字和年龄
$a->getname();
$a->getage();
?>

输出:

Zhang San
18

PHP 构造函数

<?php
class Name {
  /* 成员变量 */
  var $age;
  var $name;
  function __construct($a,$b) {
    $this->age = $a;
    $this->name = $b;
  }
  /* 成员函数 */
  function setage($a){
     $this->age = $a;
  }
  function getage(){
     echo $this->age;
  } 
  function setname($a){
     $this->name = $a;
  }
  function getname(){
     echo $this->name."<br>";
  }
}
$n = new Name('18', 'Zhang San');
// 调用成员函数,获取标题和URL
$n->getname();
$n->getage();
?>

通过构造函数方法来初始化 $age 和 $name 变量就不需要再调用 setname 和 setage 方法了
输出:

Zhang San
18

php课程(共100多节),让你从小白成神,最主流的PHP技术! 有: 1:环境配置与代码调试 2:PHP的数据类型与源码调试 3:常用PHP运算类型介绍与应用 4: PHP条件语句介绍与应用 5:PHP循环语句的介绍与应用 6:PHP数组的创建修改应用 7:PHP函数和自定义函数 8:Mysql 简介和创建新的数据库 9:数据库中的常用SQL语句 10:MYSQL在PHP5中的应用 11:学习制作PHP+MYSQL留言板(上) 12:学习制作PHP+MYSQL留言板(下) 13:PHP+MYSQL分页原理 14:PHP上传原理及应用 15:PHP生成HTML文件原理 16:PHP小偷程序原理和实例 17:PHP面向对象开发的学习(一) 18:PHP面向对象开发的学习(二) 19:PHP面向对象开发的学习(三) 20:PHP面向对象开发的学习(四) 21:PHP面向对象开发的学习(五) 22:PHP面向对象开发的学习(六) 23:PHP面向对象开发的学习(七) 24:PHP面向对象开发的学习(八) 25:PHP面向对象开发的学习(九) 26:制作自己的PHP+MYSQL的类 27:PHP模板引擎Smarty入门使用 28:PHP模板引擎Smarty的变量操作符 29:PHP模板引擎Smarty内置函数 30:PHP模板引擎Smarty缓存应用 31:PHP在线编辑器fckeditor应用 32:PHP5中Cookie与 Session详解 33:PHP5中图片验证码的制作(上) 34:PHP5中图片中文验证码(下) 35:PHP5文字图片混合水印与缩略图 36:PHP中正则表达式学习及应用(一) 37:PHP中正则表达式学习及应用(二) 38:PHP中正则表达式学习及应用(三) 39:PHP中正则表达式学习及应用(四) 40:PHP中开发自己的-UBB代码 41:PHP站内搜索、多关键字、加亮显示 42:PHP通过mail()或Socket发邮件 43:PHP中MVC学习之ThinkPHP(上) 44:PHP中MVC学习之ThinkPHP(下) 45:如何用PHP开发一个完整的网站 46:PHPMyAdmin功能操作详解 47:PHP输出CSV和EXCEL两种简单的方法 48:Ajax+PHP快速上手及应用 49: Ajax+PHP打造等待进度条效果(二) 50: Ajax+PHP检查用户名或邮件(三) 51:PHP+MYSQL会员系统的开发(上) P100视频教程52:PHP+MYSQL会员系统的开发(下) 53:PHP如何防止注入及开发安全 54:Apache Rewrite 拟静态配置 55:PHP5中使用PDO连接数据库 56:制作PHP安装程序的原理和步骤 57:PHP备份数据库原理和方法 58:快速设计一个企业网站之BIWEB 59:关于BIWEB常见问题和结构分析 60:PHP与数据库代码开发规范 61:PHP+Mysql新闻系统的开发一 62:PHP+Mysql新闻系统的开发二 63:PHP+Mysql新闻系统的开发三 64:PHP+Mysql新闻系统的开发四 65:PHP+Mysql新闻系统的开发五 66:PHP+Mysql新闻系统的开发六 67:PHP+Mysql新闻系统的开发七 68:PHP+Mysql新闻系统的开发八 69:PHP+Mysql新闻系统的开发九 70:PHP 5.3.1 + Apache + Mysql配置 71:PHP SQLite 的使用和配置 72:PHP+SQLite 常用函数及应用 73:PHP MemCached高级缓存配置 74:PHP MemCached 高级缓存应用 75:Zend framework 配置与调试 76:Zend framework 数据库操之读取与插入 77:Zend framework数据库操作之编辑和视图函数 78:PHP+Flash多文件异步上传 swfupload 79:PHP上传RAR压缩包并解压目录 80:ADODB PHP 数据库万能引擎类(上) 81:ADODB PHP 数据库万能引擎类(下) 82:PHP开发通用采集入库程序 83:PHP开发通用采集入库程序二 84:PHP开发通用采集入库程序三 85:PHP 图表类 JPGraph 入门配置与应用 86:PHP JPGraph 中文字体和背景设置 87:PHP 之 CURL 传输与获取功能 88:PHP 之 CURL模拟登陆并获取数据 89:PHP XML 的 DOMDocument 读取功能 90:PHP DOM 创建生成多功能 XML文件 91:PHP修改和删除XML内容的原理和方法 92:在线支付接口之PHP支付宝接口开发 93:在线支付接口之PHP云网接口开发 94:SVN (Subversion) 配置与安装调试 95:SVN (Subversion) 应用与技巧 96:PHP程序员经典面试&笔试题目解析(上) 97:PHP程序员经典面试&笔试题目解析(下) 98:PHP会员权限交叉多类型的控制(上) 99:PHP会员权限交叉多类型的控制(下) 100:PHP程序员的学习之路和未来职业规划 101:PHP5.3 Xdebug 调试器配置与应用 102:PHP5.3 Xdebug 错误分析与性能调试 103:JQuery 之 Javascript 基础(一) 104:JQuery 之 Javascript 基础(二) 105:JQuery 之 Javascript 基础(三) 106:JQuery 之语法模式与开发基础
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值