您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > javascript

写给JavaScript开发人员的PHP快速入门指南

时间:2020-05-11 11:12:06  来源:  作者:

我从2012年开始学习如何使用htmlcss进行编码,自从我的编码之旅开始以来,php一直是我一直想学习的语言之一。

写给JavaScript开发人员的PHP快速入门指南

 

作为一个刚从JAVAScript培训学校毕业的学生,我决定要重新尝试学习PHP。一直以来,要想找到一些关于 PHP 的资源,而不是针对那些从未接触过代码的人,是相当困难的。所以,这也是我写这篇文章的原因。我希望能够帮助其他像我这样的人,他们只是需要一个快速的指导,让他们了解自己选择的语言和他们想学的语言之间的区别。


一般语法

PHP 的语法和 JavaScript 的最大区别之一是,PHP 的语法中,需要在行的末尾加上分号。我一开始很纠结于这个问题,现在有时也会这样,所以我想在这里首先说明一下。

使用语言

在JavaScript中,除了确保文件具有 .js 扩展名之外,无需执行任何特殊操作即可运行代码。但是,在PHP中,即使在扩展名为 .php 的文件中,也需要使用标签。

<?php 
# code here
?>

声明变量

在PHP中创建变量非常简单。与JavaScript一样,PHP是一种动态类型化的语言,因此不必在创建变量时声明变量的类型。它使用 $ 符号表示变量。

$myvar = 'value';

在PHP中,默认情况下你声明的任何变量都是可变的,绝对可以在任何地方进行更改。

声明常量

PHP有一个称为 define 的特殊功能,用于专门创建无法更改的变量。它带有两个参数:变量的名称和要分配给它的值。默认情况下,此函数将你创建的变量名称设置为区分大小写。可以通过将 true 作为第三个参数传递给函数来覆盖它。

define('CONSTANT_NAME', value, true);

声明数组

很像JavaScript的数组可以用标准的括号符号或PHP中的一个函数来创建。也就是说,PHP的关联数组相当于一个JavaScript对象,是在PHP中创建key/value对集合的唯一方法,而不需要导入某种模块。在PHP中给键赋值是用 => 表示的。

$myArray = ['key1' => 'value', 'key2' => 'value', 'key3' => 'value'];

函数

PHP中的函数与JavaScript(特别是ES5)非常相似。

function myFunc($param) {
    return $param;
}

这方面,我能在两种语言之间找到的唯一真正的区别是,PHP具有一个运算符,可将你传入的参数从基于值更改为引用:

$myVar = 10;
echo $myVar; # displays 10

function addTen(&$param) {
  return $param += 10;
}

addTen($myVar);

echo $myVar; # displays 20

循环

就像函数一样,循环与用JavaScript编写的方式没有太大不同。一个例外是PHP的 foreach 循环,它会根据你尝试循环的数组类型而变化。

foreach($arrayName as $item) {
  # do code
}

类和OOP方法论

写给JavaScript开发人员的PHP快速入门指南

 

类是PHP与JavaScript有很大不同的地方。尽管PHP最初不是作为一种面向对象的编程语言(类似于JavaScript),但后来又添加了该功能。

访问修饰符关键字

在标准JS中,类不需要修饰词。但是,对于PHP,它们是。

你在PHP中拥有的修饰符是:

  • public——可以通过脚本或其他类在类外部使用它。
  • private——创建此类的类是唯一可以访问它的类。
  • protected ——只有当它在类的子类中被调用时,才可以在类外访问。
  • static ——允许使用一个属性或方法,而不需要对该属性或方法所属的类进行实例化。

在PHP中创建类时,最好的做法是利用这些关键字来告诉类它需要如何使用类中的属性和方法。

class MyClass {
  private $classAttrib;
  public function __construct($classAttrib) {
    this->classAttrib = $classAttrib;
  }
}

在上面的代码片段中,你会注意到几件事。首先可能是两个修饰关键字。在这里,我们声明了一个名为 classAttrib 的私有变量,这个变量只能通过 MyClass 访问。第二个是我们与PHP的内置 __construct 方法结合使用的 public 关键字。就像在JavaScript中一样,这使我们可以实例化一个类,就好像它是一个函数一样。

$myClass = new MyClass(someValue);

