рдпрджрд┐ рдЖрдк PHP рд╕реЗ рдкрд╛рдпрдерди рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрд┐рд╕ рдЪреАрдЬ рдХреА рддреИрдпрд╛рд░реА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП?

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдмрд╛рд░ рднреА рдЬрд▓реНрджреА рд╕реЗ PHP рдореЗрдВ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдП рд╣реИрдВ? рдФрд░ рдЗрддрдиреЗ рд╕рд╛рд▓ рдмреАрдд рдЪреБрдХреЗ рд╣реИрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрднрд╡ рд╣реИ, рдФрд░ рдЖрдк PHP рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╡реЗрдм рдХреЛ "рдмрдирд╛рдиреЗ" рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдХреИрд╕реЗ рдЦреЛрдЬрдирд╛ рд╣реИред рдФрд░ рдореИрдВ рдЙрджрд╛рд╣рд░рдг рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рд▓реВ рдХреИрд╕реЗ рдмрджрд▓реЗрдВрдЧреЗред



рдЖрдЬ рдореИрдВ рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛: "рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ PHP рдХреЗ рдмрдЬрд╛рдп Python рдореЗрдВ рд▓рд┐рдЦреЗрдВ?"



рдореИрдВрдиреЗ рд╕реНрд╡рдпрдВ рдЗрд╕ рдкреНрд░рд╢реНрди рдкрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЖрд╢реНрдЪрд░реНрдп рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ 11 рд╕рд╛рд▓ рд╕реЗ PHP рдореЗрдВ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдкреНрд░рдорд╛рдгрд┐рдд рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рднреА рд╣реВрдВред рдореИрдВрдиреЗ рд╕реАрдЦрд╛ рдХрд┐ рдХреИрд╕реЗ рдЗрд╕реЗ "рдкрдХрд╛рдирд╛" рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗ рдЬреИрд╕рд╛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдФрд░ рдЬрдм рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ Habr├й рдкрд░ рдПрдХ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкрдврд╝рд╛ рдХрд┐ рдХреИрд╕реЗ PHP рдореЗрдВ рд╕рдм рдХреБрдЫ рдЦрд░рд╛рдм рд╣реИ , рддреЛ рдореИрдВ рдмрд╕ рд╣реИрд░рд╛рди рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдорд╛рдорд▓рд╛ рд░реВрдмреА рдФрд░ рдлрд┐рд░ рдкрд╛рдпрдерди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рдЧрдпрд╛ред рдореИрдВ рдЕрдВрддрд┐рдо рдПрдХ рдкрд░ рд░реБрдХ рдЧрдпрд╛, рдФрд░ рдЕрдм рдореИрдВ рдЖрдкрдХреЛ PHP-shnik рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд╣рдо рдХреИрд╕реЗ рдЕрдЬрдЧрд░ рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВред









рдЕрдиреБрдЪреНрдЫреЗрдж рдкреНрд░рд╛рд░реВрдк



рдирдИ рднрд╛рд╖рд╛ рд╕реАрдЦрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╣реИ рдпрджрд┐ рдирдИ рднрд╛рд╖рд╛ рдореМрдЬреВрджрд╛ рдПрдХ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рд░реВрдмреА рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред



рдореБрдЭреЗ рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡реЗ рдЬреЛ рдирдИ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдкрд╣рд▓реЗ рд╣рдлреНрддреЛрдВ рдореЗрдВ рдЖрдВрдЦ рдХреЛ рдкрдХрдбрд╝ рд▓реЗрдВрдЧреЗред



рдХрдВрд╕реЛрд▓ рдХреА рддреИрдпрд╛рд░реА



рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдореИрдВ рдкрдврд╝рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рднрд░реНрддреА рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдЖрдкрдХреЛ рддреБрд░рдВрдд PHP рдХрдВрд╕реЛрд▓ рдпрд╛ рдмреЗрд╣рддрд░ psysh рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА :



php -a
      
      





Python. bpython ipython, , . :



python
      
      





:

import rlcompleter
import readline
readline.parse_and_bind("tab: complete")    #   

      
      





~/.pyrc :

import rlcompleter
import readline
readline.parse_and_bind("tab: complete")

      
      





~/.bashrc :


export PYTHONSTARTUP="${HOME}/.pyrc"
export PYTHONIOENCODING="UTF-8"

      
      





, , :

source ~/.bashrc
      
      



















: , . , :



foreach($a as $value) {
    $formatted = $value.'%';
    echo $formatted;
}

      
      



