php(一)

弯路都有哪些,我列举下你可以对照着看看
数据库查询用字符串拼接。正常的做法是用ORM进行封装
分不清PHP和JavaScript各自都干啥。这个真无解,你得好好了解啥是客户端脚本啥是服务端脚本以为PHP是最牛逼的语言。千万别这么认为以为web开发里PHP是最牛逼的语言。
同上条,千万别这么认为以为会数据库查询、会PHP读取数据展示就认为会写网站了。这个水平只能写个个人主页
搞不清session是啥。好好学习HTTP协议

PHP 代码是运行在服务端的
当看到 PHP 长长的特性列表时,请不要害怕

PHP的配置又是IIS又是Apache的,怎么不是.exe双击一下就可以了呢,太麻烦了
可以在 PHP 中使用四对不同的开始和结束标记:
代码段中的最后一行可以不用分号结束
为什么会有不期望的空白符?
echo print== println
当转换为 boolean 时,以下值被认为是 FALSE:

  • 布尔值 FALSE 本身
  • 整型值 0(零)
  • 浮点型值 0.0(零)
  • 空字符串,以及字符串 “0”
  • 不包括任何元素的数组
  • 特殊类型 NULL(包括尚未赋值的变量)
  • 从空标记生成的 SimpleXML 对象

-1 和其它非零值(不论正负)一样,被认为是 TRUE!

要使用八进制表达,数字前必须加上 0(零)。要使用十六进制表达,数字前必须加上 0x。要使用二进制表达,数字前必须加上 0b。
$这是什么?
不要将未知的分数强制转换为 integer,这样有时会导致不可预料的结果。??//什么意思

security warning:
解决方法:去PHP的安装地址找到php.ini,找到【extension=php_openssl.dll】,去掉前面的注释。然后在Composer退回上一步重新点击下一步。

__LINE__文件中的当前行号echo ‘这是第 ” ’ . __LINE__ . ’ ” 行’;
__FILE__文件的完整路径和文件名
__DIR__文件所在的目录
__FUNCTION__函数名称
__CLASS__类的名称
__TRAIT__Trait 的名字
__METHOD__类的方法名函数名
__NAMESPACE__当前命名空间的名称(区分大小写)

PHP 命名空间可以解决以下两类问题

  • 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
  • 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性

在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句。所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前。

<?php
    declare(encoding='UTF-8'); //定义命名空间和不包含在命名空间中的代码
    namespace MyProject {

子命名空间

wamp是windows+apache+mysql+php
在httpd.conf中改80为88,记住,改两个,除了12345678的那个外
做php开发和测试
虽然在composer install中出现Nothing to install or update(之前我安装了composer),但还是出现了laravel,而且我的composer是走的7.x的安装路径,但是warm是用的5.x,换成7的时候就会离线,自动换为5
$是个变量前缀

$$a 变量的变量是指该变量的名称由另外一个变量的值来确定

$name = "hello";
$a='name';
echo $$a;//输出 hello

命名空间使用

<?php
namespace Article;
class Comment { }
namespace MessageBoard;
class Comment { }
//调用当前空间(MessageBoard)的Comment类
$comment = new Comment();
//调用Article空间的Comment类
$article_comment = new \Article\Comment();
?>

可以看到,在MessageBoard空间中调用article空间里的Comment类时,使用了一种像文件路径的语法: \空间名\元素名
在一个命名空间里引入某个脚本,脚本里的元素不会归属到这个命名空间,如果这个脚本里没有定义其它命名空间,它的元素就始终处于公共空间中:

$filter_XSS = new FilterXSS(); //出现致命错误:找不到
$filter_XSS = new \FilterXSS(); //正确
  • 非限定名称
  • 限定名称
  • 完全限定名称

    //创建空间Blog
    namespace Blog;
    class Comment { }
    //非限定名称,表示当前Blog空间
    //这个调用将被解析成 Blog\Comment();
    $blog_comment = new Comment();

    //限定名称,表示相对于Blog空间
    //这个调用将被解析成 Blog\Article\Comment();
    $article_comment = new Article\Comment(); //类前面没有反斜杆\

    //完全限定名称,表示绝对于Blog空间
    //这个调用将被解析成 Blog\Comment();
    $article_comment = new \Blog\Comment(); //类前面有反斜杆\

    //完全限定名称,表示绝对于Blog空间
    //这个调用将被解析成 Blog\Article\Comment();
    $article_comment = new \Blog\Article\Comment(); //类前面有反斜杆\

别名和导入可以看作是调用命名空间元素的一种快捷方式

//创建一个BBS空间(我有打算开个论坛)
namespace BBS;
//导入一个命名空间
use Blog\Article;
//导入命名空间后可使用限定名称调用元素
$article_comment = new Article\Comment();
//为命名空间使用别名
use Blog\Article as Arte;
//使用别名代替空间名
$article_comment = new Arte\Comment();
//导入一个类
use Blog\Article\Comment;
//导入类后可使用非限定名称调用元素
$article_comment = new Comment();
//为类使用别名
use Blog\Article\Comment as Comt;
//使用别名代替空间名
$article_comment = new Comt();

动态调用
//namespace关键字表示当前空间
echo namespace\PATH; ///Blog/article
$comment = new namespace\Comment();

//魔法常量NAMESPACE的值是当前空间名称
echo NAMESPACE; //Blog\Article
//可以组合成字符串并调用
$comment_class_name = NAMESPACE . ‘\Comment’;
comment=new comment_class_name();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值