this和箭头

继续上面的 MyClass 示例,你会注意到我们以与JavaScript中相同的方式来使用它。此处的区别在于,我们使用箭头(->)访问该类上的 classAttrib。我们还将使用这个指针来访问类上的任何需要在整个代码中使用的东西。

这是JavaScript中的同一类:

class MyClass {
  constructor(classAttrib) {
    this.classAttrib = classAttrib;
  }
}

Getters 和 Setters

Getter和Setter是用于获取和设置(或更新)与类属性有关的信息的类方法。在JavaScript中,我们通常不需要编写它们,类似地,在PHP中也不需要。话虽如此,但在PHP中你会看到这些方法的频率要高得多,所以我觉得在这里还是慎重一点。基本上,这些方法是唯一应该在类外直接修改或与类属性交互的东西。

# ... inside MyClass
public function setClassAttrib($classAttrib) {
  return $this->classAttrib = $classAttrib;
}

public function getClassAttrib() {
  return $this->classAttrib;  
}

继承

从PHP中的父类继承类似于JavaScript,不同之处在于我们不使用 super 来传递父类的属性。相反,我们使用 :: 运算符,也称为范围解析运算符。

class SecondClass extends MyClass {
  private $newAttrib;
  public function __construct($classAttrib, $newAttrib) {
    parent::__construct($classAttrib);
    this->newAttrib = $newAttrib;
  }
}

PHP和JavaScript的相似之处

写给JavaScript开发人员的PHP快速入门指南

 

既然我们已经讨论了JavaScript和PHP之间的一些差异,那么让我们来谈谈一些相似之处!

  • PHP有展开(...)语法!你可以使用与JavaScript中完全相同的语法,在参数(参数解包在PHP 5.6以上)和数组(从PHP 7.4以上开始)中都可以使用!
  • PHP有三元运算符!
  • PHP具有 == 的强制类型转换!

如前所述,我还是PHP的新手,但希望本文对你有所帮助! ❤️


如果对你有所启发和帮助,可以点个关注、收藏、转发,也可以留言讨论,这是对作者的最大鼓励。

作者简介:Web前端工程师,全栈开发工程师、持续学习者。



