一、序言
由于新公司的需要,我也就从原来的asp专向了,php的学习中。希望通过自己的学习能够尽快的熟悉了解php
二、php独特的语法特色
1、引号问题
在php中单引号和双引号的作用基本相同,但是有些场合却又是不同的
都可以用来包含要引用字符串
<meta charset="utf-8"><?php $str1="xiecanyong"; $str2='xcy'; echo $str1; echo "<br />"; echo $str2;?>
但是单引号中的内容只被解析成为字符串,而双引号可以在字符串中加入变量
<meta charset="utf-8"><?php $age=",I am age 22"; $str1="xiecanyong$age"; $str2='xcy$age'; echo $str1; echo "<br />"; echo $str2;?>
结果就自行运行一下,这里不解释
2、PHP常量
PHP相比于ASP,存在一些系统封装好的常量,这些有利于我们的使用,同时还支持我们自行封装常量
常见的常量有:
如下一些常用的PHP系统常量:
__FILE__ 当前PHP文件名
__LINE__ 当前PHP文件中所在的行数
__FUNCTION__ 当前所执行的函数
__CLASS__ 当前所执行的类
PHP_VERSION PHP的版本
PHP_OS 当前服务器的操作系统
TRUE 同true
FALSE 同false
E_ERROR 到最近的错误处
E_WARNING 到最近的警告处
E_PARSE 语法有错误处
E_NOTICE PHP语言中有异常处
M__PI 圆周率
M__E 科学常数e
M__LOG2E 以2为底e的对数
M_LOG10E 以10为底e的对数
M_LN2 2的自然对数
M_LN10 10的自然对数
PHP系统常量的内容就介绍到这里,希望对大家有所帮助。
举个例子:
<meta charset="utf-8"><?php echo __Line__;?>
打印出来的结果是:3,表示当前是在第三行执行
在常量的使用中,我们一般是这样使用的
1、使用define方法来定义
<meta charset="utf-8"><?php //模拟圆的面积计算 define("R", 5); $area=R*R*pi(); echo $area;?>
2、使用const关键字来定义
例如:const p=2;这样就确定了一个常量p,值为2
3、常量的检验
对于一个大型项目而言,我们不知道某个参数是否为变量还是常量,如果是常量的话,那么重新赋值会发生错误,所以我们要通过defined方法来检验是否为某个参数是否为常量
<meta charset="utf-8"><?php //$CONSTANT="2"; define("CONSTANT","2");if (defined('CONSTANT')) { echo CONSTANT;}?>
3、PHP字符串操作
下面以一个综合的PHP字符串操作来讲解一下
<meta charset="utf-8"><?php $str = "Hello PHP"; //获取指定字符在字符串中的位置 echo strpos($str,"P")."<br>"; //截取指定位置的字符串(从第2个字符到最后) $str1 = substr($str,2); //截取指定位置的字符串(从第2个字符开始往后截取3位) $str2 = substr($str,2,2); //以指定间距分割字符串 $str3 = str_split($str); $str4 = str_split($str,2); print_r($str4)."<br>"; //以指定字符分割字符串 $str = "PHP JAVA JS HTML CSS"; $str5 = explode(" ",$str); print_r($str5)."<br>";?>
字符串连接符
这里的字符串连接符跟其他语言的连接符有些不同,是通过"."来起到连接的,而在PHP中.=相当于其他语言的+=
错误控制运算符
PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。
<?php $conn = @mysql_connect("localhost","username","password");echo "出错了,错误原因是:".$php_errormsg;?>
error_reporting(0); 禁止显示PHP警告提示
更多的字符串操作详见:http://www.jianshu.com/p/91ed5dc67977
4、可变函数
<meta charset="utf-8"><?php function name(){ echo "xcy"; } $n="name"; $n();?>
原理是:首先定义个一个name方法,然后是定义一个变量内容为name,最后一句其实就是$n()=name+(),也就是相当于执行了name这个方法
5、常见的内置函数
str_replace 可以实现字符串的替换
function_exists 判断一下函数是否存在
method_exists 可以用来检测类的方法是否存在
class_exists类是否定义可以使用
6、PHP面向对象
一个简单的PHP面向对象
<meta charset="utf-8"><?php //定义一个类 class Person{ //定义一个属性 public $name="liLei"; //定义一个方法 public function Hobby(){ return $this->name; } }<br /> //实例化 $per=new Person(); $per->name='xiaoLi'; echo $per->Hobby();?>
特别注意->后面的变量不能加上"$"
一般我们常见的有public、private、protected这三个修饰符
要注意的是方法和属性也可以被static修饰,但是被修饰的方法或者是属性不可以使用->来调用,应该要换成::
<meta charset="utf-8"><?php //定义一个类 class Person{ //定义一个属性 static $name="LiLei"; } error_reporting(0); $per=new Person(); $per::name;?>
构造函数
在PHP中也存在构造函数,但是书写上与asp有些不通过
<meta charset="utf-8"><?php //定义一个构造类 class Person{ public function __construct(){ echo "this is construct"; } } $per=new Person();?>
如果是继承关系中,子类可以通过parent::__construct()来调用父类的构造函数
<meta charset="utf-8"><?php //定义一个构造类 class Person{ public function __construct(){ echo "父类构造函数\n"; } } class LiLei extends Person{ public function __construct(){ parent::__construct(); echo "子类构造函数\n"; } } $per=new LiLei();?>
在static方法中,不允许使用$this来对自身的调用,应该要写成self,同时我们应该还要注意::这个符号后面的$是不能省略的
<meta charset="utf-8"><?php //定义一个构造类 class Person{ public function __construct(){ echo "父类构造函数\n"; } } class LiLei extends Person{ public function __construct(){ parent::__construct(); echo "子类构造函数\n"; } public static $name='LiLei'; public static function GoodAt(){ return self::$name; } } $per=new LiLei(); echo "<br />"; echo $per::GoodAt();?>
_destruct(),这个方法为析构函数,但是由于PHP中存在垃圾回收机制,所以这个不常用
重载
这里的重载跟C#中方法的重载不是同一个定义,这里的重载指的是,对属性的相关操作
class Car { private $ary = array(); //创建属性 public function __set($key, $val) { $this->ary[$key] = $val; } //获取属性 public function __get($key) { if (isset($this->ary[$key])) { return $this->ary[$key]; } return null; } //判断属性是否存在 public function __isset($key) { if (isset($this->ary[$key])) { return true; } return false; } //释放属性 public function __unset($key) { unset($this->ary[$key]); }}$car = new Car();$car->name = '汽车'; //name属性动态创建并赋值echo $car->name;
方法的重载通过 call 来实现,当调用不存在的方法的时候,将会转为参数调用call方法,当调用不存在的静态方法时会使用 __callStatic 重载。
class Car { public $speed = 0; public function __call($name, $args) { if ($name == 'speedUp') { $this->speed += 10; } }}$car = new Car();$car->speedUp(); //调用不存在的方法会使用重载echo $car->speed;
其他高级的操作详见:http://www.jianshu.com/p/26ac93b6bf32

PHP在现代Web开发中仍然重要,尤其在内容管理和电子商务平台。1)PHP拥有丰富的生态系统和强大框架支持,如Laravel和Symfony。2)性能优化可通过OPcache和Nginx实现。3)PHP8.0引入JIT编译器,提升性能。4)云原生应用通过Docker和Kubernetes部署,提高灵活性和可扩展性。