:

for value in a:
    formatted = value + '%'
    print(formatted)

      
      







, ! . , , . - , , . . Style Guide, -.



. . 99% IDE , . . 2 , - .





тАФ . :



print '0.60' * 5;

print '5' == 5;

$a = array('5'=>true);
print $a[5];

$value = 75;
print $value.'%';

$a='0';
if($a) print 'non zero length';  //       

      
      





.



, , , PHP 7. , .



:



>>> print "25" + 5
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects

      
      





...
, .


, . , PHP, , 1-2 , .



. , int , None , . . , , , , .



try:
    custom_price = int(request.GET.get('custom_price', 0))
except ValueError:
    custom_price = 0

      
      





, , , . - , , . , , . , , . , - , .



, , : str, int, bool, long. .







:



$tak = '';
echo "   $tak  {$tak}.";
echo " ".$tak.".";
echo sprintf("   %s  %1$'.9s.", $tak);

      
      





:



etot = ''
var = ''
print(' %s ' % etot)
print(etot + '    ,   ')
print('  %s %s' % (etot, var))
print('  %(etot)s %(var)s' % {'etot': etot, 'var': var})  #    
print('  {} {}'.format(etot, var))
print('  {1} {0}'.format(var, etot))
print('  {etot} {var}'.format(var=var, etot=etot))
print(f'  {etot} {var}')  #   Python 3.6

      
      





.





, Python PHP, тАФ . :



strpos($a, 'tr');
trim($a);

      
      



vs

a.index('tr')
a.strip()

      
      





- ?



substr($a, strpos($a, 'name: '));

      
      



vs

a[a.index('name: '):]

      
      









. Python 2 ( Python 3 тАФ ). u , . ( ) Python .



>>> len(' ')
19
>>> len(u' ')
10

      
      





PHP 6, .

PHP, , MBString function overloading , , . , .



┬л┬╗


:

$a = 'Hello.\n';
$a[strlen($a)-1] != "\n"; 

      
      





- Python. r, PHP.

a = r'Hello.\n' 
a[-1] != '\n'

      
      









. PHP :



var_dump([0=>1, 'key'=>'value']); 

      
      





array , PHP array ( ), ( , ). PHP , SPLFixedArray. , , .



Python 3-4 :





PHP тАФ , . Python , Computer Science , , . ┬л , , ┬╗, тАФ . , :







тАФ . .



PHP require_once , PHP- . CMS , , , spl_autoload_register .



тАФ . , . ( 80 ). :



, tools/logic.py

def is_prime(number):
    max_number = int(sqrt(number))

    for multiplier in range(2, max_number + 1):
        if multiplier > max_number:
            break
        if number % multiplier == 0:
            return False

    return True

      
      





main.py. , .

from tools.logic import is_prime

print(is_prime(79))

      
      





. : . PHP mysqli_*, pdo_*, memcached_*, , . ?





, , -, , -, , .



? . , , . , . , IDE, , . : , Java C# , .



*args, **kwargs


:



function makeyogurt($flavour, $type = "acidophilus")
{
    return "Making a bowl of $type $flavour.";
}

      
      



vs

def makeyogurt(flavour, ftype="acidophilus"):
    return "Making a bowl of %s %s." % (ftype, flavour, )

      
      





. : , . PHP, 5.6, :



function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);
//  
echo add(...[1, 2, 3, 4]);

      
      





Python :



def acc(*args, **kwargs):
    total = 0
    for n in args:
        total += n
    return total

print(acc(1, 2, 3, 4))
#  
print(acc(*[1, 2, 3, 4]))

      
      





*args тАФ list , **kwargs тАФ dict .





:



class BaseClass:
    def __init__(self):
        print("In BaseClass constructor")

class SubClass(BaseClass):
    def __init__(self, value):
        super(SubClass, self).__init__()
# ,  Python 3.6:        super().__init__()
        self.value = value

    def __getattr__(self, name):
        print("Cannot found: %s" % name)

c = SubClass(7)
print(c.value)

      
      





PHP :





:







, , . , . , - . . , , , :





, , ┬л тАФ , , тАФ ┬╗. , . , , :







PHP , . Python 2 Python 3. , . , Python 3 : , . ┬л ┬╗, , Python 2.

Python 2 2019 .





, , , .





?




Python


  , - .







!



: (: dginz, defuz, dsx, Stepanow, Studebecker, svartalf).

: (: yktoo). .

2018: Python 2 3.

2019: Python 3.8 .



All Articles