Tags:JavaScript   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
1、通过条件判断给变量赋值布尔值的正确姿势// badif (a === &#39;a&#39;) { b = true} else { b = false}// goodb = a === &#39;a&#39;2、在if中判断数组长度不为零...【详细内容】
2021-12-24  Tags: JavaScript  点击:(6)  评论:(0)  加入收藏
给新手朋友分享我收藏的前端必备javascript已经写好的封装好的方法函数,直接可用。方法函数总计:41个;以下给大家介绍有35个,需要整体文档的朋友私信我,1、输入一个值,将其返回数...【详细内容】
2021-12-15  Tags: JavaScript  点击:(20)  评论:(0)  加入收藏
作者:一川来源:前端万有引力 1 写在前面Javascript中的apply、call、bind方法是前端代码开发中相当重要的概念,并且与this的指向密切相关。本篇文章我们将深入探讨这个关键词的...【详细内容】
2021-12-06  Tags: JavaScript  点击:(19)  评论:(0)  加入收藏
概述DOM全称Document Object Model,即文档对象模型。是HTML和XML文档的编程接口,DOM将文档(HTML或XML)描绘成一个多节点构成的结构。使用JavaScript可以改变文档的结构、样式和...【详细内容】
2021-11-16  Tags: JavaScript  点击:(35)  评论:(0)  加入收藏
一、判断是否IE浏览器(支持判断IE11与edge)function IEVersion() {var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串var isIE = userAgent.indexOf("comp...【详细内容】
2021-11-02  Tags: JavaScript  点击:(40)  评论:(0)  加入收藏
Null、Undefined、空检查普通写法: if (username1 !== null || username1 !== undefined || username1 !== &#39;&#39;) { let username = username1; }优化后...【详细内容】
2021-10-28  Tags: JavaScript  点击:(51)  评论:(0)  加入收藏
1、前言async函数,也就是我们常说的async/await,是在ES2017(ES8)引入的新特性,主要目的是为了简化使用基于Promise的API时所需的语法。async和await关键字让我们可以用一种更简...【详细内容】
2021-09-17  Tags: JavaScript  点击:(61)  评论:(0)  加入收藏
为什么要使用 debugger这篇文章将介绍如何使用断点来进行 JavaScript 调试。在读这篇文章之前,需要问一个问题:为什么要使用断点来进行调试?我们首先需要认可使用断点的是必要...【详细内容】
2021-08-26  Tags: JavaScript  点击:(66)  评论:(0)  加入收藏
JavaScript 可以做很多好玩的事, 从复杂的框架到处理API,有太多的东西需要学习。但是,它也能让我们只用一行就能做一些了不起的事情。1. 获得一个随机的布尔值(true/false)该函数...【详细内容】
2021-08-19  Tags: JavaScript  点击:(77)  评论:(0)  加入收藏
JavaScript 提供了大量不同的处理数组的方法,这里花几分钟时间介绍 8 个项目中可以用到的数组方法。1. Array.map()使用.map() 方法,可以创建一个基于原始数组的修订版数组。....【详细内容】
2021-08-19  Tags: JavaScript  点击:(95)  评论:(0)  加入收藏
▌简易百科推荐
1、通过条件判断给变量赋值布尔值的正确姿势// badif (a === &#39;a&#39;) { b = true} else { b = false}// goodb = a === &#39;a&#39;2、在if中判断数组长度不为零...【详细内容】
2021-12-24  Mason程    Tags:JavaScript   点击:(6)  评论:(0)  加入收藏
给新手朋友分享我收藏的前端必备javascript已经写好的封装好的方法函数,直接可用。方法函数总计:41个;以下给大家介绍有35个,需要整体文档的朋友私信我,1、输入一个值,将其返回数...【详细内容】
2021-12-15  未来讲IT    Tags:JavaScript   点击:(20)  评论:(0)  加入收藏
1. 检测一个对象是不是纯对象,检测数据类型// 检测数据类型的方法封装(function () { var getProto = Object.getPrototypeOf; // 获取实列的原型对象。 var class2type =...【详细内容】
2021-12-08  前端明明    Tags:js   点击:(23)  评论:(0)  加入收藏
作者:一川来源:前端万有引力 1 写在前面Javascript中的apply、call、bind方法是前端代码开发中相当重要的概念,并且与this的指向密切相关。本篇文章我们将深入探讨这个关键词的...【详细内容】
2021-12-06  Nodejs开发    Tags:Javascript   点击:(19)  评论:(0)  加入收藏
概述DOM全称Document Object Model,即文档对象模型。是HTML和XML文档的编程接口,DOM将文档(HTML或XML)描绘成一个多节点构成的结构。使用JavaScript可以改变文档的结构、样式和...【详细内容】
2021-11-16  海人为记    Tags:DOM模型   点击:(35)  评论:(0)  加入收藏
入口函数 /*js加载完成事件*/ window.onload=function(){ console.log("页面和资源完全加载完毕"); } /*jQuery的ready函数*/ $(document).ready(function(){ co...【详细内容】
2021-11-12  codercyh的开发日记    Tags:jQuery   点击:(36)  评论:(0)  加入收藏
一、判断是否IE浏览器(支持判断IE11与edge)function IEVersion() {var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串var isIE = userAgent.indexOf("comp...【详细内容】
2021-11-02  V面包V    Tags:Javascript   点击:(40)  评论:(0)  加入收藏
Null、Undefined、空检查普通写法: if (username1 !== null || username1 !== undefined || username1 !== &#39;&#39;) { let username = username1; }优化后...【详细内容】
2021-10-28  前端掘金    Tags:JavaScript   点击:(51)  评论:(0)  加入收藏
今天我们将尝试下花 1 分钟的时间简单地了解下什么是 JS 代理对象(proxies)?我们可以这样理解,JS 代理就相当于在对象的外层加了一层拦截,在拦截方法里我们可以自定义一些个性化...【详细内容】
2021-10-18  前端达人    Tags:JS   点击:(51)  评论:(0)  加入收藏
带有多个条件的 if 语句把多个值放在一个数组中,然后调用数组的 includes 方法。// bad if (x === "abc" || x === "def" || x === "ghi" || x === "jkl") { //logic } // be...【详细内容】
2021-09-27  羲和时代    Tags:JS   点击:(58)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条