当前位置: 首页 > 后端技术 > PHP

三篇文章带你快速入门PHP(一)语法

时间:2023-03-29 16:34:01 PHP

本文适合有其他语言基础的童鞋阅读我没有基础,但我天资聪颖(别东张西望我'话说你呢,我这边有《php从入门到放弃》本,看你怎么卖给你10两银子)看完这篇文章,你会有什么收获呢?php中变量的定义,using函数的定义,使用和传递参数数组的定义,调用,常用方法,php中的使用场景,循环,判断,选择结构体的语法类定义,定义和使用成员变量和成员函数的我,仔细看完这篇文章,你已经掌握了PHP的常用语法,对于一些常规的开发来说已经足够了,剩下的可以用来重新学习,以免沉迷于语法学习和遗忘太久的坑(??????)??用php导演一部情景喜剧这就是今天的目的,假设我们已经搭建好了环境(下一节会讲到)),现在我们开始编码来创造世界。首先定义我们的标题,myphp//定义我们的标题$title="myphp";php用$符号定义变量,php是弱类型变量语言,不区分变量的类型,""和它的内容一起代表一个字符串。另外//表示注释,是解释性的,不会作为代码运行//该方法用于输出functionshow($str){echo$str."
";}定义另一个方法(也叫function,只是名字不同),用function关键字定义方法,括号内的参数可以直接用变量表示。调用时,参数echo为PHP自带的输出方式。没有括号,因为它们很特殊,所以你可以忽略它们,如果你知道如何使用它们,就可以使用它们。在php中是字符串连接的符号,
在html中是换行符。为了使输出看起来更好//直接调用该方法即可show("hello".$title);输出如下图//定义异常发生时触发的函数functionerror($str){echo"{$str}
";exit();}在""双引号里,可以直接用花括号把变量包起来,这样调用的时候,变量在字符串中直接替换成变量的值,单引号不行.exit()方法结束整个程序//使用[]可以直接创建一个Empty数组,然后一个一个赋值$person1=[];$person1['name']='高富帅';$person1['sex']='Male';//也可以直接创建一个有值的数组$person2=['name'=>'白富美','sex'=>'female'];//这样是一个二维数组,也可以用同样的方式创建更多维数组$persons=[$person1,$person2];既然是情节剧,就必须有男女主角。打印出来看这个二维数组,发现下标是从0开始的。别奇怪,所有的编程语言都是这样的。接下来定义一个类,一个类可以暂时理解为一些数据和方法的集合,也就是我们的sitcomclassMyPhp{}用class关键字定义了一个类,空格后面是类名,注意只能是英文字母或者下划线开头的情景喜剧不能什么都没有,我们来定义一些必要的成员变量和成员方法classMyPhp{//表示我们的演员public$actors=null;//带bgm的场景剧public$music='MyHeartEternity';公共职能__construct(){$this->开始();}publicfunctionstart(){$time=time();显示(“时间:{$time}”);$date=date('Y-m-dh:m:s',$time);show("哦,大多数人读日期{$date}会更好");show("播放开场曲~~{$this->music}");}}成员变量:成员变量直接用$符号声明即可,publicprivateprotected是成员变量的访问控制权限(也适用于成员方法),分别表示shared、private、protected、nullPHP中空指针的关键字成员方法:有一些Self-contained成员方法,比如构造函数__construct,PHP中以__(两个下划线)开头的函数都是默认的内置函数,__construct是构造函数,this类对象初始化时会调用method,可以自己定义成员方法,比如start方法,定义方式和普通方法一样,控制权限和成员变量一样publicprivateprotected。三个调用成员变量,比如$this->music,注意此时成员变量不要加$符号调用成员方法,如$this->start()时间和日期:time()方法获取一个当前时间戳,date()方法接受两个参数,第一个是表示format格式的字符串,第二个第一个参数是时间戳,返回格式化的时间//定义一个方法让演员加入publicfunctionactorJoin($actorlist){//我们判断演员是一个数组,有两个人才,否则就是男女主角一定是有人没有来或第三方介入if(is_array($actorlist)&&count($actorlist)==2){$this->actors=$actorlist;}else{error('还有演员没有到位');}}is_array()方法判断参数变量是否为数组count()方法返回参数数组的长度if(){}else{}结构为条件语句语法,如果括号中判断语句为真,程序运行if括号内的内容,否则运行else下大括号内的内容//情景喜剧开头,演员要自我介绍,流程不能保存publicfunctionintroduce(){if(empty($this->actors)){error('大家好,我是导演,男女主角的密约还没结束,今天可能来不及了');}foreach($this->actorsas$actor){$intro="我是{$actor['name']},";switch($actor['sex']){case'female':show($intro."我是女主角。");休息;case'male':show($intro."我是演员。");break;default:show($intro."对不起,我不知道我的性别。");break;}}}empty()函数判断数组是否为空,为空返回true,即正确的意思,这里没有else,意思是不满足if的条件,程序直接往下走,不运行大括号里的代码。foreach循环遍历数组,foreach($arras$val),也就是说将$arr的所有成员依次赋值给$val,循环次数为$arr的长度。switch语句在同一个地方选择不同的值,可以避免多次Ifelse,性能和可读性也更好。switch后面的括号表示选择的变量case的值和冒号后面的代码,表示对应的值和要运行的代码。注意要加break表示跳出本次判断,否则代码会继续往下运行。当default表示不满足上述情况时,将运行default代码。//表演开始publicfunctionaction(){if(empty($this->actors)){error('演员暂时忙,谢谢支持');}//这是我们的脚本$play=array();$play[]="{$this->actors[0]['name']}和{$this->actors[1]['name']}在街上相遇";$play[]="{$this->actors[0]['name']}深情地看着{$this->actors[1]['name']}";$play[]="以下省略10000字,请自行脑补...";$play[]="游戏结束";foreach($扮演$key=>$val){show("{$key}act");显示($val);}}//不能草草结束,加一首片尾曲publicfunctionend(){show('曲终,花开');}array()函数会返回一个数组,如果没有参数则为空数组,这也是创建数组的一种方式**$this->actors[0]['name']**,返回的是foreach循环的第二个方法,其中$this->actors第一个成员的key是name的值,a如果s后是$key=>$val,则数组的key赋给$key,value赋给$val。钥匙比上一个多了,可以用了。一切准备就绪,现在运行起来);$myphp->end();newMyPhp()会创建一个MyPhp类型的类对象,让一个变量指向这个对象,然后就可以调用和修改这个对象的成员变量和成员方法在浏览器上看输出,改一下让它在命令行动态运行看看效果(怎么做不重要)好了,回顾一下文章开头你会收获什么,你学会了吗?别着急,下一节讲搭建php环境,你可以自己演情景喜剧/""包围的字符串部分就是字符串$title="myphp";//定义方法用function关键字//括号内的参数可以直接用变量表示,调用时接收调用时传递来的参数//。是php函数中字符串拼接的符号show($str){echo$str."
";}//可以直接调用该方法show("hello".$title);//exit()方法结束整个程序//在""双引号中,可以直接包一个花括号中的变量,这样在调用的时候,变量会直接在字符串中替换成变量的值,单引号不行,functionerror($str){echo"{$str}
";exit();}//用[]直接创建一个空数组,然后一个一个赋值$person1=[];$person1['name']='高富帅';$person1['sex']='Male';//也可以直接创建一个有值的数组$person2=['name'=>'白富美','sex'=>'female'];//这是一个二维数组,你也可以用同样的方式创建更多维的数组$persons=[$person1,$person2];//用class关键字定义一个类classMyPhp{//可以声明成员变量直接用$符号//publicprivateprotected是成员变量的访问控制权限//null是php中空指针的关键字public$actors=null;public$music='我心永恒';//PHP中__(两个下划线)开头的函数是默认的内置函数//__construct是一个构造函数,类对象初始化时会调用它publicfunction__constructt(){$this->开始();}publicfunctionstart(){//time()方法获取一个当前时间戳//date()方法接受两个参数,第一个是字符串表示Format格式,第二个参数是时间戳,格式化后返回时间$时间=时间();显示(“时间:{$time}”);$date=date('Y-m-dh:m:s',$time);show("哦,大多数人还是看日期{$date}比较好");//$this->music调用成员变量,注意此时成员变量不要加上$符号show("播放开场曲~~{$this->music}");}//Actor加入publicfunctionactorJoin($actorlist){//is_array()方法判断参数变量是否为数组//count()方法返回参数数组的长度//if(){}else{}是条件语句语法。如果括号内的判断语句为真,则程序运行if下大括号内的内容,否则运行else下大括号内的内容if(is_array($actorlist)&&count($actorlist)==2){$this->actors=$actorlist;}else{error('还有演员没到位');}}publicfunctionintroduce(){//empty()函数判断数组是否为空,empty返回true,也就是正确的意思//这里没有else,意思是如果if的条件不成立遇到了,程序会直接往下走,大括号里的代码不会运行if(empty($this->actors)){error('大家好,我是导演,男女主还没有结束暗恋,今天可能来不及了');}//foreach循环遍历数组,foreach($arras$val),也就是说将$arr的所有成员依次赋值给$val,循环次数为$arrforeach($this)的长度->actorsas$actor){$intro="我是{$actor['name']},";//switch语句在同一个地方选择不同的值,可以避免多次ifelse,性能和可读性也更好//switch后面的括号表示选择的变量,case后面的值和the冒号后面的code表示对应的值和要运行的代码。注意加break,意思是跳出这个判断,否则代码会急需往下跑。//default表示当case不满足上述要求时,会运行default代码switch($actor['sex']){case'female':show($intro."我是女主角。");休息;case'男':show($intro."我是男主角。");休息;默认值:show($intro."抱歉,我不知道我的性别。");break;}}}publicfunctionaction(){if(empty($this->actors)){error('Actor暂时忙,感谢支持');}//array()函数将返回一个数组,如果没有参数就是一个空数组,也是创建数组的一种方式//$this->actors[0]['name']返回$this的第一个成员的名字->actors$play=array();$play[]="{$this->actors[0]['name']}和{$this->actors[1]['name']}在street";$play[]="{$this->actors[0]['name']}深情地看着{$this->actors[1]['name']}";$play[]="下面省略10000字,请自行脑补...";$play[]="全剧结束";//foreach循环的第二种方式,如果$key=>$valafteras,it将把数组的key赋给$key,value赋给$val,如果key比前面的多,可以用foreach($playas$key=>$val){show("Scene{$key}");show($val);}}publicfunctionend(){show('片尾曲,花开超过');}}$myphp=newMyPhp();$myphp->actorJoin($persons);$myphp->introduce();$myphp->start();$myphp->action();$myphp->end();