GVKun编程网logo

PHP中“不相等”运算符<>和!=之间的区别(php中不等运算符是)

7

关于PHP中“不相等”运算符<>和!=之间的区别和php中不等运算符是的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于2个相同的字符串“不相等”[Python]、>>>和>>运算符之间的区

关于PHP中“不相等”运算符<>和!=之间的区别php中不等运算符是的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于2个相同的字符串“不相等” [Python]、>>>和>>运算符之间的区别、C ++中的new运算符与Java中的new运算符之间的区别、C++重载运算符练习--对people类重载“= =”运算符和“=”运算符等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

PHP中“不相等”运算符<>和!=之间的区别(php中不等运算符是)

PHP中“不相等”运算符<>和!=之间的区别(php中不等运算符是)

如何解决PHP中“不相等”运算符<>和!=之间的区别?

在主要的Zend实现中,没有任何区别。您可以从PHP语言扫描程序的Flex描述中获取它:

<ST_IN_SCRIPTING>"!="|"<>" {
    return T_IS_NOT_EQUAL;
}

T_IS_NOT_EQUAL生成的令牌在哪里。因此,Bison 解析器不会区分<>!=标记,而是将它们等同对待:

%nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL
%nonassoc ''<'' T_IS_SMALLER_OR_EQUAL ''>'' T_IS_GREATER_OR_EQUAL

解决方法

在PHP中,!=<>运算符之间有什么区别吗?

在手册中,它指出:

$a != $b    Not equal   TRUE if $a is not equal to $b after type juggling.
$a <> $b    Not equal   TRUE if $a is not equal to $b after type juggling.

我猜没有太大的区别,但我很好奇。

2个相同的字符串“不相等” [Python]

2个相同的字符串“不相等” [Python]

通过搜索发现了类似的问题,但我是一位新的(糟糕的)程序员,无法理解答案。

我有一个.txt文件,其中包含多个字符串,以’-‘分隔。我使用拆分将一些字符串分成变量,其中两个相等,但是在if语句中它们不相等。

f_nmr,f_Question,f_1,f_2,f_3,f_answer = file.readline().split('-')
print(f_2)
print(f_answer)
if f_2 == f_answer:
    print("Yes")
elif f_2 != f_answer:
    print("No")

这将产生以下结果:

瑞典

瑞典

没有

在两个“ Sweden”字符串之前和之后都有一个空格,并且它们都用大写字母“ S”编写,但不相等吗?我在哪里搞砸了?

>>>和>>运算符之间的区别

>>>和>>运算符之间的区别

如果移位的数字为正,>>>和>>的工作原理相同。

如果移位数为负,>>>将最高有效位填充为1,而>>操作将MSB填充为0。

我的理解正确吗?

如果负数是在MSB设置为1的情况下存储的,而不是Java使用2s补码的方式,则运算符的行为将完全不同,对吗?

答案1

小编典典

表示负数的方式称为2的补码。为了演示其工作原理,以-12为例。12的二进制值为00001100(假设整数为8位,尽管实际上它们要大得多)。只需将每个位取反即可得到2的补码,得到11110011。然后,简单地加1得出11110100。请注意,如果再次应用相同的步骤,则将得到正数12。

无论如何都变为零,因此12 >>> 1应该给您00000110,即6,而(-12)>>>
1应该给您01111010,即122。如果您实际尝试Java,因为Java int实际上大于8位,所以您得到的数字会更多。

的移位与最高位相同,因此正数保持正数,负数保持负数。12 >> 1是00000110(仍然是6),(-12)>> 1将是11111010,它是负数6。

C ++中的new运算符与Java中的new运算符之间的区别

C ++中的new运算符与Java中的new运算符之间的区别

据我所知,new操作员会执行以下操作:(如果我错了,请纠正我。)

  1. 分配内存,然后返回分配的内存的第一个块的引用。(显然,内存是从堆分配的。)
  2. 初始化对象(调用构造函数。)

运算符也new[]以类似的方式工作,只是它对数组中的每个元素都执行此操作。

谁能告诉我这两个运算符在C ++和Java中有何不同:

  1. 就其生命周期而言。
  2. 如果他们无法分配内存怎么办。

答案1

小编典典
  • 在C ++中,T * p = new T;

  • 对于类型的对象分配足够的内存T

  • T在该内存中构造类型的对象,可能会对其进行初始化,并且

  • 返回指向该对象的指针。(指针的值与标准分配的内存的地址相同new,但是数组形式则不必如此new[]。)

如果内存分配失败,std::bad_alloc则抛出类型异常,不构造任何对象,也不分配内存。

如果对象构造函数抛出异常,则(显然)没有对象被构造,内存会立即自动释放,并且传播该异常。

否则,将构造一个 动态分配的 对象,并且用户必须手动销毁该对象并释放内存,方法通常是说delete p;