PHP适合web开发,特别是在快速开发和处理动态内容方面表现出色,但不擅长数据科学和企业级应用。与Python相比,PHP在web开发中更具优势,但在数据科学领域不如Python;与Java相比,PHP在企业级应用中表现较差,但在web开发中更灵活;与JavaScript相比,PHP在后端开发中更简洁,但在前端开发中不如JavaScript。

PHP和Python各有优势,适合不同场景。1.PHP适用于web开发,提供内置web服务器和丰富函数库。2.Python适合数据科学和机器学习,语法简洁且有强大标准库。选择时应根据项目需求决定。

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

PHP成为许多网站首选技术栈的原因包括其易用性、强大社区支持和广泛应用。1)易于学习和使用,适合初学者。2)拥有庞大的开发者社区,资源丰富。3)广泛应用于WordPress、Drupal等平台。4)与Web服务器紧密集成,简化开发部署。

PHP在现代编程中仍然是一个强大且广泛使用的工具,尤其在web开发领域。1)PHP易用且与数据库集成无缝,是许多开发者的首选。2)它支持动态内容生成和面向对象编程,适合快速创建和维护网站。3)PHP的性能可以通过缓存和优化数据库查询来提升,其广泛的社区和丰富生态系统使其在当今技术栈中仍具重要地位。

在PHP中,弱引用是通过WeakReference类实现的,不会阻止垃圾回收器回收对象。弱引用适用于缓存系统和事件监听器等场景,需注意其不能保证对象存活,且垃圾回收可能延迟。

\_\_invoke方法允许对象像函数一样被调用。1.定义\_\_invoke方法使对象可被调用。2.使用$obj(...)语法时,PHP会执行\_\_invoke方法。3.适用于日志记录和计算器等场景,提高代码灵活性和可读性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

禅工作室 13.0.1
功能强大的PHP集成开发环境