php学习笔记(2)
1、算数运算
<?php
$a = 8;
$b = 2;
$c = 3;
echo $a+$b."<br>\n";
echo $a-$b."<br>\n";
echo $a*$b."<br>\n";
echo $a/$b."<br>\n";
echo $a%$c."<br>\n";
$a++;
echo $a."<br>\n";
$c--;
echo $c;
?>
2、字符串运算
字符串运算 (string operator) 的运算符号只有一个,就是英文的句号 .。它可以将字符串连接起来,变成合并的新字符串。
<?php
$a = "PHP 4";
$b = "功能强大";
echo $a.": ".$b;
?>
3、赋值运算
<?php
$a = 5;
$a += 2; // 即 $a = $a + 2;
echo $a."<br>\n";
$b = "哇";
$b .= "哈"; // $b = "哇哈";
$b .= "哈"; // $b = "哇哈哈";
echo "$b<br>\n";
?>
4、逻辑运算
<?
$a = 5;
if ($a != 5) {
echo "$a 不是 5";
} else {
echo "$a 是 5";
}
?>
5、其他运算符
6、逻辑控制
1)if..else 循环有三种结构。
if (expr) {
statement
}
/* 本例省略大括号 */
<?php
if (date("D") == "Sat") echo "周末了,狂欢去";
?> /* 本例的执行部分有三行,不可省略大括号 */
<?php
if (file_exists("/usr/local/lib/php3.ini")) {
echo "以下是 PHP3 的配置文件<p><pre>\n";
readfile("/usr/local/lib/php3.ini");
echo "</pre>\n";
}
?>
if (expr) {
statement1
} else {
statement2
} <?php
$f="/usr/local/lib/php3.ini";
if (file_exists($f)) {
echo "以下是 PHP3 的配置文件<p><pre>\n";
readfile($f);
echo "</pre>\n";
} else echo "很抱歉,找不到 $f";
?> <?php
if ($a > $b) {
echo "a 比 b 大";
} elseif ($a == $b) {
echo "a 等于 b";
} else {
echo "a 比 b 小";
}
?>
2)do..while 是重复叙述的循环,可以分成两种模式。
while (expr) {
statement
} <?php
$i = 1;
while ($i <= 10) {
print $i++;
echo ". 以后不敢了<br>\n";
}
?> /* 先判断后执行 */
<?php
$i = 1;
while ($i <= 10):
print $i++;
echo ". 以后不敢了<br>\n";
endwhile;
?> /* 先执行后判断 */
do {
statement
} while (expr);
3)for 循环就单纯只有一种,没有变化
for (expr1; expr2; expr3) {
statement
} <?php
for ($i=1; $i<=10; $i++) {
echo "$i. 以后不敢了<br>\n";
}
?>
4)switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
switch (expr) {
case expr1:
statement1;
break;
case expr2:
statement2;
break;
:
:
default:
statementN;
break;
} <?php
switch (date("D")) {
case "Mon":
echo "今天星期一";
break;
case "Tue":
echo "今天星期二";
break;
case "Wed":
echo "今天星期三";
break;
case "Thu":
echo "今天星期四";
break;
case "Fri":
echo "今天星期五";
break;
default:
echo "今天放假";
break;
}
?>
5)除了上面的流程控制指令之外,尚有 break 及 continue 两个流程控制指令。
/* break 用来跳出目前执行的循环 */
<?php
$i = 0;
while ($i < 10) {
if ($arr[$i] == "stop") {
break;
}
$i++;
}
?> /* continue 立即停止目前执行循环,并回到循环的条件判断处 */
<?php
while (list($key,$value) = each($arr)) {
if ($key % 2) { // 略过偶数
continue;
}
do_something_odd ($value);
}
?>
7、函数
函数名不区分大小写,所以需要保证唯一性。
PHP函数支持传值和传址两种传参方式。传址是为了在执行函数的同时改变函数参数的只,而传值不期望改变。
function myfunc($arg_1, $arg_2, ..., $arg_n) {
// 执行一些步骤
return $retval;
} /* 不使用默认值 */
<?php
function myfunc1($arg_1, $arg_2, $arg_3="我是默认字符串") {
echo $arg_1+$arg_2;
echo $arg_3."<p>\n";
} /* 使用默认值 */
myfunc(3, 4); // 参数 $arg_3 省略。
myfunc(6, 6, "不用默认值") // 输入参数 $arg_3。
?>
传址的方式是传入参数的指针,方法就是在参数的前面加上 & 符号即可。如下例
<?php
function myfunc2(&$argstr) {
$argstr=ereg_replace("/", "-", $argstr);
} $today="2000/01/01";
myfunc2($today);
echo $today; // 2000-01-01;
?>
<?php
$i = 100;
function func($n){
$n = $n + 100;
return $n;
}
echo '1)函数传值前变量$i的值:'.$i.'<br>';
echo '2)传值后函数的返回值:'.func($i).'<br>';
echo '3)函数传值后变量$i的值:'.$i.'<br>';
echo '4)函数传址前变量$i的值:'.$i.'<br>';
echo '5)传址后函数的返回值:'.func(&$i).'<br>';
echo '6)函数传址后变量$i的值:'.$i.'<br>';
//echo func($i).'<br>';
?>
8、类
PHP 只有类别 (class)、方法 (method)、属性、以及单一继承 (extensions) 等。
下面的范例是手推车类。可以看到,使用 class 表示它是一个类类别。在类别中的 function,例如 add_item 则表示该类的一个方法。方法可以封装类的实际处理情形,让该类自己能依封装好的方法来执行一些步骤。
<?php
// 程序名: cart.inc
class Cart {
var $items; // 手推车类 // 本方法加入 $num 件物品到手推车中 (加到 $artnr 变量)
function add_item ($artnr, $num) {
$this->items[$artnr] += $num;
} // 本方法从手推车减少 $num 件物品 (从 $artnr 变量减掉)
function remove_item ($artnr, $num) {
if ($this->items[$artnr] > $num) {
$this->items[$artnr] -= $num;
return true;
} else {
return false;
}
}
}
?>
要使用手推车可以用类似下例的方式。可以先将每个类存成 Include 文件,再将它 require 或 include 进来。在定义变量 $cart 时,要使用 new 的保留字,表示 $cart 使用 Cart 类。使用 -> 符号,表示执行类的方法。
<?php
require("cart.inc");
$cart = new Cart;
$cart->add_item("10", 1);
?>
<?php
// 程序名: named_cart.inc
require("cart.inc");
class Named_Cart extends Cart {
var $owner;
function set_owner ($name) {
$this->owner = $name;
}
}
?>
<?php
require("named_cart.inc");
$ncart = new Named_Cart; // 建立类变量
$ncart->set_owner ("CyberRidder"); // 配置类的记名属性
echo $ncart->owner; // 显示类的记名属性
$ncart->add_item ("10", 1); // 从父类遗传的方法也可使用
?>
php学习笔记(2)的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
- ucos实时操作系统学习笔记——任务间通信(消息)
ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...
随机推荐
- paip.c++ qt messagebox用法
paip.c++ qt messagebox用法 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net ...
- Linux 内核优化
声明:本文档来自互联网整理部份加自已实验部份所得: TCP 相关部份 经常使用名词说明: retries(再试). TCP server <---> client通信状态 ...
- ceph 块设备
数据的存储设备? 数据的存储有3种形式,1种是直接以二进制数据的形式存储在裸设备(包括块设备)上,另外一种是以文件的形式经过文件系统管理进行存储.第三种就是以对象的形式进行对象存储.本篇讨论围绕着块设 ...
- tomcat 产生heapdump文件配置
连接地址:http://www.blogjava.net/zhanglongsr/articles/396607.html
- 自学JavaScript的几个例子
学习了广泛使用的浏览器脚本JavaScript和HTML的DOM模型(也是用JavaScript实现),下面给出两个自己学习时的例子,具体JavaScript语法请参考W3C相关网页(http://w ...
- 学习ExtjsFor.NET(第二个案例-Array的Every方法)
Ext.Array.every(Array array,Function fn,Object scope)是一个遍历的方法. array是数组,fn是方法,scope是作用域.every返回true和 ...
- Ubuntu下安装Mysql并使用
一.在Ubuntu终端中输入 sudo apt-get install mysql-server 二.在安装中要设置root密码,自己输入即可,但必须要记住. 三.安装后可以使用命令检测是安装成功 s ...
- ubuntu 源码安装 swig
1. 下载 swig 源码 http://www.swig.org/survey.html 填写一个简单的问卷,即可进入 sourceforge 下载. 2. 安装 g++ sudo apt-get ...
- ExpandableListView 箭头样式
ExpandableListVivew是ListView的子类,它在普通ListView的基础上进行了扩展,它把应用中的列表项分为几组,每组里 又可包含多个列表项.ExpandableListVive ...
- ThinkPHP第二十二天(表单令牌、相对路径、扩展配置载入、$Think获取系统变量、$_SERVER('HTTP_REFERER')前页地址)
1.表单令牌开启配置 'TOKEN_ON'=>true 2.相对路径:在thinkphp中,存在单入口index.php,所以程序中的根目录都是以index.php所在的文件夹为根目录,故用./ ...