实际的分配和释放函数可以在C ++中控制。如果没有其他内容,则使用全局的预定义函数::operator new(),但是可以由用户 替换
;如果存在静态成员函数T::operator new,则将使用该成员函数。

  • 在Java中,这非常相似,只是Java的返回值new可以绑定到类型为Java的变量T(或其基数,例如Object),并且您必须始终具有初始化程序(因此您可以说T x = new T();)。对象的生存期不确定,但是至少要保证只要任何变量仍引用该对象,并且就没有办法(也不需要)手动销毁该对象。Java没有明确的内存概念,您无法控制分配的内部。

此外,C ++允许许多不同形式的new表达式(所谓的 放置
形式)。它们都创建了必须手动销毁的动态存储对象,但是它们可以相当随意。据我所知,Java没有这种功能。


最大的区别可能是 使用 :在Java中,你用new所有的时间的一切,你 必须 要,因为它是唯一创建(类型)方式的对象。相比之下,在C
中,您几乎不应new在用户代码中使用裸体。C 具有不受约束的变量,因此变量本身可以是对象,这就是C ++中通常使用对象的方式。

C++重载运算符练习--对people类重载“= =”运算符和“=”运算符

C++重载运算符练习--对people类重载“= =”运算符和“=”运算符

  1. 题目描述
    对people类重载“= =”运算符和“=”运算符,“==”运算符判断两个people类对象的id属性是否相等;“=”运算符实现people类对象的赋值操作。
  2. 代码如下
#include<iostream>
#include<string>
using namespace std;
class Data{
public:
    Data(){}
    Data(int yy,int mm,int dd){
    year=yy;
    month=mm;
    day=dd;
    }
    Data(Data &ap){
        year=ap.year;
        month=ap.month;
        day=ap.day;
    }
    ~Data(){
    }
    int get_year(){
        return year;
    }
    int get_month(){
        return month;
    }
    int get_day(){
        return day;
    }
    void set_year(int y){
        year=y;
    }
    void set_month(int m){
        month=m;
    }
    void set_day(int d){
        day=d;
    }
private:
    int year;
    int month;
    int day;
};
class People{
public:
    People(int num,string se,Data birth,string iid):birthday(birth){
        number=num;
        sex=se;
        id=iid;
    }
    People(People &tp){
        number=tp.get_number();
        sex=tp.get_sex();
        id=tp.get_id();
        birthday=tp.get_birthday();
    }
    People(){}
    People get_People(){
        int num,yy,mm,dd;
        string ID,se;
        cout<<"Please enter the number of the People:"<<endl;
        cin>>num;
        cout<<"Please enter the sex:(male or female)"<<endl;
        cin>>se;
        cout<<"Please enter the birthday:"
            <<"(Warning the format is 1998 8 3.)"<<endl;
        cin>>yy>>mm>>dd;
        cout<<"Please enter the id:"<<endl;
        cin>>ID;
        Data birth(yy,mm,dd);
        id=ID;
        number=num;
        sex=se;
        birthday=birth;
        return *this;
    }
    ~People(){}
    void set_number(int num){
        number=num;
    }
    void set_sex(string se){
        sex=se;
    }
    void set_birhtday(Data birth){
        birthday=birth;
    }
    void set_id(string iidd){
        id=iidd;
    }
    inline int get_number(){
        return number;
    }
    inline string get_sex(){
        return sex;
    }
    Data get_birthday()
    {
        return birthday;
    }
    inline string get_id(){
        return id;
    }
    void details(){
        cout<<"Number:"<<number<<endl;
        cout<<"Sex:"<<sex<<endl;
        cout<<"Birthday:"<<birthday.get_year()<<"/"<<birthday.get_month()<<"/"<<birthday.get_day()<<endl;
        cout<<"ID:"<<id<<endl;
    }
    People& operator=(const People &p1){
        if(this==&p1){
            return *this;
        }
        number=p1.number;
        sex=p1.sex;
        birthday=p1.birthday;
        id=p1.id;
    }
private:
    int number;
    string sex;
    Data birthday;
    string id;
    friend bool operator== (const People &p1,const People &p2){
        if(p1.id==p2.id)
            return true;
        else
            return false;
    }
};
int main()
{
    People asp,tcp,tmp;
    asp.get_People();
    asp.details();
    tcp.get_People();
    tcp.details();
    if(asp==tcp)
        cout<<"The id of two people is common!!!"<<endl;
    else
        cout<<"The id of two people is different!!!"<<endl;
    tmp=asp;
    tmp.details();
    return 0;
}
  1. 测试截图
    这里写图片描述

 

关于PHP中“不相等”运算符<>和!=之间的区别php中不等运算符是的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于2个相同的字符串“不相等” [Python]、>>>和>>运算符之间的区别、C ++中的new运算符与Java中的new运算符之间的区别、C++重载运算符练习--对people类重载“= =”运算符和“=”运算符等相关知识的信息别忘了在本站进行查找喔。

本文标签: