一、php入门

1、了解php

  • 1.HTML中的action属性指定跳转的URL;
    method属性规定数据发送的方法,其中有get(附加到URL的结尾)和post(以单独消息的形式发送);
  • 2.php脚本程序是在服务器端被解释执行的,与JavaScript有本质的不同,JavaScript是被浏览器执行的;
  • 3.使用服务器端脚本语言的主要原因是能够为站点用户提供动态内容;

2、变量

  • 1.变量是表示数据的符号,标识符是变量的名称;
$a = 5;//$a是表示5这个数据的符号 a就属于标识符
  • 2.php的数据类型
    php支持8种数据类型,其中包括4种标量类型,2种复合类型和2种特殊类型。
标量包括:
Boolen,Integer,Float,String
复合类型包括:
Array,Object
特殊类型包括:
NULL(空),resource(资源)
  • 3.可变变量:允许动态的改变一个变量的名称;
    工作原理:用一个变量的值作为另一个变量的名称:
    $varname = 'tireqty';
    于是,就可以用$$varname取代$tireqty
    $$varname = 5相当于$tireqty = 5
可以将for()循环和可变变量结合起来重复一系列的表单域,如:存在name1,name2,name3等的表单域
for($i=1; $i<3; $i++){
    $temp = "name$i";
    echo $$temp."<br/>";
}
动态的创建变量名称,依次访问每一个表单域
  • 4.声明和使用常量:define('USERNAME', 'Zhangsan');
  • 5.变量的作用域:指在一个脚本中某个变量在哪些地方可见或使用
    • 超级全局变量可以在脚本的任何地方使用和可见;
    • 常量一旦被声明将在全局可见,可在函数内外使用,但仅限于一个页面(包含include和require包含的脚本);
    • 函数内部使用的变量声明为全局变量时,其名称要与全局变量的名称一致,这样函数内部就可以使用函数外部的全局变量了,避免了函数内部变量与全局变量名称相同而覆盖全局变量的情况;
    • 在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部,函数内部的变量名称如果与全局变量的名称一样,以函数内部的变量为准;
    • 函数内部创建并被声明为静态的变量无法在函数外部可见,但是可以在函数执行过程中保持该值;
    • 函数内部创建的变量只在函数内部使用,函数终止时,变量消失。
    • php内置超级全局变量列表如下:
$_GET,通过GET方法传递给脚本的变量数组;
$POST,通过POST方法传递给脚本的变量数组;
$COOKIE,cookie变量数组;
$_FOLES,与文件上载相关的变量数组;
$_ENV,环境变量数组
$_REQUEST,所有用户输入的变量数组,包含$POST,$GET,$COOKIE所包含的输入内容;
$_SESSION,会话变量数组

3、操作符

  • 1.前递增递减和后递增递减
①前递增递减
$a = 4;
echo ++$a;
//输出结果为5,因为执行过程为先将变量+1,然后将+1之后的结果赋值给原变量,然后输出。
②后递增递减
$a = 4;
echo $a++;
//输出结果为4,先执行输出操作,然后+1。

  • 2.引用操作符& 可以在关联赋值中使用。
通常,将一个变量的值赋给另一个变量时,是产生一个原变量的副本,
再将这个副本保存在内存的另一个地方。例如:
$a = 5;
$b = $a;
$a = 7;//这时$b 依旧为5
这时,若改变$a的值,$b的值将不会变化。因为$a与$b指向的内存地址不是一个。

但是,我们可以使用操作符&来避免$a$b指向不同的问题

$a = 5;
$b = &$a;
$a = 7;//这时$b也=7
引用就相当于变量的一个别名,$b和$a指向相同的地址。
可以通过重置来改变指向的地址
unset($a);
重置不会改变$b(7)的值,只是破坏$a和值7保存在内存中的链接

  • 3.错误抑制符 @
    如:$a = @(57/0);
    如果没有@操作符,这个代码将会产生一个除0警告,使用@操作符,这个警告将不会显示出来;
    如果通过@符号抑制了一些警告,一旦遇到一个警告,必须写一些错误处理代码;
    如果已经启用了php配置文件中的*** track_errors*** 特性,错误信息将会被保存在$php_errormsg中。

  • 4.执行操作符
    执行操作符是一对反向单引号``,与~符号位于键盘的相同位置;
    php将试着将反向单引号``之间的命令当做服务器端的命令来执行。表达式的值就是命令的执行结果。如:
在Linux操作系统中
$out = `ls -la`;
echo <pre> .$out. </pre>;
在window服务器上
$out = `dir c:`;
echo <pre> .$out. </pre>;

  • 5.类型操作符:instanceof适用于面向对象编程
    instanceof操作符允许检查一个对象是否是特定类的实例,如:
class sampleClass{...};
$myObject = new sampleClass();
if($myObject instanceof sampleClass){
    echo ' myObject is an instance of sampleClass ';
}

4、可变函数

  • 1.测试和设置变量类型gettype()和settype()
这两个函数原型为:
string gettype(mixed $var);
int settype(mixed $var, string type);
使用例子如下:
$a = 10;
echo gettype($a);//输出 Integer
settype($a, 'string');
echo gettype($a);//输出 String

php提供了特定类型的测试函数。返回值为true或false

*is_array();
*is_double()、is_float()、is_real() 具有相同功能
*is_long()、is_int()、is_integer()
*is_string();
*is_object();
*is_resource();
*is_null();
*is_scalar();  检查变量是否是标量(整数,浮点数,Boolen,字符串)
*is_numeric();  检查变量时候是任何类型的数字或纯数字字符串
*is_callable();  检查变量是否是有效的函数名称
  • 2.测试变量状态 isset() 和 empty()
isset()函数原型为:
boolen isset(mixed $var);
销毁变量用unset()函数:
void unset(mixed $var);
empty()函数原型为:
boolen empty(mixed $var);
*isset();检查变量是否设置
变量不存在返回false;
变量存在值为NULL,返回false;
其他返回true。
使用unset();释放变量之后,将不再是isset();
isset();只适用于变量,传递其他参数将解析错误。
检查常量是否设置可用defined();函数
*empty();检查变量是否为空
变量不存在返回true;
变量存在且值为NULL,0,'0',"",array(),false,等没有任何属性的对象,返回true;
  • 3.变量的重解释(转换变量数据类型)
int intval(mixed $var [, int $base = 10]);
float floatval(mixed $var);
string strval(mixed $var);
intval()函数允许在要转换的变量为字符串时指定转换的进制基础(如16进制的字符串转化为整数)

5、循环结构,流程控制

  • 1.可替换的控制结构语法
    endif,endswitch,endwhile,endfor,endforeach do...while循环没有可替换语法
if($a == 0){
   echo '为空!';
   exit;
}
相当于
if($a == 0) :
   echo '为空!';
   exit;
endif;

  • 2.使用declare
declare(directive){
    //block
}

这种结构用来设置代码块的执行指令,即关于后续代码如何运行的规则。
目前只实现了两个指令,ticks,encoding
ticks可以通过插入指令ticks = n来设置。它允许在代码块内部每隔n行代码运行特定的函数,用于测试和调试。通常条件表达式和参数表达式不可计时。[将在后面详细解释]
encoding可以指定每段脚本的编码方式
declare(encoding='ISO-8859-1');

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容

  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,094评论 4 97
  • 第一章 快速入门 1.字符串的连接 用一个字符串的内容来代替一个变量的操作就是插值(interpolation)。...
    梁烨端木阅读 350评论 0 1
  • php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语言,...
    dptms阅读 1,914评论 1 15
  • 日子算一算 不宜吃炒饭 时针过一点 饿的有点想 抽上一根烟 继续往下编 篇幅有所限 无法写全面 字字都在挤 勉强到这里
    拿尔阅读 184评论 0 0
  • 望云房: 低头鱼塘坐看花,晨山晚霞无需夸, 天碧云白风声起,霓裳飘飘入眼颊…… “油纸伞”是家,是心灵的港湾,在“...
    杉茶花阅读 719评论 1 1